Inglês | 简体中文 (chinês simplificado)
O Generativerl , abreviado para aprendizado de reforço generativo, é uma biblioteca Python para resolver problemas de aprendizado de reforço (RL) usando modelos generativos, como modelos de difusão e fluxo. Esta biblioteca visa fornecer uma estrutura para combinar o poder de modelos generativos com os recursos de tomada de decisão dos algoritmos de aprendizado de reforço.
Generativerl_Preview é uma versão de visualização do Generativerl , que ainda está sob rápido desenvolvimento com muitos recursos experimentais. Para uma versão estável do generativerl , visite Generativerl.

| Modelos para variáveis contínuas | Correspondência de pontuação | Correspondência de fluxo |
|---|---|---|
| Modelo de difusão | ||
| VP linear SDE | ✔ | ✔ |
| VP generalizado SDE | ✔ | ✔ |
| SDE linear | ✔ | ✔ |
| Modelo de fluxo | ||
| Correspondência de fluxo condicional independente | ✔ | |
| Combinação de fluxo condicional de transporte ideal | ✔ |
| Modelos para variáveis discretas | Correspondência de fluxo discreto |
|---|---|
| Caminho de acoplamento em U/linear | ✔ |
| Algo./Models | Modelo de difusão | Modelo de fluxo |
|---|---|---|
| IDQL | ✔ | |
| QGPO | ✔ | |
| Srpo | ✔ | |
| GMPO | ✔ | ✔ |
| Gmpg | ✔ | ✔ |
Por favor, instale na fonte:
git clone https://github.com/zjowowen/GenerativeRL_Preview.git
cd GenerativeRL_Preview
pip install -e .Ou você pode usar a imagem do 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/bashAqui está um exemplo de como treinar um modelo de difusão para a otimização de políticas guiadas por Q (QGPO) no ambiente LunarLanderContinuous-V2 usando o GenerativerL.
Instale as dependências necessárias:
pip install ' gym[box2d]==0.23.1 ' Faça o download do conjunto de dados aqui e salve -o como data.npz no diretório atual.
Generativerl usa o wandb para registro. Ele solicitará que você faça login em sua conta quando a usar. Você pode desativá -lo correndo:
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 exemplos e documentação mais detalhados, consulte a documentação do Generativerl.
A documentação completa para a versão de visualização Generativerl pode ser encontrada na Documentação Generativerl (em andamento).
Fornecemos vários tutoriais de casos para ajudá -lo a entender melhor o GenerativerL. Veja mais nos tutoriais.
Oferecemos alguns experimentos de linha de base para avaliar o desempenho de algoritmos de aprendizado de reforço generativo. Veja mais no benchmark.
Congratulamo -nos com contribuições para o Generativerl! Se você estiver interessado em contribuir, consulte o guia contribuinte.
@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},
}O Generativerl é licenciado sob a licença Apache 2.0. Consulte a licença para obter mais detalhes.