Hub 文档

在 Hugging Face 使用 Sample-factory

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

在 Hugging Face 中使用 sample-factory

sample-factory 是一个用于高吞吐量异步强化学习的代码库。它与 Hugging Face Hub 集成,可以共享模型以及评估结果和训练指标。

在 Hub 中探索 sample-factory

您可以在 模型页面 左侧的筛选器中找到 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 存储库的存储库 ID。存储库 ID 应采用 <username>/<repo_name> 的格式
  • -d: 一个可选参数,用于指定将实验保存到的目录。默认为 ./train_dir,它将存储库保存到 ./train_dir/<repo_name>

直接下载模型仓库

可以使用git clone直接下载Hugging Face仓库。

git clone git@hf.co:<Name of HuggingFace Repo> # example: git clone [email protected]: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路径与cfg.json中的路径不同,则可能需要指定--train_dir

分享您的模型

使用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: 要保存在HF Hub上的repo_id。这与enjoy脚本中的hf_repository相同,并且必须采用<hf_username>/<hf_repo_name>的形式。
  • -d: 要上传的实验目录的完整路径。

使用enjoy.py

您可以使用环境的enjoy脚本和--push_to_hub标志将模型上传到Hub。使用enjoy上传还可以生成评估指标和回放视频。

评估指标是通过在指定的环境中运行您的模型一定数量的episode并报告这些运行的平均奖励和标准差奖励生成的。

其他相关的命令行参数为

  • --hf_repository: 要推送到哪个仓库。必须采用<username>/<repo_name>的形式。模型将保存到https://huggingface.co/<username>/<repo_name>
  • --max_num_episodes: 上传前要评估的episode数。用于生成评估指标。建议使用多个episode来生成准确的平均值和标准差。
  • --max_num_frames: 上传前要评估的帧数。作为max_num_episodes的替代方案。
  • --no_render: 禁用渲染和显示环境步骤的标志。建议设置此标志以加快评估过程。

您还可以使用--save_video标志在评估期间保存模型的视频以上传到hub。

  • --video_frames: 要在视频中渲染的帧数。默认为-1,表示渲染整个episode。
  • --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
< > GitHub 上的更新