MemLong: 长文本的新记忆大师,可将上下文长度从4k提升到80k!

news2024/9/23 3:24:29

5fffed3c6ba2a022f0e32c1d31b85e81.png这篇文章介绍了一个名为MemLong的模型,它通过使用外部检索器来增强长文本建模的能力。MemLong结合了一个不可微的检索-记忆模块和一个部分可训练的解码器-仅语言模型,并引入了一种细粒度、可控的检索注意力机制,利用语义级别的相关块。在多个长文本建模基准测试上的综合评估表明,MemLong在性能上一致超越了其他最先进的大型语言模型。更重要的是,MemLong能够在单个3090 GPU上将上下文长度从4k扩展到80k

83b029803b40dce840bcd423d5e7a687.png
论文:MemLong: Memory-Augmented Retrieval for Long Text Modeling
地址:https://arxiv.org/pdf/2408.16967

研究背景

  1. 研究问题:这篇文章要解决的问题是大型语言模型(LLMs)在处理长文本时面临的挑战,特别是由于注意力机制的二次时间和空间复杂度以及生成过程中关键值缓存的内存消耗不断增加。

  2. 研究难点:该问题的研究难点包括:如何在不显著增加计算复杂度的情况下扩展上下文长度,以及如何避免在存储信息时出现分布偏移。

  3. 相关工作:该问题的研究相关工作有:

  • 稀疏注意力操作(Beltagy et al., 2020; Wang et al., 2020; Kitaev et al., 2020; Xiao et al., 2023a; Chen et al., 2023b; Lu et al., 2024)

  • 记忆选择方法(Dai et al., 2019; Bertsch et al., 2024; Yu et al., 2023)

  • 检索增强语言建模(Wu et al., 2022; Wang et al., 2024b; Rubin and Berant, 2023)

研究方法

这篇论文提出了MemLong,一种用于长文本生成的方法,通过使用外部检索器检索历史信息来增强长上下文语言建模的能力。具体来说,

  1. Ret-Mem模块:MemLong结合了不可微分的记忆模块和部分可训练的解码器语言模型,并引入了一种细粒度的、可控的检索注意力机制,利用语义相关的块。aff542d9a72e08b8f6c7aa2ad1729fde.png

  2. 检索过程:给定一个文本块,首先通过检索器获取相关的键值对(K-V对),然后将这些K-V对与当前输入上下文结合,调整模型参数以校准检索参考。

  3. 动态内存管理:当内存溢出时,使用计数器智能更新内存,保留最新、最相关的信息,丢弃最旧的和不经常访问的信息。

  4. 注意力重构:在模型的可训练上层,修订了注意力机制以融合长期记忆,提出了一种检索因果注意力机制,使每个标记能够同时关注局部上下文和块级别的过去上下文。e76f858dc12b5ed13459d474770b9a71.png

实验设计

  1. 数据集:评估MemLong在各种需要内存中长上下文处理的任务上的表现,包括长上下文语言建模和检索增强语言建模。使用的数据集包括英语书籍PG-19和BookCorpus、维基百科文章Wikitext-103和数学论文Proof-Pile。

  2. 模型配置:使用OpenLLaMA-3B作为预训练主干LLM,采用LoRA技术进行训练。训练MemLong的可训练参数从第14层到第26层,使用slimpajama数据集进行训练。

  3. 位置重映射:由于检索的不确定性,需要对位置嵌入进行重映射。局部上下文(最多2048个标记)接收标准的旋转位置编码,而记忆键被编码为在局部上下文窗口中的位置0。

结果与分析

  1. 长上下文语言建模:在PG-19、Proof-Pile、BookCorpus和Wikitext-103数据集上的滑动窗口困惑度(PPL)结果表明,MemLong在所有数据集上均显著降低了困惑度。与全量微调模型相比,MemLong在测试长度超过预训练限制时仍能继续降低困惑度。

  2. 上下文学习:在5个自然语言理解(NLU)任务(SST-2、MR、Subj、SST-5、MPQA)上的4次和20次演示实验结果表明,MemLong在大多数数据集上优于LongLLaMA,且训练参数和微调数据量显著减少。

总体结论

这篇论文提出的MemLong通过利用外部检索器显著增强了语言模型处理长文本的能力。MemLong成功将模型的上下文窗口从2k扩展到80k标记,并在长距离文本建模和理解任务中表现出显著的竞争优势。与全上下文模型相比,MemLong的性能提升了高达10.4个百分点。未来的研究方向包括将该方法应用于不同大小的模型,以及研究更广泛的检索器。

AI辅助人工完成。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

05ed94932f7719ef0dbbdee877128653.png

id:DLNLPer,记得备注呦

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

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

相关文章

SpringBoot后端快速搭建

SpringBoot 开发环境构建 首先创建一个maven项目 在pom.xml文件中添加以下依赖 <!-- 依赖的父级工程 --> < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > &l…

本地Gitblit使用

首先创建一个本地的gitblit的服务&#xff0c;创建流程如下&#xff1a; 【GitBlit】Windows搭建Git服务器详细教程_搭建gitblit服务-CSDN博客 GitBlit的使用教程-CSDN博客 创建好一个仓库后&#xff0c;分配好用户权限&#xff0c;再将项目拉下来&#xff0c;这里是再visua…

第二证券:什么是券商理财,券商理财有风险吗?

券商理财是指证券公司发行的理财产品&#xff0c;证券公司简称为券商&#xff0c;证券公司集结出资者资产主张建立的资产处理升值类产品便是券商理财产品。 券商理财产品中主要有质押式报价回购事务、收益凭证、券商资产处理计划三种。 1、质押式报价回购事务 是证券公司将契…

云计算和传统IT相比,有哪些优势?

云计算相比于传统的IT基础设施&#xff0c;具有以下一些显著的优势&#xff1a; 成本效益&#xff1a; 云计算通常采用按需付费模式&#xff0c;用户只需为实际使用的资源支付费用&#xff0c;避免了高昂的前期硬件投资和维护成本。 弹性计费方式使得企业可以根据业务需求灵活调…

如何做好API安全

在数字化时代&#xff0c;API&#xff08;应用程序接口&#xff09;已成为企业间、应用程序间乃至整个数字生态系统中数据交换与功能集成的核心&#xff0c;可 帮助跨多个设备互连多个应用程序或软件系统&#xff0c;定义它们可以发出的调用或请求的种类、调用的方式、应使用的…

C#复习封装_运算符重载

知识点一 基本概念 知识点二 基本语法 知识点三 实例 知识点四&#xff1a;使用 知识点五&#xff1a;可重载和不可重载的运算符 可重载运算符 算数运算符 #region 算数运算符//注意 符号需要两个参数还是一个参数public static Point operator -(Point p1,Point p2){retur…

【Flutter】Flutter安装和配置(mac)

1、准备工作 升级Macos系统为最新系统安装最新的Xcode电脑上面需要安装brew https://brew.sh/安装chrome浏览器&#xff08;开发web用&#xff09; 2.、下载flutter https://docs.flutter.dev/release/archive?tabmacos 大家网页后&#xff0c;选择对应的版本【Tips&#x…

VXLAN 为何采用UDP

VXLAN 简介 VXLAN是一种网络虚拟化技术&#xff0c;它通过在UDP数据包中封装MAC地址和IP信息&#xff0c;使得二层网络&#xff08;如以太网&#xff09;能够跨越三层网络&#xff08;如IP网络&#xff09;进行扩展。这种封装方式不仅支持TCP流量的传输&#xff0c;还能有效处…

Charles - 夜神模拟器证书安装App抓包-charles监控手机出现unknown 已解决

1.Openssl安装 http://slproweb.com/products/Win32OpenSSL.html exe下载安装后进行配置 新建系统变量OPENSSL_HOME&#xff0c;变量值设为(绝对路径)软件安装目录下的bin 直接浏览 编辑用户变量path&#xff0c;新建%OPENSSL_HOME%&#xff0c;最后点击确定 查看openssl版本&a…

读懂以太坊源码(4)-详细解析节点配置文件geth.toml

要读懂以太坊源码&#xff0c;先熟悉配置文件的每个配置项也是非常有必要的&#xff0c;以下代码是以太坊主网配置文件(geth.toml)的完整内容&#xff0c;后面是对每个配置项的说明&#xff1a; [Eth] NetworkId 0 SyncMode "snap" EthDiscoveryURLs [] SnapDisc…

Redis的持久化机制RDB与AOF

RDB RDB 是将 Redis 的内存中的数据定期保存到磁盘上&#xff0c;以防止数据在 Redis 进程异常退出或服务器断电等情况下丢失。 RDB 的优点是&#xff1a;快照文件小、恢复速度快&#xff0c;适合做备份和灾难恢复。 RDB 的缺点是&#xff1a;定期更新可能会丢数据&#xff0…

react文件详情

1、node_modules&#xff1a;存放项目所依赖的一些第三方包文件 2、public&#xff1a;静态资源文件夹 favicon.ico&#xff1a;导航图标 index.html&#xff1a;项目首页的html模版 logo192.png&#xff1a;logo图片 logo512.png&#xff1a;logo图片 manifest.json&#…

Databend Meta-Service 架构概述

Databend 的 meta-service 是一个基于 Raft 共识算法的分布式服务。其核心架构可以概括为一个 Raft 应用&#xff0c;如图中虚线框所示。 Raft 协议的主要组成部分包括&#xff1a; 分布式日志&#xff08;Log&#xff09;状态机&#xff08;State Machine&#xff09; 分布…

WPS 5亿用户受威胁:APT-C-60利用WPS Office漏洞发动间谍攻击

与韩国有关的网络间谍组织APT-C-60一直在利用Windows版WPS Office的一个零日代码执行漏洞&#xff0c;在东亚目标上安装SpyGlace后门程序。 WPS Office是由中国金山公司开发的一套办公套件&#xff0c;在亚洲很受欢迎。据报道,它在全球拥有超过5亿活跃用户。 这个被追踪为CVE…

静态检查工具

0. 简介 静态检查是软件开发过程中的一个重要环节&#xff0c;它在代码执行之前分析源代码或编译后的代码&#xff0c;以识别潜在的错误、代码规范违规、安全漏洞等问题。静态检查的好处包括提高代码质量、减少bug、增强安全性、提升开发效率等。它能够帮助开发者在早期发现问…

【消息中间件】Kafka从入门到精通

1 Kafka入门 概念 架构 1.1 概述 1.1.1 初始Kafka Kafka是一个由Scala和Java语言开发的&#xff0c;经典高吞吐量的分布式消息发布和订阅系统&#xff0c;也是大数据技术领域中用作数据交换的核心组件之一。以高吞吐&#xff0c;低延迟&#xff0c;高伸缩&#xff0c;高可靠…

浙大数据结构:01-复杂度2 Maximum Subsequence Sum

数据结构MOOC PTA习题 01-复杂度2 Maximum Subsequence Sum #include <iostream> using namespace std; const int M 100005; int a[M]; int main() {int k;cin >> k;int f 1;for (int i 0; i < k; i){cin >> a[i];if (a[i] > 0)//如果出现大于0则…

zm-tree-org 数据量过大时,全部展开后,根节点点击收缩,树形消失

zm-tree-org 数据量过大时&#xff0c;全部展开后&#xff0c;根节点点击收缩&#xff0c;树形消失 <zm-tree-orgref"tree"on-expand"onExpand"</zm-tree-org>export default {methods: {onExpand(e, data) {<!-- 当为根节点,且根节点为闭合时…

web3.0区块链元宇宙是什么

Web3.0 什么是 Web3.0 Web3.0是指基于区块链的去中心化在线生态系统&#xff0c;代表了互联网的下一个阶段。它是由以太坊联合创始人Gavin Wood在2014年创造的概念。Web3.0的发展是随着用户权利的增加和在互联网中角色的重要性不断进化的。 从互联网的发展历程来看&#xff0…

elementUI根据列表id进行列合并@莫成尘

本文章提供了elementUI根据列表id进行列合并的demo&#xff0c;效果如图&#xff08;可直接复制代码粘贴&#xff09; <template><div id"app"><el-table border :data"tableList" style"width: 100%" :span-method"objectS…