هذا هو تطبيق ورقتنا Cal-QL: التدريب المسبق لـ Calibrated Offline RL من أجل الضبط الدقيق الفعال عبر الإنترنت في Jax وFlax.
قاعدة التعليمات البرمجية هذه مبنية على مستودع 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 الخاص بك عن طريق:
wandb_config.py
ضمن مجلد JaxCQL
مع ملء المعلومات التالية 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.
من أجل تمكين القراء الآخرين من تكرار نتائجنا بسهولة، أجرينا عملية مسح لـ Cal-QL وCQL في نطاقي AntMaze وAdroit وجعلنا سجلات W&B المقابلة متاحة للعامة. يمكن العثور على السجلات هنا: https://wandb.ai/mitsuhiko/Cal-QL--Examples?workspace=user-mitsuhiko
يمكنك اختيار البيئة التي تريد تصورها عن طريق حفظها على env
. تتم الإشارة إلى عمليات تشغيل Cal-QL بواسطة enable-calql=True
، ويتم الإشارة إلى عمليات تشغيل CQL بواسطة enable-calql=False
. تم تشغيل كل بيئة عبر 4 بذور.
تم بناء هذا المشروع على مستودع JaxCQL الخاص بـ Young Geng. يعتمد تنفيذ CQL على CQL.
في حالة وجود أي أسئلة أو أخطاء أو اقتراحات أو تحسينات، فلا تتردد في الاتصال بي على nakamoto[at]berkeley[dot]edu