导读 随着大语言模型的流行,模型推理能力成为大模型交互的重点。本文将介绍大语言模型增强交互式智能体在动态环境中的推理能力,突破纯文本环境的限制,更好地实现与现实世界的交互。
今天的介绍会围绕下面四点展开:1. 文本环境
2. 实践案例
3. 总结与回顾
4. Q&A
分享嘉宾|林禹臣博士 Allen Institute for AI (AI2) 青年研究员
编辑整理|竹子
内容校对|李瑶
出品社区|DataFun
01文本环境1. 文本环境——Textual Environment
不管是 Chat-GPT 还是 GPT-4 这种大语言模型,往往只在纯文本环境中使用,例如文章撰写或者问题回答等。这些使用场景下也会存在交互,但是这种交互更多的还是局限在文本层面。 而本文所讲述的交互,则偏向于大语言模型理解现实物理世界的交互,例如,让大语言模型理解厨房的物体,作为机器人的“大脑”,在特定环境下参与交互式任务。例如上图所示的,让机器人把茶壶拿到书架上。 类似的模型在之前也有研究,不过在近期大语言模型呈现大规模应用之后,再次掀起了一波热潮。如何测试这种交互式的智能体呢?受限于机器人的发展,目前业内的普遍做法是借助文本的形式来模拟真实物理世界的物体位置及其相互关系,使用类似文本游戏的方式。 如上图所示,语言模型或智能体每输出一个动作,环境会给出相应的反馈。 这是 AFL world 在两年前提出的测试环境,该环境处理的是比较简单、直接的任务,相对不是很有挑战性。目前大语言模型在这类任务上已经达到了很高的标准。大语言模型的亮点在于对于复杂的交互式任务的处理,例如到很多的房间执行不同的任务。2. Science World
上图所示,Science World 是 AI2 在一年前提出的针对复杂交互式任务的 benchmark,该模型包含 30 余种任务,每种任务包含 10 余个房间、25 种 action,模拟 200 余种物体,每种物体又包含多种物理状态(如热量、开关等),并“人为”制造一些异常。 该 benchmark 非常适合模拟现实世界中的复杂任务,由于其主题是科学实验,因此被称作 science world。 不过模型中涉及的动作本身是比较 general 的(例如拿东西、打开水槽等),这些常见的动作都可以被模拟。3. Swift stage
(1)问题的引入我们最近的一篇工作是 SwiftSage,正是联合 AI2 以及 USC 做的一项工作,主题为 A Generative Agent with Fast and Slow Thinking for Complex Interactive Tasks,即处理复杂的交互式任务。 题目中的 fast and slow thinking,是受到《思考快与慢》这本书的启发。该书中提出,当人们在处理较为复杂任务时,存在两套思维系统:对于简单的任务,往往会有一个直觉的反应,并根据基于直觉的推理直接、迅速地做一个 action;然而,这种直觉性思维在复杂环境中往往会面临一些困难,此时会转为第二套思维系统,即详细地分析任务并思考解决方法,也即应该做哪些动作。以上是我们这套算法的初衷。(2)任务的定义Interactions系统通过四个维度进行交互:Observation、Environment、Inventory、Score。实践案例
1. SwiftSage 架构
(1)SwiftSage 基本思想基于此,SwiftSage 的思想在于,优先使用小模型对 action 进行预测,只有当小模型遇到瓶颈的时候(例如 score 停滞不前等情况),才切换为大模型,将 action sequence 作为 input 的一部分。Prompting 分成两步:第一步,先让模型思考当下需要哪些物体,当下任务需要拆解成哪几个子任务,之前的任务有没有“犯错”,相当于将 SayCan、ReAct、Reflexion 模型进行融合,作为第一步的 planning 能力。相比于 Reflexion,该模型首先完整地将一整轮任务全部走完,如果发现仍然没有完成任务,才会去总结错误。而我们的模型,对于每一步都会去总结经验和不足。具体地,首先使用小模型,当某一步操作发现小模型不满足要求时候,即模型遇到了困难,从而更换成大模型。最后将其输出结果生成 action sequence 而不仅仅是生成 1 个 action,这也是跟前面 3 个模型不一样的地方。实际上,大语言模型可以直接将 subgoal 拆解成多个 action,这也是后期的发展方向。(2)SwiftSage 中的小模型 SwiftSage 框架包含两个 model,即小模型和大模型。小模型称为 Swift,因为它比较快。小模型主要是基于 T5 实现的模仿学习框架,对于其 input,首先会对任务进行描述,例如任务是“冰淇淋融化”,并且当前的时间点是第 14 个 action,已经获得 35 分了。接下来,会输入过往的前十个 action 及其 observation,同时描述当前环境以及机器人的背包里装了哪些物品,机器人去过哪些房间等。之所以会输入这么详细的信息,主要是因为有些 agent 之前犯错的原因就是不断地去往不同的曾经去过的房间,而它不知道自己去过。因此这里特别加入一个 input 信号,告诉他已经去过这些房间了。这种小模型 T5-large 只有 3B 大小,非常容易部署。小模型可以输出一个动作,例如 activate stove(把炉子点燃),在执行这个任务的过程中,模型可能会出现异常,比如炉子坏掉了。Senseboard 可以随机生成一些异常,来测试该智能体是否能够妥善处理,类似于真实世界,即使我们按部就班地去做动作,中途也难免会产生意外,因此需要使用更强的推理能力去解决这些意外。当小模型受阻时,我们会识别到这种情况,例如出现了 cannot 等关键词,或者某个任务无论如何优化分数始终不上升等。此时将会激活大模型,利用大模型实现更好的规划。(3)SwiftSage 中的大模型 如前文所述,首先使用 planning stage(包含 task 描述、action sequence 以及当前的环境等)作为文本描述;接下来会给大模型提出 5 个问题,其中,前两个问题是关于完成任务需要哪些物体的,第三四个问题是关于需要完成哪些子目标的,最后一个问题是关于有没有犯过错误,以及如何修复。 接下来大模型会依次回答这 5 个问题。下一步任务的预测就是前文所述的 plan。在第二轮 prompting 的时候,加入 environment history 以及 action types(即当前环境有哪些能做的 action,例如倒水),同时对每个 action 进行描述,如该 action 能完成哪些目标,对物理环境会产生什么影响等。接下来,大语言模型将上一轮生成的 plan 进一步拆解成多个 next actions(称之为 action buffer),并逐一输入到环境中执行。 当执行完这几个 action 后,继续回到小模型模式去执行后续任务。这是一种比较节省计算资源的方式。 (4)SwiftSage 总结总结一下,首先使用小模型进行 action 预测,当小模型遇到困难时,比如输出的 action 无法在现实环境中执行,或是对于一些关键动作(比如判断某个物体是否导电)的重要决策,则会用到大模型。此外,当遇到一些异常时,也会需要用大模型来处理。以上是常见的、需要从小模型转换到大模型的情况。对于大模型的调用,也是会分成两步,首先去做 planning,接下来根据 planning 的结果进行 grounding,即在真实的环境中执行 action。此外,Sage 部分预测的并不仅仅是 next one action,而是包含了所有可能 action 的列表,这样最大程度地减少了重复调用大模型所需的 token 的数量以及计算时间。大模型完成输出后,流程会自动切换回到小模型。2. SwiftSage 效果
(1)模型评测 我们选用 ScienceWorld 对模型进行评测,该评测内容丰富,包括 30 余种不同的任务类型和动作数量,涵盖 10 个不同学科,可以支持复杂的任务。根据 Oracle pass 的平均长度进一步分成短、中、长三组。 第一部分的 baseline 包括几种传统的方法,例如 DRNN,该方法平均分只有 15 分(满分是 100 分);如果使用 random 方法的话,分数会更低,可能接近于 0(因为每一步 action space 都很大,因此 random baseline 是很小的)。其他几种 baseline 效果也都是比较差的,以上发现也是 ScienceWorld paper 本身已经提及的。而基于大语言模型的尝试,效果要好很多。大语言模型的主要优势就在于其 planning 能力,尤其是对于复杂的任务。然而大模型的缺点在于其成本高昂,但带来的分数提升却非常有限(30 分左右)。对于比较短的任务,由于 Reflexion 的“试错”步骤,带来了相对高一些的分数(40-70 分)。而 SwiftSage 效果明显好于其他模型,主要原因在于小模型的使用,首先积累了正确的 action 样本,只有前面 action 做得对的情况下,大模型才能够获得较好的效果,可以认为小模型正样本的积累帮助大模型实现了翻倍的效果;同时小模型的引入,也降低了整个流程的 cost。(2)Efficiency 从 efficiency 的角度看,从每类任务中选择 3 个具体的任务,去比较 SwiftSage、ReAct、Oracle 所占的比例。Oracle 能达到 100 分,但是通过搜索的方式得到的 Oracle agent 常常不是最优的。如上图所示,横轴是时间,纵轴是分数,Oracle(灰色)一般都能在较长的训练之后达到 100 分;SwiftSage(蓝色)能够达到同样高的分数(比如 10-1 L),但是速度会快很多。有一些任务出现了中途失败被停止的现象,存在提升空间。虽然 ReAct 模型在一些小任务上,其 efficiency 效果是不错的,但是我们的模型在整体上,无论分数还是效率,都是远远超过了 ReAct。 上图是将 short、medium、long 三类任务各自合并起来进行的比较,可以看出,对于 short 任务,SwiftSage 与 Oracle 区别不是很大;对于 medium 任务,SwiftSage 逐渐体现出了其效率上的优势,即达到同样的分数花费的时间比较少;对于 long 任务,优势会更加明显(如上图左上角蓝色的区域)。(3)Cost-Effectiveness 对于模型的 cost,上表列举了详细的数据,进行了量化的比较。前三种方法,每个 action 平均花费 1000~2000 个token(Reflexion 模型会花销更多,因为流程的轮数越长,反思就越多)。假如将大模型换成 GPT-4,带来的花销就更大了。而使用 SwiftSage 模型,仅需要大约三分之一的 token 数量,而平均每个 action 能拿到 2 分左右,因此经济性上有明显的提升,这也是小模型与大模型结合的优势所在。03总结和回顾
本文提出了一种双模态的 agent 框架——SwiftSage。小模型通过 image invitation learning,即通过 offline的training data 进行学习;大模型通过 prompting 的方式,例如 incontext learning example 来学习。为 embodied actions 而设计,其特点是将 prompting 拆成 plan和ground 两个部分,避免了 planning 和 action 及其 transformation 都放到同一个 prompt 里面,实现了更好的效果。SwiftSage 方法还存在一定的局限:Q&A
Q1:Fast 部分,即小模型部分,能否使用 RL 的模型来做?A1:从这个框架上来说是没问题的,但是在实际尝试中发现,使用 DRNN 实现 RL,听令的过程较难实现,在学习过程中需要经常调整超参,因此很难得到满意的、完整的效果。包括最后 report 和对应的 DRNN,CSS word 原作者中最后的结果,实际上在自己复现的时候,很难复现到相同的水平。但是如果使用 sequence to sequence,包括前文所述的 behavior cloning 等方式,都能够稳定的达到相似甚至更优的效果。因为 DRNN 模型做了很多的前提假设,因此如果想要支持更丰富的环境和任务,还是使用 seq2seq 方式更容易实现;此外,因为都是文本,因此还可以基于文本进行 pre-processing,将格式进行规范化处理,进而再去做预测。假如小模型的输入中,我们认为 current environment 比较重要,或者物体分割比较重要,可以基于此自行定义 formatting 方式。对于 visit room,我们额外添加了部分 feature,这类 feature engineering 任务在 seq2seq 的形式下更容易完成。此外,seq2seq 模型的学习过程相对比较稳定,因此 seq2seq learning 也是常见的方案,对于 T5 large 这类 Pretrain model 也是表现比较好的。但是对于 DRNN 模型,需要从零学起,需要通过 Reinforce train 学会物体之间以及环境之间的对应关系,这些难以实现,这也是我们经过多种尝试最终选择 T5 模型的原因。实际上,经过改良后的 T5 模型已经可以达到和 ReAct 模型差不多的效果。Q2:本文所述的这个实现,和 Google 实现的 25 个 agent 那个案例,有哪些区别,本文所述框架有哪些优势?A2:Google 的 25 个 agent 是 staff 的工作,在一个小镇里有 25 个不同的 social,他们的目标是模拟社交行为,即根据不同人的不同性格和特征对不同任务进行匹配。而我们的任务不太关注这个方面,而是任务导向的,即完成某个任务需要使用哪些物体,使用哪些行为等,这就是 physical 和 social 之间的差别。不过,在物理环境中,多个 agent 交互完成某些特定任务,以及多个 agent 之间进行竞争或合作,这些思路会给我们未来的工作带来启发。以上就是本次分享的内容,谢谢大家。分享嘉宾
INTRODUCTION
林禹臣博士
Allen Institute for AI (AI2)
青年研究员
林禹臣是 Allen Institute for AI(AI2)博士后青年研究员,师从 Yejin Choi 教授。他于 2022 年获得南加州大学博士学位,导师是 Xiang Ren 教授。他的研究专注于常识知识推理(Commonsense Reasoning)与大语言模型(Large Language Models)旨在构建具有人类思考和交流模式的智能系统。此外,他还对持续学习和联邦学习主题感兴趣。他曾于上海交通大学IEEE试点班获得学士学位,曾在 Google AI,FAIR 担任实习研究生。他一直担任 ACL、EMNLP、ICML、NeurIPS、ICLR、AAAI 会议审稿人。他曾多次组织了研讨会(Workshop),并在 ACL 2022 和 2023 参与讲习(Tutorial),曾任 ACL 2023 的区域主席(Area Chair)。
DataFunCon2024·上海站正式开启!本次活动共邀请了60+位行业专家参与分享,聚集了1000+技术从业者参与,在这里你可以做行业交流,生态合作,寻找投资机会,了解行业发展,了解落地案例,寻求解决方案,拓展人脉。扫码咨询门票:
往期推荐
画像标签体系构建与应用实践
长安汽车:基于云器 Lakehouse 的车联网大数据平台建设
金融信创湖仓一体数据平台架构实践
新一代数据架构的性能与成本平衡之道
用户画像构建与应用
Data Fabric 在数据集成场景的实践
大模型在新能源汽车行业的应用与最佳实践
如何从0-1使用 Apache Arrow 构建新数据系统
当"狂飙"的大模型撞上推荐系统
B 站标签系统落地实践
因果性学习范式初探
高性能 LLM 推理框架的设计与实现
点个在看你最好看