Augmented Language Models(增强语言模型)

news2024/10/6 10:30:35

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)

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

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

相关文章

数组排序——从荷兰国旗问题到快速排序

本文首先将会介绍荷兰国旗问题,再讲述如何从该问题过渡到快速排序。 荷兰国旗问题 荷兰国旗问题(Dutch National Flag Problem)是由荷兰计算机科学家Edsger Dijkstra所提出,该问题的描述如下: 给定n个红、白、蓝三种颜…

JNDI学习笔记

最近在研究JNDI注入漏洞,就先浅浅的学习以下JNDI相关知识。 JNDI对各种目录服务的实现进行抽象和统一化。 在 Java 应用中除了以常规方式使用名称服务(比如使用 DNS 解析域名),另一个常见的用法是使用目录服务作为对象存储的系统,即用目录服务…

SpringBoot --- 基础篇

一、快速上手SpringBoot 1.1、概述 SpringBoot开发团队认为原始的Spring程序初始搭建的时候可能有些繁琐,这个过程是可以简化的,那原始的Spring程序初始搭建过程都包含哪些东西了呢?为什么觉得繁琐呢?最基本的Spring程序至少有一…

大数据:VMware | Ubuntu | Hadoop | Spark | VMwaretools | Python 安装配置总结

一.环境概述 Linux发行版:Ubuntu虚拟机应用:VMware Workstation ProHadoop版本:3.1.3|伪分布式集群JDK版本:JDK1.8.0_162Spark版本:2.4.0Scala版本:2.12.8Python版本:3.6.8 | 3.7.16 二.Ubuntu 2.1 光盘文件 首先进入链接Down…

因为AI,我被裁了;MJ设计海报全流程;独立开发者每周收入2.3K美元;MJ常用参数超详细介绍 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 受 AI 影响,这 8 家公司开始裁员…… 为了搞清楚 AI 最近在影响哪些行业、哪些职业,作者花了三天事件找到了八…

基于SSM的网络在线考试系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 前言…

《Java并发编程实战》课程笔记(二)

可见性、原子性和有序性问题:并发编程 Bug 的源头 源头之一:缓存导致的可见性问题 在单核时代,所有的线程都是在一颗 CPU 上执行,CPU 缓存与内存的数据一致性容易解决。 因为所有线程都是操作同一个 CPU 的缓存,一个…

《面试1v1》ThreadLocal

我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官: 你好,请问你对 ThreadLocal 有了解吗? 候选人: 您好,我知道 ThreadLocal 是一个 Java 中的类&a…

【坐标变换】坐标系坐标变换简单推导--未完待续

如图所示,假设已知坐标系 ( X , Y ) (X,Y) (X,Y),旋转后的坐标系为 ( X ′ , Y ′ ) (X,Y) (X′,Y′),旋转角度为 θ \theta θ,假设点p在 ( X , Y ) (X,Y) (X,Y)坐标系下为 ( x , y ) (x,y) (x,y),坐标在旋转后的坐标…

速来!谷歌师兄的LeetCode刷题笔记开源了!

有小伙伴私聊我说刚开始刷LeetCode的时候,感到很吃力,刷题效率很低。我以前刷题的时候也遇到这个问题,直到后来看到这个谷歌师兄总结的刷题笔记,发现LeetCode刷题都是套路呀,掌握这些套路之后,就变得非常简…

kubernetes高可用+harbor高可用

kubernetes高可用harbor高可用 基于kubeadm安装kubernetes高可用集群全部主机环境初始化双主节点部署keepalive双主节点初始化kubeadm在k8smaster1节点上初始化k8s在k8smaster2节点上做扩容操作 harbor高可用集群初始化harbor1节点安装环境在另一台节点上配置使用私有harbor仓库…

初学QT:使用QtDesigner绘制一个简单的界面(Day01)

关于Qt 打算在这里记录我学习qt过程中遇见的问题的收获 今天是学习qt的第一天,首先找了一个界面打算照着这个界面写一个一样的 因为是第一天,所以我用的是qt designer写的 其中遇到的问题: 设置背景图片 首先不能直接添加图片到背景图片中…

如何在华为OD机试中获得满分?Java实现【分界线】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

在 Alma Linux 9 上安装 Node.js 的 3 种不同方法

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于构建快速、可扩展的网络应用程序。在 Alma Linux 9 上安装 Node.js 可以为开发者提供强大的工具和库来开发服务器端应用程序。 本文将介绍三种不同的方法来安装 Node.js 在 Alma Linux 9 上。 1. 方法一…

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

在前面两篇博文中已经粗略介绍了增强语言模型和Tool Learning,本篇文章看四篇代表性的自动化框架,HuggingGPT、AutoGPT、WebGPT、WebCPM。 Augmented Language Models(增强语言模型)Toolformer and Tool Learning(LLM…

chatgpt赋能python:了解PythonSpace:Python编程中的重要概念

了解Python Space:Python编程中的重要概念 Python Space是Python编程的一个关键概念,可以帮助你更好地理解Python中的命名空间和作用域。在这篇文章中,我们将深入探讨Python Space,介绍命名空间的概念,讨论命名空间和…

支付系统设计四:支付核心设计03-快捷发送短信(失败转代扣)

文章目录 前言一、背景1. 应用架构2. 分层支撑机制 二、银行卡快捷支付1. 用户操作流程2. 系统执行流程--正常2.1 发送短信2.2 短信确认 3. 系统执行流程--异常3.1 异常环节3.1.1 路由失败3.1.2 调用支付渠道失败 3.2 异常处理3.2.1 路由失败3.2.2 调用支付渠道失败 4. 流程解析…

指导实验心得5篇实用技巧

指导实验心得1 我觉得化工原理实验是一门验证性课程,它把我们在化工原理学到的各种单元操作化为实实在在的东西,而让我们把学到的知识认识到它的实在性。流体输送——离心泵、过滤——板框压滤机、对流传热——套管式换热器、吸收蒸馏——填料塔板式塔、…

AF594 NHS,Alexa Fluor594 NHS Ester,AF 594 NHS 活化酯,用于成像和流式细胞术中的稳定信号生成

【产品描述】 陕西新研博美生物科技有限公司供应的​Alexa Fluor594是一种鲜红色染料。Alexa Fluor用于成像和流式细胞术中的稳定信号生成 594染料是水溶性的,并且从pH 4到pH 10对pH不敏感。Alexa Fluor 594染料与多种抗体、肽、蛋白质、示踪剂和扩增底物偶联&#…

java内存问题

各种OOM的情况 1. 堆溢出-java.lang.OutOfMemoryError: Java heap space。 2. 栈溢出-java.lang.OutOfMemorryError。 3. 栈溢出-java.lang.StackOverFlowError。 4. 元信息溢出-java.lang.OutOfMemoryError: Metaspace。 5. 直接内存溢出-java.lang.OutOfMemoryError: Direct …