Anglais | 简体中文 (chinois simplifié)
Generativerl , abréviation de l'apprentissage en renforcement génératif, est une bibliothèque Python pour résoudre les problèmes d'apprentissage par renforcement (RL) utilisant des modèles génératifs, tels que les modèles de diffusion et les modèles d'écoulement. Cette bibliothèque vise à fournir un cadre pour combiner la puissance des modèles génératifs avec les capacités de prise de décision des algorithmes d'apprentissage par renforcement.
Generativerl_preview est une version d'aperçu de Generativerl , qui est toujours en cours de développement rapide avec de nombreuses fonctionnalités expérimentales. Pour une version stable de Generativerl , veuillez visiter Generativerl.

| Modèles de variables continues | Match de score | Correspondance de flux |
|---|---|---|
| Modèle de diffusion | ||
| VP linéaire SDE | ✔ | ✔ |
| VP généralisé SDE | ✔ | ✔ |
| SDE linéaire | ✔ | ✔ |
| Modèle de flux | ||
| Correspondance de flux conditionnel indépendant | ✔ | |
| Correspondance optimale du débit conditionnel de transport | ✔ |
| Modèles de variables discrètes | Correspondance de débit discrète |
|---|---|
| Coulage en U / chemin linéaire | ✔ |
| Algo. | Modèle de diffusion | Modèle de flux |
|---|---|---|
| Idql | ✔ | |
| QGPO | ✔ | |
| SRPO | ✔ | |
| GMPO | ✔ | ✔ |
| GMPG | ✔ | ✔ |
Veuillez installer à partir de la source:
git clone https://github.com/zjowowen/GenerativeRL_Preview.git
cd GenerativeRL_Preview
pip install -e .Ou vous pouvez utiliser l'image Docker:
docker pull zjowowen/grl:torch2.3.0-cuda12.1-cudnn8-runtime
docker run -it --rm --gpus all zjowowen/grl:torch2.3.0-cuda12.1-cudnn8-runtime /bin/bashVoici un exemple de la façon de former un modèle de diffusion pour l'optimisation des politiques guidés par Q (QGPO) dans l'environnement LunarlanderContinu-V2 en utilisant Generativerl.
Installez les dépendances requises:
pip install ' gym[box2d]==0.23.1 ' Téléchargez l'ensemble de données à partir d'ici et enregistrez-les en tant que data.npz dans le répertoire actuel.
Generativerl utilise WANDB pour la journalisation. Il vous demandera de vous connecter à votre compte lorsque vous l'utilisez. Vous pouvez le désactiver en fonctionnant:
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 )Pour des exemples et une documentation plus détaillés, veuillez vous référer à la documentation Generativerl.
La documentation complète de la version d'aperçu Generativerl peut être trouvée dans la documentation Generativerl (en cours).
Nous fournissons plusieurs tutoriels de cas pour vous aider à mieux comprendre Generativerl. Voir plus sur les tutoriels.
Nous proposons quelques expériences de référence pour évaluer les performances des algorithmes génératifs d'apprentissage par renforcement. Voir plus à Benchmark.
Nous saluons les contributions à Generativerl! Si vous êtes intéressé à contribuer, veuillez vous référer au guide de contribution.
@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 est concédé sous licence Apache 2.0. Voir la licence pour plus de détails.