Código para text2reward de papel: conformación de recompensa con modelos de idiomas para el aprendizaje de refuerzo. Consulte la página de nuestro proyecto para obtener más demostraciones y recursos relacionados con la fecha.
Para establecer el entorno, ejecute este código en el 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 , siga las instrucciones desde aquí para instalarlo. Después de eso, intente los siguientes comandos para confirmar la instalación exitosa: $ 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) Para volver a implementar los resultados de nuestro experimento, puede ejecutar los siguientes scripts:
Maniskill2:
bash run_oracle.sh
bash run_zero_shot.sh
bash run_few_shot.shEs normal encontrar las siguientes advertencias:
[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 En primer lugar, agregue la siguiente variable de entorno a su .bashrc (o .zshrc , etc.).
export PYTHONPATH= $PYTHONPATH : ~ /path/to/text2reward Luego navegue al directorio text2reward/code_generation/single_flow y ejecute los siguientes scripts:
# 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 Por defecto, el script run_oracle.sh anterior utiliza las recompensas escritas por expertos proporcionadas por el entorno; Los scripts run_zero_shot.sh y run_few_shot.sh usan las recompensas generadas utilizadas en nuestros experimentos. Si desea ejecutar un nuevo experimento basado en la recompensa que proporciona, simplemente siga el script de bash anterior y modifique el parámetro --reward_path a la ruta de su propia recompensa.
Si encuentra útil nuestro trabajo, cíquanos:
@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 }
}