Hub documentation
Использование sample-factory в Hugging Face
Использование sample-factory в Hugging Face
sample-factory — это кодовая база для асинхронного обучения с подкреплением высокой пропускной способности. В ней реализована интеграция с Hugging Face Hub для обмена моделями вместе с результатами оценки и метриками обучения.
Исследование sample-factory в Hub
Модели sample-factory можно найти, применив фильтр слева на странице моделей.
Все модели на Hub поставляются с полезными функциями:
- Автоматически сгенерированная карточка модели с описанием, конфигурацией обучения и другими сведениями.
- Метки метаданных, которые помогают в поиске.
- Результаты оценки для сравнения с другими моделями.
- Виджет с видео, где можно посмотреть, как работает ваш агент.
Установка библиотеки
Для установки библиотеки 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