【论文笔记】LLM-Augmenter

news2024/10/6 6:40:57

github:https://github.com/pengbaolin/LLM-Augmenter(暂无处readme外其他文件)
paper:https://arxiv.org/pdf/2302.12813.pdf
![在这里插入图片描述](https://img-blog.csdnimg.cn/24cba6213c0f4c00a5646eb9007b3aa2.png#pic_center

背景

大语言模型(LLMs) ,如 GPT-3和 ChatGPT,已经证明了在生成流畅、连贯和信息丰富的自然语言文本方面的出色能力。人们普遍认为,这些模型令人印象深刻的能力源于其中编码的丰富的世界知识,以及模型从知识边缘进行概括的能力。然而,LLMs 的知识编码是有损耗的,知识泛化可能导致“记忆扭曲”。因此,这些模型倾向于产生幻觉,在执行关键任务时会导致损伤。
。尽管人们对于利用外部知识改进 LLM 的兴趣越来越浓厚,但是,几乎所有以前提出的方法都需要对 LLM 的参数进行微调,随着 LLM 的尺寸呈指数增长,这种方法的成本可能会高得令人望而却步。因此,对于任务关键的任务,用即插即用(PnP)模块来增强固定的 LLM 是非常可取的。

模型

本文提出了一种基于外部知识和 PnP 模块的自动反馈的 LLM-AUGMENTER 改进方法。如图1中的例子所示,给定一个用户查询,Augmenter 首先从外部知识(例如 Web 或特定任务的数据集)中检索证据,如有必要,进一步巩固证据,将检索到的原始证据与相关背景联系起来 ,并进行推理,形成证据链。然后,LLM-AUGMENTER 使用一个提示查询一个固定的 LLM (即 ChatGPT) ,该prompt包含 ChatGPT 生成基于外部知识(证据)的候选响应的综合证据。然后,LLM-AUGMENTER 验证候选响应,例如,通过检查它是否产生了幻觉证据。如果是这样,LLM-AUGMENTER 生成一个反馈信息。该消息用于修改再次查询 ChatGPT 的prompt。这个过程不断重复,直到一个候选响应通过验证并发送给用户。
在这里插入图片描述

模型总体结构

在这里插入图片描述
我们将人类系统对话描述为一个由五元组(S,A,P,R,y)描述的马可夫决策过程(MDP) :
S 是对话状态的无限集合,它对存储在工作记忆体中的信息进行编码,包括对话历史、用户查询、证据、候选响应;
A 是策略选择要执行的一组操作,包括
(1)调用 Knowledge Consolidator 整合来自外部知识的证据;
(2)调用 Prompt Engine 查询 LLM 以生成候选响应;
P (s’|s, a)给出了在状态 s 中采取行动 a 后进入新状态 s’的转换概率;
R(s,a)是环境(例如,用户或模拟器)提供的在状态 a 中采取行动后获得的外部奖励;
y(0, 1]是一个折扣因子

Working Memory

此模块跟踪对话状态,该状态捕获到目前为止会话中的所有基本信息。状态使用六元组(q, e, o, u, f, hq)表示:
状态用六元组(q; e; o; u; f; hq)表示:
q 是当前用户查询;
e 是 q 的证据,由 Knowledge Consolidator 从外部知识整合;
o 是 LLM 为 q 生成的一组候选响应;
u 是评估 o 的每个元素效用的得分,f 是指导 LLM 提高其效用的口头反馈 —— u 和 f 都是由Utility 模块生成的
hq 是之前的对话历史。

注意,给定用户查询 q,LLM-AUGMENTER 可以进行多次迭代来修改其响应,每次迭代都会基于证据e、反馈f, u生成一个候选响应,然后将最终响应发送给用户,如图1所示。

Policy

这个模块选择下一个导致最佳的期望奖励 r的系统行动。这些操作包括:
(1)从外部知识中获取 q 的证据 e;
(2)调用 LLM 来生成候选响应;
(3)如果响应通过 Utility 模块的验证,则向用户发送响应。

该策略可以使用手工制定的规则来实现,也可以通过人机交互来训练。在这项研究中,我们实现了一个可训练的策略 作为一个神经网络模型参数化。是优化使用 REINFORCE 以期最大限度地提高预期报酬:
请添加图片描述
我们发现使用预训练模型(例如 T5)是有效的,它不仅可以利用预训练模型的能力,而且还可以通过调整整合额外的信息。

策略学习通常需要大量的人机交互,收集这些交互的成本很高。为了应对这一挑战,策略学习可以分为三个阶段:

  • 从基于规则的策略引导:领域专家将特定于任务的知识和业务逻辑编码为 IF-THEN规则。例如,如果在客户服务的用户查询中提到了产品名称,则明智的做法是始终调用知识整合器以从产品数据库中收集产品信息。
  • 使用用户模拟器学习:我们使用语言模型来模拟人类用户如何与LLM-AUGMENTER交互。LLM-AUGMENTER通过实用程序模块评估的任何有效响应都可以用作训练示例,允许 LLM-AUGMENTER 自我改进。
  • 最后,LLM-AUGMENTER与人类用户互动,以进一步完善其策略。

除了 Policy 之外,LLM-AUGMENTER 的其他可训练模块(即 Knowledge Consolidator 和 Utility)也可以使用相同的学习方法进行优化。

Action Executor

该模块执行策略选择的操作,它由两个组件 Knowledge Consolidator 和 Prompt Engine 组成。

Knowledge Consolidator

知识整合器增强了 LLMs 的能力,可以根据外部知识做出反应,在完成任务时减轻幻觉,比如回答有关最新新闻的问题,以及在餐馆预订桌子。知识整合器以模块化的方式设计,由知识检索器、实体链接器和证据链组成。
具体来说,检索器首先基于 q 和 hq 生成一组搜索查询,然后调用一组 API 从各种外部知识源检索原始证据,例如调用Bing API 查询 Web 文档(包括 Wiki 文章和 Reddit 消息),调用 REST API 查询特定于任务的数据库以获取餐厅评论和产品规格。
检索到的原始证据有时是不完整的和有噪音的。因此,实体链接器利用相关上下文丰富原始证据,形成证据图,即基于维基百科将原始证据中提到的每个实体与其相应的描述联系起来。然后,链接器从图表中删除不相关的证据,形成一个与查询最相关的证据链。综合证据 e 然后被发送到Working Memory。

Prompt Engine

Prompt Engine生成一个查询LLM的提示以生成候选响应。(prompt是一个文本字符串 由任务指合、用户查询q、对话框历史记录hq、知识合并器提供的证据e)和反馈/(如果实用程序模块提供)组成。prompt是针对特定任务的,其详细信息见附录A。

Utility

给定候选响应o,Utility模块使用一组特定于任务的效用函数生成效用得分u和相应的反馈。
这些实用程序功能2访问LLM的响应与用户期望或特定业务需求的一致性。例如,在信息寻求对话中,重要的是LLM的所有回答都基于外部证据,以避免产生误导性或不准确的信息。在餐厅预订对话框中,LLM 响应应该是对话式的,并专注于指导用户完成预订过程,而不是进行偏离主题的闲聊。
受 Glaese 等人 (2022) 的启发,可以有两种不同类型的效用函数:

  • 基于模型的效用函数将偏好得分分配给反应的不同维度.如流利性、信息性和真实性。这些函数是根据预先收集的人类偏好数据或注释日志数据进行训练的。
  • 基于规则的效用函数使用启发式或编程函数衡量响应是否符合特定规则。

此外我们还提出了一个utility function来生成信息丰富且可操作的反馈,以帮助修改提示,使LLM能够生成更好的响应。如图1所示,效用函数生成反馈“但没有关于国际标题数量的信息”。
这样的效用函数是由ψ参数化的文本生成模型Q,可以作为seq2seq或自回归语言模型实现。它的任务是输入用户查询 q、证据 e、候选响应 o 和对话历史记录 hq,并在文本 f 中生成反馈
f= Q(g e, o, hq)
此外,LLM和基于规则的自然语言生成器可以用于反馈生成。

实验配置

检索器:bm25
prompt模版:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【OS】操作系统课程笔记 第五章 并发性——互斥、同步和通信

并发性:并发执行的各个进程之间,既有独立性,又有制约性; 独立性:各进程可独立地向前推进; 制约性:一个进程会受到其他进程的影响,这种影响关系可能有3种形式: 互斥&am…

【从零开始学习Redis | 第三篇】在Java中操作Redis

前言: 本文算是一期番外,介绍一下如何在Java中使用Reids ,而其实基于Java我们有很多的开源框架可以用来操作redis,而我们今天选择介绍的是其中比较常用的一款:Spring Data Redis 目录 前言: Spring Data…

Koordinator 协同 containerd NRI 增强容器 QoS,提升应用性能

作者:韩柔刚 - 阿里云,张康 - Intel 随着云基础业务类型和硬件资源的日益丰富,数据中心的资源利用率得到了显著提高,但也带来了资源争用的风险。在提高节点资源利用率的同时,确保应用程序的 QoS(Quality o…

铜死亡+机器学习+WGCNA+分型生信思路

今天给同学们分享一篇单基因泛癌免疫实验生信文章“IGF2BP3 overexpression predicts poor prognosis and correlates with immune infiltration in bladder cancer”,这篇文章于2023年2月3日发表在BMC Cancer期刊上,影响因子为3.8。 膀胱癌是全球最常见…

利用向导创建MFC

目录 1、项目的创建: 2、项目的管理 : 3、分析以及生成的项目代码 : (1)、查看CFrame中的消息映射宏 (2)、自动生成事件 (3)、在CFrame中添加对应的鼠标处理函数 …

基于静电放电优化的BP神经网络(分类应用) - 附代码

基于静电放电优化的BP神经网络(分类应用) - 附代码 文章目录 基于静电放电优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.静电放电优化BP神经网络3.1 BP神经网络参数设置3.2 静电放电算法应用 4.测试结果…

python爬虫入门详细教程-采集云南招聘网数据保存为csv文件

python爬虫之User-Agent大全、随机获取User-Agent 网站地址数据提取技术介绍采集目标流程分析python代码实现 网站地址 https://www.ynzp.com/ 这个网址特别适合新手拿来练习,你采集多了还有个验证码页面,验证码是4位数字,很清晰&#xff0c…

C++笔记之通用多态函数包装器std::function

C笔记之通用多态函数包装器std::function code review! 文章目录 C笔记之通用多态函数包装器std::function1.存储自由函数,lambda,std::bind 调用的结果2.存储到成员的调用3.存储到函数对象四.基本语法五.使用std::function定义函数对象六.使用std::fu…

UGUI交互组件ScrollView

一.ScrollView的结构 对象说明Scroll View挂有Scroll Rect组件的主体对象Viewport滚动显示区域,有Image和mask组件Content显示内容的父节点,只有个Rect Transform组件Scrollbar Horizontal水平滚动条Scrollbar Vertical垂直滚动条 二.Scroll Rect组件的属…

Unity角色或摄像机移动和旋转的控制脚本

该脚本挂载到需要被移动、旋转控制的物体身上,也可以之间挂在到摄像机上! 挂载到摄像机上可以实现第一人称视角控制! 挂载到物体身上,配合摄像机跟踪脚本可以实现,第三人称视角控制! 第一人称视角 将角…

【每日一题】只出现一次的数字 II

文章目录 Tag题目来源题目解读解题思路方法一:位运算 写在最后 Tag 【位运算】【数组】【2023-10-15】 题目来源 137. 只出现一次的数字 II 题目解读 找出数组中仅出现一次的数字,其余数字仅出现三次。要求线性时间复杂度求解。 解题思路 本题的朴素…

基于nodejs+vue教学辅助管理系统

学生;首页、个人中心、本课程设计了线上教学辅助系统 ,学生可以此系统实现在线学习,作业提交管理、作业成绩管理。随着社会的快速发展,计算机的影响是全面且深入的。教师:首页、个人中心、课程信息管理、教学资料管理、作业信息管…

C++笔记之std::future的用法

C笔记之std::future的用法 code review! 文章目录 C笔记之std::future的用法1.C中std::future和std::async总是一起出现吗?2.主要特点和用法3.一个完整的例子4.std::future 存放的是一个结果吗?5.cppreference——std::future 1.C中std::future和std::a…

NCV7724DQBR2G车规级半桥电机驱动芯片-专为汽车,工业自动化应用提供完美解决方案

车规级半桥电机驱动芯片是一种用于驱动直流电机的芯片,常用于电动汽车、电动自行车等领域。它可以控制电机的转速和方向,并且具有过流保护、过温保护等功能,可以保证电机的安全运行。 NCV7724DQBR2G是一款车规级八通道半桥驱动器,…

pdf格式的简历中的照片太小,如何修改图片的大小

问题描述:在使用一些在线版生成软件制作简历时,比如使用超级简历制作的简历存在着一个照片的尺寸比较小。如何去修改pdf中的证件照大小。 解决办法:使用一些在线编辑pdf的软件,比如我随便找了一个(在线编辑pdf&#x…

SpringCloud-Config

一、介绍 (1)服务注册中心 (2)管理各个服务上的application.yml,支持动态修改,但不会影响客户端配置 (3)一般将application.yml文件放在git上,客户端通过http/https方式…

【MST】 CF1108 F

Problem - 1108F - Codeforces 题意 思路 先看样例 这里的 MST,是把边排序之后合并至权值为3 权值为3的两条边,选其中一条即可,但是不能两条都选,这样会形成环 这启示我们,我们要操作的是和Kruskal的最后一条边权值…

【Excel】【latex】将EXCEL中单元格的计算关系还原为公式,用c#重构

在excel中,将很多个单元格,及其内部的公式,用文本的形式复制出来 Ctrl ~将 Excel 切换到公式视图,可以看到单元格中的公式,而不是公式的结果。 像平常一样复制和粘贴单元格。粘贴时,会看到的是单元格中的…

python+django高校教室资源预约管理系统lqg8u

技术栈 后端:pythondjango 前端:vueCSSJavaScriptjQueryelementui 开发语言:Python 框架:django/flask Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyChar…

力扣刷题 day14:10-14

1.超级丑数 超级丑数 是一个正整数,并满足其所有质因数都出现在质数数组 primes 中。 给你一个整数 n 和一个整数数组 primes ,返回第 n 个 超级丑数 。 题目数据保证第 n 个 超级丑数 在 32-bit 带符号整数范围内。 方法一:动态规划 #…