论文信息
name_en: Augmented Language Models: a Survey
name_ch: 增强语言模型综述
paper_addr: http://arxiv.org/abs/2302.07842
date_read: 2023-05-20
date_publish: 2023-02-15
tags: [‘深度学习’,‘自然语言处理’,‘大模型’]
author: Grégoire Mialon,Meta
读后感
文章是一篇增强语言模型(Augmented Language Models,ALMs)综述,这里的增强主要指让大语言模型(LM)通过非参数的方法与外部扩展模块相结合,从而获得超越单纯的自然语言建模的能力。具体能力包含:推理、使用工具、行动。它不仅能解决更多类型的问题,在连接外部模块后,其处理自然语言处理能力也得到突破性进展。
文章从方法论的角论进入阐释。内容分为六部分:介绍,推理,使用工具和行动,学习方法,讨论,结论,正文22页。
对于比较关注 LM 领域的读者,这篇文章中并没有提到让人意外的特殊方法。然而,文章对现有方法进行了全面细致的整理,提供了全景视角的概览,详细引用了相关文献和软件示例。是对知识很好的概览和梳理。
(下文括号内均为个人观点,不喜勿喷)
1 介绍
1.1 动机
近年来,大型语言模型(LLM)的发展非常迅速,随着模型规模的增加,模型涌现 emergence 出其突破性能力(各种能力之间相互促进)。然而,LLM 经常会产生一些幻觉 hallucinations(一本正经的胡说八道),导致其回答有时不太可信。特别是在解决数学问题、推理等复杂问题时,LLM 的表现往往不如人意。
在解决具体问题时,我们需要提供必要的大规模知识给模型。然而,目前存在两大限制:(i) 参数模型是固定的(通常人们无法使用自己的数据训练大型模型);(ii) 上下文受到限制(把知识转给大模型时受到限制)。
1.2 定义
Reasoning:通常被翻译为推理或规划,指将复杂的任务分解为简单的子任务,从而使用现有的工具来解决这些子任务。
Tool:LLM与外部模块相结合,例如结合文档检索器,通过工作与大型模型的交互操作,提升模型解决复杂问题的能力。
Act:调用对虚拟或物理世界产生影响的工具并观察其结果,例如机械臂。
2 推理
推理一般包括:常识推理、数学推理和符号推理等,其中推理链较长的被称为多步推理。LLM的在解决简单问题时效果较好,但在复杂问题中表现不佳,往往需要扩展其推理能力。
2.1 通过提示引发推理(Elicitive prompts)
提示主要用于Zero-shot和Few-shot任务。启发式提示 (Elicitive prompts) 鼓励LM通过在输出答案之前遵循中间步骤来解决任务。
对于Few-shot任务,Chain-of-thought (CoT) 可以有效提升其推理能力,此外,还可以通过对比答案一致性来提高效果。
对于 Zero-shot 任务,可以使用提示语,例如 “Let’s think step by step” 来帮助解决问题。
2.2 递归提示
为解决复杂问题,常使用递归的方法将大问题拆解成子问题。这种方法包括两种具体的方式:一种是分别解决各个子问题,再综合其结果得到最终答案(并行);另一种是一步一步解决子问题(串行)。文中列举了相关的工作成果和引用文献。
2.3 教语言模型进行推理
当一个任务需要多个步骤才能正确解决时,人类通常依靠工作记忆来完成。可以通过预训练和微调的方式,将 step-by-step 数据加入到模型训练中,让模型能够预测推理步骤。例如,可以使用 work 标签来包含类似于内部工作记忆的信息。
2.4 推理的局限性
无论是迭代推理还是递归推理,探索所有可行的推理路径都是困难的,并且不能保证每个推理步骤的正确性,失之毫厘,谬以千里。
3 工具和行为
回答问题所需的知识并不全都需要存在模型的权重中,还可以通过调用外部知识来扩展模型的功能。这需要将LLM与扩展模块相结合。
3.1 调用其它模型
3.1.1 迭代 LM 调用
迭代式调用模型可以逐步改进输出,允许语言模型对自身进行迭代调用,直到输出满足特定标准。例如,Re3能够自动生成长度超过2000字的故事。在此过程中,模型使用先前提供的提示调用GPT3,生成计划、环境设置和角色;然后逐步注入计划和当前故事状态的信息,生成新的故事片段。此外,还可将大纲逐步扩展到任何需求的粒度。
3.1.2 结合多模态
LM 也可以作为通用接口,与在不同模态上预训练的模型一起使用。例如,处理文本和图像等多个模态的数据,并且可以适应不同的任务。例如,Flamingo是一种视觉语言模型(VLM),可以处理任何交错的文本和图像数据序列。通过训练大规模的多模态网络语料库,并通过少量样本的学习,使其可以轻松适应生成任务或分类任务。另外,Socratic Models 是一种模块化的框架,可以组合不同模态的预训练模型,让模型之间进行信息交换,支持新的应用,例如机器人感知和计划,自由形式的视频问答等。
3.2 信息检索
LM 可以通过增加记忆单元提升推理能力,或通过从外部知识源检索避免产生非事实和过时信息,从而实现与大型 LM 相当的性能,并减少所需的参数数量。
3.2.1 检索增强语言模型
密集和稀疏表示
外部知识的文本通常转换成向量表示,表示方法分为密集型和稀疏型。稀疏型指的是使用词袋类方法,生成对每个词的表示;密集型则使用深度学习模型通过嵌入方式表示。在具体使用过程中,先对外部知识进行检索,然后将问题和检索结果一起传递给 LLM。检索时,对于稀疏型数据,通常使用检查精确的术语重叠方式;对于密集数据,则常使用计算相关概念之间的语义相似性。
用检索的文档调节 LM
该方法在知识密集型任务中表现突出,具体方法包括:使用预训练的大模型进行微调;训练端到端的模型;结合已经训练好的BERT预训练模型而无需调整参数等方法。
思维链提示和检索器
将推理链 CoT 与检索器相结合,这种方法不需要精调模型。只需使用 CoT 推理来指导检索步骤,将意图分解在查询中。
3.2.2 搜索引擎查询
当模型具备根据提示生成查询的能力时,LM 可以扩大其行动空间并变得更加主动。LaMDA 和 BlenderBot 是两个用于对话的 LM 模型。它们通过引入检索、计算和翻译等机制进行增强,从而进一步提升对话的能力。
3.2.3 搜索和浏览网页
训练代理在开放式互联网上导航以实现特定目标,例如搜索信息或购买商品。WebGPT 是一种基于 LM 的代理,它可以与 Web 浏览环境进行交互,以进一步细化初始查询或根据其与工具的交互执行其他操作,以提高问答能力。当前最好的模型是在人类演示中微调 GPT3,然后执行拒绝采样来训练以预测人类偏好的奖励模型。WebShops 可以根据提供的指令找到、定制和购买产品。这两个系统都是基于自然语言理解和推理的,因此非常适合语言模型。
3.3 通过符号模块和代码解释器进行计算
LM 主要在自然语言处理方面表现出色,而对于需要处理大量数字或进行复杂算数运算的问题,即使加强了预训练的推理能力,也并不完美。更进一步的做法是将 LM 与专业引擎或工具结合使用,例如物理引擎或 Python 程序。例如,CoT 提供大型 LM,可以将符号推理、数学推理或算法任务分解为中间步骤以及每个步骤对应的 python 代码。
3.4 作用于虚拟或物理世界
除了信息交互,LM也可以与真实世界交互。
3.4.1 控制虚拟智能体
与现实世界交互的第一步是在模拟的二维和三维环境中执行任务。例如,通过将嵌入序列作为输入来预测下一个动作。这涉及跨不同领域的组合泛化,其中 LM 可用作多步骤计划器,将高级任务分解为子目标。
3.4.2 控制机器人
一些研究者通过提供示例,使得LM能够编写与自然语言命令相应的机器人策略代码,并结合经典逻辑和外部库以生成利用空间几何推理的策略代码。
然而,由于缺乏情境培训,语言模型在进行实际决策时存在问题。为了克服这个问题,一些研究者建议引入机器人的低层技能,以便将复杂的高级指令分解为简单的子目标,并根据情境选择最有价值的低层技能来完成任务。
另外,还通过将环境中的语境信息与图像和文本对齐的方式融入机器人的决策中,提高了机器人在实现控制任务时的性能。
4 学习方法
本部分介绍了提升模型效果的具体方法。
4.1 有监督学习
4.1.1 Few-shot提示
人工编写示例是教导LM推理和使用工具以及行动的常用方法之一。该方法不需要调节模型参数,同时可以进行快速实验,且同一模型可供不同场景使用。另外,LM的规模大小、上下文窗口的大小、小样本示例的选择以及它们呈现的顺序也很重要。这个方法也有其缺点:(1) 一种新的行为非常难以学习,需要的不仅仅是少数几个例子 (2) 对于动作空间具有很多可能性的情况下,模型学习也会非常困难。
4.1.2 精调模型
为提高预训练语言模型的推理和操作能力,可通过标准的监督学习来更新其参数,该方法已被应用于很多工具和系统,如搜索引擎、网页浏览器、计算器和翻译系统等。此外,还可以通过人工标注数据以进行精调,从而提高模型遵循指令的能力。
4.1.3 预训练提示
为了避免精调模型对于预测训练模型基本能力的扭曲,可以采用将预训练数据与带标签的推理示例混合的方法(改进Prompt)。这种方法将预训练数据与来自各种下游任务的示例混合。
4.1.4 bootstrap(自举)
自举是一种间接监督的方法,它可以作为精调的替代方案。在多个步骤中,使用这种方法进行探索。丢弃执行的动作或推理步骤没有导致正确预测的示例。最后,使用原始LM或另一个(通常较小的)模型在所有正确的示例上进行微调(通过训练出的模型来筛选实例,这种方法可能更准确)。
4.2 强化学习
有监督学习需要大量标注,因为比较复杂且昂贵。相比之下,强化学习则可以利用用户喜好、排序结果等现成数据,更为便捷、快速和廉价。强化学习的核心是奖励函数机制。
强化学习常应用于机器人、游戏等场景建模,其目标是通过为一系列问题提供策略,从而获得最大化的整体奖励值。在这个过程中,涉及到模型和使用者或其他工具的交互。
4.2.1 硬编码奖励函数
训练语言模型时,通常使用硬编码的奖励函数来使用外部工具更新模型的权重。该奖励基于工具的输出计算。具体来说,可以输入一段文本到模型中,然后根据模型当前状态生成一系列标记或动作。基于奖励的学习在赋予LM与外部工具交互的能力方面拥有显著的潜力。例如,WebGPT就使用了该技术。
4.2.2 人类反馈
在很多情况下,回答是否合适还取决于提问人的意图。由于人的偏好和价值观很难用硬编码的方式去评价,因此引入了人类反馈的强化学习(RLHF:Reinforcement Learning from Human Feedback)。这种方法是通过人对机器产生的多个回答进行打分,然后进一步训练模型。例如,GPT-3.5就使用了该方法,改进了模型的有用性、无害性和准确性。
4.3 限制和未来方向
当前的 RL 方法仍存在不稳定的问题,尤其是在没有现成可用数据的情况下需要进行推理和行动的任务中更为如此,此外还有数据质量问题。解决这些问题的方案可能来自于引导方法和离线 RL,同时还有一些自监督的方法。研究如何将这些方法,将模型扩展到更复杂的场景中,将是基于 LM 的通用模型的一个有前途的研究方向。
5 讨论
远离传统语言建模:ALMs与传统语言建模不同。它可以执行中间的推理步骤,或者拥有访问互联网的能力。此外,它可以通过任务导向的监督数据,将答案与中间步骤明确地联系起来。在做决策时,它还会考虑当前状态和工具因素。
权衡工具和记忆:对于某些情况,比如计算213443^344,使用外部工具可能是更好的选择;但是,像“埃菲尔铁塔位于巴黎”这样的信息就不应该移交给外部工具。可以通过调整模型,决定何时使用工具。此外,还可以将每个工具的计算预算整合到损失函数中, 以让模型学会使用工具。
非参数框架:ALM 是非参数化框架的一种泛化。除信息检索外,LMs 可以委托给相应的外部工具处理其他问题,比如计算,以避免将很少访问的知识存储在它们的权重中。工具增强 LM 可能具有更好的可扩展性,能够产生更小的模型,同时保留较大模型的能力。这对于 ALMs 的非参数化泛化具有巨大的益处,能够从外部世界获取最新信息,并避免频繁更新。
通往自主机器智能的道路:LeCun(2022)提出了自主智能代理(Agent)的概念。尽管 ALMs 的权重基本上包含了世界模型、感知和行动者模块,但作为预测单词级别的模型,它们无法像 LeCun 的 Agent 那样进行计划和推理。虽然 ALMs 可以作为人类交互的 Agent,但目前仍有很多开放的研究问题需要解决。
ALM的优势
- 更可靠:可以通过与其他工具的印证来增加其可靠性。
- 减少不确定性:通过使用外部工具来帮助模型确定其所知道和不知道的内容,ALM可以直接利用此不确定性,更好地了解何时应依赖自身权重,何时应查询外部工具。
- 可解释性:ALM提供了中间推理步骤并依赖工具来增强可解释性。引用用于答案撰写的来源是至关重要的,思路链也可以导致正确的预测。
- 增强功能:具有改进推理能力和工具的ALM可以成为更有帮助的工具,并解决比标准LM更广泛的任务。推理和操作之间形成一个反馈回路,每种能力都能进一步提高另一种能力。与外部工具、实体和环境交互可以改进推理。同样,推理可以提高ALM的决策能力。
道德伦理问题:ALM引发了新的潜在伦理问题。实际上,其中许多预测仍然是不正确的,这使得检测错误变得更加困难。尤其是当它在虚拟或物理世界上采取行动时,如果不进行人工验证,可能会扩大LM造成的有害后果。
6 结论
文章主要讨论归因和工具,以及对于非调参LM的增强能力。这种增强的语言模型通常需要人工标注和反馈的交互支持。此外,还可以将归因和工具结合起来进一步研究,以解决更为复杂的问题。