Augmented Language Models(增强语言模型)

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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之索引初步

1. 索引概念 数据库是⽤来存储数据,在互联⽹应⽤中数据库中存储的数据可能会很多(⼤数据), 数据表中数据的查询速度会随着数据量的增⻓而逐渐变慢 ,从⽽导致响应⽤户请求的速度变慢——⽤户体验差,我们如何提⾼数据库的查询效率呢…

第一个servlet的程序

文章目录 一.Hello World的程序1.创建项目2.引入依赖3.创建目录4.编写代码5.打包程序6.部署程序7.验证程序 二.简化部署方式1.下载插件2.配置smart Tomcat插件3.测试插件 三.常见的servelt问题出现 404出现 405出现 500出现 "空白页面"出现 "无法访问此网站&quo…

【数据结构】队列详解

本篇要分享的内容是队列的解析和增删查改的使用,以下为本篇目录 目录 1.队列的概念及结构 2.队列的结构 3.队列的初始化 4.队列空间释放 5.入队 6.出队 7.获取队头和队尾元素 获取对头 获取队尾 8.计算队列元素 9.判空 11.本篇所有代码展示 Queue.c Q…

一、尚医通手机登录

文章目录 一、登录需求1、登录效果2、登录需求 二、登录1,搭建service-user模块1.1 搭建service-user模块1.2 修改配置1.3 启动类1.4 配置网关 2、添加用户基础类2.1 添加model2.2 添加Mapper2.3 添加service接口及实现类2.4 添加controller 3、登录api接口3.1 添加…

FPGA——HLS入门-LED闪烁仿真

系列文章目录 文章目录 系列文章目录一、HLS介绍1、什么是HLS2、与VHDL/Verilog有什么关系?3、关键技术局限性 二、Vivado HLS - LED闪烁仿真1、项目配置2、C仿真3、联合仿真 三、总结 一、HLS介绍 1、什么是HLS HLS就是高综合(High level Synthesis)…

公网远程访问本地jupyter notebook服务 - 内网穿透

文章目录 前言视频教程1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 转载自cpolar的文章:公网远程访问Jupyter Notebook【Cpolar内网穿透】 前言 Jupyter Notebook&am…

最优化方法Python计算:一元函数搜索算法——牛顿法

设函数 f ( x ) f(x) f(x),在 [ a , b ] [a,b] [a,b]上二阶连续可微且有唯一的最小值点 x 0 x_0 x0​。由于 f ( x ) f(x) f(x)是 [ a , b ] [a,b] [a,b]上的单峰函数,故 f ′ ′ ( x ) > 0 f(x)>0 f′′(x)>0, x ∈ ( a , b ) x\in…

MyBatis快速入门

目录 一、什么是MyBatis 二、MyBatis的学习要领 三、搭建第一个MyBatis 3.1 创建数据库和表 3.2 添加MyBatis框架支持 3.2.1 老项目添加MyBatis 3.2.2 新项目去添加MyBatis 3.3 设置MyBatis配置信息 3.3.1 设置数据库连接的相关信息 3.3.2 设置MyBatis xml保存路径 和…

vue-cli4+vant+rem+sass+vuex+axios封装+webpack搭建前端项目

移动端项目模板 基于 vue-cli4.0 webpack 4 vant ui sass rem 适配方案axios 封装,构建手机端模板脚手架 启动项目 git clone https://github.com/teach-tian/h5-vue-cli4.gitcd h5-vue-cli4npm installnpm run serve✅ 配置多环境变量 package.json 里的 s…

SpringBoot【开发实用篇】---- 整合第三方技术(监控)

SpringBoot【开发实用篇】---- 整合第三方技术(监控) 1. 监控的意义2. 可视化监控平台3. 监控原理 在说监控之前,需要回顾一下软件业的发展史。最早的软件完成一些非常简单的功能,代码不多,错误也少。随着软件功能的逐…

Linux基于Apache服务搭建简易镜像站

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Linux基于Apache服务搭建简易镜像站 安装Apache服务器 yum install -y httpd.x86_64 配置Apache服务器:编辑Apache配置文件/etc/httpd/conf/httpd.conf #S…

ospf的rip和ospf互通以及配置stub区域和totally stub

1. ospf与rip如何互通 我们需要在两台路由器上互相引入,如上图 AR5和AR6运行了rip,但AR5也运行了ospf要想路由器能够互相学习到路由,就需要在AR5上配置路由协议引入 什么是stub区域如何配置stub区域 Stub区域的功能:过滤4类LSA和5类LSA,对外产生缺省的…

Unity之使用Photon Server + PUN2 开发局域网多人游戏

一.前言 Photon Engine是一款跨平台的实时多人游戏引擎,它提供了可靠的基础设施和工具,使开发者能够轻松地构建和部署多人游戏。Photon Engine支持多种平台,包括PC、移动设备和Web,同时还提供了多种语言的SDK,如C++、C#、Java、JavaScript等,使得开发者可以使用自己熟悉…

宁德时代,冷暖自知口难言

作者 | 魏启扬 来源 | 洞见新研社 发布可以“上天”的凝聚态电池、落地能量密度160Wh/kg的钠离子电池、量产系统集成度全球最高的麒麟电池…… 宁德时代在上海车展前后密集发声,坚决捍卫着“宁王”的冠冕。 如果再结合不久前的2022年年报,全年307亿的…

条码控件Aspose Barcode,满足您条码需求的终极解决方案

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API 支持流行文件格式处理&a…

如何在 Ubuntu 22.04 上安装 Python Pip?

Python Pip 是 Python 的包管理器,它允许您轻松地安装和管理 Python 包和库。在 Ubuntu 22.04 上安装 Python Pip 是非常简单的。 本文将详细介绍如何在 Ubuntu 22.04 上安装 Python Pip,并为您提供逐步指南。 步骤 1:更新软件包列表 在安装…

C嘎嘎~~[谈谈C++的一些优化]

C的一些优化 匿名对象引用引用作形参引用作返回值 编译器优化构造 拷贝构造 ⇒ 构造拷贝构造 拷贝构造 ⇒ 一个拷贝构造 匿名对象 通过以前C语言的学习, 我们知道了有一种 具有临时性的, 没有名字的变量 — — 匿名变量. 那么我们的对象应该也有这个特性 — — 匿名对象 匿名…

Kotlin 协程中的并发问题:我明明用 mutex 上锁了,为什么没有用?

前言 最近在接手的某项目中,主管给我发来了一个遗留以久的 BUG,让我看看排查一下,把它修复了。 项目的问题大概是在某项业务中,需要向数据库插入数据,而且需要保证同种类型的数据只被插入一次,但是现在却…

day15 - 使用图像金字塔进行图像拼接

在我们之前的学习过程中,使用的都是恒定大小的图像,但是在某些情况下,我们需要使用不同分辨率的(相同)图像。例如,当在图像中搜索某些东西(例如人脸)时,我们不确定对象将…

【高级语言程序设计(一)】第 10 章:文件

目录 一、文件概述 (1)文件定义 (2)文件命名 (3)文件分类 ① 按照文件的内容划分 ② 按照文件的组织形式划分 ③ 按照文件的存储形式划分 ④ 按照文件的存储介质划分 (4)文…