Esta es la implementación de nuestro artículo Cal-QL: preentrenamiento calibrado de RL fuera de línea para un ajuste eficiente en línea en Jax y Flax.
Esta base de código se basa en el repositorio JaxCQL.
Si encuentra útil este repositorio para su investigación, 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
y mjkey.txt
descargados en ~/.mujoco/mujoco210
y ~/.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 los registros utilizando pesos y sesgos. Para habilitar esto, primero debe configurar su clave API de W&B de la siguiente manera:
wandb_config.py
en la carpeta JaxCQL
con la siguiente información completa def get_wandb_config():
return dict (
WANDB_API_KEY = 'your api key',
WANDB_EMAIL = 'your email',
WANDB_USERNAME = 'user'
)
Simplemente puede copiar JaxCQL/wandb_config_example.py, cambiarle el nombre a wandb_config.py
y completar la información.
Puede ejecutar experimentos utilizando el siguiente comando:
$ bash scripts/run_antmaze.sh
Consulte scripts/run_antmaze.sh para obtener más detalles. Todas las opciones de comando disponibles se pueden ver en conservador_sac_main.py y conservador_sac.py.
/demonstrations/offpolicy_hand_data/*.npy
mj_envs
desde esta bifurcación. $ 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
Consulte scripts/run_adroit.sh para obtener más detalles.
Por el momento, este repositorio sólo tiene implementados AntMaze y Adroit. Está previsto agregar FrankaKitchen pronto, pero si tiene prisa o desea probar otras tareas (como el dominio de manipulación visual en el documento), comuníquese conmigo en nakamoto[arroba]berkeley[punto]edu.
Para permitir que otros lectores repliquen nuestros resultados fácilmente, realizamos un barrido de Cal-QL y CQL en los dominios AntMaze y Adroit y pusimos los registros W&B correspondientes a disposición del público. Los registros se pueden encontrar aquí: https://wandb.ai/mitsuhiko/Cal-QL--Examples?workspace=user-mitsuhiko
Puede elegir el entorno a visualizar archivando en env
. Las ejecuciones de Cal-QL se indican con enable-calql=True
y las ejecuciones de CQL se indican con enable-calql=False
. Cada entorno se ha ejecutado en 4 semillas.
Este proyecto se basa en el repositorio JaxCQL de Young Geng. La implementación de CQL se basa en CQL.
En caso de cualquier pregunta, error, sugerencia o mejora, no dude en ponerse en contacto conmigo en nakamoto[at]berkeley[dot]edu.