当前位置: 首页 > news >正文

20260526_204029_RAG外部检索是多余的,英伟达最新成果颠覆认知

INTRA:用 decoder 的 cross-attention 查询做检索,同一份预编码状态做生成。训练 164K 参数,在多跳 QA 上超越 BGE、Qwen3-Embedding、Jina Reranker 等 9 种检索基线。

RAG 一直有个被忽略的问题

RAG 的标准架构是这样的:

  1. 检索器(BM25 / BGE / ColBERT)从语料中找到相关文档
  2. 生成器(LLM)把检索到的文本重新编码,然后生成答案

这个架构有个根本问题:检索器和生成器在不同的表示空间里工作

检索器在 embedding 空间打分,生成器在 transformer 隐藏状态空间理解文本。检索器觉得"相关"的文档,生成器不一定觉得有用——这就是retriever-generator mismatch。这个问题一直存在,但大家习惯了,就把它当成了 RAG 的固有代价。

NVIDIA 的 INTRA 论文问了一个更本质的问题:

既然注意力本身就是 query-conditioned 的信息选择机制,为什么不让模型自己检索自己的编码表示?

INTRA的解题思路

注意力 = 检索

先看注意力的计算:

再看检索的计算:给定查询 q,在文档集合 {k₁, …, kₘ} 中找到最相关的——本质上就是对 qk^T 打分排序。

两者都是 query-conditioned matching over candidate states。注意力就是检索,检索就是注意力——它们是同一个数学操作的不同实例化。

INTRA 把这个等式变成了工程实现:

  1. 用编码器把语料中所有 chunk 预编码为 {k₁, …, kₘ}
  2. 在问题后附加几个可学习的 retrieval token,让 decoder 的 cross-attention 查询状态 qₗ 对全语料所有 chunk 打分(用 ColBERT 风格的 MaxSim)
  3. 选 top-n chunk,用它们的同一份预编码状态作为 cross-attention 上下文,正常生成答案

两遍 decoder 前向传播,共享一份编码状态。不需要重新编码,不需要外部检索器。

RQWK:一个精巧的工程技巧

标准 Transformer 有一个问题:每层的 key 投影矩阵 W_{K,l} 不同,所以每层需要不同的编码表示 K_l。如果直接用 INTRA,存储开销从 O(M) 爆炸到 O(L×M)。

INTRA 提出了Reverse-QWK(RQWK):把 key 投影移到 query 侧。

标准做法:K_l = RMSNorm(K) · γ_{K,l} · W_{K,l}(每层不同的 key 表示)

RQWK:存储一份 K̄ = RMSNorm(K),query 侧做 q̃_l = (q_l · W_{K,l}^T) ⊙ γ_{K,l}

数学上完全等价,但所有层共享同一份编码表示。检索的 MaxSim 和生成的注意力都在同一个空间里计算——检索和生成真正统一了

训练和推理

训练164K参数,其余全部冻结

INTRA 的训练量小到不可思议:

  • 编码器:冻结
  • 解码器:冻结
  • 只训练:retrieval token 嵌入 ρ(~164K 参数)+ 层聚合权重 α(272 参数)

总共不到 17 万参数,在一个 4B 参数的模型上训练。

训练目标也很简单:对 oracle evidence chunk 的 soft cross-entropy——让 retrieval token 学会"把概率质量放在正确的证据 chunk 上"。

这么小的训练量就能起作用,说明检索能力主要是预训练模型内蕴的,INTRA 只是把这种能力"暴露"出来。

效率:预编码状态跨查询复用

标准 RAG 的步骤:

  1. 检索文本
  2. 生成器重新编码检索到的文本
  3. 解码

INTRA 的步骤:

  1. 检索预编码状态
  2. 直接解码(跳过重新编码

当语料是静态的(大多数企业知识库都是),预编码状态只需计算一次,之后每个查询都复用。10 亿 token 的语料,8-bit 量化后约 2.5TB 存储——不小,但对于企业级部署是可行的。

多跳 QA 上超越所有检索基线

在四个 Wikipedia QA 基准上评估:

检索质量(完整证据召回率)

INTRA 在HotPotQA、2WikiMultihopQA、MuSiQue三个多跳基准上,完整证据召回率全面超越 9 种检索基线,包括:

  • 稀疏方法:TF-IDF、BM25
  • 密集方法:BGE-large、Qwen3-Embedding-0.6B/4B
  • 重排序:Jina Reranker
  • 混合方法:Hybrid RAG (RRF)
  • ColBERT 风格 MaxSim 基线

为什么多跳场景特别强?因为 INTRA 的检索信号来自 decoder 的注意力权重——它天然编码了"回答生成需要什么信息"。多跳问题需要组装多个证据片段,decoder 的查询状态能感知这种需求,引导检索到所有必要的证据。

单跳 Natural Questions 上优势不大——只需要找一个直接支撑段落,decoder 引导的多证据组装没有太多发挥空间。

端到端 QA 质量

方法HotPotQA EM2Wiki EMMuSiQue EM
BM2530.222.58.3
BGE-large36.827.411.2
Qwen3-Emb-4B39.530.113.7
Hybrid RAG40.130.814.2
INTRA41.331.615.8

用同一个 T5Gemma2 生成器,INTRA 检索的文档生成的答案质量最好。

Gap Closure:同一个 decoder 做检索+生成比换更强的生成器更有效

INTRA 定义了 Gap Closure = (EM_INTRA - EM_random) / (EM_oracle - EM_random),衡量 INTRA 检索多大程度上弥合了"随机 chunk"和"完美证据"之间的差距。

结果:用同一个 T5Gemma2 decoder 做检索+生成,Gap Closure 最大。换成更强的生成器(Qwen2.5-7B、Qwen2.5-72B),EM 绝对值更高,但 Gap Closure 反而下降——因为更强的生成器有自己的注意力模式,INTRA 检索的证据和它的注意力不完全对齐。

这进一步证明了核心论点:检索和生成在同一个表示空间里工作,比检索器+生成器各搞各的要好。

写在最后

INTRA 的核心论点不是"RAG 不好",而是"RAG 的检索和生成不应该在两个表示空间里工作"。

注意力本身就是检索——这是一个被忽略了太久的等式。当你让同一个模型用自己的注意力查询去检索自己的编码表示,检索器-生成器失配就消失了,多跳推理的证据组装也变得更精准。

当前的限制也很明显:基于 T5Gemma2 4B,开源的编码器-解码器模型远不如 decoder-only 模型丰富和强大。但如果这个方向成立,未来的大型编码器-解码器可能会让 INTRA 的优势更加显著。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

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

http://www.cnnetsun.cn/news/2591628.html

相关文章:

  • LLM网关:从成本失控到智能路由,构建AI应用的核心基础设施
  • RAG检索结果不够准?揭秘“双塔+单塔“组合背后的精准秘诀!秒懂工业级RAG架构核心!
  • SVM模型可解释性新视角:正交多项式核与ORCA框架深度解析
  • ESP32硬件IIC驱动SHT30温湿度传感器,从官方例程到实战避坑(附完整工程)
  • 你的电机速度跳来跳去?STM32 HAL库编码器测速的滤波与防溢出实战指南
  • 告别重复登录!用Playwright连接已打开的Chrome浏览器,保留你的会话和Cookie
  • 用STM32和OLED屏做个土壤湿度监测仪(附完整代码和接线图)
  • 别再只测总功耗了!用万用表实测ZCU104开发板在不同Linux负载下的电流变化
  • ViT如何‘喂’给Diffusion Model?图解U-ViT中Patch、Time Token与Long Skip的融合细节
  • 避坑指南:解决Unity Standard Assets导入后GUIText报错(附两种代码修改方案)
  • 从零构建本地语音AI智能体:技术选型、架构与实战优化
  • ESP32开发环境搭建进阶:从Arduino IDE到VSCode+PlatformIO的平滑迁移指南
  • 从“隔离”到“连接”:手把手教你用数字隔离器(如Silicon Labs的Si86xx)搞定STM32与树莓派的“安全对话”
  • 两分钟为AI助手注入实时金融分析能力:FinanceKit MCP实战指南
  • 5分钟搞定Windows AirPods电量显示与低延迟音频优化
  • 别再只会apt install了:深入理解Debian/Ubuntu中ps、netstat等命令的包依赖关系
  • 突破向量检索瓶颈:实现微秒级Graph-RAG的架构设计与性能优化
  • AI时代设计胜任力框架:从界面输出到系统定义的转型路径
  • 为内部工具集成 AI 能力时如何通过统一 API 网关简化运维
  • 芯片供电网络设计避坑指南:当PNS遇到IR Drop和Congestion冲突时怎么办?
  • Zookeeper可视化工具选型指南:为什么我最终选择了PrettyZoo(附3.5.7版本配置避坑点)
  • HyperAgents:AI智能体如何实现自主代码优化与安全自我改进
  • 从Iris到实战:用sklearn的train_test_split划分数据,新手最容易踩的3个坑
  • OK3588开发板多屏显示实战:如何用Uboot菜单灵活切换HDMI和eDP屏幕
  • 告别蓝牙!用STM32F103和NRF24L01搭建2.4G无线数传,实测对比与选型心得
  • 基于稀疏自编码器与DBSCAN的雷达脉冲信号无监督分类方法
  • 告别卡顿!用轻薄本+SSH+X11转发,远程流畅运行Vivado 2019.2全攻略
  • BadApple播放器进阶:优化0.96寸OLED的帧率与流畅度(STM32+SD卡方案)
  • 软件定义汽车中的DevOps实践与CI/CD创新
  • AI应用成本优化实战:从Token账单拆解到架构级降本策略