【论文阅读】Code as Policies: Language Model Programs for Embodied Control

快速了解部分

基础信息(英文):

  1. 题目: Code as Policies: Language Model Programs for Embodied Control
  2. 时间: 2022.09
  3. 机构: Google Robotics
  4. 3个英文关键词: LLM, Robot Policy, Code Generation

1句话通俗总结本文干了什么事情

本文利用大语言模型(LLM)根据自然语言指令直接生成Python代码作为机器人的控制策略,从而让机器人具备处理复杂任务、空间推理和泛化新指令的能力。

研究痛点:现有研究不足 / 要解决的具体问题

现有方法要么依赖于语义分析提取固定技能,难以处理未见过的指令;要么采用端到端学习(Language to Action),需要海量的机器人训练数据。此外,现有的LLM应用通常仅用于高层规划,无法直接干预感知-行动的反馈循环,导致难以处理涉及空间几何、速度调节等具体控制细节的任务。

核心方法:关键技术、模型或研究设计(简要)

提出"Code as Policies"(CaP)框架,利用Code-LLM(如OpenAI Codex)将自然语言指令转化为可执行的Python策略代码。该方法采用分层代码生成(Hierarchical Code-Gen),允许模型递归定义未定义的函数,并结合感知API(如VLM)和控制基元来构建反应式策略。

深入了解部分

作者想要表达什么

作者试图证明,通过将代码作为策略的表示形式,预训练的大语言模型可以无需额外微调,仅通过少量示例(Few-shot Prompting)就能掌握机器人控制的逻辑。这不仅能解决数据稀缺问题,还能通过代码的结构化特性(如循环、库函数调用)实现自然语言无法精确表达的空间推理和行为常识(如"移动得更快")。

相比前人创新在哪里

  1. 直接生成控制代码:不同于SayCan等仅生成动作序列,CaP生成的是包含反馈循环(While/If)和数学计算的底层Python代码。
  2. 分层代码生成:提出让模型递归地定义新函数(Function Generation),显著提升了在HumanEval基准测试和机器人任务中的性能。
  3. 利用第三方库进行几何推理:利用LLM对NumPy、Shapely等库的先验知识,直接处理坐标计算和形状分析,实现精确的空间几何推理。

解决方法/算法的通俗解释

这就像是给机器人配了一个"程序员影子"。当机器人听到指令(如"把红积木移到蓝碗左边"),它不靠自己死记硬背的动作,而是让AI现场写一段Python脚本。这段脚本里包含了"看一眼(调用视觉API)"、"算一下坐标"、"循环移动直到到位"等逻辑。写完这段代码,机器人就直接运行它来完成任务。

解决方法的具体做法

  1. 提示工程(Prompting):在Prompt中提供Hint(可用的API列表、导入库)和Examples(自然语言注释 -> 代码的对应关系)。
  2. 生成策略代码(LMP) :LLM根据指令生成包含感知(如get_pos)、逻辑(如while循环)和动作(如put_first_on_second)的Python代码。
  3. 分层扩展 :如果代码中调用了未定义的函数(如parse_obj),系统会再次调用LLM来生成这个函数的实现,直到所有函数都定义完毕。
  4. 安全执行:在沙盒环境中执行生成的代码,调用真实的机器人API。

基于前人的哪些方法

  1. Code-Completion LLM:基于Codex等经过代码训练的大模型。
  2. Open-Vocabulary Perception:依赖现有的视觉语言模型(如ViLD, MDETR)将图像映射到物体名称和位置。
  3. Control Primitives:依赖底层的脚本化控制基元(如阻抗控制器、吸盘抓取)。

实验设置、数据、评估方式、结论

  1. 基准测试:在HumanEval和自建的RoboCodeGen基准上,CaP的分层生成方法显著优于扁平生成方法(HumanEval P@1达39.8%)。
  2. 仿真环境:在模拟的桌面操作环境中,对比CLIPort和NL Planner,CaP在未见过的属性和指令上表现出极强的泛化能力。
  3. 实体机器人:在UR5e机械臂(绘图、抓取)和移动操纵机器人(导航、扔垃圾)上成功演示了自然语言到复杂策略的实时生成。
  4. 结论:CaP能有效解决长程规划、空间几何推理任务,且无需针对特定任务收集训练数据。

提到的同类工作

  1. SayCan:利用LLM生成动作序列,但依赖于预定义的价值函数。
  2. CLIPort:基于模仿学习的视觉语言策略,需要大量演示数据。
  3. Inner Monologue:结合视觉语言模型进行自我对话和重规划。

和本文相关性最高的3个文献

  1. Evaluating large language models trained on code <2021.07> (HumanEval基准,证明了Code-LLM能力的基础文献)
  2. Do as i can, not as i say: Grounding language in robotic affordances <2022.04> (Google Robotics的SayCan工作,是本文直接对比和改进的前序工作)
  3. Mdetr-modulated detection for end-to-end multi-modal understanding <2021> (MDETR视觉语言模型,本文在实验中直接使用了该模型作为感知API的基础)
相关推荐
IT_陈寒22 分钟前
React hooks 闭包陷阱把我的状态吃掉了,原来问题出在这里
前端·人工智能·后端
冬奇Lab12 小时前
Workflow 系列(03):状态管理——持久化、幂等性与版本绑定
人工智能·工作流引擎
冬奇Lab13 小时前
每日一个开源项目(第146篇):openpilot - 开源自动驾驶辅助系统,曾在 Consumer Reports 评测中超过特斯拉 Autopilot
人工智能·开源·自动驾驶
吴佳浩14 小时前
AI 工程师知识地图:模型格式、框架、部署工具一次讲明白
人工智能·aigc·ai编程
IT_陈寒14 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
码农胖大海15 小时前
AI额度不够用的解决方案
人工智能
后端小肥肠15 小时前
小红书虚拟商品怎么做?我先用 Skill 跑通了壁纸品类
人工智能·aigc·agent
feiyu_gao15 小时前
从零搭建个人 AI 工作台:一个管理者的 3 个月实验
人工智能·aigc·团队管理
程序员cxuan16 小时前
一句话,让你用上 GPT-5.6
人工智能·后端·程序员