Hub documentation

🟧 Spaces 上的 Label Studio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

🟧 Spaces 上的 Label Studio

Label Studio 是一个用于标注、注释和探索多种数据类型的开源数据标注平台。此外,Label Studio 还包含一个强大的机器学习界面,可用于新模型训练、主动学习、监督学习以及许多其他训练技术。

本指南将教你如何在 Hugging Face Hub 内部署 Label Studio 用于数据标注和注释。你可以使用 Label Studio 的默认配置,将其作为一个完全托管在 Hub 上的自包含应用程序,通过 Docker 用于演示和评估目的;也可以连接你自己的数据库和云存储,在 Spaces 上托管一个功能齐全、可用于生产环境的应用程序。

⚡️ 在 Spaces 上部署 Label Studio

只需点击几下,即可在 Spaces 上部署 Label Studio:

Spaces 要求您定义:

  • 所有者:您的个人账户或您所属的组织。

  • Space 名称:在创建该 Space 的账户内,此 Space 的名称。

  • 可见性:如果您希望该 Space 仅对您或您的组织可见,请选择 private;如果您希望其他使用 Label Studio API 的用户或应用程序也能看到它,请选择 public(建议)。

🚀 使用默认配置

默认情况下,Label Studio 在 Spaces 中安装时,其配置使用本地存储作为应用程序数据库,用于存储配置、账户凭据和项目信息。标注任务和数据项也保存在本地存储中。

Hugging Face Spaces 中的存储默认是临时的。若要在重启后保留数据,请挂载一个 Storage Bucket——请参阅下方的 持久性部分。

启动 Label Studio 后,您将看到标准的登录界面。您可以先使用电子邮件地址创建新账户,然后使用新凭据登录。登录后,Label Studio 会定期提醒您存储是临时的,如果重启您的 Space,数据可能会丢失。此外,您还会收到来自 Label Studio 吉祥物 Heidi 的提示,建议您创建新项目以开始标注数据。如需入门,请参阅 Label Studio 的 “从零到一”教程,其中包含如何构建用于情感分析的标注界面的指南。

🛠️ 配置生产就绪的 Label Studio 实例

要使您的 Space 达到生产就绪状态,需要进行三项配置更改:

  • 禁用不受限制的新账户创建。

  • 通过挂载 Storage Bucket 或外部数据库来启用持久化。

  • 可选地,为标注任务附加云存储。

禁用不受限制的新账户创建

Label Studio 的默认配置允许任何拥有您应用 URL 的人不受限制地创建新账户。您可以通过在您的 Space 设置 中添加以下配置密钥来限制注册。

  • LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK:将此值设置为 true 将禁用不受限制的账户创建。

  • LABEL_STUDIO_USERNAME:这是您将在 Label Studio Space 中用作第一个用户的账户用户名。它应该是一个有效的电子邮件地址。

  • LABEL_STUDIO_PASSWORD:与第一个用户账户关联的密码。

重启 Space 以应用这些设置。从登录界面创建新账户的功能将被禁用。若要创建新账户,您需要在 Label Studio 应用程序的 Organization 设置中邀请新用户。

使用 HF Storage Buckets 启用持久化

默认情况下,此 Space 使用 SQLite 将所有项目配置和数据注释存储在本地存储中。如果重置该 Space,Space 中的所有配置和注释数据都将丢失。

启用持久化的最简单方式是挂载一个Storage Bucket,它会将持久化对象存储直接挂载到 Space 中。Label Studio 会将 SQLite 数据库和媒体上传文件写入已挂载的存储桶,因此项目和标注在重启后依然保留。

  1. 创建存储桶:

    hf buckets create <your-namespace>/label-studio-data
  2. 在 Space Settings → Storage Buckets 中附加,挂载路径为 /data。

  3. 设置两个 Space 变量:

    LABEL_STUDIO_BASE_DATA_DIR=/data
    STORAGE_PERSISTENCE=1
  4. 对 Space 执行工厂重置。

设置 SECRET_KEY Space Secret 以在重启后保持用户会话有效。 如果不设置,Label Studio 会在每次启动时生成一个随机密钥,导致所有用户在重启后登出。

让编码代理为您完成

如果您不想通过 Space 设置界面进行操作,可以要求一个能够访问 huggingface_hub 的编码代理为您配置 Space。只需告诉它您的 Space ID 和存储桶名称,它就可以执行以下等效操作:

from huggingface_hub import HfApi, Volume

api = HfApi()
space_id = "<your-namespace>/<your-space>"

# Attach the bucket at /data
api.set_space_volumes(
    space_id,
    volumes=[
        Volume(type="bucket", source="<your-namespace>/label-studio-data", mount_path="/data"),
    ],
)

# Tell Label Studio to write its SQLite DB and media into the mounted bucket
api.add_space_variable(space_id, "LABEL_STUDIO_BASE_DATA_DIR", "/data")
api.add_space_variable(space_id, "STORAGE_PERSISTENCE", "1")

# Optional: set a stable SECRET_KEY so sessions survive restarts
api.add_space_secret(space_id, "SECRET_KEY", "<random-string>")

# Factory rebuild so the new mount and variables take effect
api.restart_space(space_id, factory_reboot=True)

有关通过 huggingface_hub 管理空间和卷挂载的更多信息,请参阅 manage-spaces 指南。

使用 Postgres 启用持久化

对于更重的多用户部署,您可以改为通过将外部 Postgres 数据库连接到您的空间来启用持久化,从而确保所有项目和标注设置均得以保留。

将以下 secret 变量设置为您自己托管的 Postgres 实例。我们强烈建议将这些变量设置为 secret,以防止在您的 spaces 定义中向公众泄露有关数据库服务的信息。

  • DJANGO_DB:将其设置为 default。

  • POSTGRE_NAME:将其设置为 Postgres 数据库的名称。

  • POSTGRE_USER:将其设置为 Postgres 用户名。

  • POSTGRE_PASSWORD:将其设置为您的 Postgres 用户的密码。

  • POSTGRE_HOST:将其设置为您 Postgres 数据库运行的主机。

  • POSTGRE_PORT:将其设置为 Postgres 数据库正在运行的端口。

  • STORAGE_PERSISTENCE:将其设置为 1 以移除关于临时存储的警告。

重启 Space 以应用这些设置。有关用户、项目和标注的信息将存储在数据库中,如果 Space 被重启或重置,Label Studio 将会重新加载这些信息。

启用云存储

默认情况下,此 Space 仅启用本地数据存储。如果重置 Space,所有数据都将丢失。要启用永久存储,您必须启用云存储连接器。 选择合适的云连接器并为其配置密钥。

Amazon S3

  • STORAGE_TYPE:将其设置为 s3。

  • STORAGE_AWS_ACCESS_KEY_ID: <YOUR_ACCESS_KEY_ID>

  • STORAGE_AWS_SECRET_ACCESS_KEY: <YOUR_SECRET_ACCESS_KEY>

  • STORAGE_AWS_BUCKET_NAME: <YOUR_BUCKET_NAME>

  • STORAGE_AWS_REGION_NAME: <YOUR_BUCKET_REGION>

  • STORAGE_AWS_FOLDER:将其设置为空字符串。

Google Cloud Storage

  • STORAGE_TYPE:将其设置为 gcs。

  • STORAGE_GCS_BUCKET_NAME: <YOUR_BUCKET_NAME>

  • STORAGE_GCS_PROJECT_ID: <YOUR_PROJECT_ID>

  • STORAGE_GCS_FOLDER:将其设置为空字符串。

  • GOOGLE_APPLICATION_CREDENTIALS:将其设置为 /opt/heartex/secrets/key.json。

Azure Blob 存储

  • STORAGE_TYPE:将其设置为 azure。

  • STORAGE_AZURE_ACCOUNT_NAME: <YOUR_STORAGE_ACCOUNT>

  • STORAGE_AZURE_ACCOUNT_KEY: <YOUR_STORAGE_KEY>

  • STORAGE_AZURE_CONTAINER_NAME: <YOUR_CONTAINER_NAME>

  • STORAGE_AZURE_FOLDER:将其设置为空字符串。

🤗 后续步骤、反馈与支持

要开始使用 Label Studio,请查看 Label Studio 的 “从零到一”教程,该教程将引导您完成一个示例情感分析标注项目。您可以在 Label Studio 主页 上找到关于 Label Studio 及其社区的完整资源集。其中包括 完整文档、用于尝试不同标注界面的 交互式游乐场,以及加入 Label Studio Slack 社区 的链接。

Update on GitHub