ReadAgent,一款具有要点记忆的人工智能阅读代理
人工智能咨询培训老师叶梓 转载标明出处
现有的大模型(LLMs)在处理长文本时受限于固定的最大上下文长度,并且当输入文本越来越长时,性能往往会下降,即使在没有超出明确上下文窗口的情况下,LLMs 的性能也会随着输入文本长度的增加而下降。为了克服这些限制,Google DeepMind 和 Google Research 的研究团队提出了一种新颖的解决方案——ReadAgent,一种能够显著扩展上下文理解能力的人工智能阅读代理。
ReadAgent 的设计理念受到人类如何互动阅读长文档的启发。人类在阅读时往往会快速忘记具体信息,而对大意或主旨(gist)的记忆则更为持久。此外,人类的阅读是一个互动过程,当我们需要提醒自己完成任务(例如回答问题)的相关细节时,我们会回顾原文。基于这些观察,ReadAgent 通过三个主要步骤来模拟人类的阅读过程:分段(episode pagination)、要点压缩(memory gisting)和交互式查找(interactive look-up)。
在实验评估中,ReadAgent 在 QuALITY、NarrativeQA 和 QMSum 三个长文档阅读理解任务上的表现超越了基线方法。特别是在 NarrativeQA Gutenberg 测试集上,ReadAgent 将 LLM 的评分提高了 12.97%,ROUGE-L 提高了 31.98%,并将有效上下文长度增加了约 20 倍。
ReadAgent介绍

Figure 1 展示了 ReadAgent 的工作流程,这是一个模仿人类阅读习惯设计的系统,旨在有效处理和理解长文本。ReadAgent 通过三个主要步骤来实现这一目标:
-
分页(Episode Pagination):系统将长文本分解为一系列较小的、逻辑上连贯的文本块,即“剧集”,类似于将一本书分成多个章节。
-
要点压缩(Gisting):对每个文本块进行压缩,提取其核心要点,形成简洁的要点记忆,这有助于快速把握文本的主旨。
-
交互式查找(Interactive Look-Up):在需要详细回顾特定信息时,系统会根据任务需求和已有的要点记忆,选择性地查看原始文本的相关部分,以获取更详尽的细节。
在 ReadAgent 系统中,要点记忆(Gist Memory)扮演着至关重要的角色。它的核心思想是将长篇文本的信息压缩成易于管理和理解的要点集合。这种压缩不仅减少了处理文本所需的工作量,而且使得关键信息更加突出,便于后续的查找和使用。
构建要点记忆的过程涉及两个主要步骤:
-
分页(Pagination):这一步骤中,ReadAgent 将长文本分解为一系列的文本块,这些文本块被称为“剧集”或“页”。通过提示(prompting)大型语言模型(LLM),ReadAgent 决定在文本的自然断点处进行分页,如场景转换、对话结束或叙述的逻辑分界点。这种方法模仿了人类在阅读时自然停顿的习惯,有助于将文本组织成更易于处理的部分。
-
记忆要点化(Memory Gisting):在分页完成后,ReadAgent 对每一页的内容进行压缩,提取出关键信息并形成要点。这个过程类似于人类在阅读后对文本主旨的记忆,强调了文本的核心内容而非具体细节。通过这种方式,ReadAgent 能够将每一页的文本转化为简短、精炼的要点,便于存储和快速回顾。

并行和顺序交互式查找是 ReadAgent 系统的另一个关键特性。这一功能使得 ReadAgent 能够在需要时,查找原始文本中的相关细节,从而补充和丰富其要点记忆。
并行查找(Parallel Look-Up):在这种模式下,ReadAgent 可以同时请求查看多个页面或文本块。这种方法允许模型快速获取广泛的上下文信息,适合于需要同时考虑多个信息源的任务。
顺序查找(Sequential Look-Up):与并行查找不同,顺序查找是一种逐步的过程,ReadAgent 一次只请求查看一个页面或文本块,并在查看前一个页面后再决定查看下一个页面。这种方法更适合于需要深入理解文本发展脉络的任务。

计算开销和可扩展性是两个核心考量因素。尽管 ReadAgent 依赖于迭代推理,但设计上确保了这种推理的计算成本是可控的,并且随着处理文本长度的增加,系统能够良好地扩展。
分页(Pagination)是 ReadAgent 处理长文本的第一步。理想情况下,一个大型语言模型(LLM)可以一次性阅读整个文档并进行分页。然而,ReadAgent 采用了一种算法,将文档分解为长度不超过 max_words 的块,并确保每个处理步骤至少处理 min_words 的文本。这种方法不仅提高了处理效率,而且使得 LLM 在面对长文档时的计算负担变得可管理。
要点压缩(Gisting)是随后的一个步骤,它涉及将每一页的文本压缩成更简洁的要点。这种压缩是对原始文本的额外处理,但与处理完整文本相比,它显著减少了需要处理的信息量。这种方法使得并行查找可以基于要点而不是完整的文本,从而减少了处理时间。
在响应(Response)阶段,模型生成最终答案的过程类似于并行查找。尽管提示模板可能会增加一些额外的计算开销,但这种方法允许模型在生成答案时更加精确和高效。
ReadAgent 变体提供了不同的配置选项,以适应不同的应用场景。这包括无条件 ReadAgent 和条件 ReadAgent。
无条件 ReadAgent:在这种设置中,要点压缩时不包含特定任务的描述。这种方法适用于任务未知或要点需要用于多个任务的情况。虽然这可能会牺牲一些压缩率,并增加一些干扰信息,但它确保了生成的要点具有更广泛的适用性。
条件 ReadAgent:当任务在阅读长文档之前已知时,可以在要点压缩步骤中包含任务描述。这种方法使得 LLM 能够更有效地压缩与任务无关的信息,从而提高效率并减少干扰。
通过这些设计,ReadAgent 能够灵活地适应不同的任务需求,同时保持计算效率和可扩展性。这种方法不仅提高了处理长文本的能力,还使得系统在面对不断变化的任务和文档长度时,能够持续提供高质量的服务。
实验
作者采用了两种自动评估方法,旨在模拟人类评估者对模型生成答案的评判。这两种方法分别是严格的 LLM Rater 和宽容的 LLM Rater。
严格的 LLM Rater:
这种方法要求模型生成的答案与参考答案完全一致,才能被判定为正确。评估时,模型会接收到一个提示,提示中包含了问题和模型的答案,然后模型需要判断这个答案是否与参考答案完全匹配。例如,如果问题要求解释某个概念,而模型生成的答案与专家提供的参考答案完全一致,那么这个答案就会被严格 LLM Rater 判定为正确。
宽容的 LLM Rater:
与严格 LLM Rater 不同,宽容的 LLM Rater 允许一定程度的偏差。即便模型生成的答案不完全与参考答案一致,只要答案中包含正确的关键信息或部分匹配,也会被判定为正确或部分正确。这种方法更加灵活,允许模型在理解问题的基础上,提供与参考答案不同的但仍然合理的回答。
在比较 ReadAgent 与其他基线方法时,作者考虑了几种不同的方法:
Retrieval-Augmented Generation (RAG):这种方法结合了检索和生成,通过检索长文本中相关的“页面”或文本片段,然后将这些片段作为上下文,辅助生成答案。这种方法的优势在于能够利用大量文本信息来辅助回答,但可能在整合信息时面临挑战。
Full or Truncated Text Content:在这种方法中,模型直接使用完整的或截断的原始文本作为上下文来生成答案。这种方法简单直接,但可能会因为文本过长而导致模型难以捕捉到所有相关信息。
Gist Memory:这种方法利用压缩后的要点记忆来回答问题。通过将长文本压缩成简短的要点,模型能够更快速地理解和回应问题,但可能会丢失一些细节信息。

作者探讨了 ReadAgent 在处理长文本阅读理解任务时的表现,特别是在 QuALITY、NarrativeQA 和 QMSum 三个不同的数据集上。这些数据集提供了多样化的挑战,涉及不同长度和类型的文本,从而全面评估 ReadAgent 的能力。
QuALITY 数据集:
QuALITY 挑战是一个典型的多项选择题问答任务,要求模型从四个选项中选择正确答案。在这项任务中,ReadAgent 的表现通过准确性来衡量。
作者特别关注了压缩率(CR)和查找次数(LU)对 ReadAgent 性能的影响。压缩率衡量了文本在压缩成要点记忆后保留信息的能力,而查找次数则反映了模型在回答问题时需要回顾的原始文本量。
实验结果显示,ReadAgent 在压缩文本的同时,能够有效地查找相关信息,从而在保持高准确性的同时减少了对原始文本的依赖。

NarrativeQA 数据集:
NarrativeQA 包含了书籍和电影剧本,文本长度更长,上下文更复杂。这个数据集对模型的理解和推理能力提出了更高的要求。
作者使用 ROUGE 分数和 LLM Ratings 来评估 ReadAgent 的表现。ROUGE 分数衡量了模型生成的文本与参考答案的相似度,而 LLM Ratings 则通过模型自身来评估答案的质量。
在 NarrativeQA 上,不同压缩率和查找策略对 ReadAgent 的表现有显著影响。作者发现,适当的压缩和有效的查找策略可以提高模型在长文本任务中的表现。

QMSum 数据集:
QMSum 由会议记录组成,任务通常是生成摘要而非回答具体问题。这要求模型不仅要理解文本,还要能够提炼关键信息。
与 QuALITY 和 NarrativeQA 不同,QMSum 更注重模型的摘要生成能力。作者通过 ROUGE 分数和 LLM Ratings 来评估 ReadAgent 在生成摘要方面的表现。
实验结果表明,ReadAgent 能够有效地处理长文本,并生成高质量的摘要,同时通过不同的查找策略来优化其表现。

在消融研究中,作者进一步分析了 ReadAgent 不同组件对整体性能的贡献。特别是,他们比较了使用 GistMem 结合神经检索与使用 ReadAgent 查找单页的效果。
研究发现,ReadAgent 的检索策略在准确性上优于传统的 GistMem 结合神经检索方法。这表明 ReadAgent 在处理长文本时,能够更有效地利用压缩后的要点记忆和原始文本,从而提高任务完成的准确性。

ReadAgent 的成功展示了通过模仿人类的阅读和记忆策略,可以显著提升 AI 在处理长文本时的能力。这项工作不仅为长文本理解提供了新的解决方案,也为未来 AI 的发展开辟了新的可能性。
论文链接:https://arxiv.org/abs/2402.09727
相关文章:

ReadAgent,一款具有要点记忆的人工智能阅读代理
人工智能咨询培训老师叶梓 转载标明出处 现有的大模型(LLMs)在处理长文本时受限于固定的最大上下文长度,并且当输入文本越来越长时,性能往往会下降,即使在没有超出明确上下文窗口的情况下,LLMs 的性能也会随…...
构建智能:利用Gradle项目属性控制构建行为
构建智能:利用Gradle项目属性控制构建行为 Gradle作为一款强大的构建工具,提供了丰富的项目属性管理功能。通过项目属性,开发者可以灵活地控制构建行为,实现条件编译、动态配置和多环境构建等高级功能。本文将详细解释如何在Grad…...

如何通过smtp设置使ONLYOFFICE协作空间服务器可以发送注册邀请邮件
什么是ONLYOFFICE协作空间 ONLYOFFICE协作空间,是Ascensio System SIA公司出品的,基于Web的,开源的,跨平台的,在线文档编辑和协作的解决方案。在线Office包含了最基本的办公三件套:文档编辑器、幻灯片编辑…...

SQL labs靶场-SQL注入入门
靶场及环境配置参考 一,工具准备。 推荐下载火狐浏览器,并下载harkbar插件(v2)版本。hackbar使用教程在此不做过多描述。 补充:url栏内部信息会进行url编码。 二,SQL注入-less1。 1,判断传参…...
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4
基础认证题库请移步:HarmonyOS应用开发者基础认证题库 注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,单选题20个为一组,多选题10个为一组,题库目录如下,…...

使用LSTM完成时间序列预测
c 在本教程中,我们将介绍一个简单的示例,旨在帮助初学者入门时间序列预测和 PyTorch 的使用。通过这个示例,你可以学习如何使用 LSTMCell 单元来处理时间序列数据。 我们将使用两个 LSTMCell 单元来学习从不同相位开始的正弦波信号。模型在…...

《数据结构:顺序实现二叉树》
文章目录 一、树1、树的结构与概念2、树相关术语 二、二叉树1、概念与结构2、满二叉树3、完全二叉树 三、顺序二叉树存储结构四、实现顺序结构二叉树1、堆的概念与结构2、堆的实现3、堆的排序 一、树 1、树的结构与概念 树是一种非线性的数据结构,它是由nÿ…...

【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式结构重用
【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式&结构重用 渲染控制包含了条件渲染和循环渲染,所谓条件渲染,即更具状态不同,选择性的渲染不同的组件。 而循环渲染则是用于列表之内的、多个重复元素组成的结构中。 …...

【防火墙】防火墙NAT、智能选路综合实验
实验拓扑 实验要求 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 8,分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的http服务器 9,多出口环境基于带宽比例进行选路…...

VUE之---slot插槽
什么是插槽 slot 【插槽】, 是 Vue 的内容分发机制, 组件内部的模板引擎使用slot 元素作为承载分发内容的出口。slot 是子组件的一个模板标签元素, 而这一个标签元素是否显示, 以及怎么显示是由父组件决定的。 VUE中slot【插槽】…...

linux、windows、macos,命令终端清屏
文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS的命令终端中,清屏的命令或方法各不相同。以下是针对这三种系统的清屏方法: Linux clear命令:这是最常用的清空终端屏幕的命令之一。在终端中输入clear命令后,屏幕上的所有内容…...

【RaspberryPi】树莓派Matlab/Simulink支持包安装与使用
官网支持与兼容性 Raspberry Pi Support from MATLAB - Hardware Support - MATLAB & Simulink Raspberry Pi Support from Simulink - Hardware Support - MATLAB & Simulink Matlab与树莓派兼容性 Simulink与树莓派兼容性 树莓派Matlab&Simulink RaspberryPi支…...

嵌入式人工智能(10-基于树莓派4B的DS1302实时时钟RTC)
1、实时时钟(Real Time Clock) RTC,全称为实时时钟(Real Time Clock),是一种能够提供实时时间信息的电子设备。RTC通常包括一个计时器和一个能够记录日期和时间的电池。它可以独立于主控芯片工作ÿ…...

C++ | Leetcode C++题解之第275题H指数II
题目: 题解: class Solution { public:int hIndex(vector<int>& citations) {int n citations.size();int left 0, right n - 1;while (left < right) {int mid left (right - left) / 2;if (citations[mid] > n - mid) {right m…...
编写DockerFile
将自己的项目或者环境通过Docker部署到服务器需要一下几个步骤: 打包项目或者环境 编写Dockerfile文件 运行Dockerfile文件,构建DockerImages镜像,将DockerImages存入DockerHub或者存入阿里云镜像仓库 服务器pull下DockerImages镜像&#…...

TCP并发服务器多线程
1.创建线程‐‐pthread_create int pthread_create( pthread_t *thread, // 线程 ID 无符号长整型 const pthread_attr_t *attr, // 线程属性, NULL void *(*start_routine)(void *), // 线程处理函数 void *arg); // 线程处理函数 参数: pthrea…...
技术速递|C# 13:探索最新的预览功能
作者:Kathleen Dollard 排版:Alan Wang C# 13 已初具雏形,其新特性侧重于灵活性、性能以及使您最喜欢的功能在日常中变得更容易使用。我们以公开的方式构建 C#,在今年的 Microsoft Build 大会上,我们会让您一睹 C# 13 …...

Python设计模式:巧用元类创建单例模式!
✨ 内容: 今天我们来探讨一个高级且实用的Python概念——元类(Metaclasses)。元类是创建类的类,它们可以用来控制类的行为。通过本次练习,我们将学习如何使用元类来实现单例模式,确保某个类在整个程序中只…...

构建自主可控的工业操作系统,筑牢我国工业安全堡垒
构建自主可控的工业操作系统,筑牢我国工业安全堡垒,鸿道(Intewell)操作系统为国家工业发展保驾护航。 7月19日,全球多地安装微软操作系统的电脑设备出现大规模宕机,导致“蓝屏”现象,严重影响了航空、铁路、医疗、金…...

WPF串口通讯程序
目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 using HardwareCommunications; using System.IO.Ports; using System.Windows;namespace PortTest {/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainW…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...