Hub documentation

🟧 Label Studio no Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

🟧 Label Studio no Spaces

Label Studio é uma plataforma de rotulagem de dados de código aberto para rotular, anotar e explorar diversos tipos de dados. Além disso, o Label Studio inclui uma poderosa interface de machine learning que pode ser usada para treinamento de novos modelos, aprendizado ativo, aprendizado supervisionado e muitas outras técnicas de treinamento.

Este guia ensinará você a implantar o Label Studio para rotulagem e anotação de dados no Hugging Face Hub. Você pode usar a configuração padrão do Label Studio como um aplicativo autossuficiente hospedado completamente no Hub usando Docker para fins de demonstração e avaliação, ou pode conectar seu próprio banco de dados e armazenamento em nuvem para hospedar um aplicativo completo e pronto para produção nos Spaces.

⚡️ Implante o Label Studio nos Spaces

Você pode implantar o Label Studio em Spaces com apenas alguns cliques:

O Spaces exige que você defina:

  • Um Owner: sua conta pessoal ou uma organização da qual você faz parte.

  • Um Nome do Space: o nome do Space dentro da conta em que você está criando o Space.

  • O Visibility: private se você quiser que o Space seja visível apenas para você ou sua organização, ou public se quiser que ele seja visível para outros usuários ou aplicativos que usam a API do Label Studio (recomendado).

🚀 Usando a Configuração Padrão

Por padrão, o Label Studio é instalado em Spaces com uma configuração que usa armazenamento local para o banco de dados da aplicação, armazenando configurações, credenciais de conta e informações de projeto. As tarefas de rotulagem e os itens de dados também são mantidos no armazenamento local.

O armazenamento em Hugging Face Spaces é efêmero por padrão. Para persistir seus dados entre reinicializações, anexe um Storage Bucket — consulte a seção de persistência abaixo.

Após iniciar o Label Studio, a tela padrão de login será exibida. Você pode começar criando uma nova conta com seu endereço de e-mail e fazendo login com suas novas credenciais. Periodicamente após o login, o Label Studio alertará que o armazenamento é efêmero e que os dados podem ser perdidos se seu Space for reiniciado. Você também verá um prompt pré-definido da Heidi, a mascote útil do Label Studio, para criar um novo projeto e começar a rotular seus dados. Para começar, confira o tutorial “Zero to One” do Label Studio, com um guia sobre como construir uma interface de anotação para análise de sentimento.

🛠️ Configurando uma instância pronta para produção do Label Studio

Para tornar seu Space pronto para produção, você precisará fazer três alterações de configuração:

  • Desative a criação irrestrita de novas contas.

  • Ative a persistência anexando um Storage Bucket ou um banco de dados externo.

  • Opcionalmente, anexe armazenamento em nuvem para tarefas de rotulagem.

Desativar a criação irrestrita de novas contas

A configuração padrão no Label Studio permite a criação irrestrita de novas contas para qualquer pessoa que tenha a URL do seu aplicativo. Você pode restringir os cadastros adicionando os seguintes segredos de configuração ao Settings do seu Space.

  • LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK: Definir esse valor como true desativará a criação de conta irrestrita.

  • LABEL_STUDIO_USERNAME: Este é o nome de usuário da conta que você usará como o primeiro usuário no seu Label Studio Space. Deve ser um endereço de e-mail válido.

  • LABEL_STUDIO_PASSWORD: A senha que será associada à primeira conta de usuário.

Reinicie o Space para aplicar essas configurações. A capacidade de criar novas contas a partir da tela de login será desativada. Para criar novas contas, você precisará convidar novos usuários nas configurações de Organization no aplicativo Label Studio.

Ative a persistência com buckets de armazenamento do HF

Por padrão, este Space armazena toda a configuração do projeto e as anotações de dados no armazenamento local com SQLite. Se o Space for reiniciado, todos os dados de configuração e anotação no Space serão perdidos.

A maneira mais simples de habilitar a persistência é anexar um Storage Bucket, que monta o armazenamento de objetos persistente diretamente no Space. O Label Studio grava seu banco de dados SQLite e os uploads de mídia no bucket montado, de modo que projetos e anotações sobrevivem a reinicializações.

  1. Crie um bucket:

    hf buckets create <your-namespace>/label-studio-data
  2. Anexe-o em Configurações do Space → Storage Buckets, caminho de montagem /data.

  3. Defina duas Variáveis de Space:

    LABEL_STUDIO_BASE_DATA_DIR=/data
    STORAGE_PERSISTENCE=1
  4. Reconstrução de fábrica do Space.

Defina um Space Secret SECRET_KEY para manter as sessões dos usuários ativas entre reinícios. Sem ele, o Label Studio gera uma chave aleatória a cada inicialização e todos os usuários são desconectados ao reiniciar.

Deixe um agente de codificação fazer isso por você

Se você preferir não navegar pelas configurações do Space, pode pedir a um agente de código com acesso ao huggingface_hub que provisione o Space para você. Informe a ele o ID do seu Space e o nome do bucket, e ele pode executar o equivalente a:

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)

Consulte o guia manage-spaces para mais informações sobre a gestão de espaços e montagens de volumes via huggingface_hub.

Ative a Persistência com Postgres

Para implantações multiusuário mais pesadas, você pode, em vez disso, habilitar a persistência conectando um banco de dados Postgres externo ao seu space, garantindo que todas as configurações de projeto e anotação sejam preservadas.

Defina as seguintes variáveis de segredo para corresponder à sua própria instância hospedada do Postgres. Recomendamos fortemente definir esses valores como segredos para evitar a exposição de informações sobre o serviço do seu banco de dados ao público na definição dos seus spaces.

  • DJANGO_DB: Defina este valor como default.

  • POSTGRE_NAME: Defina este valor com o nome do banco de dados Postgres.

  • POSTGRE_USER: Defina este valor como o nome de usuário do Postgres.

  • POSTGRE_PASSWORD: Defina este valor como a senha do seu usuário do Postgres.

  • POSTGRE_HOST: Defina este valor como o host em que seu banco de dados Postgres está em execução.

  • POSTGRE_PORT: Defina este valor para a porta em que seu banco de dados Postgres está em execução.

  • STORAGE_PERSISTENCE: Defina este valor como 1 para remover o aviso sobre armazenamento efêmero.

Reinicie o Space para aplicar essas configurações. As informações sobre usuários, projetos e anotações serão armazenadas no banco de dados e serão recarregadas pelo Label Studio se o space for reiniciado ou redefinido.

Ativar armazenamento em nuvem

Por padrão, o único armazenamento de dados habilitado para este Space é o local. Em caso de reset do Space, todos os dados serão perdidos. Para habilitar armazenamento permanente, você deve ativar um conector de armazenamento em nuvem. Escolha o conector de nuvem apropriado e configure os segredos para ele.

Amazon S3

  • STORAGE_TYPE: Defina este valor como 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: Defina este valor como uma string vazia.

Google Cloud Storage

  • STORAGE_TYPE: Defina este valor como gcs.

  • STORAGE_GCS_BUCKET_NAME: <YOUR_BUCKET_NAME>

  • STORAGE_GCS_PROJECT_ID: <YOUR_PROJECT_ID>

  • STORAGE_GCS_FOLDER: Defina este valor como uma string vazia.

  • GOOGLE_APPLICATION_CREDENTIALS: Defina este valor como /opt/heartex/secrets/key.json.

Azure Blob Storage

  • STORAGE_TYPE: Defina este valor como 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: Defina este valor como uma string vazia.

🤗 Próximas etapas, feedback e suporte

Para começar a usar o Label Studio, confira o tutorial “Zero to One” do Label Studio, que o guia por um projeto de exemplo de anotação para análise de sentimento. Você pode encontrar um conjunto completo de recursos sobre o Label Studio e a comunidade do Label Studio na página inicial do Label Studio. Isso inclui a documentação completa, um playground interativo para testar diferentes interfaces de anotação e links para participar da Comunidade do Slack do Label Studio.

Update on GitHub