对大模型微调后竟能超越ChatGPT!只需要让模型模拟真实的人类交互!

734 阅读9分钟
夕小瑶科技说 原创
作者 | 小戏、Python

虽然我们都说当下大模型最引人瞩目令人浮想联翩的神奇能力在于它的推理判断能力,但是如果提一个问题,“这种通过语言、文本信息学习到的推理判断能力真的可以面对现实世界的复杂情况吗?”,换言之以一个人类视角如果没有与现实世界中的种种实体有过互动交流,我们真的可以在一些涉及物理世界环境的推理判断中的做出正确的选择吗?

来看下图中一个 ChatGPT 的例子:

来自加州大学圣地亚哥分校、伊利诺伊大学香槟分校、MIT、CMU 的研究者们组织了一些简单的问题,比如依次向 ChatGPT 描述桌子上有手机、橙汁和苹果,并在描述之中插入一些不相关的动作描述,然后问 ChatGPT 桌子上有几件东西,按理来说这个只是计数统计的任务按理来说应当对被宣称具有 9 岁小孩心智的 ChatGPT(GPT-3.5)来说应当轻而易举,但是答案却出乎意料,ChatGPT 似乎被那些不相干的动作描述所迷惑,“忘记”了手机、橙汁和苹果中的其中一个,只回答了有两个东西在桌子上

紧接着研究者们又告诉 ChatGPT 书放在沙发上,再问它书在哪里,以及问它如何看电视,他们惊讶的发现,ChatGPT 的回答都发生了错误,这一点开始让研究者们思考是什么导致了 ChatGPT 的错误回答,反思人类的做法,只要我们告诉了一个人桌子上有手机、橙汁和苹果,不论我们中间和他谈了多少天气好坏,名人轶事,历史故事,桌子上就是有三个东西不多不少。但是这一点对“没见过世面”的 AI 而言似乎有些困难,这些不相干的“语言表述”会直接影响 ChatGPT 的逻辑判断。

基于这个看法,研究们开始构思为大模型构建一个“世界模型”,并基于世界模型对这些大规模语言模型进行微调以让他们可以更好的适应和拥有在物理世界中的推理与行动能力,作者们将这一过程称为 Embodied Experiences from World Models (E2WM),这里的世界模型是指一个“模拟器”,让大模型拥有一个虚拟的身体可以模拟在真实环境中的物理交互(如 VirtualHome),通过让大模型在这个“平民版现实世界”中进行微调来增强其对物理世界运行的知识,并保留大模型本身的通用性,增强其在实体任务中解决问题的能力

这篇工作的论文与项目代码如下:

论文题目:
Language Models Meet World Models: Embodied Experiences Enhance Language Models

论文链接:
arxiv.org/pdf/2305.10…

论文代码:
github.com/szxiangjn/w…

从结果来看,当作者使用 VirtualHome 作为世界模型,将 E2WM 方法应用于 GPT-Neo-1.3B 和 GPT-J-6B 这两个相比于 GPT3.5 而言的小模型时,作者团队发现 E2WM 方法显著的增强了这两个模型在如前面的计数、计划生成等任务中的正确率(有多显著,计数任务准确率从 30.41% 提升到 67.01%,计划生成任务的 Rouge-L 从 34.31 提升到 51.23),甚至在一些任务上使用这些小模型打败了大模型 ChatGPT。从图中可以看出,使用 E2WM 方法微调后的大模型在各种任务中都明显优于基础模型,甚至在 11 个任务中,微调后的 GPT-J 有 7 个任务做的比 ChatGPT 更好

如果细化上面主要评估任务,作者团队主要评估的是微调后模型的计划生成能力、活动识别能力、计数能力以及路径追踪能力

其中计划生成能力包含家务计划生成(制作一杯咖啡?)、家务问答(哪个对象是制作咖啡所需要的?)与否定性家务问答(制作咖啡所需的哪个对象与活动无关?)三个子任务,活动识别能力包含活动识别问答(走到客厅,坐在沙发上,打开电视。这是什么活动的名称?)、活动推断问答(Tom 坐在沙发上,面对电视,电视开着。他正在做什么活动?),路径追踪能力包含路径追踪评估(Tom 走到厨房,Tom 拿起了苹果,Mary 走到了卧室,Tom 走到了客厅。苹果出现的房间顺序是什么?)与对象位置问答(在厨房之后,苹果去了哪里?)两个子任务。

除此之外,作者还在数据集 bAbI,一个测试包括体态知识、逻辑推理、语言知识等的数据集上对模型进行了评估

在 bAbI 数据集上,在需要模型从上下文中的三个支持事实回答问题的 Three Supporting Fact 与需要模型以列表形式给出答案的 Lists/Sets 任务中击败了 ChatGPT,对比两种模型量级上的参数差异,E2WM 的提升效果非常显著

E2WM

那么 E2WM 是如何做到这一切的呢?总的来说作者首先引入了两种方法,分别是目标导向与随机探索去在世界模型中打怪升级收集经验,这两种方法可以在下图中看到:

在世界模型中,一个“活动”的目标被定义为描述目标世界状态的谓词集合,例如正确摆放餐具这个活动的目标便是 ON(fork,table);ON(plate,table)而目标导向这种方法,就是在为大模型给定一个目标,如 Watch TV 后,通过让大模型探索从当前空间到目标空间的一系列动作组合来使得大模型拥有可以完成特定目标的能力。针对动作空间的选择,作者团队采用了经典的蒙特卡洛树搜索(MCTS)的方法来搜索动作空间以找到一个计划达成目标,在 MCTS 的设计中,作者们设定如果至少满足一个目标谓词,则大模型获得 +2 的奖励,而每多走一步,则获得 -0.1 的惩罚,最后,大模型的探索和规划的经历将被作为经验存储下来。

而在随机探索中,论文作者希望更多的模拟人类在物理世界中的表现,人类在现实世界中除了目的导向的规划以外,还会对世界进行随机的探索了解这个世界中的各个组成元素。因此作者也为大模型设计了随机探索的方式获取世界信息,通过记录大模型在世界模型内与其他对象相互互动与执行不同动作的过程,形成大模型的随机探索经验。

在大模型通过探索获得了宝贵的经验后,下一步就是如何微调模型以使模型真正学到这些经验。在这篇论文里,作者采用有监督学习的方式对大模型进行微调,具体而言,目标经验被编码为“计划生成”与“活动识别”两大类,在计划生成中模型输入一个目标条件期望输出一个完成计划,而在活动识别中则正好相反,输入一个计划让模型进行目标的判断。以目标生成为例,输入一个计划的初始条件 xx ,期望得到一个计划的输出 y={y1,y2,,ym}y=\{y_1,y_2,……,y_m\},论文主要使用为每个不同任务分配不同的权重来微调大模型,即:

LV=vVαvm=1MlogP(ymy<m,x)\mathcal{L}_V=\sum_{v\in V}\alpha_v\sum_{m=1}^MlogP(y_m|y_{< m},x)

其中,L 是交叉熵的损失函数,v 是任务集,αv\alpha_v 是任务集的权重,论文微调大模型的整体框架使用的 LoRA(低秩自适应) 的方法冻结预训练的参数以加入可训练的秩分解矩阵的方法实现微调,而面对这种新引入任务的微调有可能会面临的新的任务改写网络之前已经学习到的知识的问题(Catastrophic Forgetting),论文又集成了 DeepMind 提出的 EWC(弹性权重合并)的方法通过计算 Fisher 矩阵估计参数的重要性,迫使模型学习适应新任务的同时不会对预训练知识发生灾难性遗忘

Fi,i=1Nj=1N(LU(j)θU,i)2L(θ)=LV(θ)+λiFi,i(θiθU,i)2\begin{gathered} F_{i, i}=\frac{1}{N} \sum_{j=1}^N\left(\frac{\partial \mathcal{L}_U^{(j)}}{\partial \theta_{U, i}^*}\right)^2 \\ \mathcal{L}(\theta)=\mathcal{L}_V(\theta)+\lambda \sum_i F_{i, i}\left(\theta_i-\theta_{U, i}^*\right)^2 \end{gathered}

这里 F 是 Fisher 矩阵,λ 是超参数,θ 是当前训练的参数,整个损失函数添加了 EWC 的 Fisher 矩阵正则项。更进一步,为了降低存储消耗,作者又将θiθU,i\theta_i-\theta_{U, i}^* 用一个更新矩阵 H ,即 LoRA 中添加的两个低秩矩阵乘积的展平代表,以获得更快的训练速度,最终得到如下形式的训练目标,从而使用该目标完成微调与训练:

L(θ)=LV(θ)+λiFi,ihi2\mathcal{L}(\theta)=\mathcal{L}_V(\theta)+\lambda\sum_iF_{i,i}h_i^2

总结与讨论

总的来说,这篇论文提出了一个非常新颖的针对大模型的微调架构,使用“模拟器知识”来或多或少的弥补大模型训练阶段纯语言训练的不足,通过这种微调来使得模型可以更好的做到跟踪与认知物理世界中的实体,收集所谓“具身化(Embodiment)”的经验。在微调层面也组合了 LoRA 与 EWC 方法找到了一种可行的微调策略,缓解了微调中可能发生的知识遗忘。

不过从某种程度来说,这种“世界模型”的训练方法可能与我们最理想情况下大模型认知到什么是物理世界中的实存的“实体”这一点有所差距,并且在论文中的实验只是在一个家务背景下的模拟器中实现的。当然也正是因为此,我们才会对这种“世界模型”的方法真正应用于真正的“大”模型有所期待,这种物理世界的认知会不会也有 Scale Law 呢,就让我们期待未来的工作吧