Code für Papier Text2Reward: Belohnungformung mit Sprachmodellen für das Lernen der Verstärkung. Weitere Demonstrationen und aktuell verwandte Ressourcen finden Sie auf unserer Projektseite.
Um die Umgebung zu etablieren, führen Sie diesen Code in der Shell aus:
# 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 noch nicht installiert haben, befolgen Sie bitte die Anweisungen von hier, um es zu installieren. Versuchen Sie anschließend die folgenden Befehle, um die erfolgreiche Installation zu bestätigen: $ 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) Um unsere Experimentergebnisse neu zu implementieren, können Sie die folgenden Skripte ausführen:
Maniskill2:
bash run_oracle.sh
bash run_zero_shot.sh
bash run_few_shot.shEs ist normal, auf die folgenden Warnungen zu stoßen:
[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 Fügen Sie zunächst die folgende Umgebungsvariable zu Ihrem .bashrc (OR .zshrc usw.) hinzu.
export PYTHONPATH= $PYTHONPATH : ~ /path/to/text2reward Navigieren Sie dann zum Verzeichnis text2reward/code_generation/single_flow und führen Sie die folgenden Skripte aus:
# 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 Standardmäßig verwendet das Skript run_oracle.sh oben die von der Umgebung bereitgestellten von Experten geschriebenen Belohnungen. Die Skripte run_zero_shot.sh und run_few_shot.sh verwenden die in unseren Experimenten verwendeten generierten Belohnungen. Wenn Sie ein neues Experiment ausführen möchten, das auf der von Ihnen angegebenen Belohnung basiert, folgen Sie einfach dem obigen Bash -Skript und ändern Sie den Parameter --reward_path auf den Pfad Ihrer eigenen Belohnung.
Wenn Sie unsere Arbeit hilfreich finden, zitieren Sie uns bitte:
@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 }
}