GenSim项目介绍
项目背景
GenSim是一个创新项目,旨在通过大型语言模型(LLM)生成机器人仿真任务。该项目由Lirui Wang等多位学者共同研究,通过自动生成的代码来编写仿真环境和任务目标,以增强多样化的仿真任务。
项目目标
GenSim项目的主要目标是利用LLM来生成复杂的仿真任务,使其能够适配不同的机器人操作场景,进而支持多任务策略训练与基准测试。这一切通过自动化的代码生成管道来实现,从而简化了仿真任务的创建过程。
安装指南
要使用GenSim,首先需要安装项目必要的依赖项并进行一些配置:
- 使用命令
pip install -r requirements.txt
安装所需的Python包。 - 运行
python setup.py develop
进行开发环境配置。 - 设置环境变量:
export GENSIM_ROOT=$(pwd)
。 - 使用OpenAI的GPT-4语言模型,因此需要一个OpenAI API密钥,可以从OpenAI平台获取。
快速上手
成功安装后,可以通过以下命令运行不同的任务生成流程:
- 基本的自底向上提示:
python gensim/run_simulation.py disp=True prompt_folder=vanilla_task_generation_prompt_simple
。 - 模板生成:
python gensim/run_simulation.py disp=True prompt_folder=bottomup_task_generation_prompt save_memory=True load_memory=True task_description_candidate_num=10 use_template=True
。 - 自上而下的任务生成:
python gensim/run_simulation.py disp=True prompt_folder=topdown_task_generation_prompt save_memory=True load_memory=True task_description_candidate_num=10 use_template=True target_task_name="build-house"
。
任务的添加与移除
- 移除任务:运行
python misc/purge_task.py -f color-sequenced-block-insertion
。 - 添加任务:运行
python misc/add_task_from_code.py -f ball_on_box_on_container
。
由LLM生成的任务
所有生成的任务均存储在cliport/generated_tasks
目录中。可以使用demo.py
进行可视化,例如:python cliport/demos.py n=200 task=build-car mode=test disp=True
。任务通常遵循如下四个阶段的工作流:
- 使用
demos.py
生成train
、val
、test
数据集。 - 使用
train.py
训练代理。 - 使用
eval.py
进行验证,以找到最佳检查点并保存*val-results.json
。 - 在测试任务上评估最佳检查点。
LLM微调
GenSim支持LLM的微调功能:
- 准备数据:
python gensim/prepare_finetune_gpt.py
。数据集可以在这里找到。 - 使用OpenAI API进行微调:
openai api fine_tunes.create --training_file output/finetune_data_prepared.jsonl --model davinci --suffix 'GenSim'
。 - 评估微调模型:
python gensim/evaluate_finetune_model.py +target_task=build-car +target_model=davinci:ft-mit-cal:gensim-2023-08-06-16-00-56
。
政策基准测试
GenSim生成的100多个任务可用于多任务政策训练算法的基准测试。预训练的多任务模型可供下载,用于生成多任务演示或进行单任务与多任务训练。
注意事项
- 为确保结果的稳定性,在任务生成的过程中,可以调整温度参数以影响生成的多样性与稳定性。
- 核心提示与代码生成脚本位于
gensim
,而训练与任务管理脚本则位于cliport
。 - 如需调试生成的代码,可查看
generated_task.py
,并运行对应的调试脚本。
结语
如果您在研究中发现GenSim有用,可以通过引用以下格式来致谢:
@inproceedings{wang2023gen,
author = {Lirui Wang and others},
title = {GenSim: Generating Robotic Simulation Tasks via Large Language Models},
booktitle = {Arxiv},
year = {2023}
}
以上就是GenSim项目的基本介绍及使用指南。通过集成先进的语言模型,GenSim在机器人仿真任务生成领域提供了一个创新的解决方案。