Раньше каждое фреймворк для обучения с подкреплением (RL) хранил свои окружения в изолированных репозиториях. Это создавало фрагментацию: датасет для Harbor не работал в Verifiers без ручного портирования. Hugging Face Hub решил эту проблему, внедрив тег rl-environment. Теперь любое датасет-репо с этим тегом становится доступным для всех основных фреймворков через единый интерфейс. Это не новый тип репозитория, а способ маркировки существующих датасетов, где данные (задачи) отделены от логики выполнения (рантайма).
01Архитектура: Данные vs Рантайм
Ключевое изменение — разделение ответственности. Hugging Face Hub хранит только данные: задачи, тесты и метаданные. Логика выполнения (верификация, награды, взаимодействие с моделью) остается в фреймворках. Это позволяет автору опубликовать окружение один раз, а использовать его в Harbor, Verifiers, OpenEnv или NeMo Gym одновременно. Совместимость определяется тегами в YAML-заголовке датасета.
02Настройка окружения
Для работы с большинством примеров ниже требуется актуальная версия Python. Рекомендуется использовать uv для быстрого управления зависимостями. Убедитесь, что у вас установлен Docker, так как большинство агентов запускаются в изолированных контейнерах для безопасности и воспроизводимости.
03Harbor: Запуск reference-решений
Harbor позволяет запускать задачи без участия LLM, используя "orakle-agent" (reference-решение). Это идеальный способ проверить корректность задачи и верификатора перед тем, как запускать тяжелые модели. Команда ниже загружает датасет и запускает тест на задаче, содержащей "regex-log".
uv tool install 'harbor'
harbor run \
--repo https://huggingface.co/datasets/harborframework/terminal-bench \
--dataset terminal-bench \
--include-task-name '*regex-log' \
--agent oracle \
--env docker --jobs-dir results/harbor
harbor view results/harborКоманда harbor view откроет локальный веб-интерфейс, где можно увидеть награду (reward), вывод верификатора и логи выполнения. Если награда положительная, задача работает корректно.
04Verifiers: Оценка моделей через Docker
Фреймворк Verifiers поддерживает запуск агентов через различные хосты, включая Docker. Ниже приведен пример запуска модели через API (указанное в переменных окружения $MODEL и $LLM_URL) на той же задаче из Terminal-Bench.
uvx --from 'verifiers[harbor]' eval \
harbor \
--env.taskset.repo https://huggingface.co/datasets/harborframework/terminal-bench \
--env.taskset.dataset terminal-bench \
--env.taskset.tasks '["regex-log"]' \
--env.agent.runtime.type docker \
--env.agent.harness.id bash \
--model $MODEL \
--client.base-url $LLM_URL--env.taskset.repo и --env.taskset.dataset требуют полного Git-URL и имени датасета. Просто ID репозитория (например, user/dataset) здесь не сработает, так как загрузчик опирается на структуру registry.json.05OpenEnv: Интеграция с агентами
OpenEnv предоставляет удобный интерфейс для запуска агентов (например, OpenCode) и получения детальной статистики, включая количество токенов/вызовов модели. Результат сохраняется в JSON.
pip install "openenv[harbor]"
openenv harbor rollout \
--llm-url $LLM_URL \
--model $MODEL \
--dataset harborframework/terminal-bench \
--task-index 0 \
--harness opencode \
--sandbox docker \
--out rollout.jsonПосле выполнения проверьте файл rollout.json с помощью Python:
import json
from pathlib import Path
result = json.loads(Path("rollout.json").read_text())[0]
print("Reward:", result["reward"])
print("Model calls:", result["n_turns"])
print("Error:", result["error"])Если reward равен None, проверьте поле error. Это может означать сбой верификатора или ошибку сети, а не просто плохую работу модели.
06NeMo Gym: Структурированные выводы
NeMo Gym ориентирован на RL-обучение и сбор траекторий. Пример с датасетом Structured Outputs показывает, как верификатор оценивает соответствие JSON-схеме. Важно понимать: верификатор проверяет только структуру (валидность JSON), а не фактическую правильность контента.
07Кому подойдёт / что запустится
Эта интеграция полезна для:
- Исследователей RL: для быстрого бенчмаркинга новых моделей на стандартизированных наборах задач (Terminal-Bench, SWE-bench) без написания кастомных загрузчиков.
- Инженеров ML: для отладки пайплайнов обучения. Возможность запустить "oracle" (reference) решение через Harbor позволяет убедиться, что среда работает, прежде чем тратить GPU-время на обучение модели.
- Разработчиков агентов: для тестирования агентов в изолированных Docker-средах с гарантией воспроизводимости.
На Hub уже доступны для тегирования популярные датасеты: Источник: Hugging Face ↗BeyondSWE, Terminal-Lego, NatureBench (для Harbor) и Multi-SWE-RL-Verified, Scale-SWE-Verified (для Verifiers). Для использования достаточно добавить теги rl-environment и имя фреймворка (например, harbor, ve
