Dies ist die Implementierung für unseren Artikel Cal-QL: Calibrated Offline RL Pre-Training for Efficient Online Fine-Tuning in Jax and Flax.
Diese Codebasis basiert auf dem JaxCQL-Repository.
Wenn Sie dieses Repositorium für Ihre Forschung nützlich finden, zitieren Sie bitte:
@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
und mjkey.txt
in ~/.mujoco/mujoco210
und ~/.mujoco/mjkey.txt
~/.bashrc
hinzu 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
Diese Codebasis visualisiert die Protokolle mithilfe von Gewichtungen und Verzerrungen. Um dies zu aktivieren, müssen Sie zunächst Ihren W&B-API-Schlüssel einrichten, indem Sie:
JaxCQL
Ordner eine Datei mit dem Namen wandb_config.py
und geben Sie die folgenden Informationen ein def get_wandb_config():
return dict (
WANDB_API_KEY = 'your api key',
WANDB_EMAIL = 'your email',
WANDB_USERNAME = 'user'
)
Sie können einfach JaxCQL/wandb_config_example.py kopieren, es in wandb_config.py
umbenennen und die Informationen eingeben.
Sie können Experimente mit dem folgenden Befehl ausführen:
$ bash scripts/run_antmaze.sh
Weitere Informationen finden Sie unter scripts/run_antmaze.sh. Alle verfügbaren Befehlsoptionen sind in konservative_sac_main.py und konservative_sac.py zu sehen.
/demonstrations/offpolicy_hand_data/*.npy
mj_envs
von diesem Fork installieren $ 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
Weitere Informationen finden Sie unter scripts/run_adroit.sh.
Derzeit sind in diesem Repository nur AntMaze und Adroit implementiert. FrankaKitchen soll bald hinzugefügt werden, aber wenn Sie es eilig haben oder andere Aufgaben ausprobieren möchten (z. B. den Bereich der visuellen Manipulation in der Arbeit), kontaktieren Sie mich bitte unter nakamoto[at]berkeley[dot]edu.
Um es anderen Lesern zu ermöglichen, unsere Ergebnisse einfach zu reproduzieren, haben wir eine Suche nach Cal-QL und CQL in den Domänen AntMaze und Adroit durchgeführt und die entsprechenden W&B-Protokolle öffentlich zugänglich gemacht. Die Protokolle finden Sie hier: https://wandb.ai/mitsuhiko/Cal-QL--Examples?workspace=user-mitsuhiko
Sie können die Umgebung auswählen, die Sie visualisieren möchten, indem Sie env
eintragen. Cal-QL-Läufe werden durch enable-calql=True
und CQL-Läufe durch enable-calql=False
gekennzeichnet. Jede Umgebung wurde über 4 Samen laufen gelassen.
Dieses Projekt basiert auf dem JaxCQL-Repository von Young Geng. Die CQL-Implementierung basiert auf CQL.
Bei Fragen, Fehlern, Vorschlägen oder Verbesserungen können Sie mich gerne unter nakamoto[at]berkeley[dot]edu kontaktieren