RAG中的代表性上下文压缩方案总结:从RECOMP、CompAct到COCOM

今天是2024年11月5日,星期二,北京,天气晴

昨天有说到RAG中的长文本压缩,现有的上下文压缩方法主要分为基于词汇的压缩(硬提示,如LLMLingua和RECOMP)和基于嵌入的压缩(软提示,如Gist、AutoCompressor和ICAE)。前者通过选择或总结上下文中的重要词或短语来减少上下文大小,后者则通过嵌入模型将上下文转换为较少的嵌入token。

但这个对于不同的场景,会有不同的方案,我们来具体看下RAG这个场景的代表方案,可以收藏后续看。

一、基于硬提示的RAG上下文压缩方案

1、RECOMP

《RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation》, https://arxiv.org/abs/2310.04408

其核心思想为,通过在上下文增强之前将检索到的文档压缩成文本摘要来提高语言模型的性能,同时减少计算成本。

实现上,包括两个压缩器,

一个是提取式压缩器,从检索到的文档集中选择相关句子。该方法训练一个双编码器模型,将句子和输入序列嵌入到固定维度的嵌入空间中,并通过计算它们的内积来评估句子的有用性。最终摘要是从与输入最相关的句子中选择的前N个句子。

一个是生成式压缩器,通过综合多个检索到的文档中的信息来生成摘要。该方法从一个极端规模的LM(如GPT-3)中蒸馏出一个轻量级的生成式压缩器,使用教师模型生成摘要,并通过一个裁判模型评估生成的摘要对目标任务的表现,选择表现最好的摘要进行训练。

2、CompAct

《Compressing Long Context for Enhancing RAG with AMR-based Concept Distillation》, https://arxiv.org/pdf/2405.03085,其思想在于,使用基于AMR(Abstract Meaning Representation)的概念蒸馏算法来压缩长文本,通过从AMR图中提取关键概念节点,将冗余的支持文档转换为简洁的概念集。

在具体实现上,首先是设计基于概念的RAG框架,该框架通过从原始支持文档中提取的关键概念来增强LLMs的推理能力。框架包括三个主要组件:信息检索、概念蒸馏和基于概念的推理。

其次在这个基础上,采用一种AMR概念蒸馏算法,将支持文档从连续序列转换为离散概念,核心思路为:使用mBart-based解析器将支持文档解析为AMR图;设计SplitSnt函数将AMR图分割成基于句子的子图;通过深度优先搜索(DFS)遍历AMR图中的节点,提取关键概念并格式化为概念集合;处理特殊角色(如:name, :wiki, :date-entity)以确保概念的完整性和一致性;使用ConceptFormat和ConceptBacktrace函数过滤和回溯概念,确保概念与原始支持文档的语义一致。

3、FAVICOMP

《Familiarity-aware Evidence Compression for Retrieval Augmented Generation》,https://arxiv.org/abs/2409.12468,一般RAG面临的主要挑战是LM难以过滤掉多个证据片段中的不一致和不相关信息。FAVICOMP通过引入一种新的集成解码技术,主动降低压缩证据的困惑度,使其对目标模型更熟悉。

具体包括两个步骤:

一个是证据压缩,首先,使用一个压缩模型将检索到的证据文档压缩成一个与输入相关的简洁上下文。压缩模型的目标是将证据文档生成一个查询相关的摘要。

另一个是集成解码,为了使压缩后的证据对目标模型更加熟悉,FAVICOMP引入了集成解码技术。具体来说,在解码过程中,结合压缩模型和目标模型的token概率,选择概率最高的token。

二、基于软提示的RAG上下文压缩方案

1、xRAG

《xRAG: Extreme Context Compression for Retrieval-augmented Generation with One Token》(https://arxiv.org/abs/2405.13792, https://github.com/Hannibal046/xRAG),这个工作通过模态融合的方式将文档嵌入直接投影到LLM的表示空间中,从而实现极端的压缩率。

实现上,xRAG通过重新解释密集检索中的文档嵌入,将其视为检索模态的特征,从而实现上下文压缩。具体地,xRAG引入了一个模式投影器W,该投影器被训练以直接将检索特征E投影到语言模型(LLM)的表示空间中。这样,输入到LLM的表示就从传统的嵌入层Emb(D⊕q)变为W(E)⊕Emb(q),大大减少了输入的长度。

2、COCOM

《Context Embeddings for Efficient Answer Generation in RAG》, https://arxiv.org/pdf/2407.09252,这个工作通过一个压缩器模型将长上下文压缩成少量上下文嵌入。压缩器模型与生成器模型相同,使用相同的预训练语言模型,并通过自编码任务,训练压缩器模型和生成器模型联合学习如何有效地压缩和解压缩上下文。

自适应压缩率:压缩嵌入的数量可以根据压缩率ξ和输入长度n进行调整:

例如,当压缩长度为128的上下文时,压缩率为64,得到2个上下文嵌入,输入减少了64倍。

此外,还可以处理多个检索到的段落上下文,即上下文独立压缩后,使用[SEP]特殊标记在嵌入之间进行区分,然后将其输入到LLM中

总结

本文主要针对RAG,整理了5个现有方案,感兴趣的可以看具体实现细节。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

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

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

相关文章

创新材料科技:铜冷却壁助力高炉节能降耗

高炉用铜冷却壁是高炉内部的一种构件,通常用于高炉的炉身部分。它的主要功能是在高炉冶炼过程中冷却炉壁,以防止炉壁过热。铜冷却壁通常由铜制成,因为铜具有良好的导热性和耐腐蚀性,能够有效地将热量从高炉内部传导到外部&#xf…

免费送源码:Java+ssm+MySQL ssm小区车辆信息管理系统的设计与实现 计算机毕业设计原创定制

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作…

云轴科技ZStack在CID大会上分享VF网卡热迁移技术

近日,2024中国云计算基础架构开发者大会(以下简称CID大会)在北京举行。此次大会集中展示了云计算基础架构技术领域最前沿的科创成果,汇聚众多的技术专家和行业先锋,共同探讨云计算基础设施的最新发展和未来趋势。云轴科…

ES6中数组新增了哪些扩展?

ES6中数组新增了哪些扩展? 1、扩展运算符的应⽤ ES6通过扩展元素符 … ,好⽐ rest 参数的逆运算,将⼀个数组转为⽤逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...documen…

「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider 和 Progress 组件

Slider 和 Progress 是鸿蒙系统中的常用 UI 组件。Slider 控制数值输入,如音量调节;Progress 显示任务的完成状态,如下载进度。本文通过代码示例展示如何使用这些组件,并涵盖 进度条类型介绍、节流优化、状态同步 和 定时器动态更…

GitHub个人主页美化

效果展示 展示为静态效果,动态效果请查看我的GitHub页面 创建GitHub仓库 创建与GitHub用户名相同的仓库,当仓库名与用户名相同时,此仓库会被视作特殊仓库,其README.md(自述文件)会展示在GitHub个人主页…

Windows 命令提示符(cmd)中输入 mysql 并收到错误消息“MySQL不是内部或外部命令,也不是可运行的程序或批处理文件?

目录 背景: 过程: 1.找到MySQL安装的路径 2.编辑环境变量 3.打开cmd,输入mysql --version测试成功 总结: 背景: 很早之前安装了Mysql数据库,想查询一下当前安装的MySQL客户端的版本号,我在命令行界面输入mysql --verion命令回…

<项目代码>YOLOv8 夜间车辆识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

太强了!Ollama + MaxKB零代码本地搭建个人知识库AI应用,数据安全,还可以有权限控制!!

零代码本地搭建AI应用 📚 借助开源的,大模型应用不再遥不可及 🚀 当提到“大模型”和“本地部署”,很多人可能第一反应是:“这是不是只有那些顶尖的技术大牛才能搞定?” 其实,随着开源工具的发…

Unreal5从入门到精通之如何在指定的显示器上运行UE程序

前言 我们有一个设备,是一个带双显示器的机柜,主显示器是一个小竖屏,可以触屏操作,大显示器是一个普通的横屏显示器。我们用这个机柜的原因就是可以摆脱鼠标和键盘,直接使用触屏操作,又可以在大屏观看,非常适合用于教学。 然后我们为这款机柜做了很多个VR项目,包括Uni…

Docker安装XXL-JOB分布式调度任务

一、持久化 1、下载 xxl-job 源码,找到持久化脚本 2、创建 xxl-job 数据库,将上述文件中的脚本在本库执行即可 create database xxl_job charset utf8mb4 collate utf8mb4_general_ci; 二、安装 1、下载 xxl-job 镜像 docker pull xuxueli/xxl-job-admin:2.4.1 2、创建…

【华为HCIP实战课程三十】中间到中间系统协议IS-IS路由渗透及TAG标识详解,网络工程师

一、路由泄露 1、默认情况Level 1不会学到Level2的明细路由,L2可以学到L1的明细路由 2、FIB数据转发,路由负载,通过随机数据中的五元组hash,hash值决定数据走哪条链路 R1设备ping和telnet通过抓包查看走的都是S1/0/0接口 抓包进行过滤;ip.a…

如何将MySQL彻底卸载干净

目录 背景: MySQL的卸载 步骤1:停止MySQL服务 步骤2:软件的卸载 步骤3:残余文件的清理 步骤4:清理注册表 步骤五:删除环境变量配置 总结: 背景: MySQL卸载不彻底往往会导致重新安装失败…

死锁(Dead Lock)

目录 一. 死锁出现的场景 1. 一个线程, 一个锁对象 2. 两个线程, 两个锁对象 3. N个线程, M个锁对象 二. 造成死锁的必要条件 1. 锁是互斥的 2. 锁是不可被抢占的 3.请求和保持 4. 循环等待 三. 死锁的解决方案 1. 预防死锁 2. 死锁产生后的解决 一. 死锁出现的场景…

【Android 系统中使用CallStack类来追踪获取和操作调用栈信息】

Android系统CallStack类的使用 定义使用方法使用场景注意事项应用举例 定义 在 Android 系统中,CallStack 类是一个用于获取和操作调用栈信息的工具类。这个类通常用于调试和日志记录,以帮助开发者了解函数调用的顺序和位置。以下是您提供的代码片段的解…

深度学习基础知识-残差网络ResNet

目录 一、ResNet 的核心思想:残差学习(Residual Learning) 二、ResNet 的基本原理 三、ResNet 网络结构 1. 残差块(Residual Block) ResNet 的跳跃连接类型 2. 网络结构图示 四、ResNet 的特点和优势 五、ResNe…

【Mac】安装 VMware Fusion Pro

VMware Fusion Pro 软件已经正式免费提供给个人用户使用! 1、下载 【官网】 下拉找到 VMware Fusion Pro Download 登陆账号 如果没有账号,点击右上角 LOGIN ,选择 REGISTER 注册信息除了邮箱外可随意填写 登陆时,Username为…

基于springboot+vue实现的网上书店系统 (源码+L文)

基于springbootvue实现的网上书店系统 (源码L文)4-104 5.1 系统主要功能设计 整体系统的主要功能模块如图5-1: 图5-1系统总体功能图 5.1.1 用户端功能 用户端的主要功能设计包括首页、图书信息、商城公告、购物车等模块,这些功…

鸿蒙5.0时代:原生鸿蒙应用市场引领开发者服务新篇章

前言 10月22日原生鸿蒙之夜发布会宣布HarmonyOS NEXT正式发布,首个版本号:鸿蒙5.0。这次“纯血鸿蒙”脱离了底层安卓架构成为纯国产的独立系统,仅凭这一点就有很多想象空间。 目前鸿蒙生态设备已超10亿,原生鸿蒙操作系统在中国市…

Python 多个版本管理 -- 最简方式

目录 一、下载Python文件 二、安装文件,并配置环境变量 三、重命名Python.exe 四、配置完毕,开始使用,效果图 一、下载Python文件 Python 官方地址The official home of the Python Programming Languagehttps://www.python.org/downloa…