Inglés | 简体中文 (chino simplificado)
GenerativeRL , abreviatura de Generative Reinforcement Learning, es una biblioteca de Python para resolver problemas de aprendizaje por refuerzo (RL) utilizando modelos generativos, como modelos de difusión y modelos de flujo. Esta biblioteca tiene como objetivo proporcionar un marco para combinar el poder de los modelos generativos con las capacidades de toma de decisiones de los algoritmos de aprendizaje por refuerzo.
Coincidencia de puntuación | Coincidencia de flujo | |
---|---|---|
Modelo de difusión | ||
VP lineal SDE | ✔ | ✔ |
VP generalizado SDE | ✔ | ✔ |
SDE lineal | ✔ | ✔ |
Modelo de flujo | ||
Coincidencia de flujo condicional independiente | ✔ | |
Coincidencia óptima de flujo condicional de transporte | ✔ |
Algo./Modelos | Modelo de difusión | Modelo de flujo |
---|---|---|
IDQL | ✔ | |
QGPO | ✔ | |
SRPO | ✔ | |
GMPO | ✔ | ✔ |
GMPG | ✔ | ✔ |
pip install GenerativeRL
O, si desea instalar desde la fuente:
git clone https://github.com/opendilab/GenerativeRL.git
cd GenerativeRL
pip install -e .
O puedes usar la imagen de la ventana acoplable:
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
A continuación se muestra un ejemplo de cómo entrenar un modelo de difusión para la optimización de políticas guiadas por Q (QGPO) en el entorno LunarLanderContinuous-v2 utilizando GenerativeRL.
Instale las dependencias requeridas:
pip install ' gym[box2d]==0.23.1 '
(La versión de gimnasio puede ser de 0.23 a 0.25 para entornos box2d, pero se recomienda usar 0.23.1 para compatibilidad con D4RL).
Descargue el conjunto de datos desde aquí y guárdelo como data.npz
en el directorio actual.
GenerativeRL usa WandB para iniciar sesión. Le pedirá que inicie sesión en su cuenta cuando la use. Puedes desactivarlo ejecutando:
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 )
Para obtener ejemplos y documentación más detallados, consulte la documentación de GenerativeRL.
La documentación completa de GenerativeRL se puede encontrar en GenerativeRL Documentation.
Proporcionamos varios tutoriales de casos para ayudarle a comprender mejor GenerativeRL. Ver más en tutoriales.
Ofrecemos algunos experimentos básicos para evaluar el rendimiento de los algoritmos de aprendizaje por refuerzo generativo. Ver más en punto de referencia.
¡Agradecemos las contribuciones a GenerativeRL! Si está interesado en contribuir, consulte la Guía de contribución.
@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 tiene la licencia Apache 2.0. Consulte LICENCIA para obtener más detalles.