이는 Cal-QL: Jax 및 Flax의 효율적인 온라인 미세 조정을 위한 보정된 오프라인 RL 사전 교육 논문의 구현입니다.
이 코드베이스는 JaxCQL 저장소를 기반으로 구축되었습니다.
이 저장소가 귀하의 연구에 유용하다고 생각되면 다음을 인용해 주십시오.
@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
및 mjkey.txt
~/.mujoco/mujoco210
및 ~/.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
이 코드베이스는 가중치 및 편향을 사용하여 로그를 시각화합니다. 이를 활성화하려면 먼저 다음을 통해 W&B API 키를 설정해야 합니다.
JaxCQL
폴더 아래에 다음 정보를 입력하여 wandb_config.py
라는 파일을 만듭니다. def get_wandb_config():
return dict (
WANDB_API_KEY = 'your api key',
WANDB_EMAIL = 'your email',
WANDB_USERNAME = 'user'
)
JaxCQL/wandb_config_example.py를 복사하고 이름을 wandb_config.py
로 바꾸고 정보를 입력하면 됩니다.
다음 명령을 사용하여 실험을 실행할 수 있습니다.
$ bash scripts/run_antmaze.sh
자세한 내용은 scripts/run_antmaze.sh를 확인하세요. 사용 가능한 모든 명령 옵션은 보수적_sac_main.py 및 보수적_sac.py에서 볼 수 있습니다.
/demonstrations/offpolicy_hand_data/*.npy
에 파일의 압축을 풉니다.mj_envs
설치해야 합니다. $ 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
자세한 내용은 scripts/run_adroit.sh를 확인하세요.
현재 이 저장소에는 AntMaze 및 Adroit만 구현되어 있습니다. FrankaKitchen은 곧 추가될 예정이지만, 바쁘거나 다른 작업(예: 논문의 시각적 조작 도메인)을 시도하고 싶다면 nakamoto[at]berkeley[dot]edu로 문의하세요.
다른 독자들이 우리 결과를 쉽게 복제할 수 있도록 AntMaze 및 Adroit 도메인에서 Cal-QL 및 CQL에 대한 검색을 수행하고 해당 W&B 로그에 공개적으로 액세스할 수 있도록 했습니다. 로그는 여기에서 찾을 수 있습니다: https://wandb.ai/mitsuhiko/Cal-QL--Examples?workspace=user-mitsuhiko
env
에 파일링하여 시각화할 환경을 선택할 수 있습니다. Cal-QL 실행은 enable-calql=True
로 표시되고, CQL 실행은 enable-calql=False
로 표시됩니다. 각 환경은 4개의 시드에서 실행되었습니다.
이 프로젝트는 Young Geng의 JaxCQL 저장소를 기반으로 구축되었습니다. CQL 구현은 CQL을 기반으로 합니다.
질문, 버그, 제안 또는 개선 사항이 있는 경우 언제든지 nakamoto[at]berkeley[dot]edu로 연락해 주세요.