GenerativeRL
v0.0.1
英語 | 簡體中文(簡體中文)
GenerativeRL是產生強化學習的縮寫,是一個 Python 函式庫,用於使用生成模型(例如擴散模型和流模型)來解決強化學習 (RL) 問題。該庫旨在提供一個框架,將生成模型的強大功能與強化學習演算法的決策能力相結合。
分數匹配 | 流量匹配 | |
---|---|---|
擴散模型 | ||
線性VP SDE | ✔ | ✔ |
廣義VP 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 在 LunarLanderContinously-v2 環境中訓練用於 Q 引導策略最佳化 (QGPO) 的擴散模型。
安裝所需的依賴項:
pip install ' gym[box2d]==0.23.1 '
(對於box2d環境,gym版本可以從0.23到0.25,但建議使用0.23.1以相容D4RL。)
從這裡下載資料集並將其儲存為目前目錄中的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 文件中找到。
我們提供了多個案例教學來幫助您更好地理解 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 授權。有關更多詳細信息,請參閱許可證。