これは、論文「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 を確認してください。使用可能なすべてのコマンド オプションは、conservative_sac_main.py およびconservative_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/michiko/Cal-QL--Examples?workspace=user-michiko
env
でファイリングすることで、視覚化する環境を選択できます。 Cal-QL の実行は、 enable-calql=True
で示され、CQL の実行は、 enable-calql=False
で示されます。各環境は 4 つのシードにわたって実行されています。
このプロジェクトは、Young Geng の JaxCQL リポジトリに基づいて構築されています。 CQL の実装は CQL に基づいています。
ご質問、バグ、提案、改善がある場合は、nakamoto[at]berkeley[dot]edu までお気軽にご連絡ください。