Code as Policies: LanguageModel Programs for Embodied Control

摘要——

在代码完成上训练的大型语言模型(LLM)已被证明能够从文档字符串合成简单的Python程序[1]。我们发现,这些代码编写LLM可以被重新用于编写机器人策略代码,给定自然语言命令。具体来说,策略代码可以表达函数或反馈循环,处理感知输出(例如,来自对象检测器[2]、[3]),并参数化控制原语API。当提供几个示例语言命令(格式化为注释)以及相应的策略代码(通过少射提示)作为输入时,LLM可以接受新命令,并自主重组API调用以生成新策略代码。通过链式经典逻辑结构和引用第三方库(例如NumPy、Shapely)执行算术运算,LLM以这种方式可以编写机器人策略,表现出(i)空间几何推理,(ii)概括化新指令,并(iii)根据上下文(即行为常识)为模糊描述(“更快”)规定精确值(例如速度)。本文介绍了“代码即策略”:一种机器人中心的语言模型生成程序(LMP)形式,可以表示反应策略(例如阻抗控制器),以及基于waypoint的策略(基于视觉的抓取和放置,基于轨迹的控制),在多个实际机器人平台上进行了演示。我们方法的核心是提示分层代码生成(递归定义未定义的函数),它可以编写更复杂的代码,并且改进了最新技术,在HumanEval [1]基准测试中解决了39.8%的问题。代码和视频可在https://code-as-policies.github.io获得。

I. 引言

使用语言的机器人需要将语言固定(或定位)在物理世界中,并在单词、感知和动作之间建立连接[4]。经典方法使用词法分析提取语义表示,以指导策略[5]-[7],但它们经常难以处理未见过的指令。 更近期的方法端到端学习语言动作映射[8]-[10],但需要大量的训练数据,在真实机器人上获得这些数据可能很昂贵。与此同时,自然语言处理的最新进展表明,在互联网规模数据[11]-[13]上预训练的大型语言模型(LLM)展现了开箱即用的能力[14]-[16],可以应用于使用语言的机器人,例如根据自然语言指令规划一系列步骤[16]-[18],无需额外微调模型。 这些步骤可以通过在一组预先训练好的技能(即策略)中的价值函数来固定在真实机器人的约束中,这些技能是通过行为克隆或强化学习获得的[19]-[21]。虽然这种方法很有希望,但这种抽象阻止了LLM直接影响感知-动作反馈循环,使其难以以以下方式固定语言:(i)概括共享感知和动作的反馈模式,例如从“将苹果放在橘子上”到“当你看到橘子时将苹果放下”,(ii)在控制中表达常识先验知识,例如“移动得更快”、“推得更用力”,或(iii)理解空间关系“将苹果稍微向左移动”。 因此,集成每个新技能(以及固定模式)都需要额外的数据和重新训练 - 因此数据负担仍然存在,只是转移到了技能获取中。 这让我们思考:LLM如何才能应用得更广泛,而不仅仅是规划一系列技能?

在这里,我们发现训练代码完成的大型语言模型[1]、[11]、[22]能够更进一步:编排规划、策略逻辑和控制。 在代码完成上训练的语言模型已证明能够从文档字符串合成简单的Python程序。我们发现,这些模型可以被重新用于根据自然语言命令编写机器人策略代码(格式化为注释)。 策略代码可以表达函数或反馈循环,处理感知输出(例如开放词汇对象检测器[2]、[3]),并参数化控制原语API(见图1)。 当提供了几个示例语言命令以及相应的策略代码(通过少量提示,灰色部分)后,LLM可以接收新的命令(绿色部分),并自主重新组合API调用以生成新的策略代码(高亮部分)

# if you see an orange, move backwards.
if detect_object("orange"):
robot.set_velocity(x=-0.1, y=0, z=0)
# move rightwards until you see the apple.
while not detect_object("apple"):
robot.set_velocity(x=0, y=0.1, z=0)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值