영어 | 简体中文(중국어 간체)
GenerativeRL(Generative Reinforcement Learning)의 약자인 GenerativeRL은 확산 모델 및 흐름 모델과 같은 생성 모델을 사용하여 강화 학습(RL) 문제를 해결하기 위한 Python 라이브러리입니다. 이 라이브러리는 생성 모델의 성능과 강화 학습 알고리즘의 의사 결정 기능을 결합하기 위한 프레임워크를 제공하는 것을 목표로 합니다.
점수매칭 | 흐름 매칭 | |
---|---|---|
확산 모델 | ||
선형 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 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 환경에서 QGPO(Q 유도 정책 최적화)를 위한 확산 모델을 훈련하는 방법의 예입니다.
필요한 종속성을 설치합니다.
pip install ' gym[box2d]==0.23.1 '
(gym 버전은 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 문서에서 찾을 수 있습니다.
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에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스를 참조하세요.