当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 把大象装冰箱总共要几步?英伟达发布ProgPrompt,让语言模型给机器人安排计划

把大象装冰箱总共要几步?英伟达发布ProgPrompt,让语言模型给机器人安排计划

来源:51CTO.COM 2023-04-14 07:05:32 0浏览 收藏

大家好,我们又见面了啊~本文《把大象装冰箱总共要几步?英伟达发布ProgPrompt,让语言模型给机器人安排计划》的内容中将会涉及到等等。如果你正在学习科技周边相关知识,欢迎关注我,以后会给大家带来更多科技周边相关文章,希望我们能一起进步!下面就开始本文的正式内容~

对于机器人来说,任务规划(Task Planning)是一个绕不过去的难题。

想要完成一个真实世界的任务,首先你得知道把大象装冰箱总共要几步

即便是比较简单的扔苹果任务也包含多个子步骤,机器人得先观察苹果的位置,如果没有看到苹果就要持续寻找,然后靠近苹果,把苹果抓起来找到并靠近垃圾桶

如果垃圾桶关着的,还得先把它打开,然后再把苹果扔进去关上垃圾桶

但每个任务的具体实施细节不可能都由人来设计,如何通过一句命令来生成动作序列就成了难题。

命令生成序列?这不正是语言模型的工作么?

过去有研究人员使用大型语言模型(LLMs)根据输入的任务指令对潜在的下一步行动空间进行评分,然后生成行动序列。指令由自然语言进行描述,不包含额外的领域信息。

但这类方法要么需要列举所有可能的下一步行动进行评分,要么生成的文本在形式上没有任何限制,其中可能包含在当前环境下特定机器人不可能采取的行动

最近南加州大学和英伟达联合推出了一个新模型ProgPrompt,同样使用语言模型对输入指令进行任务规划,其中包含了一个程序化的提示结构,使得生成的计划在不同的环境、具有不同能力的机器人、不同的任务中都能发挥作用。

图片

在保证任务的规范性上,研究人员采用生成python风格代码的形式来提示语言模型哪些动作是可用的、环境中有哪些物体以及哪些程序是可执行的。

比如输入「扔苹果」命令就可以生成如下程序。

图片

ProgPrompt模型在虚拟家庭任务中达到了sota性能,研究人员还将该模型部署在一个用于桌面任务的物理机器人手臂上。

妙用语言模型

想要完成日常家庭任务(everyday household tasks)既需要对世界具有常识性理解,也需要当前环境的情景知识。

为了创建一个「做晚饭」的任务计划,智能体最起码需要知道的常识包括:物体的功能,如炉子和微波炉可以用来加热;行动的逻辑顺序,在添加食物之前必须先预热烤箱;以及物体和行动的任务相关性,例如加热和寻找食材首先是与「晚饭」相关的行动。

但如果没有状态反馈(state feedback),这种推理就无法进行。

智能体需要知道当前环境中哪里有食物,例如冰箱里是否有鱼,或者冰箱里是否有鸡肉。

在大型语料库上训练的自回归大型语言模型可以在输入提示的条件下生成文本序列,具有显著的多任务泛化能力。

比如输入「做晚饭」,语言模型可以生成后续序列,如打开冰箱、拿起鸡肉、拿起苏打水、关闭冰箱、打开电灯开关等。

生成的文本序列需要映射到智能体的行动空间中,比如生成的指令是「伸手拿起一罐泡菜」,对应的可执行动作可能就是「拿起罐子」,然后模型会计算出一个行动的概率评分值。

但缺少环境反馈的情况下,如果冰箱里没有鸡肉,却仍然选择「拿起鸡肉」行动,就会导致任务失败,因为「做晚饭」并没有包含任何关于世界状态的信息。

ProgPrompt模型在任务规划中巧妙地利用了编程语言结构,因为现有的大规模语言模型通常都在编程教程和代码文档的语料中进行过预训练

ProgPrompt为语言模型提供了一个Pythonic的程序头部作为提示,导入了可用的动作空间、预期参数和环境中可用的物体。

图片

然后定义了诸如make_dinner, throw_away_banana等函数,其主体是对物体进行操作的动作序列,然后通过断言计划的先决条件,例如在试图打开冰箱之前靠近冰箱,以及用恢复行动来应对断言失败的情况,以此纳入环境的状态反馈

最重要的是,ProgPrompt程序中还包括了自然语言编写的注释,用以解释行动的目标,从而提高了生成的计划程序执行任务的成功率。

ProgPrompt

有了完整的想法,ProgPrompt的整体工作流程就清晰了,主要包括三部分Pythonic函数构建构造编程语言提示任务计划的生成和执行

图片

1、将机器人计划表述为Pythonic函数

计划函数包括对动作原语(action primitive)的API调用,总结动作并添加注释,以及跟踪执行的断言。

每个动作原语需要一个物体作为参数,比如「把三文鱼放进微波炉」任务中,包括对find(salmon)的调用,其中find就是一个动作原语。

图片

利用代码中的注释来为后续的动作序列提供自然语言的总结,注释有助于将高层次的任务分解成合乎逻辑的子任务,即「抓取三文鱼」和「把三文鱼放进微波炉」。

注释也可以让语言模型了解当前的目标,减少不连贯、不一致或重复输出的可能性,类似于思维链(chain of thought)生成中间结果。

断言(assertions)提供了一个环境反馈机制,以确保前提条件成立,并在不成立时实现错误恢复,比如在抓取行动之前,计划断言智能体已经接近了三文鱼,否则智能体需要先执行find行动。

2、构造编程语言prompt

prompt需要向语言模型提供关于环境和主要行动的信息,包括观察、行动原语、例子,并生成了一个Pythonic提示,供语言模型补全。

图片

然后,语言模型将预测为一个可执行的函数,即microwave_salmon()

在微波炉三文鱼这个任务中,LLM可以生成的且合理的第一步是取出三文鱼,但负责执行计划的智能体可能没有这样一个动作原语。

为了让语言模型了解智能体的动作原语,将其在prompt中通过import语句导入,也就将输出限制为在当前环境下可用的函数上。

要改变智能体的行为空间,只需要更新import的函数列表即可。

变量objects以一个字符串列表的形式提供了环境中的所有可用物体

prompt还包括一些完全可执行的程序计划作为示例,每个示例任务都演示了如何使用给定环境中的可用动作和目标来完成一个给定的任务,如throw_away_lime

3、任务计划的生成和执行

给定任务之后,计划完全是由语言模型根据ProgPrompt提示推断出来的,然后可以将生成的计划在虚拟智能体或物理机器人系统上执行,需要用到一个解释器,针对环境执行每个行动命令。

在执行过程中,断言检查以闭环的方式进行,并根据当前环境状态提供反馈。

在实验部分,研究人员在虚拟家庭(VH)仿真平台评估了该方法。

VH的状态包括一组物体和相应的属性,比如三文鱼在微波炉内部(in),或者靠近(agent_close_to)等。

行动空间包括抓取(grab)、放入(putin)、放回(putback)、行走(walk),寻找(find)、打开(open)、关闭(close)等。

最终实验了3个VH环境,每个环境包括115种不同的物体,研究人员创建了一个包含70个家务任务的数据集,抽象程度很高,命令都是「微波三文鱼」这类的,并为之创建一个ground-truth的行动序列。

在虚拟家庭上对生成的程序进行评估后,评估指标包括成功率(SR),目标条件召回(GCR)和可执行性(Exec),从结果上可以看到ProgPrompt明显优于基线和LangPrompt,表格中还展示了每个特征是如何提升性能的。

图片

研究人员同样在真实世界进行了实验,使用一个带有平行爪子的Franka-Emika熊猫机器人,并假设可以获得一个拾取和放置(pick-and-place)的策略。

该策略将目标物体和目标容器的两个点云作为输入,并执行拾取和放置操作,将物体放在容器上或里面。

系统实现引入一个开放词汇的物体检测模型ViLD来识别和分割场景中的物体,并构建prompt中的可用物体列表。

与在虚拟环境中不同的是,这里物体列表是每个计划函数的局部变量,这样可以更灵活地适应新对象。

语言模型输出的计划中包含形式为grab和putin等函数调用。

由于现实世界的不确定性,实验设置中没有实施基于断言的闭环选项

图片

可以看到,机器人在分类任务中,能够识别出香蕉和草莓是水果,并生成计划步骤,将它们放在盘子里,而将瓶子放在盒子里。

终于介绍完啦!小伙伴们,这篇关于《把大象装冰箱总共要几步?英伟达发布ProgPrompt,让语言模型给机器人安排计划》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布科技周边相关知识,快来关注吧!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
一文读懂人工智能的过去、现在和未来一文读懂人工智能的过去、现在和未来
上一篇
一文读懂人工智能的过去、现在和未来
沙特利用人工智能加速可持续发展计划
下一篇
沙特利用人工智能加速可持续发展计划
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 讯飞AI大学堂免费AI认证证书:大模型工程师认证,提升您的职场竞争力
    免费AI认证证书
    科大讯飞AI大学堂推出免费大模型工程师认证,助力您掌握AI技能,提升职场竞争力。体系化学习,实战项目,权威认证,助您成为企业级大模型应用人才。
    31次使用
  • 茅茅虫AIGC检测:精准识别AI生成内容,保障学术诚信
    茅茅虫AIGC检测
    茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
    160次使用
  • 赛林匹克平台:科技赛事聚合,赋能AI、算力、量子计算创新
    赛林匹克平台(Challympics)
    探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
    207次使用
  • SEO  笔格AIPPT:AI智能PPT制作,免费生成,高效演示
    笔格AIPPT
    SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
    179次使用
  • 稿定PPT:在线AI演示设计,高效PPT制作工具
    稿定PPT
    告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
    169次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码