GenSim简介
GenSim(Generating Robotic Simulation Tasks via Large Language Models)是一个使用大规模语言模型来生成机器人仿真任务的开源项目。它可以自动生成多样化的仿真环境和专家目标,大大增强了仿真任务的多样性。
官方资源
- 项目主页 - 官方项目介绍页面
- GitHub仓库 - 源代码仓库
- arXiv论文 - 技术细节和实验结果
- Gradio Demo - 在线交互式演示
- 数据集 - 用于微调的数据集
- 预训练模型 - 基于Code-LLama的微调模型
快速入门
- 安装依赖:
pip install -r requirements.txt
python setup.py develop
export GENSIM_ROOT=$(pwd)
export OPENAI_KEY=YOUR_KEY
- 运行示例:
# 基础bottom-up生成
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 # 添加任务
- 使用生成的任务:
python cliport/demos.py n=200 task=build-car mode=test disp=True
- 模型微调:
python gensim/prepare_finetune_gpt.py # 准备数据
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 # 评估
- 多任务策略训练:
bash scripts/generate_datasets.sh data 'align-box-corner assembling-kits block-insertion' # 生成数据
sh scripts/train_test_multi_task.sh data "[align-rope,align-box-corner]" # 多任务训练
注意事项
- 温度参数0.5-0.8适合生成多样化任务,0.0-0.2适合稳定结果
- 生成的任务保存在
cliport/generated_tasks
目录 - 使用
demo.py
可视化生成的任务 - 详细的训练和评估流程见cliport项目
GenSim为机器人仿真任务的生成提供了一个强大的工具。通过本文提供的学习资源,相信读者可以快速上手并深入使用GenSim,实现自动化生成多样化的仿真任务。欢迎探索GenSim的更多可能性!