英語 | 简体中文(簡体字中国語)
GenerativeRL は、Generative Reinforcement Learning の略で、拡散モデルやフロー モデルなどの生成モデルを使用して強化学習 (RL) 問題を解決するための Python ライブラリです。このライブラリは、生成モデルの能力と強化学習アルゴリズムの意思決定機能を組み合わせるためのフレームワークを提供することを目的としています。
スコアマッチング | フローマッチング | |
---|---|---|
普及モデル | ||
リニアVP SDE | ✔ | ✔ |
一般化された SDE 副社長 | ✔ | ✔ |
線形SDE | ✔ | ✔ |
フローモデル | ||
独立した条件付きフローマッチング | ✔ | |
最適な輸送条件付きフローマッチング | ✔ |
アルゴリズム/モデル | 普及モデル | フローモデル |
---|---|---|
IDQL | ✔ | |
QGPO | ✔ | |
SRPO | ✔ | |
GMPO | ✔ | ✔ |
GMPG | ✔ | ✔ |
pip install GenerativeRL
または、ソースからインストールする場合は、次のようにします。
git clone https://github.com/opendilab/GenerativeRL.git
cd GenerativeRL
pip install -e .
または、docker イメージを使用することもできます。
docker pull opendilab/grl:torch2.3.0-cuda12.1-cudnn8-runtime
docker run -it --rm --gpus all opendilab/grl:torch2.3.0-cuda12.1-cudnn8-runtime /bin/bash
ここでは、GenerativeRL を使用して、LunarLanderContinuous-v2 環境で Q ガイド付きポリシー最適化 (QGPO) の拡散モデルをトレーニングする方法の例を示します。
必要な依存関係をインストールします。
pip install ' gym[box2d]==0.23.1 '
(box2d 環境の場合、ジムのバージョンは 0.23 ~ 0.25 ですが、D4RL との互換性のために 0.23.1 を使用することをお勧めします。)
ここからデータセットをダウンロードし、現在のディレクトリにdata.npz
として保存します。
GenerativeRL はログ記録に WandB を使用します。使用するときにアカウントへのログインを求められます。次のコマンドを実行すると無効にできます。
wandb offline
import gym
from grl . algorithms . qgpo import QGPOAlgorithm
from grl . datasets import QGPOCustomizedTensorDictDataset
from grl . utils . log import log
from grl_pipelines . diffusion_model . configurations . lunarlander_continuous_qgpo import config
def qgpo_pipeline ( config ):
qgpo = QGPOAlgorithm ( config , dataset = QGPOCustomizedTensorDictDataset ( numpy_data_path = "./data.npz" , action_augment_num = config . train . parameter . action_augment_num ))
qgpo . train ()
agent = qgpo . deploy ()
env = gym . make ( config . deploy . env . env_id )
observation = env . reset ()
for _ in range ( config . deploy . num_deploy_steps ):
env . render ()
observation , reward , done , _ = env . step ( agent . act ( observation ))
if __name__ == '__main__' :
log . info ( "config: n {}" . format ( config ))
qgpo_pipeline ( config )
より詳細な例とドキュメントについては、GenerativeRL のドキュメントを参照してください。
GenerativeRL の完全なドキュメントは、GenerativeRL Documentation にあります。
GenerativeRL をより深く理解できるように、いくつかのケース チュートリアルを提供しています。詳細についてはチュートリアルを参照してください。
生成強化学習アルゴリズムのパフォーマンスを評価するためのベースライン実験をいくつか提供します。詳細はベンチマークでご覧ください。
GenerativeRL への貢献を歓迎します。貢献に興味がある場合は、貢献ガイドを参照してください。
@misc{generative_rl,
title={GenerativeRL: A Python Library for Solving Reinforcement Learning Problems Using Generative Models},
author={Zhang, Jinouwen and Xue, Rongkun and Niu, Yazhe and Chen, Yun and Chen, Xinyan and Wang, Ruiheng and Liu, Yu},
publisher={GitHub},
howpublished={ url {https://github.com/opendilab/GenerativeRL}},
year={2024},
}
GenerativeRL は、Apache License 2.0 に基づいてライセンスされています。詳細については、「ライセンス」を参照してください。