Il s'agit de l'implémentation de notre article Cal-QL : Pré-formation RL hors ligne calibrée pour un réglage fin en ligne efficace dans Jax et Flax.
Cette base de code est construite sur le référentiel JaxCQL.
Si vous trouvez ce référentiel utile pour votre recherche, veuillez citer :
@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
et mjkey.txt
téléchargés dans ~/.mujoco/mujoco210
et ~/.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
Cette base de code visualise les journaux à l'aide de poids et de biais. Pour activer cela, vous devez d'abord configurer votre clé API W&B en :
wandb_config.py
sous le dossier JaxCQL
avec les informations suivantes renseignées def get_wandb_config():
return dict (
WANDB_API_KEY = 'your api key',
WANDB_EMAIL = 'your email',
WANDB_USERNAME = 'user'
)
Vous pouvez simplement copier JaxCQL/wandb_config_example.py, le renommer en wandb_config.py
et remplir les informations.
Vous pouvez exécuter des expériences à l'aide de la commande suivante :
$ bash scripts/run_antmaze.sh
Veuillez consulter scripts/run_antmaze.sh pour les détails. Toutes les options de commande disponibles peuvent être vues dans conservateur_sac_main.py et conservateur_sac.py.
/demonstrations/offpolicy_hand_data/*.npy
mj_envs
à partir de ce 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
Veuillez consulter scripts/run_adroit.sh pour les détails.
Pour le moment, ce référentiel n'a implémenté qu'AntMaze et Adroit. FrankaKitchen devrait être ajouté prochainement, mais si vous êtes pressé ou si vous souhaitez essayer d'autres tâches (comme le domaine de manipulation visuelle dans l'article), veuillez me contacter à nakamoto[at]berkeley[dot]edu.
Afin de permettre à d'autres lecteurs de reproduire facilement nos résultats, nous avons effectué une analyse de Cal-QL et CQL dans les domaines AntMaze et Adroit et rendu les journaux W&B correspondants accessibles au public. Les journaux peuvent être trouvés ici : https://wandb.ai/mitsuhiko/Cal-QL--Examples?workspace=user-mitsuhiko
Vous pouvez choisir l'environnement à visualiser en effectuant un dépôt sur env
. Les exécutions Cal-QL sont indiquées par enable-calql=True
, et les exécutions CQL sont indiquées par enable-calql=False
. Chaque environnement a été exécuté sur 4 graines.
Ce projet est construit sur le référentiel JaxCQL de Young Geng. L'implémentation CQL est basée sur CQL.
En cas de questions, bugs, suggestions ou améliorations, n'hésitez pas à me contacter à nakamoto[at]berkeley[dot]edu