本文揭示了RAG系统中常被忽视的关键环节——检索与生成之间的处理管道。研究发现大语言模型存在位置效应(首因和近因效应),需将最相关文本块置于提示词前端。文章详细分析了重排序、去重、Token预算管理、提示词架构优化等关键技术,并提出了混合搜索、MMR去重、XML标签结构化等经过验证的最佳实践,帮助开发者构建更高效的RAG系统,避免检索成功但生成失败的困境。
“检索独占了所有的聚光灯,但真正决定系统在暗处成败的,却是检索与生成之间的环节。”
检索效果堪称完美。
返回了五个文本块,相关性分数均在0.85以上,恰好是用户需要的政策文档。答案就在第三个文本块中。
但回复遗漏了关键细节。这不算是完全的幻觉。更像是模型浏览了一遍而没有仔细阅读。
你调试检索器,调优嵌入模型,调整文本块大小。但检索本身从来不是问题所在。
问题出在其他地方:这些文本块是如何被组合成提示词的。它们出现的顺序如何。它们周围有多少上下文信息。模型是否真的能够利用你检索到的内容。
这是没人警告你的那一层:检索和生成之间发生了什么。你的向量数据库传递相关文本块。你的大语言模型生成回复。中间的增强层决定了你的检索是否真的有意义。
位置仍然重要
大语言模型不会均匀地读取上下文。
斯坦福大学和Meta的研究人员在2023年发现了这一点。他们将关键事实埋藏在检索文档的不同位置,然后测量准确率。结果是什么?一条U形曲线。模型对最先出现的内容(首因效应)和最后出现的内容(近因效应)关注强烈。中间的部分被忽视了。
这种情况有所改善。GPT-4o和Claude 3.5 Sonnet在位置处理上不像GPT-3.5-Turbo那样吃力。这种效应并未消失。它被削弱了,但并未消除。架构原因依然存在:Transformer的注意力机制,通过softmax归一化和"注意力sink"的quirks,仍然对早期token分配了不成比例的权重。
所以:把你最好的文本块放在最前面。这不费吹灰之力,还能防范位置效应。无论你使用哪种模型都有效。
RAG提示词示意图:文本块3具有最高的相关性分数(0.91),但位于第3位。最优位置将其放在首位。(所有插图均由作者提供)
解决方案:重新构建你的提示词。将最高相关性的文本块移到开头。将次要上下文放在中间。对于复杂查询,考虑在末尾添加摘要。
重排序算法:最佳文本块保持在位置1(首因效应),第二好的移到末尾(近因效应),其余填充中间部分。
2023年研究中的U形注意力曲线。虽然较新的模型使这条曲线趋于平缓,但这种模式并未完全消失。
检索之后实际发生了什么
大多数RAG教程展示的是一个简洁的图示:
查询 → 检索器 → 大语言模型 → 回复
检索器和大语言模型之间的箭头隐藏了整整一个处理管道。
其实,那个箭头隐藏了很多东西:
你的检索器返回候选结果,通常是按嵌入相似度排名前20-50的文本块。那些原始结果存在问题。有些文本块重叠,重复相同的信息。有些相互矛盾。有些是基于关键词匹配,但并不能真正回答你的问题。将它们直接输入大语言模型会浪费token并引入噪声。
处理管道将这些原始候选结果转换为优化的上下文。它通过相关性阈值进行过滤。它移除近似重复项。它使用比嵌入相似度更能理解查询-文档关系的模型进行重排序。它处理矛盾。它扩展有前景的文本块以包含周围上下文。然后,最终,它将所有内容组装成大语言模型实际可以使用的提示词结构。
跳过这些步骤中的任何一个,你都是在放弃质量。
检索和生成之间的隐藏管道:50个候选文本块通过过滤、重排序和去重缩减为4-6个优化后的文本块。
重排序是收益最大的地方。向量相似度快速但浅层。它比较文档的压缩表示,为了速度牺牲了细微差别。交叉编码器重排序器通过完整的Transformer注意力机制一起处理你的查询和每个文档,捕捉嵌入遗漏的关系。
有效的模式:广泛检索(前50个候选),精确重排序(保留前5个)。Pinecone的基准测试显示,这种两阶段方法比单纯的向量搜索提高了14-30%的检索质量。生产系统显示的数字也类似。
双编码器检索快速但浅层。交叉编码器重排序缓慢但深层。两者结合给你速度和精度。
对于重排序模型,Cohere Rerank可以很好地处理大多数用例。如果你不是所有文档都是英文,它的 multilingual 特性会有所帮助。对于自托管部署,BAAI的bge-reranker-ver2-m3在不产生API成本的情况下提供了相当的质量。
去重解决了一个你可能不会注意到直到它给你带来代价的问题。使用滑动窗口的文本分块策略会产生重叠。检索五个文本块,其中三个可能包含相同的段落。这不仅仅是浪费token。重复可能使模型偏向于过度强调重复的内容。
最大边际相关性(MMR)很好地处理这个问题。理念是:你添加的每个新文本块应该是相关的,但也应该与你已经选择的内容不同。没有理由包含三个说同样事情的文本块。
矛盾处理更难。当你的检索器返回相互矛盾的文本块时,模型应该怎么做?系统经常自信地引用错误的来源,因为它在上下文中最先出现。
对于时间矛盾,解决方案是元数据。包括时间戳,并在新内容涵盖相同领域时过滤旧内容。LlamaIndex有一个EmbeddingRecencyPostprocessor可以自动完成这个任务。
对于权威冲突,对你的来源进行加权。官方文档应该覆盖用户生成的内容。主要来源应该击败摘要。明确的元数据标签让你在管道中实现这些偏好。
当存在合法的模糊性时,诚实的方法是用清晰的归属呈现两种观点。强迫虚假的共识会产生听起来自信但会误导用户的回复。
没人教你的Token预算
上下文窗口有上限。这个你知道。但在这些限制内的预算分配是没人教的部分。
128K的上下文窗口听起来很大,直到你考虑到所有竞争空间的东西。你的系统提示词需要空间。用户的查询占用token。你需要为回复本身预留容量。剩下的才是你检索上下文的实际预算。
一个合理的分配:系统提示词1500 token,用户查询500 token,输出预留4000 token。在128K模型上,这为上下文留下了约122,000个token。足够多了,对吧?
理论上,是的。在实践中,更多并不总是更好。即使改进的长上下文模型,在某个点之后也存在收益递减,额外的文本块添加的是噪声而不是信号。模型必须筛选更多内容才能找到相关的内容。
Token分配现实:只是因为你能够填满128K并不意味着你应该这样做。质量优先于数量。
最佳点通常是大多数查询的4-6个文本块。在此之后,每个额外的文本块都与已包含的文本块竞争相关性。除非新文本块包含真正独特的信息,否则它会稀释而不是丰富内容。
当你需要更多上下文时,压缩胜于截断。
微软的LongLLMLingua实现了4倍压缩,同时在问答基准测试上提高了21%的准确率。它使用困惑度对token重要性进行评分,并保留与查询相关的内容,同时丢弃填充内容。压缩后的上下文包含的文本更少,但信号更多。
替代方案RECOMP提供提取式压缩(选择关键句子)和抽象式压缩(生成摘要)。任何一种方法都优于naive截断,后者基于位置而非重要性丢弃内容。
压缩在处理相关信息分散的长文档时效果最好。对于检索场景良好分块的内容,保持在4-6个高质量文本块内比压缩更大的集合效果更好。
真正有效的提示词架构
你如何构建最终提示词比大多数教程承认的更重要。
基本架构有两层:建立规则的持久系统提示词,以及注入查询时上下文的动态用户提示词。混合这些层会导致不一致。将它们保持分开。
你的系统提示词应该定义:
- • 角色和人格(“你是某公司的技术支持助手…”)
- • grounding规则(“仅使用提供的上下文回答。如果上下文不包含答案,请说明。”)
- • 格式规范(“使用[1]、[2]符号引用来源”)
- • 拒绝模式(“不要回答关于竞品的问题”)
此提示词在查询间保持不变。规则普遍适用。
你的用户提示词应该包含:
- • 检索到的上下文,清晰界定
- • 实际的用户查询
- • 任何特定于查询的指令
分隔符的选择影响解析准确率。XML标签在Claude和受过结构化数据训练的模型上优于markdown和纯文本。我使用、和作为边界。
一个效果良好的结构如下:
Naive排序将关键信息埋在注意力死角。优化位置利用首因效应和近因效应。
<documents><document source="policy-handbook.pdf" page="12">[chunk content here]</document><document source="faq-updated-2024.md">[chunk content here]</document></documents><query>[user's question here]</query>源元数据启用引用。页面编号让用户能够验证。清晰的结构帮助模型从指令中解析内容。
你应该包含什么元数据?源标题,是的。时间敏感内容的时间戳,是的。如果需要引用,页面编号,是的。
你应该排除什么?内部相关性分数、文件系统路径、编码信息、调试数据。这些消耗token但不帮助生成。如果元数据不能帮助模型更好地推理,就不要包含。
日志中不显示的失败
良好的检索指标不能保证良好的回复。注意检索成功后发生的失败模式。
引用幻觉是偷偷摸摸的。回复听起来权威,包含括号引用,但完全错误地说了哪个来源说了什么。事实可能是正确的。但归属不是。
这是因为引用准确性和事实准确性是独立的。模型可以从上下文中提取正确的信息,同时(如果这个词甚至适用于大语言模型的话)误记它来自哪个文本块。生产系统需要验证,将具体的主张追溯到具体的来源。
上下文中毒是我称之为当低相关性文本块挤掉好的文本块时。你的检索器返回十个文本块。七个是中等水平。三个正是你需要的。那七个稀释了信号,不是通过位置,而是通过音量。模型试图使用一切而不是找到最好的部分。
更严格的相关性阈值有帮助。限制你的文本块数量也有帮助。如果你不确定,宁可要更少的好文本块也不要更多平庸的。
当你的索引缺乏新鲜度信号时,就会出现时间陈旧。检索器返回一个2022年的政策文档,因为它完美地匹配了查询术语。那项政策在2024年被替换了。但你的管道不知道这一点。
基于元数据的过滤可以捕获这个,但前提是你索引时间戳并以新鲜度感知进行查询。对于快速变化的领域,考虑将新鲜度作为与相关性并列的排名因素。
推理碎片化扼杀多跳查询。用户提出的问题需要连接来自多个文本块的事实。每个文本块都检索成功。模型无法合成它们,因为它们在提示词中语义上相距甚远,缺乏桥接上下文。
分层文本分块在这里有所帮助。LlamaIndex的句子窗口检索在检索时嵌入单个句子,但在查询时扩展到周围的段落。桥接上下文自动随之而来。
真正有效的方法
在构建生产级RAG系统之后,这些模式是经得起检验的:
检索:混合搜索结合BM25关键词匹配和密集嵌入,通过Reciprocal Rank Fusion合并。这能捕获任一方法单独会遗漏的查询。Anthropic关于Contextual Retrieval的研究显示,混合方法减少了67%的检索失败。
重排序:云部署用Cohere Rerank,自托管用bge-reranker。始终重排序。延迟成本是值得的。
去重:MMR的lambda值约为0.6。你想要相关性,但也想要多样性。
文本块数量:大多数查询4-6个。只有当你确实需要跨多个来源综合时才更多。
位置策略:最佳文本块放在前面。支撑上下文填充中间。如果有空间,末尾放摘要。利用提示词的两端。
提示词结构:XML标签用于上下文界定。包含源和时间戳元数据。排除内部管道数据。
评估:将检索指标(精确率、召回率)与生成指标(忠实度、 groundedness)分开。当回复失败时,你需要知道哪个组件失败了。
这不是唯一有效的方法。但它可以防止你调试错误的层。
赚取其价值的层
大多数RAG讨论聚焦于检索。这是有道理的。如果你没有检索到正确的文本块,下游的任何东西都无法拯救你。
但与增强相比,检索是一个已解决的问题。向量数据库是成熟的。嵌入模型很好而且越来越好。重排序正在成为标准。检索层有明确的最佳实践和可衡量的基准。
增强层,检索和生成之间的空间,更年轻且更混乱。位置效应、压缩策略、提示词架构、在检索指标中不显示的失败模式。纸上看起来相同的系统在这里在生产中分道扬镳。
当你的RAG系统表现不佳时,抵制首先责备检索器的本能。检查你把文本块放在提示词的什么地方。检查你是否包含了太多上下文。检查你的提示词结构是帮助还是阻碍模型解析相关信息的能力。
检索可能没问题。真正决定模型是否真正使用你找到的东西的是接下来发生的事情。
AI时代,未来的就业机会在哪里?
答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。
掌握大模型技能,就是把握高薪未来。
那么,普通人如何抓住大模型风口?
AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。
因此,这里给大家整理了一份《2026最新大模型全套学习资源》,包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等,带你从零基础入门到精通,快速掌握大模型技术!
由于篇幅有限,有需要的小伙伴可以扫码获取!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
为什么大家都在学AI大模型?
随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!
这些资料有用吗?
这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
大模型全套学习资料已整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】