Esta é a implementação do nosso artigo Cal-QL: Pré-treinamento RL offline calibrado para ajuste fino online eficiente em Jax e Flax.
Esta base de código é construída no repositório JaxCQL.
Se você achar este repositório útil para sua pesquisa, cite:
@article{nakamoto2023calql,
author = {Mitsuhiko Nakamoto and Yuexiang Zhai and Anikait Singh and Max Sobol Mark and Yi Ma and Chelsea Finn and Aviral Kumar and Sergey Levine},
title = {Cal-QL: Calibrated Offline RL Pre-Training for Efficient Online Fine-Tuning},
conference = {arXiv Pre-print},
year = {2023},
url = {https://arxiv.org/abs/2303.05479},
}
mujoco210
e mjkey.txt
baixados em ~/.mujoco/mujoco210
e ~/.mujoco/mjkey.txt
~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
$ conda create -c nvidia -n Cal-QL python=3.8 cuda-nvcc=11.3
$ conda activate Cal-QL
$ pip install -r requirements.txt
Esta base de código visualiza os logs usando pesos e preconceitos. Para habilitar isso, primeiro você precisa configurar sua chave API W&B:
wandb_config.py
na pasta JaxCQL
com as seguintes informações preenchidas def get_wandb_config():
return dict (
WANDB_API_KEY = 'your api key',
WANDB_EMAIL = 'your email',
WANDB_USERNAME = 'user'
)
Você pode simplesmente copiar JaxCQL/wandb_config_example.py, renomeá-lo para wandb_config.py
e preencher as informações.
Você pode executar experimentos usando o seguinte comando:
$ bash scripts/run_antmaze.sh
Por favor, verifique scripts/run_antmaze.sh para obter detalhes. Todas as opções de comando disponíveis podem ser vistas em conservador_sac_main.py e conservador_sac.py.
/demonstrations/offpolicy_hand_data/*.npy
mj_envs
deste fork $ git clone --recursive https://github.com/nakamotoo/mj_envs.git
$ cd mj_envs
$ git submodule update --remote
$ pip install -e .
$ bash scripts/run_adroit.sh
Por favor, verifique scripts/run_adroit.sh para obter detalhes.
No momento, este repositório possui apenas AntMaze e Adroit implementados. FrankaKitchen está planejado para ser adicionado em breve, mas se você estiver com pressa ou quiser tentar outras tarefas (como o domínio de manipulação visual no papel), entre em contato comigo em nakamoto[at]berkeley[dot]edu.
Para permitir que outros leitores repliquem nossos resultados facilmente, conduzimos uma varredura para Cal-QL e CQL nos domínios AntMaze e Adroit e tornamos os registros W&B correspondentes acessíveis publicamente. Os logs podem ser encontrados aqui: https://wandb.ai/mitsuhiko/Cal-QL--Examples?workspace=user-mitsuhiko
Você pode escolher o ambiente a ser visualizado arquivando em env
. As execuções de Cal-QL são indicadas por enable-calql=True
e as execuções de CQL são indicadas por enable-calql=False
. Cada ambiente foi executado em 4 sementes.
Este projeto é baseado no repositório JaxCQL de Young Geng. A implementação do CQL é baseada no CQL.
Em caso de dúvidas, bugs, sugestões ou melhorias, sinta-se à vontade para entrar em contato comigo em nakamoto[at]berkeley[dot]edu