论文阅读_增强语言模型综述

news2024/11/25 18:39:18

论文信息

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的增强能力。这种增强的语言模型通常需要人工标注和反馈的交互支持。此外,还可以将归因和工具结合起来进一步研究,以解决更为复杂的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/578718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jQuery样式操作和效果操作

1. css方法 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,…

day8--链表倒数第k个结点

链表中倒数最后k个结点 双指针法 是定义两个指针p和q&#xff0c;先让p指向链表的头结点&#xff0c;然后让q指向第k个结点。 接着&#xff0c;同时移动p和q&#xff0c;直到q指向链表的尾结点。此时&#xff0c;p指向的结点就是倒数第k个结点 struct ListNode {int val;Li…

git commit规范

目录 一、代码提交风格&#xff1a; 二、代码提交验证: 一、代码提交风格&#xff1a; 通常我们的git commit会按照统一的风格来提交&#xff0c;这样可以快速定位每次提交的内容&#xff0c;方便之后对版本进行控制。 但是如果每次手动来编写这些是比较麻烦的事情&#xff0…

【Flutter】widgets (1) 组件概述 widget tree 常见的widgets

文章目录 一、前言二、如何理解 widgets三、widgets 和 Div 布局很像四、常见的组件五、总结一、前言 在 Flutter 中,所有的 UI 元素都被称为 widgets,包括整个应用程序本身。一个 Flutter 应用通常由多个小的 widgets 组合而成,这些 widgets 可以是文本,按钮,图片,甚至…

JetBrains的C和C++集成开发环境CLion 2023版本在Linux系统的下载与安装配置教程

目录 前言一、CLion安装二、使用配置总结 前言 CLion是一款为C和C语言开发人员设计的集成开发环境&#xff08;IDE&#xff09;。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地编写、调试和部署C和C应用程序。注&#xff1a;已在CentOS7.9和Ubuntu20.04安装测…

《数据库》期末考试复习手写笔记-第10章 数据库恢复技术(日志文件+检查点)【10分】

知识点:事务+日志文件+检查点 考题一:日志记录 考题二:数据库恢复 如果一个数据库恢复系统采用检查点机制,且其日志文件如表4所示

深入了解平均精度(mAP):通过精确率-召回率曲线评估目标检测性能

平均精度&#xff08;Average Precision&#xff0c;mAP&#xff09;是一种常用的用于评估目标检测模型性能的指标。在目标检测任务中&#xff0c;模型需要识别图像中的不同目标&#xff0c;并返回它们的边界框&#xff08;bounding box&#xff09;和类别。mAP用于综合考虑模型…

开源情报搜集系统的核心技术

随着科技快速发展&#xff0c;科研方向的开源情报搜集系统的应用越来越广泛。为了满足科研工作者的需求&#xff0c;开发人员大力研发了许多功能强大的科研开源情报系统。这些系统不仅可以帮助科研人员更加高效地获取、管理和利用科研信息资源&#xff0c;还能为他们提供全方位…

【Android工具】免费好用无广告安卓手机解压缩软件工具:ZArchiver

微信关注公众号 “DLGG创客DIY” 设为“星标”&#xff0c;重磅干货&#xff0c;第一时间送达。 前言 压缩工具在日常工作和生活中很常用&#xff0c;不光可以减小文件大小&#xff0c;还可以将多个文件进行打包&#xff0c;方便管理。 当然还有一些其他的特殊功能&#xff0c;…

奇舞周刊第493期:Hook 革命!浅谈 React 新 Hook 的未来与思想

关注前端生态发展&#xff0c;了解行业动向。 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ Hook 革命&#xff01;浅谈 React 新 Hook 的未来与思想 作者阳羡曾写文章对 React 新 Hook use 的设计理念和限制进行了深入分析&#xff0c;并提供了一个可能的实现来帮助读者…

学习测试用例

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 测试用例好处测试用例的设计方法基于需求进行测试用例的设计等价类边界值判定表正交表法案例 场景设计法错误猜测法 面试题 测…

分布式简要说明

1.分布式简要说明 《分布式系统原理与范型》定义&#xff1a; 分布式系统是若干独立计算机的集合&#xff0c;这些计算机对于用户来说就像单个相关系统。 分布式系统 (distributed system) 是建立在网络之上的软件系统。 随着互联网的发展&#xff0c;网站应用的规模不断扩…

RabbitMQ学习-死信队列

死信队列 背&#xff1a;就是三种情况导致消息无法消费就是死信&#xff0c;然后就会转到死信交换机中&#xff0c;死信交换机发送到死信队列中&#xff0c;然后创建个消费者消费死信队列中的东西,再没什么哈哈 死信&#xff0c;顾名思义就是无法被消费的信息&#xff0c;字面…

springboot接口返回的json字符串如何不显示null值字段

springboot接口返回的json字符串如何不显示null值字段 POSTMAN 测试接口时&#xff0c;默认字段值即使是null也显示出来&#xff0c;如何去掉更加简洁&#xff1f;这个跟POSTMAN无关&#xff0c;POSTMAN仅仅是展示response的body而已 思考&#xff1a;为什么要去掉null值的字…

Copilot插件:时时陪伴的AI助手 | Obsidian实践

这段时间&#xff0c;有点儿沉迷于AIGC实践不可自拔&#xff0c;也因此懈怠了Obsidian实践。回过头来猛然发觉&#xff0c;其实Obsidian也“上架”了很多与ChatGPT有关的插件。 赶紧体验下&#xff0c;看看有没有什么&#xff0c;是一下子就能用起来的。不得不说&#xff0c;自…

mysql错误码1045解决方案

用数据库连接工具访问提示 1045的错误码&#xff0c;在命令行输入mysql -u root –p&#xff0c;输入密码&#xff0c;经常出现下面的错误信息&#xff0c;相信该错误信息很多人在使用mysql时都遇到过。 ERROR 1045 (28000): Access denied for user rootlocalhost (using pas…

如何在百度百科里创建一个百科词条,百度百科官网创建词条步骤方法

很多朋友表示特别希望能在百度百科里创建一个百科词条&#xff0c;但是在百度百科官网却不知如何操作创建百科词条&#xff0c;连最基本的百度百科操作步骤可能都不清楚&#xff0c;下面洛希爱做百科网为大家分享如何在百度百科里创建一个百科词条&#xff0c;百度百科官网创建…

编码,Part 1:ASCII、汉字及 Unicode 标准

个人博客 编码的历史由来就懒得介绍了&#xff0c;只需要知道人类处理文本信息是以字符为基本单位&#xff0c;而计算机在最底层只认识 0/1&#xff0c;所以当计算机要为人类存储/呈现字符时&#xff0c;就需要有一个规则&#xff0c;在字符和 0/1 序列之间建立映射关系&#…

Mybatis generator

文章目录 使用引入依赖配置文件设置生成使用中出现的异常 Mybatis中javaType和jdbcType对应关系int、bigint、smallint 和 tinyint是使用整数数据的精确数字数据类型。 使用 引入依赖 <!-- mysql --><dependency><groupId>mysql</groupId><artifa…

(转载)基于遗传算法的TSP算法(matlab实现)

1 理论基础 TSP(traveling salesman problem,旅行商问题)是典型的NP完全问题&#xff0c;即其最坏情况下的时间复杂度随着问题规模的增大按指数方式增长&#xff0c;到目前为止还未找到一个多项式时间的有效算法。 TSP问题可描述为&#xff1a;已知n个城市相互之间的距离&…