【具身智能论文精读系列】SayCan 论文超详细解读
论文链接:[2204.01691] Do As I Can, Not As I Say: Grounding Language in Robotic Affordances
官网地址:say-can.github.io
这是一篇在具身智能领域最有影响力的工作之一,来自Google,目前已经被引用1340次(2024/11/18),其核心思想十分简单,为了帮大家节省时间,梳理了论文的内容如下:
另外分享GitHub上3k+ star的LLM-based系列具身智能论文合集:
https://github.com/GT-RIPL/Awesome-LLM-Robotics.git
一句话总结:
通过LLM根据指令从给定任务词典中选择一系列候选动作并输出其有效性 p i p_i pi(Say);可供性函数(affordance functions)能根据现实场景图片得到候选动作的可行性 q i q_i qi(Can),选出两者之积最大的动作(语言指令),送入模仿学习得到的策略模型执行动作。
这篇文章的核心内容十分简洁,不想知道实现细节的话只看下面的速览即可。
主要工作速览:
Say Can的核心思想是通过价值函数(value function),可供性函数(affordance function)——来使得大型语言模型对齐(grounding)现实物理世界的环境,通过这两个函数计算给定动作在当前状态下的成功率和可行性(affordance),并选择其综合分数(二者乘积)最高的动作。
论文的主要思路如下:
- LLM输出可能的候选动作的置信度(Say)
- Value模型根据现实场景为每个候选动作根据可行性进行打分(Can)
- 选出两个置信度之积最大的动作,利用一个策略模型转换为动作进行执行(Do)
利用LLM的世界知识和语义分析能力,对于给定的指令进行一个全局规划决策,从给定的任务模板词典中选择出一个动作序列 { l 1 , l 2 , . . . , l n } \{l_1,l_2,...,l_n\} { l1,l2,...,ln},其中每一个动作 l i l_i li的构造过程如下:
- 第 i i i轮,将自然语言指令(prompt)以及前 i − 1 i-1 i−1轮的动作,输入给LLM,从任务词典中选择出第 i i i个动作的候选动作列表(字符串描述)及每个可能动作的置信度 p j p_j pj
- 由于LLM(注意本工作中是非多模态的大语言模型)的输出没有考虑现实世界的环境,于是还需根据价值函数模型对动作列表中每个可能动作的合理性进行打分 q j q_j qj,计算每个动作的分数为两个分数 p j , q j p_j,q_j pj,qj的乘积
- 选择当前动作列表中分数最高的动作作为第 i i i轮将执行的动作
其中价值函数由强化学习(类似Q-learning)方式训练得到。
于是由以上流程能够得到一个完整的,可执行的动作序列。
得到动作序列后,需注意此时动作还只是自然语言,还需要将自然语言转化为机器人动作
Say Can根据一个训练好的BC模型(Behavior Cloning, 行为克隆模型),将每个动作 l i l_i li送入模型即可执行对应的动作,这属于low-level的动作执行部分。
动机:
近年来,大语言模型(LLM)已经展现出人类专家级别的表现,且拥有丰富的世界知识与语言理解能力,已经在各个领域展现出强大的应用价值,近年来一个主流的方向就是LLM-based agent,可以理解为虚拟世界中的具身智能体,那么能不能打破这个“虚拟到现实”的壁垒,直接将LLM应用于机器人呢?
由于重新训练大模型的成本过于高昂,于是具身智能界主流的方向是,直接使用预训练好的LLM(或MLLM),或在LLM的基础上进行微调。
接下来只有一个问题:如何将大型语言模型(LLMs)的知识直接用于机器人执行自然语言指令的任务?
大语言模型(LLM)拥有丰富的世界知识与语言理解能力,本文考虑直接将其作为机器人的大脑,根据给定的指令,作为机器人的高层次的决策,这就是论文标题的**“Say”**;
然而大语言模型缺乏现实场景的知识和物理约束(因为没有现实场景的视觉信息),对于给定的指令可能进行不合乎现实、不可完成的决策反馈,也就是不知道哪些操作是可以进行的(如使用不存在的工具),于是便需要过滤掉这一部分决策动作,这就是论文标题中的“Can”。
——注意&#x