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のデプロイ方法を学びます。デモや評価目的として、Dockerを使用してHub上に完全にホストされた自己完結型アプリケーションとしてLabel Studioのデフォルト設定を使用することもできます。また、独自のデータベースとクラウドストレージを接続して、Spaces上でホストされる本番環境で利用可能なフル機能のアプリケーションを構築することもできます。

⚡️ Spaces に Label Studio をデプロイする

Label Studioは、わずか数回のクリックでSpacesにデプロイできます:

Spacesでは、以下を定義する必要があります:

  • オーナー: 個人アカウントまたは、所属している組織。

  • Space名: Spaceを作成するアカウント内のSpaceの名前

  • スペースを自分または自分の組織のみに表示させたい場合は Visibility: private、Label Studio API を使用する他のユーザーやアプリケーションにも表示させたい場合は public(推奨)を指定します。

🚀 デフォルト設定の使用

デフォルトでは、Label StudioはSpacesにインストールされ、アプリケーションデータベースとしてローカルストレージを使用する構成が採用されています。このローカルストレージには、設定、アカウントの認証情報、プロジェクト情報が保存されます。ラベリングタスクおよびデータアイテムもまた、ローカルストレージに保持されます。

Hugging Face Spaces でのストレージは、デフォルトで一時(エフェメラル)です。再起動後もデータを保持するには、Storage Bucket をアタッチしてください。詳細は、以下の永続化セクションを参照してください。

Label Studio を起動すると、標準のログイン画面が表示されます。メールアドレスを使用して新しいアカウントを作成し、新しい認証情報でログインすることから始めましょう。ログイン後、定期的に、ストレージは一時的(エフェメラル)であり、Space が再起動されるとデータが失われる可能性があるという警告が表示されます。また、Label Studio のマスコットである Helpful な Heidi からのプロンプトが事前に設定されており、新しいプロジェクトを作成してデータのラベリングを開始するよう促されます。まずは、感情分析用のアノテーションインターフェースを構築する方法をガイドする Label Studio の 「Zero to One」チュートリアル をご覧ください。

🛠️ Label Studioの本番環境向けインスタンスの構成

Spaceを本番環境で利用できるようにするには、3つの設定変更が必要です。

  • 新しいアカウントの無制限な作成を無効にします。

  • Storage Bucketまたは外部データベースをアタッチして、永続化を有効にします。

  • 必要に応じて、ラベリングタスクにクラウドストレージをアタッチします。

新しいアカウントの無制限な作成を無効にする

Label Studioのデフォルト設定では、アプリケーションのURLを知っている誰でも、制限なく新しいアカウントを作成できます。SpaceのSettingsに以下の設定シークレットを追加することで、サインアップを制限できます。

  • LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK: この値をtrueに設定すると、制限のないアカウント作成が無効になります。

  • LABEL_STUDIO_USERNAME: Label Studio Space の最初のユーザーとして使用するアカウントのユーザー名です。有効なメールアドレスである必要があります。

  • LABEL_STUDIO_PASSWORD: 最初のユーザーアカウントに関連付けられるパスワード。

これらの設定を適用するには、Space を再起動してください。ログイン画面から新しいアカウントを作成する機能は無効になります。新しいアカウントを作成するには、Label Studio アプリケーションの Organization 設定で新しいユーザーを招待する必要があります。

HF Storage バケットで永続化を有効にする

デフォルトでは、この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. 2つのSpace変数を設定します:

    LABEL_STUDIO_BASE_DATA_DIR=/data
    STORAGE_PERSISTENCE=1
  4. Space を Factory rebuild します。

ユーザーセッションを再起動後も維持するために、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データベースを接続して永続化を有効にすることで、すべてのプロジェクト設定およびアノテーション設定が保持されることを保証できます。

Postgresのセルフホストインスタンスに合わせて、以下のシークレット変数を設定してください。スペースの定義内でデータベースサービスに関する情報が公開されるのを防ぐため、これらの値をシークレットとして設定することを強く推奨します。

  • 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

  • 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 ホームページ で確認できます。これには、完全なドキュメント、さまざまなアノテーションインターフェースを試せる インタラクティブなプレイグラウンド、および Label Studio Slack コミュニティ に参加するためのリンクが含まれています。

Update on GitHub