Augmented Language Models: A Survey
- 先上地址:https://arxiv.org/pdf/2302.07842.pdf
概率论难以支撑通用人工智能技术的诞生。—— Yann LeCun
LLMs取得的巨大进展不再多说,它目前被诟病最多的问题是其会提供非事实但看似可信答案,即幻觉。这些问题可能源于LLMs的一个基本缺陷:它们基于统计语言建模,即 (i)一个单一的参数模型和(ii)一个有限的上下文。但事实上,LLMs擅长于通用的语言理解与推理,而不是某个具体的知识点。
因此迈向通用人工智能的一个优质解或许是增强语言模型(Augmented Language Models,ALM)。即通过各种手段来“增强”LLM,典型的方法包括信息获取,LLM Chains(通过 LLM 调用来增强 context),以及各类外部工具的使用。这种增强的手段能让ChatGPT用各种的、可能是非参数的外部模块来扩展其上下文处理能力,从而脱离纯语言建模范式,更准确的答案,从而缓解ChatGPT被人诟病的幻觉问题。因此ALM的特点在于它具备和外部数据交互和多轮推理的能力,且模型所需要的所有信息不再是完全存在于模型参数中。
这篇Survey主要回顾了增强语言模型的两大主要方向:推理和工具。
- 推理(Reasoning)。推理是将一个复杂任务分解为更简单的子任务(通过递归或迭代),如使用few-shot进行逐步推理。虽然学术界还没有搞清楚LM是否真的能推理,还是说这种方式仅仅提供了一个更大的上下文,但在ALMs中,推理定义是在产生提示的答案之前给模型更多的计算步骤。
- 工具(Tool)。工具即外部模块,其可以在训练或推理时被调用,用于收集外部信息,包括虚拟世界或物理世界的感知,
- 操作(Act)。调用一个对虚拟世界或物理世界有影响的工具并观察结果,如文档检索、机器臂,通常是通过将其包含在ALM的当前上下文中。这篇文章中有时会将对工具的调用表示为一个动作 ,即使它没有外部影响。
推理和工具的结合可以使模型在没有启发式的情况下解决广泛的复杂任务,从而具有更好的泛化能力。一般来说,推理将促进LM将给定的问题分解为更简单的子任务,而工具将有助于正确地完成每个步骤。换句话说,推理是LM结合不同工具来解决复杂任务的一种方式,而工具是一种避免推理失败的方法,它们都增加了LM的上下文,从而更好地预测tokens。
Reasoning
推理是指利用证据和逻辑进行推论的能力,可以分为多种类型,如常识性推理、数学推理、符号推理等。如LM可以正确说出名人的出生和死亡日期,但可能不能正确计算年龄。目前有几种利用推理的增强方法:
-
Eliciting reasoning with prompting。使用few-shot作为例子,或要求模型输出中间过程(Let’s think step by step)。下图是一个few-shot cot的例子。
-
Recursive prompting。通过显式地将问题分解为子问题来引出中间推理步骤,以便以分而治之的方式解决问题,这种递归方法对于复杂的任务尤其有用。图下图所示,该问题首先在prompt 0中被分解为子问题。然后,将子问题2的答案2和子问题1的答案1依次输入到prompt 2和prompt 1。
-
Explicitly teaching language models to reason。直接在训练时,就让LM做比如预测中间步骤的任务,关键是在于收集一个带推理的数据集。很多工作已经证明了,指令微调后可以让模型表现得更好。
Using Tools and Act
模型不一定需要完全依赖存储在其权重中的知识,还可以获取更多的事实性知识,如能精确计算的计算器等外部工具。目前有几种利用工具的增强方法:
-
Calling another model。模型反复调用自己或者借助其他模态。如下图所示,模型被训练生成行动计划并在每个步骤编辑输入文本,这个过程可以重复进行,直到生成的文本不需要再更新为止。
-
Information retrieval。有三种类型的retrieval策略,1.Retrieval-augmented language models。记忆增强策略有助于语言模型避免产生非事实和过时的信息。包括稀疏检索(词袋)和密集检索(向量)。2. Querying search engines。根据prompt生成query以扩大动作空间。3. Searching and navigating the web。自由地在互联网上搜索信息或购买物品,如WebGPT通过预先设定文本命令的方式,使其可以执行包括但不限于搜索网页、引用文献、返回并输出文本等操作。
-
Computing via Symbolic Modules and Code Interpreters。调用专业的符号模块或者代码编译。如下图所示模型会执行python辅助回答。
-
Acting on the virtual and physical world。允许LM对虚拟世界或物理世界采取行动。包括控制2D、3D的虚拟agent或者真实世界的机器人。
Learning to reason, use tools, and act
前面的部分整理了有哪些推理和工具,那么如何使LM拥有这些能力呢?主要有两种方法:Supervision和Reinforcement learning。
Supervision
直接SFT是一种非常直接的方法,具体的策略主要就是分为few-shot prompting和gradient-based learning了,一个提示工程,一个正常微调。
- Few-shot prompting。给一些人写的in-context的例子到模型,这种方法的优势在于不需要训练模型,对于不同的工具直接通过修改prompt的定义即可。但是它的缺点在于它会受到context window数量的限制,特别是1问题很难或很新,需要很多的例子;2我们想要模型理解一个很大的动作执行空间。此外,由于没有权重更新,LM的推理和行动能力完全依靠提示,因此删除它也会删除这些能力。
- Fine-tuning。作为Few-shot 的一种替代方法,直接通过预训练LM来得到推理和动作能力,包括搜索引擎、网页浏览、使用计算器等等。但这种能力需要对应的instructions数据,一般通过人工或者一些特定的方法来收集。
- Prompt pre-training。直接tuning的一个潜在风险是LM可能会偏离原始分布,并过拟合新增instructions数据的分布。因此有一些模型会mix pre-trianing和fine-tuning的数据来缓解这一风险。
- Bootstrapping。作为Fine-tuning的替代方案,即通过Bootstrapping进行间接监督。通常是让LM在few-shot进行推理或调工具,然后进行最终的预测;如果工具或推理步骤没有使最终结果正确的话将会被丢弃,剩下正确的会喂入LM进行微调。因此,Bootstrapping可以结合few-shot和tuning的一些优点。
Reinforcement learning
直接收集数据进行SFT是直接且有效的方法,但构造好且多的数据代价高昂。而关于人类的偏好数据,比如排名或喜欢/ 不喜欢,将被比收集一份完整的数据更容易、更快、更便宜。如人类直接评估摘要的质量可能比从头开始写更容易。不过这样的偏好数据一般都不会在监督环境中使用,而是在强化环境中以提供奖励的方式出现。
当使用RL训练一个LM时,LM可以被认为是一个学习策略的agent(即模型在词汇表上的分布,并从中采样tokens)。不过目前RL和ALMs的大部分工作都集中在让LMs如何tool,而不是reasoning。目前有的工作主要有:
- Hard-coded reward functions。使用由硬编码的奖励函数(如BLEU等机器指标)所生成的reward来更新模型的权重,以教会LM如何使用外部工具。如使用RL教LM写query然后调用QA或者搜索引擎。
- Human feedback。机器评价的hard-coded指标或许没那么重要,因为它可能会根据上下文、个人偏好和用户意图而有所不同,而模型应该能够捕获这种意图差异。因此拿human feedback来训练LM更能algin这样的人类价值观,即ranking模型生成结果的人类偏好。
Discussion
Moving away from language modeling
一个被训练输出推理步骤或能够访问互联网的模型是否仍然是纯粹地执行语言建模?事实上,语言建模通常被定义为在给定的上下文中预测缺失的标记的任务,但增强后的模型跟这个定义有所不同,因此ALMs可能是它更好的称谓。
A tradeoff between memorizing and querying tools
模型权重和利用外部工具的tradeoff?ALMs是否可以足够准确地决定何时使用工具?而且能否将每个工具的计算代价集成到损失中?
Generalizing the non-parametric framework
工具增强模型的范式可以看作是非参数框架的泛化。它可以避免在其权重中存储很少访问的知识,再结合从外部世界访问最新信息从而避免频繁更新的可能性,ALMs的非参数泛化具有很大的优势。
A path towards autonomous machine intelligence?
LeCun认为“the agent is composed of difffferent modules starting from a world model and a short-term memory. ”,因此世界模型、感知模块、短期记忆将对通往通用人工智能十分重要。
Augmented Language Models benefifits
- 真实性(Truthfulness)
- 减少不确定性(Reducing uncertainty)
- 可解释性(Interpretability)
- 增强能力(Enhance capabilities)
下一篇博文进一步整理Toolformer and Tool Learning,还有具体的HuggingGPT、AutoGPT、WebGPT、WebCPM:
- Toolformer and Tool Learning(LLMs如何使用工具)
- LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)