
ドキュメント|実装されたアルゴリズム|インストール|開始|ライセンス
Omnisafeは、安全な強化学習(RL)研究を加速するために設計されたインフラストラクチャのフレームワークです。安全なRLアルゴリズムのための包括的で信頼できるベンチマークと、研究者向けのボックス外のモジュラーツールキットを提供します。 Saferlは、意図しない害や危険な行動のリスクを最小限に抑えるアルゴリズムを開発する予定です。
Omnisafeは、安全な補強学習の領域における最初の統一学習フレームワークとして、より安全な学習コミュニティの成長を促進することを目指しています。 Omnisafeの重要な機能:
高度にモジュラーフレームワーク。 Omnisafeは、多様なドメインを横切る安全な補強学習に合わせた数十のアルゴリズムの広範なコレクションを組み込んだ、非常にモジュール式のフレームワークを提示します。このフレームワークは、さまざまなアルゴリズムタイプと適切に設計されたAPIの抽象化により、アダプターとラッパーの設計コンポーネントを使用してギャップを埋め、異なるコンポーネント間のシームレスな相互作用を可能にするため、汎用性があります。この設計により、拡張とカスタマイズが簡単になり、さまざまな種類のアルゴリズムを操作する開発者にとって強力なツールになります。
高性能並列コンピューティング加速。 torch.distributedの能力を活用することにより、オムニサフェはプロセス並列性を使用してアルゴリズムの学習プロセスを加速します。これにより、Omnisafeは環境レベルの非同期並列性をサポートするだけでなく、エージェントの非同期学習を組み込んでいます。この方法論は、並列探索メカニズムの展開を介してトレーニングの安定性を強化し、トレーニングプロセスを促進します。 Omnisafeにおけるエージェントの非同期学習の統合は、より安全な研究を進めるための多目的で堅牢なプラットフォームを提供するというコミットメントを強調しています。
ボックス外のツールキット。 Omnisafeは、トレーニング、ベンチマーク、分析、レンダリングなどのタスク用のカスタマイズ可能なツールキットを提供しています。チュートリアルとユーザーフレンドリーなAPIにより、初心者や平均的なユーザーが簡単に簡単になり、高度な研究者は複雑なコードなしで効率を向上させることができます。
Omnisafeが役立つか、研究でOmnisafeを使用する場合は、出版物で引用してください。
@article { JMLR:v25:23-0681 ,
author = { Jiaming Ji and Jiayi Zhou and Borong Zhang and Juntao Dai and Xuehai Pan and Ruiyang Sun and Weidong Huang and Yiran Geng and Mickel Liu and Yaodong Yang } ,
title = { OmniSafe: An Infrastructure for Accelerating Safe Reinforcement Learning Research } ,
journal = { Journal of Machine Learning Research } ,
year = { 2024 } ,
volume = { 25 } ,
number = { 285 } ,
pages = { 1--6 } ,
url = { http://jmlr.org/papers/v25/23-0681.html }
}Omnisafeには、Python 3.8+およびPytorch 1.10+が必要です。
LinuxでPython 3.8、3.9、3.10をサポートおよびテストします。一方、MACOSのM1およびM2バージョンもサポートしています。 Windowsに関連するPRSを受け入れますが、公式にはサポートしていません。
# Clone the repo
git clone https://github.com/PKU-Alignment/omnisafe.git
cd omnisafe
# Create a conda environment
conda env create --file conda-recipe.yaml
conda activate omnisafe
# Install omnisafe
pip install -e . Omnisafeは /でホストされています。
pip install omnisafe cd examples
python train_policy.py --algo PPOLag --env-id SafetyPointGoal1-v0 --parallel 1 --total-steps 10000000 --device cpu --vector-env-nums 1 --torch-threads 1| ドメイン | 種類 | アルゴリズムレジストリ |
|---|---|---|
| ポリシーについて | プライマルデュアル | trpolag; ppolag; PDO; RCPO |
| trpopid; cppopid | ||
| 凸の最適化 | CPO; PCPO; Focops;カップ | |
| ペナルティ関数 | IPO; p3o | |
| プライマル | oncrpo | |
| オフポリシー | プライマルデュアル | ddpglag; td3lag;サクラグ |
| DDPGPID; TD3PID;サッピッド | ||
| モデルベース | オンラインプラン | SafeLoop; ccepets; rcepets |
| 悲観的な推定 | キャペット | |
| オフライン | Q学習ベース | bcqlag; C-CRR |
| サイコロベース | coptdice | |
| その他の定式化MDP | ET-MDP | PPO早期終了。 trpoearlyterminated |
| ザウタール | pposaute; trposaute | |
| Simmerrl | pposimmerpid; trposimmerpid |
安全体制がサポートする環境のリストは次のとおりです。
| カテゴリ | タスク | エージェント | 例 |
|---|---|---|---|
| 安全なナビゲーション | 目標[012] | ポイント、車、レースカー、アリ | SafeTypointGoal1-V0 |
| ボタン[012] | |||
| プッシュ[012] | |||
| サークル[012] | |||
| 安全な速度 | 速度 | Halfcheetah、Hopper、Swimmer、Walker2d、Ant、Humanoid | SafetyHumanOidVelocity-V1 |
| 安全なアイザックジム | オーバーフェフィンガー | シャドウハンド | Shadowhandoversafefinger |
| オーバーアフェジョン | |||
| catchover2underarmsafefinger | |||
| catchover2underarmsafejoint |
環境の詳細については、安全体制を参照してください。
Omnisafeソースコードを変更せずにユーザーが以下を達成できるようにする柔軟なカスタマイズされた環境インターフェイスを提供します。
環境のカスタマイズに関する段階的なチュートリアルを、コミュニティからのゼロと環境のカスタマイズからのカスタマイズと、Omnisafeのこの並外れた機能の使用方法に関する詳細な紹介を提供します。
注:環境をカスタマイズするのに問題がある場合は、お気軽に問題やディスカッションを開いてください。環境インターフェイスの実装を喜んで提供する場合は、プルリクエストも歓迎します。
pip install omnisafe
omnisafe --help # Ask for help
omnisafe benchmark --help # The benchmark also can be replaced with 'eval', 'train', 'train-config'
# Quick benchmarking for your research, just specify:
# 1. exp_name
# 2. num_pool(how much processes are concurrent)
# 3. path of the config file (refer to omnisafe/examples/benchmarks for format)
# Here we provide an exampe in ./tests/saved_source.
# And you can set your benchmark_config.yaml by following it
omnisafe benchmark test_benchmark 2 ./tests/saved_source/benchmark_config.yaml
# Quick evaluating and rendering your trained policy, just specify:
# 1. path of algorithm which you trained
omnisafe eval ./tests/saved_source/PPO-{SafetyPointGoal1-v0} --num-episode 1
# Quick training some algorithms to validate your thoughts
# Note: use `key1:key2`, your can select key of hyperparameters which are recursively contained, and use `--custom-cfgs`, you can add custom cfgs via CLI
omnisafe train --algo PPO --total-steps 2048 --vector-env-nums 1 --custom-cfgs algo_cfgs:steps_per_epoch --custom-cfgs 1024
# Quick training some algorithms via a saved config file, the format is as same as default format
omnisafe train-config ./tests/saved_source/train_config.yamlパラメーターチューニング分析とともに、ポリシー、オフポリシー、モデルベース、およびオフラインアプローチなど、さまざまなアルゴリズムのベンチマーク結果を提供しました。以下を参照してください。
一連のGoogleコラブノートブックを簡単かつすばやくOmnisafeを探索してください。
私たちは、さまざまな言語でチュートリアルを作成するためにユーザーと協力することに大きな喜びを持っています。現在サポートされている言語のリストを参照してください。チュートリアルを新しい言語に翻訳したり、既存のバージョンを改善したりすることに興味がある場合は、親切にPRを提出してください。
changelog.mdを参照してください。
アルゴリズムの実装または実験にOmnisafeを使用する論文のリストをまとめました。このリストに仕事を含めることをいとわない場合、または実装を正式にOmnisafeに統合したい場合は、お気軽にお問い合わせください。
| 論文 | 出版社 |
|---|---|
| オフポリシープライマルデュアル安全な補強学習 | ICLR 2024 |
| 実現可能性ガイド付き拡散モデルによる安全なオフライン補強学習 | ICLR 2024 |
| 安全な補強学習のための反復到達可能性推定 | ニューリップ2023 |
| 安全な補強学習のためのバランス報酬と安全性の最適化:勾配操作の視点 | AAAI 2024 |
| 1クラスの決定ツリーを使用したデモンストレーションからの安全性の制約を学習します | AAAI 2024ワークショップ |
Omnisafeは、主にYaodong Yang教授が監督したSaferl Researchチームによって開発されています。 Saferlの調査チームのメンバーには、Borong Zhang、Jiayi Zhou、Jtao Dai、Weidong Huang、Ruiyang Sun、Xuehai Pan、Jiaming Jiが含まれます。 Omnisafeを使用する過程で質問がある場合は、GitHubの問題ページで質問をすることをためらわないでください。2〜3営業日以内に返信します。
OmnisafeはApacheライセンス2.0の下でリリースされます。