Hub documentation
🟧 Label Studio на Spaces
🟧 Label Studio на Spaces
Label Studio — это платформа разметки данных с открытым исходным кодом для разметки, аннотирования и исследования данных самых разных типов. Кроме того, Label Studio включает мощный интерфейс для машинного обучения, который можно использовать для обучения новых моделей, активного обучения, обучения с учителем и многих других методов обучения.
В этом руководстве рассказывается, как развернуть Label Studio для разметки и аннотации данных в Hugging Face Hub. Вы можете использовать конфигурацию Label Studio по умолчанию как автономное приложение, полностью размещённое на Hub с помощью Docker для демонстрации и оценки, либо подключить собственную базу данных и облачное хранилище, чтобы разместить полнофункциональное приложение, готовое к работе в продакшене, на Spaces.
⚡️ Развертывание Label Studio на Spaces
Вы можете развернуть Label Studio на Spaces всего в несколько кликов:
Для Spaces необходимо определить:
Владелец: ваша личная учетная запись или организация, участником которой вы являетесь.
Имя Space: имя Space в рамках аккаунта, в котором вы создаете Space.
Параметр Visibility: private, если вы хотите, чтобы Space был виден только вам или вашей организации, или public, если вы хотите, чтобы он был виден другим пользователям или приложениям, использующим Label Studio API (рекомендуется).
🚀 Использование конфигурации по умолчанию
По умолчанию Label Studio устанавливается в Spaces с конфигурацией, использующей локальное хранилище для базы данных приложения, в которой хранятся конфигурация, учётные данные и информация о проектах. Задачи разметки и элементы данных также сохраняются в локальном хранилище.
Хранилище в Hugging Face Spaces по умолчанию является эфемерным. Чтобы сохранить данные между перезапусками, подключите Storage Bucket — см. раздел о постоянном хранении ниже.
После запуска Label Studio откроется стандартный экран входа. Вы можете начать с создания новой учётной записи, указав адрес электронной почты, и войти в систему с новыми учётными данными. Периодически после входа Label Studio будет предупреждать, что хранилище является эфемерным, и данные могут быть потеряны при перезапуске вашего Space. Также вам будет предложен запрос от Хайди, полезного талисмана Label Studio, создать новый проект, чтобы начать разметку данных. Чтобы начать работу, ознакомьтесь с учебником Label Studio «Zero to One», в котором описано, как создать интерфейс аннотации для анализа тональности.
🛠️ Настройка готового к работе в продакшене экземпляра 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, чтобы применить эти настройки. Возможность создания новых аккаунтов с экрана входа будет отключена. Чтобы создать новые аккаунты, вам нужно будет пригласить новых пользователей в настройках Organization в приложении Label Studio.
Включение персистентности с помощью HF Storage Buckets
По умолчанию этот Space хранит все конфигурации проекта и аннотации данных в локальном хранилище с использованием SQLite. Если Space будет сброшен, все данные конфигурации и аннотации в Space будут потеряны.
Самый простой способ включить сохранение данных — подключить Storage Bucket, который монтирует постоянное объектное хранилище непосредственно в Space. Label Studio записывает свою базу данных SQLite и загруженные медиафайлы в смонтированный бакет, поэтому проекты и аннотации сохраняются после перезапусков.
Создайте бакет:
hf buckets create <your-namespace>/label-studio-data
Подключите его в настройках Space → Storage Buckets, путь монтирования
/data.Установите две переменные Space:
LABEL_STUDIO_BASE_DATA_DIR=/data STORAGE_PERSISTENCE=1Полное восстановление Space.
Настройте Space Secret
SECRET_KEY, чтобы сессии пользователей сохранялись после перезапусков. Без него Label Studio генерирует случайный ключ при каждом запуске, и все пользователи разлогиниваются после перезапуска.
Пусть это за вас сделает агент для написания кода
Если вы не хотите настраивать Space через интерфейс, вы можете попросить агента для написания кода с доступом к huggingface_hub выполнить настройку Space за вас. Сообщите ему идентификатор вашего Space и имя бакета, и он сможет выполнить эквивалент следующего:
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)См. руководство manage-spaces для получения дополнительной информации об управлении пространствами и точками монтирования томов с помощью huggingface_hub.
Включение персистентности с Postgres
Для более тяжёлых многопользовательских развёртываний вы можете включить персистентность, подключив внешнюю базу данных Postgres к вашему space, что гарантирует сохранение всех настроек проекта и аннотаций.
Установите следующие секретные переменные в соответствии с вашим собственным хостингом Postgres. Мы настоятельно рекомендуем задавать их как секреты, чтобы предотвратить утечку информации о вашем сервисе базы данных в публичное определение вашего пространства.
DJANGO_DB: установите значениеdefault.POSTGRE_NAME: Укажите здесь имя базы данных Postgres.POSTGRE_USER: Укажите здесь имя пользователя Postgres.POSTGRE_PASSWORD: Установите здесь пароль для вашего пользователя Postgres.POSTGRE_HOST: Укажите хост, на котором запущена ваша база данных Postgres.POSTGRE_PORT: Укажите порт, на котором запущена ваша база данных Postgres.STORAGE_PERSISTENCE: установите значение1, чтобы убрать предупреждение об эфемерном хранилище.
Перезапустите Space, чтобы применить эти настройки. Информация о пользователях, проектах и аннотациях будет сохранена в базе данных и будет загружена заново Label Studio при перезапуске или сбросе space.
Включить облачное хранилище
По умолчанию для этого 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, ознакомьтесь с обучающим руководством «Zero to One», в котором на примере проекта аннотации тональности текста показано, как настроить аннотацию. Полный набор ресурсов о Label Studio и сообществе Label Studio доступен на главной странице Label Studio. В их число входят полная документация, интерактивная песочница для проверки различных интерфейсов аннотации, а также ссылки для вступления в сообщество Label Studio в Slack.
Update on GitHub