Hub 文件
在 Hugging Face Hub 上使用 sample-factory
並獲得增強的文件體驗
開始使用
在 Hugging Face 上使用 sample-factory
sample-factory
是一個用於高吞吐量非同步強化學習的程式碼庫。它與 Hugging Face Hub 整合,可以共享包含評估結果和訓練指標的模型。
探索 Hub 中的 sample-factory
你可以在模型頁面左側進行篩選,找到 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 倉庫的 repo ID。repo ID 的格式應為<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` 路徑與 `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
上傳還可以生成評估指標和重放影片。
評估指標是透過在指定環境中執行模型多個回合,並報告這些執行的平均獎勵和標準差來生成的。
其他相關命令列引數包括:
--hf_repository
: 要推送到的倉庫。必須採用<username>/<repo_name>
的形式。模型將儲存到https://huggingface.co/<username>/<repo_name>
。--max_num_episodes
: 上傳前要評估的回合數。用於生成評估指標。建議使用多個回合以生成準確的平均值和標準差。--max_num_frames
: 上傳前要評估的幀數。max_num_episodes
的替代方案。--no_render
: 一個標誌,停用渲染和顯示環境步驟。建議設定此標誌以加快評估過程。
你還可以使用 --save_video
標誌儲存模型在評估期間的影片,以便上傳到 Hub。
--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