核心内容摘要
C++二叉搜索树实现详解
来自中科院信工所、清华大学、智谱AI的团队在EMNLP 2024上发表了一项相关研究LongRAG。
这个同时兼顾“全局上下文”和“事实细节”双视角的RAG范式直接解决了传统方法的核心痛点在三大多跳数据集上全面超越现有长文本LLM和先进RAG方法最高性能提升超17%长文本问答LCQA一直是大模型应用的痛点——要么长窗口模型“迷失在文本中间”要么传统RAG分块破坏全局信息检索满是噪声。
最近来自中科院信工所、清华大学、智谱AI的团队在EMNLP 2024上发表了一项相关研究LongRAG。
这个同时兼顾“全局上下文”和“事实细节”双视角的RAG范式直接解决了传统方法的核心痛点在三大多跳数据集上全面超越现有长文本LLM和先进RAG方法最高性能提升超17%论文地址https://aclanthology.org/
emnlp-main.
pdf 项目地址https://github.com/QingFei1/LongRAG
长文本问答的3大核心痛点在开始聊LongRAG之前先看看现在的长文本问答方法到底卡在哪“迷失在中间”问题长窗口LLM比如GPT-
k、Gemini在处理长文本时很容易忽略位于文档中间的关键信息给出错误答案。
全局信息被割裂传统RAG会把长文本切成小分块再检索这种操作直接破坏了文本的上下文结构导致模型拿不到完整的背景信息。
检索质量拉胯长文本里有效证据密度低传统RAG很容易检索到一堆无关分块引入大量噪声反而干扰模型判断。
而现有的改进方案也各有短板Self-RAG依赖自反思标记的准确性可能误删有效信息CRAG单独评估每个分块忽略了分块间的关联。
正是看准了这些问题LongRAG应运而生——它的核心目标就是让模型既能看懂长文本的全局结构又能精准抓住关键事实细节。
LongRAG核心设计LongRAG不是一个全新的模型而是一套即插即用的RAG系统范式。
它在传统RAG的“检索器生成器”基础上新增了两个关键组件形成“混合检索器→LLM增强信息提取器→CoT引导过滤器→LLM增强生成器”的完整流程。
整个系统的核心逻辑可以概括为先检索再分别提取全局信息和筛选事实细节最后融合双视角信息生成答案。
第一步混合检索器——精准召回相关分块检索是RAG的第一步也是基础。
LongRAG的混合检索器做了两件关键事智能分块以句子为最小单位切分长文本同时用滑动窗口让相邻分块保留重叠内容避免语义断裂末尾的短分块会和前一个合并保证语义连贯。
双编码器检索先用双编码器做粗粒度快速检索再用交叉编码器做细粒度语义匹配最后借助FAISS提升检索效率拿到和问题最相关的top-k分块。
第二步LLM增强信息提取器——找回全局上下文这一步是解决“分块割裂全局信息”的关键。
传统RAG直接用检索到的小分块喂给生成器而LongRAG会把这些分块映射回原始长文本段落然后让LLM基于完整段落提取全局信息I_g。
具体来说系统会把检索分块对应的原始长段落拼接起来通过精心设计的prompt引导LLM提炼出文本的背景知识、逻辑结构等全局信息——相当于给模型补上了“上下文说明书”。
第三步CoT引导过滤器——过滤噪声锁定事实细节这一步是解决“检索噪声”的核心采用两阶段策略生成CoT全局线索让LLM基于所有检索分块生成一条思维链CoT这条CoT会明确回答问题需要哪些关键信息相当于给过滤器一个“检查清单”。
基于CoT筛选分块用CoT作为判断标准逐一评估每个检索分块是否和问题相关标记出“有用”的分块形成事实细节集合I_d。
这个过程既能过滤掉无关噪声又能避免遗漏跨分块的关键信息比传统的关键词匹配靠谱得多。
第四步LLM增强生成器——融合双视角生成答案最后一步就是生成答案了。
生成器会把前面拿到的全局信息I_g文本背景结构和事实细节I_d关键证据融合起来再通过prompt引导生成准确的答案。
相比于传统RAG只用检索分块LongRAG的生成器同时拥有“全局视野”和“细节聚焦”两个优势自然能给出更靠谱的回答。
进一步优化自动化微调数据管道——低成本提升性能为了让LongRAG的各个组件更“听话”还搭建了一个自动化微调数据管道生成了名为LRGinstruction的高质量数据集数据来源基于HotpotQA、2WikiMultiHopQA等多跳数据集以及长文本数据集QASPER。
数据类型包含全局信息提取、CoT引导、分块过滤、任务导向四类数据覆盖系统的每个环节。
高效微调仅用2600个样本就能让ChatGLM、Qwen、Llama等模型的性能大幅提升训练时还用到了DeepSpeedZeRO3等优化策略降低算力成本。
实验结果主要结果团队在HotpotQA、2WikiMQA、MusiQue三大多跳数据集上做了测试结果如下对比长窗口LLM最高提升
94%和LongAlign、LongLoRA等专门优化长窗口的LLM相比LongRAG在所有数据集上都拿下了更高的F1分数。
原因很简单长窗口LLM容易漏掉中间信息而LongRAG通过全局信息提取和事实筛选能精准锁定关键内容。
对比先进RAG平均提升
16%相比于Self-RAG、CRAG等先进RAG方法LongRAG平均性能提升
16%。
Self-RAG的自反思机制可能放大错误CRAG忽略分块关联而LongRAG的双视角设计完美规避了这些问题。
对比传统RAG最高提升
1
25%这是最亮眼的结果和Vicuna、Qwen等模型搭建的传统RAG相比LongRAG最高性能提升了
1
25%。
传统RAG的分块割裂了全局信息而LongRAG通过“映射回原文提取全局信息”的操作直接补上了这个短板。
小型模型也能打赢大模型更惊喜的是微调后的小模型比如ChatGLM
B搭配LongRAG性能能超过未微调的大模型比如GPT-
5-Turbo。
这意味着LongRAG能有效弥补小模型的能力缺陷让面向垂直领域的低成本部署成为可能。
消融实验为验证 LongRAG 核心组件信息提取器、CoT 引导过滤器的有效性通过五类策略对比实验RAG-Base、RAG-Long、提取器Extractor单独使用、过滤器Filter单独使用、提取器过滤器联合使用RAG-Long vs. RAG-BaseRAG-Long 仅将检索分块映射回源长文本段落并直接输入生成器虽能捕捉更完整的语义连续性但引入了大量冗余噪声性能提升未达预期无法稳健超越 RAG-Base。
Extractor vs. RAG-LongExtractor 在 RAG-Long 基础上新增全局信息提取步骤从映射后的源段落中提炼Ig全局结构与背景知识并与检索分块共同输入生成器。
该策略在三大数据集上均实现显著性能提升尤其在具备强上下文学习能力的模型上效果更突出既解决了 RAG-Long 冗余文本导致的响应质量问题又为模型补充了关键全局信息。
Filter vs. RAG-Base单独使用 Filter 仅在少数场景下实现微小性能提升。
因过滤本质是信息缩减过程缺乏全局信息支撑时难以精准判断分块与问题的关联性无法充分发挥作用。
ExtractorFilterEFvs. 其他策略EF 联合策略在绝大多数场景下取得最优性能。
Extractor 负责捕捉长文本全局有效信息Filter 基于 CoT 全局线索筛选关键事实细节Id二者协同提供了更精炼、低噪声的输入。
实验显示EF 不仅能有效缓解 “迷失在中间” 问题还能减少输入生成器的 Token 数量在降低推理成本的同时实现了优于单一组件的性能且在使用微调后小参数开源模型时仍能达到甚至超越依赖昂贵在线 API 模型的效果兼顾了性能与部署成本。
04、
总结LongRAG 的成功给长文本问答提供了一个全新的思路不用死磕模型的长窗口能力而是通过 RAG 系统的范式创新就能解决核心痛点。
总的来说LongRAG处理长文本信息的核心逻辑以信息压缩为核心且全程依赖大型语言模型LLM的能力其过程兼具“small2big”的显著特征一方面针对检索获取的top-k片段通过思维链CoT引导的筛选与压缩机制精准提炼关键事实细节另一方面对这些top-k片段对应的原始长文本块借助LLM完成全局信息的提取与压缩整合其中的上下文结构与背景知识形成双视角信息支撑。
但该方法存在明显局限一资源消耗极高提取、过滤、压缩等核心环节均依赖LLM算力对计算资源的要求严苛二未能从根本上破解全局信息获取的核心痛点—— 对 top-k 片段对应的长文本块进行 LLM 压缩时受限于模型输入长度上限仍可能造成部分全局信息的丢失或遗漏难以彻底规避长文本处理中全局信息不完整的问题三依赖单次检索质量LongRAG 仅采用一轮检索策略若初始检索未能召回关键分块后续的提取和过滤环节再精密也无法弥补源头信息缺失的缺陷可能导致整个系统性能大幅下降四数据集存在潜在偏差其微调数据集 LRGinstruction 依赖 ChatGLM
B-128k 生成这类大模型自身可能存在的标注偏差会影响下游组件的泛化能力在跨领域场景中可能出现性能波动。
尽管 LongRAG 在现有对比基线长上下文 LLMs、先进 RAG 方法、Vanilla RAG中表现突出但毕竟是 2024 年的工作LongRAG 依赖 LLM 对长文本块进行压缩提取的模式受限于输入长度仍难以完全覆盖复杂长文本的全局关联。