Hub documentation

Использование sample-factory в Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Использование sample-factory в Hugging Face

sample-factory — это кодовая база для асинхронного обучения с подкреплением высокой пропускной способности. В ней реализована интеграция с Hugging Face Hub для обмена моделями вместе с результатами оценки и метриками обучения.

Исследование sample-factory в Hub

Модели sample-factory можно найти, применив фильтр слева на странице моделей.

Все модели на Hub поставляются с полезными функциями:

  1. Автоматически сгенерированная карточка модели с описанием, конфигурацией обучения и другими сведениями.
  2. Метки метаданных, которые помогают в поиске.
  3. Результаты оценки для сравнения с другими моделями.
  4. Виджет с видео, где можно посмотреть, как работает ваш агент.

Установка библиотеки

Для установки библиотеки sample-factory необходимо установить пакет:

pip install sample-factory

SF известно, что работает на Linux и MacOS. Поддержка Windows в настоящее время отсутствует.

Загрузка моделей из Hub

Использование load_from_hub

Чтобы скачать модель с Hugging Face Hub для использования с Sample-Factory, используйте скрипт load_from_hub:

python -m sample_factory.huggingface.load_from_hub -r <HuggingFace_repo_id> -d <train_dir_path>

Аргументы командной строки:

  • -r: идентификатор репозитория HF, из которого выполняется загрузка. Идентификатор репозитория должен иметь формат <username>/<repo_name>
  • -d: необязательный аргумент для указания каталога, в котором будет сохранён эксперимент. По умолчанию используется ./train_dir, что приводит к сохранению репозитория в ./train_dir/<repo_name>

Скачать репозиторий модели напрямую

Репозитории Hugging Face можно скачать напрямую с помощью git clone:

git clone git@hf.co:<Name of HuggingFace Repo> # example: git clone git@hf.co:bigscience/bloom

Использование загруженных моделей с Sample-Factory

После загрузки модели вы можете запустить модели из репозитория с помощью скрипта enjoy, соответствующего вашей среде. Например, если вы скачиваете модель mujoco-ant, её можно запустить с помощью:

python -m sf_examples.mujoco.enjoy_mujoco --algo=APPO --env=mujoco_ant --experiment=<repo_name> --train_dir=./train_dir

Обратите внимание, вам может потребоваться указать --train_dir, если путь к локальному train_dir отличается от того, что указан в cfg.json

Обмен моделями

Использование push_to_hub

Если вы хотите загрузить данные без генерации метрик оценки или видео воспроизведения, вы можете использовать скрипт push_to_hub:

python -m sample_factory.huggingface.push_to_hub -r <hf_username>/<hf_repo_name> -d <experiment_dir_path>

Аргументы командной строки:

  • -r: repo_id для сохранения на HF Hub. Это то же самое, что hf_repository в скрипте enjoy, и должно иметь вид <hf_username>/<hf_repo_name>
  • -d: полный путь к каталогу вашего эксперимента для загрузки

Использование enjoy.py

Вы можете загрузить свои модели в Hub с помощью скрипта enjoy вашего окружения с флагом --push_to_hub. Загрузка с помощью enjoy также позволяет генерировать метрики оценки и видео воспроизведения.

Метрики оценки генерируются путём запуска вашей модели в указанной среде на протяжении нескольких эпизодов и отчёта о среднем и стандартном отклонении вознаграждения для этих запусков.

Другие соответствующие аргументы командной строки:

  • --hf_repository: репозиторий, в который выполняется публикация. Должен иметь вид <username>/<repo_name>. Модель будет сохранена в https://huggingface.co/<username>/<repo_name>
  • --max_num_episodes: Количество эпизодов для оценки перед загрузкой. Используется для генерации метрик оценки. Рекомендуется использовать несколько эпизодов, чтобы получить точные среднее значение и стандартное отклонение.
  • --max_num_frames: количество кадров для оценки перед загрузкой. Альтернатива max_num_episodes
  • --no_render: флаг, отключающий рендеринг и отображение шагов среды. Рекомендуется установить этот флаг, чтобы ускорить процесс оценки.

Вы также можете сохранить видео модели во время оценки для загрузки на хаб с помощью флага --save_video

  • --video_frames: количество кадров, которые будут отрисованы в видео. По умолчанию -1, что означает отрисовку всего эпизода
  • --video_name: имя, под которым будет сохранено видео. Если None, файл будет сохранён как replay.mp4 в каталоге вашего эксперимента

Например:

python -m sf_examples.mujoco_examples.enjoy_mujoco --algo=APPO --env=mujoco_ant --experiment=<repo_name> --train_dir=./train_dir --max_num_episodes=10 --push_to_hub --hf_username=<username> --hf_repository=<hf_repo_name> --save_video --no_render
Update on GitHub