谷歌让机器人充当大语言模型的手和眼,一个任务拆解成16个动作一气呵成

2022-05-23 11:13:12 浏览数 (1)

代码语言:javascript复制
来源:机器之心本文共2000字,建议阅读5分钟本文介绍了机器人在大语言模型中的进展。

大模型在机器人领域找到了用武之地。

「我把饮料撒了,你能帮我一下吗?」这是我们日常生活中再正常不过的一句求助语。听到这句话,你的家人或朋友往往会不假思索地递给你一块抹布、几张纸巾或直接帮你清理掉。

但如果换成机器人,事情就没有那么简单了。它需要理解「饮料撒了」、「帮我一下」是什么意思,以及到底要怎么帮。这对于平时只能听懂简单指令(如移动到 (x,y),抓取可乐瓶)的机器人来说确实有些困难。

为了让机器人听懂,你可以把上面那句话分解成几个简单的指令,但这一过程的繁琐可能会让你放弃使用机器人。为了消除这种尴尬,我们需要给机器人安装一个聪明的大脑。

深度学习领域的研究表明,拥有优秀语言理解能力的大型语言模型(如 GPT-3, PaLM 等)有望充当这个大脑。对于同样一句话(我把饮料撒了,你能帮我一下吗?),大模型们给出的回应可能是:「可以试试用吸尘器」或「你想让我去找个清理工具吗?」

可以看出,大型语言模型可以理解稍微复杂一些的高级指令,不过它们给出的回答并不总是可行的(比如机器人可能没办法拿取吸尘器或屋子里没有吸尘器)。要想将二者更好地结合,大模型还需要了解机器人的技能范围以及周围的环境限制。

谷歌的「Robotics at Google」最近就瞄准了这一方向,并提出了一个名为「Saycan」(DO AS I CAN, NOT AS I SAY)的算法。在这个算法中,他们让机器人充当语言模型的「手和眼睛」,而语言模型提供有关任务的高级语义知识。

在这种合作模式下,机器人甚至能够完成一个包含 16 个步骤的长任务:

那么,这是怎么做到的呢?研究团队在项目网站上介绍了他们的方法。

项目网站:https://say-can.github.io/

论文地址:https://arxiv.org/abs/2204.01691

方法概览

研究者将大型语言模型(LLM)与机器人的物理任务组合到一起时用到了这样一个原则:除了让 LLM 简单地解释一条指令之外,我们还可以用它来评估单个动作对完成整个高级指令有帮助的概率。简单来说,每个动作可以有一个语言描述,我们可以通过 prompt 语言模型让它给这些动作打分。此外,如果每个动作都有一个相应的 affordance 函数,可以量化它从当前状态(比如学到的价值函数)获得成功的可能性。两个概率值的乘积就是机器人能成功地完成一个对于指令有帮助的动作的概率。根据这个概率将一系列动作排序,选取概率最高的一个。

选择了某个动作之后,我们就可以让机器人去执行这个动作,这个过程通过迭代式地选择一个任务并将其添加到指令上来进行。实际上,这里将规划结构化为用户和机器人之间的对话:用户提供高级指令,比如「你如何给我一个可乐罐?」然后语言模型会以一个明确的顺序来回应,比如「我会:1、找到一个可乐罐;2、把可乐罐捡起来;3、把它拿给你;4、完成。」

总之,给定一个高层次的指令,SayCan 将来自语言模型的概率(某个动作对高级指令有用的概率)与来自值函数的概率(成功执行上述动作的概率)结合起来,然后选择要执行的动作。这种方法选出来的动作是可行的、有用的。研究者通过将选择的动作附加到机器人响应中并再次查询模型来重复这个过程,直到输出步骤终止。

实验数据

研究者在两个场景中对提出的算法 Saycan 进行了测试,一个是办公室厨房,另一个是模拟办公室厨房,其中 101 个任务由自然语言指令指定。下面将展示一些结果的亮点。

从下图中,我们可以直观地看到 SayCan 的决策过程。蓝色条表示(归一化)LLM 概率,红色条表示(归一化)成功执行选定动作的概率。综合得分为绿色条,算法会选择综合得分最高的动作。这种可视化突出了 SayCan 的可解释性。

比如任务是「我把可乐弄洒了,你能给我拿点东西来清理吗?」,SayCan 成功地计划和执行了以下步骤:1、找一块海绵;2、拿起海绵;3、把它拿给你;4、完成。如下所示:

如果把任务稍微调整为「我把可乐弄洒了,你能给我换一瓶吗?」,SayCan 会用这些步骤来执行:1、找到一瓶可乐;2、把可乐拿起来;3、把它拿给你;4、完成。这表明 SayCan 能够利用 LLM 的大容量,它们关于世界的语义知识对于解释指令和理解如何执行指令都是有用的。

在下一个例子中,SayCan 利用了 affordance 的能力来「推翻」语言模型做出的选择。尽管语言模型认为拿取海绵是正确的动作,但 affordance 意识到这是不可能的,因此选择了「寻找海绵」。这突出了 affordance grounding 的必要性。

作者将 SayCan 应用到一个很复杂的指令上 “我把可乐撒在了桌上,你能把它扔掉并且拿东西来擦一下吗”,这个指令需要 8 个动作,机器人成功规划并完成了这个任务。在实验中,最长的任务长达 16 个步骤。

总结来说,该方法实现 101 个任务的总计划成功率为 70% ,执行成功率为 61% ,如果去掉 affordance grouding,大致会损失一半的性能。

更多细节可参考原论文。本文共有 43 个作者,共同通讯作者为 Karol Hausman、Brian Ichter 和华人学者夏斐。

编辑:王菁

校对:林亦霖

0 人点赞