投稿问答最小化  关闭

万维书刊APP下载

论文一起读 | 利用自然语言模型为机器人赋能

2022/11/30 17:26:20  阅读:401 发布者:

以下文章来源于深圳大学可视计算研究中心 ,作者苏泽嘉

导读

本文是VCC苏泽嘉同学对论文 Do As I Can, Not as I Say: Grounding Language In Robotic Affordances 的解读,该工作来自谷歌机器人实验室,已被发表在机器人学与机器学习交叉领域的顶级会议CoRL 2022上。

项目主页:

https://say-can.github.io/

该工作提出了一种在机器人决策中引入大规模语言模型的框架。通过引入预训练语言模型中的先验知识,机器人可以更好地理解来自人类的抽象指令,并进行长期的动作规划。具体来说,给定来源于人类的抽象指令,预训练语言模型可以对其进行理解,作出在语义层面合理的动作决策,在此基础上,机器人再根据当前的观测,对大语言模型的决策结果进行一定地调整,最终执行在出语义层面合理,又在现实中可行的动作。在该框架下,预训练语言模型充当“脑”,负责在语义层面进行动作规划,机器人则充当“眼和手”,负责根据现实观测对大语言模型决策进行调整,并执行相应的动作决策。

注:本文

与视频均来自原论文与其项目主页。

I

 引言

Transformer架构[1]诞生以来,大规模语言模型(LLMs)在各类文本生成任务(如问答系统,聊天机器人等)上已经取得了巨大的进展。大规模语言模型指的是在大规模文本语料库上进行预训练的大型语言模型,其通常含有较大的参数量,相比于小型的语言模型具有更强的推理能力。常见的大规模语言模型包括可以生成以假乱真新闻的OpenAI GPT-3,以及可以根据注释生成相应代码的Github Copilot等。由于经过了大规模语料的预训练,大规模语言模型通常可以看作一个包含丰富知识的数据库,现实世界的常识可以通过构造提示输入的方式从中提取。举例来说,假如我们想知道达芬奇是来自哪个国家的,可以构造带有空缺的句子“Davinci was from ”,将其输入到大规模语言模型中,语言模型将补全处的空缺,输出答案“Italy”。最近,部分研究者开始探究如何将大规模语言模型用于机器人的决策中,期望借助大规模语言模型中的常识来辅助机器人进行决策。直观来说,对于一个日常任务,可以利用大规模自然语言模型将其分解为多步的子命令。然而,直接利用大规模语言模型在语义层面对抽象指令进行分解,并未考虑现实观测,其分解出的子命令可能在现实中不可执行。

本次导读论文介绍了一种将大规模自然语言模型应用于机器人决策的框架SayCan,使得机器人等具身智能体(Embodied AI)能够借助预训练模型中所蕴涵的常识来处理现实世界中的复杂任务。该框架配备了一套原子技能的动作集合,每个动作对应了一个特殊子任务的执行,例如“抓起苹果”和“走向桌子”等。给定一条来源于人类的高级指令,该框架首先会在语义层面利用LLMs评估每一个原子动作执行的概率,该概率体现了每条原子动作对于推进高级指令完成的贡献度。由于直接在语义层面进行选择并未考虑环境的信息,选择出的动作可能是不可执行的,因此还需要根据当前观测对语言模型输出的概率进行调整。为了达到这个目的,该框架引入了一个负担函数来评估每个动作在当前观测下的可执行性,并利用该可执行性对LLMs预测的动作概率进行调整,使得机器人的动作决策能在语义层面和执行层面的综合进行考虑。总的来说,该框架利用LLMs评估了每个动作对于指令完成的有利程度,并通过负担函数评估了每个动作执行成功的概率,通过将二者结合,机器人即可决策出最有利于高级指令完成的可执行动作。

II

 技术贡献

本工作主要贡献如下:

提出了一种将大规模自然语言模型应用于机器人决策的框架;

实现并落地了整个决策框架,在真实机器人任务上完成了长期的动作规划。

III

 方法介绍

SayCan框架配备了一套原子技能的动作集合

 每个动作

π

 对应了一个子任务的执行,如“抓起苹果”等,并附有一段简短的文字描述

π

 以及一个负担函数

π

π

其中,负担函数表示在观测  下,执行动作

π

 的可能性

π

直观来说,该可能性意味着当框架要求机器人在现实环境中去完成描述

π

 所指代的任务时,机器人是否可完成。

框架接收的人类的指令  为自然语言的形式,通常较为抽象和模糊。因此在决策时,SayCan框架首先会利用大规模语言模型评估动作集合中每个动作的执行的概率

π

该概率体现了每条原子动作

π

 对于推进高级指令  完成的贡献度。由于LLMs输出的概率并未考虑环境的信息,基于其产生的动作决策很可能不可执行。为了缓解这个问题,SayCan框架还会引入负担函数来评估每个动作在当前观测下的可执行性

π

π

并综合以上两者得出在当前观测下执行每个动作的概率

π

计算公式如下:

 

π

π

π

π

 

直观而言,

π

 可以看作一种从任务完成的角度考虑的动作概率分布,而

π

π

 可以看作一种从实际可执行性的角度考虑的动作概率分布,综合两者进行动作决策,即可挑选出在当前步骤下最有利于指令完成的可执行动作。

在实现时,动作集合中的每个动作

π

 的都具有一个基于强化学习训练的策略函数(Policy Function)和一个价值函数(Value Function),策略函数用于预测在当前状态下具体的动作参数,价值函数用于为当前观测下执行的某个动作进行“打分”,由于“打分”体现了在当前环境下完成该动作的可能性,因此实际上每个动作的价值函数即为其相应的负担函数。整个框架的决策过程如图1所示。对于人类的指令:“怎么将苹果放在桌子上?”,LLMs为每一个原子动作进行了打分,其中“捡起一个苹果”的分数最高,其次是“放置一个苹果”以及“寻找一个苹果”。然而,当前视野中并不存在苹果,因此负担函数认为“捡起一个苹果”和“放置一个苹果”的可执行性很低,而“寻找一个苹果”的可执行性较高。综合两者的结果,框架最终选择了更为合理的“找到一个苹果”作为决策结果。

1 给定高级指令,SayCan框架将综合考虑来自LLM以及价值函数的概率分布,并进行决策,选择出最有利于指令完成的可执行动作

一旦选择了当前的动作,SayCan框架就会在机器人上执行这个动作,并将该执行过的动作的文本描述

π

 附加到当前的指令  上,作为下一时刻的指令输入,进行下一轮的决策。通过不断将历史信息附加到指令上,并重复上述的决策过程,SayCan框架即可进行长期的动作规划,直至选择出终止动作为止。

IV

 部分结果展示

论文的作者在两个场景中对SayCan框架进行了测试,并可视化了SayCan的决策过程。其中蓝条表示归一化的LLMs概率,红条表示归一化的负担函数概率,绿色调表示综合两者的概率,SayCan框架将执行综合概率最高的动作。

对于人类的指令:“我的可乐洒了,你能给我拿点东西来清理吗?”,如图2所示,SayCan框架成功规划并在现实场景中执行出了以下的动作序列:

1. 找到一块海绵;

2. 捡起海绵;

3. 把它拿来给用户;

4. 结束。

2 对于人类指令“我的可乐洒了,你能给我拿点东西来清理吗?”,SayCan成功规划并完成了该高级指令

但是,如果我们把指令稍微调整为:“我的可乐洒了,你能给我拿个替代品吗?”,如图3所示,SayCan则规划并执行了以下动作序列:

1. 找到一个可乐罐;

2. 捡起可乐罐;

3. 把它拿给用户;

4. 结束。

这体现了SayCan能够很好地理解来源于人类的抽象指令,证明了在框架中引入LLMs的先验知识是十分有用的。

3 若将人类指令微调为“我的可乐撒了,你能给我拿个替代品吗?”,得益于LLMs的引入,SayCan框架也能很好地规划并完成该高级指令

下一个例子将体现SayCan模型如何利用负担函数来“纠正”语言模型的错误决策。如图4所示,对于人类指令:“怎么把一块海绵放进关着的柜子中”,语言模型认为首先应该捡起海绵,然而,由于当前观测中没有一块海绵,所以负担函数认为这个动作是不可执行的,因此为该动作给予了一个很低的可执行性分数,由此“纠正”了语言模型的决策结果,最终选择了更为合理的动作“找到海绵”,证明了在框架中引入负担函数的必要性。

4 对于人类指令“证明将一块海绵放进关着的柜子中”,语言模型很自然地认为需要先抓起海绵,但由于当前观测中不存在海绵,因此负担函数给予该动作一个很低的可执行性分数,“纠正”了语言模型的决策结果

V

 总结与展望

本文提出了SayCan,一种能够在具身智能体任务中引入大规模语言模型先验知识的决策框架,可以在现实世界中进行长期的动作规划。然而,该框架也存在许多局限性。首先,其在引入大规模语言模型的同时会同时引入其存在的局限性和偏见[2],包括对训练数据的依赖等。其次,该框架的落地时依赖于预定义的原子动作,且每个原子动作需要在特定场景中依靠大量人工标注进行训练,可迁移性较差。

在未来,该工作还有很大的改进空间,后续可以考虑利用现实世界中机器人的经验来改善语言模型对于机器人任务的理解推理能力。此外,当前的负担函数仅取决于智能体的价值网络,后续还可以考虑采用更为多元的指标来评估原子动作在当前场景下的可执行性。

VI

 思考与讨论

Q:  每个原子动作的价值函数和策略函数是如何训练的?

A:  Google首先通过众包的方式为每个原子动作准备了大量的演示样本,并通过模仿学习训练相应的策略函数。在此基础上,再利用强化学习继续训练相应的策略函数和价值函数,其中强化学习的奖励信号来源于人工的在线判断,如果一个智能体在执行某步操作后完成了相应的子任务,则奖励为1,未完成则奖励为0

Q:  整个框架是在什么环境下进行强化学习训练的?

A:  Google在仿真环境下11搭建了与现实相同的场景,并该仿真环境中对虚拟的机器人模型进行训练,最后再将训练好的模型迁移至现实的机器人中。为了缩小仿真到现实的差异,提高模型的落地能力,Google还利用RetinaGAN[3]模型增强机器人在模拟环境中的观测图像,使其更贴近现实。

以下是开放性问题,欢迎读者朋友留言讨论:

Q:  当前的框架受限于固定数量的原子动作,只能在特定场景下落地应用,实用性较差,能否设计更为通用的原子动作,以提升框架的可迁移性?

转自:arXiv每日学术速递”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com