Hugging Face Hubへようこそ、Stable-baselines3さん🤗
Welcome to Hugging Face Hub, Stable-baselines3! 🤗
私たちはHugging Faceで、深層強化学習の研究者や愛好家向けのエコシステムに貢献しています。そのため、私たちはStable-Baselines3をHugging Face Hubに統合したことをお知らせできることをうれしく思っています。
Stable-Baselines3は、最も人気のあるPyTorch深層強化学習ライブラリの1つであり、さまざまな環境(Gym、Atari、MuJoco、Procgenなど)でエージェントのトレーニングとテストを簡単に行うことができます。この統合により、保存されたモデルをホストできるようになり、コミュニティから強力なモデルをロードすることができます。
この記事では、その方法を紹介します。
インストール
Hugging Face Hubでstable-baselines3を使用するには、次の2つのライブラリをインストールする必要があります。
pip install huggingface_hub
pip install huggingface_sb3
モデルの検索
現在、Space Invaders、Breakout、LunarLanderなどをプレイするエージェントの保存されたモデルをアップロードしています。さらに、コミュニティからすべてのstable-baselines-3モデルをここで見つけることができます。
必要なモデルを見つけたら、リポジトリIDをコピーするだけです。
Hubからモデルをダウンロードする
この統合の最もクールな機能は、HubからStable-baselines3に保存されたモデルを非常に簡単にロードできることです。
そのためには、保存されたモデルを含むリポジトリのrepo-idと、リポジトリ内の保存されたモデルzipファイルの名前をコピーする必要があります。
例えば、sb3/demo-hf-CartPole-v1
:
import gym
from huggingface_sb3 import load_from_hub
from stable_baselines3 import PPO
from stable_baselines3.common.evaluation import evaluate_policy
# ハブからモデルを取得する
## repo_id = Hugging Face HubのモデルリポジトリのID(repo_id = {organization}/{repo_name})
## filename = リポジトリ内のモデルzipファイルの名前(拡張子 .zip を含む)
checkpoint = load_from_hub(
repo_id="sb3/demo-hf-CartPole-v1",
filename="ppo-CartPole-v1.zip",
)
model = PPO.load(checkpoint)
# エージェントを評価して観察する
eval_env = gym.make("CartPole-v1")
mean_reward, std_reward = evaluate_policy(
model, eval_env, render=True, n_eval_episodes=5, deterministic=True, warn=False
)
print(f"mean_reward={mean_reward:.2f} +/- {std_reward}")
モデルをHubに共有する
たった1分で、保存されたモデルをHubで取得できます。
まず、モデルをアップロードするためにHugging Faceにログインする必要があります。
- Colab/Jupyter Notebooksを使用している場合:
from huggingface_hub import notebook_login
notebook_login()
- それ以外の場合:
huggingface-cli login
次に、この例ではCartPole-v1をプレイするためのPPOエージェントをトレーニングし、新しいリポジトリ ThomasSimonini/demo-hf-CartPole-v1
にプッシュします。
from huggingface_sb3 import push_to_hub
from stable_baselines3 import PPO
# MLPポリシーネットワークを使用したPPOモデルを定義する
model = PPO("MlpPolicy", "CartPole-v1", verbose=1)
# 10000ステップトレーニングする
model.learn(total_timesteps=10_000)
# モデルを保存する
model.save("ppo-CartPole-v1")
# この保存されたモデルをhfリポジトリにプッシュする
# このリポジトリが存在しない場合、作成されます
## repo_id = Hugging Face HubのモデルリポジトリのID(repo_id = {organization}/{repo_name})
## filename: model.save("ppo-CartPole-v1")内のファイルの名前 == "name"
push_to_hub(
repo_id="ThomasSimonini/demo-hf-CartPole-v1",
filename="ppo-CartPole-v1.zip",
commit_message="Added Cartpole-v1 model trained with PPO",
)
それを試して、コミュニティとモデルを共有してみてください!
次は何ですか?
今後数週間から数ヶ月で、私たちはエコシステムを拡張する予定です:
- RL-baselines3-zooを統合する
- RL-trained-agentsモデルをHubにアップロードする:stable-baselines3を使用した予めトレーニングされた強化学習エージェントの大規模なコレクション
- 他のディープ強化学習ライブラリを統合する
- Decision Transformersの実装🔥
- さらに多くが予定されています🥳
連絡を取り合う最良の方法は、私たちのディスコードサーバーに参加し、私たちやコミュニティと交流することです。
そして、より深く掘り下げたい場合は、次のことを学ぶチュートリアルを用意しました:
- 月面で正しく着陸するためのDeep Reinforcement Learningランダーエージェントのトレーニング方法🌕
- それをHubにアップロードする方法🚀
- HubからSpace Invadersをプレイする保存済みモデルをダウンロードして使用する方法👾。
👉 チュートリアル
結論
Stable-baselines3で取り組んでいる内容や、Hubでのモデルの試用を楽しみにしています 😍。
また、フィードバックをお聞かせいただければ幸いです 💖。 📧 お気軽にご連絡ください。
最後に、このライブラリの統合において貴重な助けとなっていただいた、SB3チームと特にAntonin Raffinに感謝いたします 🤗。
ライブラリをHubに統合しますか?
この統合は、すべてのウィジェットとサポートされているライブラリのAPIを持つhuggingface_hub
ライブラリのおかげで可能です。もしライブラリをHubに統合したい場合は、ガイドがあります!
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles