Code pour papier text2reward: Forme de récompense avec les modèles de langue pour l'apprentissage du renforcement. Veuillez vous référer à notre page de projet pour plus de démonstrations et des ressources connexes à jour.
Pour établir l'environnement, exécutez ce code dans le shell:
# set up conda
conda create -n text2reward python=3.7
conda activate text2reward
# set up ManiSkill2 environment
cd ManiSkill2
pip install -e .
pip install stable-baselines3==1.8.0 wandb tensorboard
cd ..
cd run_maniskill
bash download_data.sh
# set up MetaWorld environment
cd ..
cd Metaworld
pip install -e .
# set up code generation
pip install langchain chromadb==0.4.0mujoco , veuillez suivre les instructions d'ici pour l'installer. Après cela, veuillez essayer les commandes suivantes pour confirmer l'installation réussie: $ python3
>>> import mujoco_pyRuntimeError: vk::Instance::enumeratePhysicalDevices: ErrorInitializationFailedSome required Vulkan extension is not present. You may not use the renderer to render, however, CPU resources will be still available.Segmentation fault (core dumped) Pour réimplémenter nos résultats d'expérience, vous pouvez exécuter les scripts suivants:
Maniskill2:
bash run_oracle.sh
bash run_zero_shot.sh
bash run_few_shot.shIl est normal de rencontrer les avertissements suivants:
[svulkan2] [error] GLFW error: X11: The DISPLAY environment variable is missing
[svulkan2] [warning] Continue without GLFW.Metaworld:
bash run_oracle.sh
bash run_zero_shot.sh Tout d'abord, veuillez ajouter la variable d'environnement suivante à votre .bashrc (ou .zshrc , etc.).
export PYTHONPATH= $PYTHONPATH : ~ /path/to/text2reward Accédez ensuite au répertoire text2reward/code_generation/single_flow et exécutez les scripts suivants:
# generate reward code for Maniskill
bash run_maniskill_zeroshot.sh
bash run_maniskill_fewshot.sh
# generate reward code for MetaWorld
bash run_metaworld_zeroshot.sh Par défaut, le script run_oracle.sh ci-dessus utilise les récompenses rédigées expertes fournies par l'environnement; Les scripts run_zero_shot.sh et run_few_shot.sh utilisent les récompenses générées utilisées dans nos expériences. Si vous souhaitez exécuter une nouvelle expérience en fonction de la récompense que vous fournissez, suivez simplement le script bash ci-dessus et modifiez le paramètre --reward_path sur le chemin de votre propre récompense.
Si vous trouvez notre travail utile, veuillez nous citer:
@inproceedings { xietext2reward ,
title = { Text2Reward: Reward Shaping with Language Models for Reinforcement Learning } ,
author = { Xie, Tianbao and Zhao, Siheng and Wu, Chen Henry and Liu, Yitao and Luo, Qian and Zhong, Victor and Yang, Yanchao and Yu, Tao } ,
booktitle = { The Twelfth International Conference on Learning Representations }
}