Hub documentation
Hugging Faceでの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の使用
Sample-Factoryで使用するモデルをHugging Face Hubからダウンロードするには、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>に保存されます。
モデルリポジトリを直接ダウンロード
Hugging Faceのリポジトリは、git cloneを使用して直接ダウンロードできます:
git clone git@hf.co:<Name of HuggingFace Repo> # example: git clone git@hf.co:bigscience/bloomDownloaded Models with 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フラグを使用することもできます。
--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