
你有没有遇到过这种情况:手机里存了几千张照片,想找去年夏天在海边拍的某一张,翻了半天翻不到。这时候你有两个选择,一个是打开相册的搜索功能,输入"海边"、"夏天"这些关键词,让系统帮你从几千张里挑出候选;另一个是干脆把手机里所有照片都翻一遍,边看边判断这张是不是你要的。
前者像检索,后者像长文本阅读。
AI领域里,大语言模型处理信息的时候,也面临同样的分裂。当信息量小到能塞进一次对话里,模型会把整段文字都读一遍,自己在脑子里判断哪些是有用的,这叫长上下文推理。但当信息量大到整个维基百科那种规模,没有模型能把几十亿字全部塞进一次对话里,这时候就得靠一个专门的检索系统先把可能有用的段落挑出来,再喂给模型,这就是检索增强生成。
问题是,这两套系统从来都是各干各的。
一个独立训练、独立部署的检索模型,加上一个独立的生成模型,两边的"脑回路"完全不同,排序逻辑也不一样。工程团队得维护两套系统,还得想办法让它们配合默契。这篇来自NVIDIA和Technion的论文,提出了一个挺大胆的想法:能不能让同一个模型,既负责挑信息,又负责用信息?这就是UNREAL,全称"统一检索与长上下文的单一模型"。
**信息筛选这件事,无论规模大小,其实是同一种操作**
这是整篇论文的出发点。无论你是在一篇几千字的文章里找答案,还是在几十亿字的维基百科里找答案,本质上都是"根据问题,从一堆候选段落里挑出相关的那些"。只是规模不同,一个是几百个候选,一个是几千万个候选。
既然本质相同,论文作者就问了一个挺有意思的问题:能不能用模型自己内部的表征能力,去完成这个挑选的工作,而不是外挂一个专门的检索器?
这个想法并不是凭空而来的。论文提到一项前序工作叫INTRA
INTRA*:Hoffer等人2026年的研究,证明了编码器-解码器架构的模型本身就具备一定的内在检索能力,模型不需要外部帮助也能从自己编码过的内容里找到相关片段。
但INTRA有个硬伤,它依赖编码器和交叉注意力机制,这套结构只适用于编码器-解码器模型。而现在业界主流的大模型,比如GPT系列、Llama系列,大部分都是只有解码器的架构
解码器只架构(decoder-only)*:一种大模型常见设计,模型只有一个负责生成文字的组件,没有单独的编码器来预先理解输入,信息处理和文字生成共用同一套网络。
UNREAL要做的,就是把INTRA这套"模型自己会检索"的思路,从小众的编码器-解码器架构,搬到主流的解码器架构上去,还得兼顾现在越来越常见的混合架构,比如把传统注意力机制和线性注意力、状态空间模型混在一起用的模型。
怎么让一个冻结不动的模型学会"查资料"
这里要先说清楚一件事:UNREAL没有对大模型本身做任何修改。
模型的所有参数都是冻结的
冻结*:训练过程中不更新某部分参数,让它保持原状,只调整额外添加的少量参数。
UNREAL只往模型里加了两类很小的"旋钮":一组叫检索令牌,一组叫层混合权重。这两组加起来一共不到50万个参数,占整个模型参数量的不到0.005%。
这是什么概念?打个比方,如果把一个300亿参数的大模型比作一座30万平方米的工厂,UNREAL往里塞的这点东西,连一个储物间都算不上,可能就是门口挂的一块指示牌。但这块牌子起的作用不小:它告诉模型"现在切换到检索模式",并且教会模型怎么从自己内部的神经元激活里,提炼出一个能用来匹配候选段落的查询向量。
具体是怎么运作的?整个流程分成两条线。
第一条线是给候选文本(论文里叫"chunk",也就是切好的文本块)编码。因为解码器模型没有单独的编码器,UNREAL就直接用这个冻结的大模型本身,把每个文本块喂进去,取出模型某个中间层的内部状态,当作这个文本块的"指纹"。
这里有个细节值得多说两句:论文发现,不是用模型最后一层的输出效果最好,而是中间偏后的某一层。
这符合最近一些研究的发现,就是语言模型的中间层往往包含更丰富的语义信息,最后一层更偏向于"要生成什么具体的词",中间层更偏向于"这段话在说什么"。
这就好比你让一个人复述一段话的大意,和让他一字不差地背出来,用的是完全不同的脑力活动。背诵需要精确到每个字,理解大意反而需要把细节模糊掉,抓住核心。UNREAL选的就是那个"理解大意"的中间层。
第二条线是给问题生成查询向量。UNREAL在问题文字后面,拼接上一串可训练的检索令牌,让模型把这些令牌当成问题的一部分来处理。因为解码器是从左往右处理文字的(专业说法叫因果注意力机制),把这些令牌放在最后,意味着它们能看到前面所有的问题内容和初始上下文,相当于把问题"消化"了一遍之后,吐出来的精华提炼物。
因果注意力机制*:模型在处理每个字的时候,只能看到它前面的字,不能看到后面的字,这是解码器类模型生成文字的基本机制。
拿到这些查询向量之后,UNREAL用一种叫MaxSim的打分方式,把查询向量和候选文本块的指纹逐一比对,算出相似度,分数最高的那些文本块就被选中。
MaxSim*:一种后期交互打分方法,最早在ColBERT检索模型中提出,做法是对查询里的每个词,在候选文本里找最匹配的那个词,取最大相似度,然后把所有词的最大相似度加起来。
训练的时候,用的是对比学习
对比学习*:一种训练方式,让模型学会把正确答案的表征拉近,把错误答案(负样本)的表征推远,常用的损失函数叫InfoNCE。
具体来说,论文用的是多正例的InfoNCE损失,正例是标注好的、真正包含答案的文本块,负例是通过BM25(一种经典的关键词匹配检索算法)挖出来的"难负样本",也就是那些关键词很像但其实不包含答案的干扰项。
训练只更新那两组小小的参数,模型主体始终不动。
这套机制真能在两千一百万条文本里大海捞针吗
理论说得再漂亮,也得看实测。论文用的测试场地相当硬核:一个30亿token、2100万个文本块的维基百科索引。这个规模意味着,模型要从2100万个候选里,精确挑出那几个包含答案的段落。
论文测试了四个不同的模型底座,包括纯注意力架构的Qwen3.5-4B和Muse-Glimmer-30B,还有混合架构的Qwen3.5-35B-A3B(线性注意力混合)和
Nemotron-3.5-Lightning-30B-A3B(Mamba与注意力混合)。这个选择本身就在证明一件事:UNREAL这套机制不挑架构,因为它读取的是模型内部的"残差流"
残差流*:神经网络层与层之间传递信息的通道,不管这一层用的是传统注意力、线性注意力还是状态空间模型,都会往这条流里写入和读取信息,这是UNREAL能够跨架构通用的关键。
测试结果相当亮眼。论文采用了一个很严格的指标,叫"完整证据召回率",意思是对于那些需要多步推理才能回答的多跳问题,必须把所有相关的证据段落全都找到,少一个都不算对。
在HotpotQA这个多跳问答数据集上,最好的UNREAL模型把recall@10(前10个结果里的召回率)从之前最强的检索器重排序系统的49.1%,提升到了73.2%,这是24个百分点的跃升。在2WikiMultiHopQA上,从31.7%提升到60.1%,几乎翻倍。在难度更大的MuSiQue上,从8.8%提升到14.4%,虽然绝对数字看起来不高,但这是因为MuSiQue本身就是出了名的难,需要串联多个独立事实才能拼出答案,哪怕只提升几个百分点,背后都是实打实的推理能力提升。
这里要插一句,论文对比的基准系统可不是弱手,包括了Qwen3-Embedding这样的专业嵌入模型,配合专门的重排序器,还有LightOn的多向量检索器。换句话说,UNREAL击败的不是一个过时的老方法,而是当下检索领域里公认的强力选手。
当"长文本阅读"被重新理解成"大海捞针"
论文接下来做的事情挺有意思:它把UNREAL这套为检索而生的机制,直接拿去处理长上下文任务,而且完全没有做任何针对长文本的额外训练。
这背后的逻辑是,很多号称"长上下文理解"的任务,其实本质上是证据稀疏问题。
就是说,一篇十万字的文档里,真正能帮你回答问题的,可能只有那么两三段话,剩下的全是噪音。这和检索任务的结构其实是一回事,只不过规模从几千万变成了几千。
如果不区分证据的稀疏程度,直接把整段文本一股脑塞给模型会怎样?论文给出了明确的答案:会被噪音拖垮。
这就像你在一个嘈杂的派对上找朋友说话,如果周围的人越来越多,哪怕你朋友的声音没变,你听清楚他在说什么的难度也会指数级上升。模型处理超长上下文的时候,面临的就是这种"信噪比"问题:信息还在,但周围的无关内容越堆越多,模型分辨真正重要信息的能力会随之下降。
论文为了验证这一点,专门构造了一个从8K到1亿token跨度的问答测试集,往真实的问答数据里灌入大量来自维基百科的干扰段落,逐步拉长上下文长度。结果非常直观:全文本推理的准确率随着上下文变长急剧下滑,而检索类方法要稳定得多,UNREAL在所有规模下都领先。
**在NoLiMa这个长上下文基准上,128K token长度时,全文本推理的准确率只有1.0%,而UNREAL达到了24.83%。**
这个对比有点触目惊心。1.0%几乎等于模型完全找不到答案,相当于随机蒙。这说明在128K这个长度下,就算答案真实存在于上下文里,模型自己也大概率找不到它,被海量的无关信息彻底淹没了。而UNREAL先把相关片段筛出来再喂给模型,等于帮模型先把噪音关掉,让它能听清真正要听的那句话。
在LV-Eval这个基准上,256K长度时,F1分数从49.97%提升到了54.66%。
论文还测试了NoLiMa这个基准的一个特殊设计:问题和目标答案之间没有字面上的关键词重合
字面匹配*:传统检索方法常常依赖问题和答案文本中共同出现的关键词来判断相关性,而NoLiMa这个基准特意避开了这种简单匹配,逼迫模型靠语义理解而非关键词对齐来找答案。
这个设计直接堵死了那些靠"关键词碰运气"蒙对答案的捷径,能在这上面表现好,说明UNREAL确实学到了某种语义层面的匹配能力,而不是投机取巧。
选多少段才是最优解
这里有个很实际的问题:到底该给模型喂多少个检索到的文本块?多了会不会反而有害?
论文做了个实验,专门研究"检索数量n"这个参数对最终效果的影响。结果呈现出一个倒U形:一开始增加n,召回率(找到正确答案的概率)在提升,准确率也跟着涨;但过了某个点之后,继续增加n,准确率反而开始下降,哪怕召回率还在涨。
这个现象其实挺反常识的。你可能会觉得,既然召回率还在提高,给的信息越多应该越保险才对。但实际情况是,当你塞进去的干扰段落越来越多,哪怕其中依然包含正确答案,模型也会被这些干扰项分散注意力,生成答案的质量反而下降了。
这就好比你在考试的时候,监考老师额外塞给你十份不相关的参考资料,哪怕其中真有一份是对的,你翻找和甄别的成本本身就会拖慢你,甚至让你抄错重点。信息不是越多越好,关键是信噪比。
论文还做了一个挺扎实的验证实验,想搞清楚这个检索能力到底是训练出来的,还是模型本身就自带的潜质。他们在完全没有经过检索训练的模型上,直接从注意力层里把每个文本块对应的key向量取出来做平均,再和问题的query向量做点积,看看这种"裸检索"能不能跑赢瞎猜的随机基线。
结果是能跑赢,但效果有限。这说明冻结的大模型内部确实天然存在某种检索信号,只是信号比较微弱,而UNREAL训练的那两组参数,本质上是在放大这个本来就存在但很弱的信号,而不是凭空发明了一种新能力。
省下来的不只是时间
既然UNREAL要先做一次检索,再做一次生成,听起来步骤反而变多了,会不会更慢?
论文给出的答案是:在上下文足够长的时候,反而更快。
原因在于计算复杂度的本质差异。全文本推理用的是标准注意力机制,计算量会随着上下文长度的平方增长,上下文翻倍,计算量变成四倍。而UNREAL在编码阶段,是把每个文本块独立编码的,文本块之间不需要互相"看一眼",这避免了大部分文本块间的注意力计算;生成阶段只处理被选中的那一小部分文本,计算量只随上下文长度线性增长。
论文给出了具体的测算:大约从18000个token开始,UNREAL用的浮点运算量就已经比全文本推理更少了。实际在H100显卡上用vLLM测得的首字延迟数据也验证了这一点,大约从32K token开始,UNREAL就能跑赢全文本推理,而且上下文越长,领先幅度越大。在1亿token这种极端长度下,速度提升可以达到几百倍甚至上千倍。
这背后的道理其实不复杂。全文本推理就像是让一个人读完一整本百科全书才能回答你的问题,而且每翻一页都要回头检查前面所有页之间的关联。UNREAL则是先用一个快速索引系统定位到可能有用的那几页,再专心读这几页。前者随着书越来越厚,读书和核对的成本会爆炸式增长,后者的成本则相对温和。
写在后面
读完这篇论文,有一个点让我反复琢磨:它其实在悄悄挑战一个被很多人默认接受的前提,也就是"把上下文窗口做得够大,检索问题就自然解决了"。
过去几年行业里对长上下文的追逐几乎成了一种军备竞赛,100万token、1000万token,窗口越做越大。但这篇论文用实打实的数据指出,窗口变大不代表模型真的能在里面找到它需要的东西。NoLiMa在128K长度下1.0%的准确率,是对这种"窗口越大越好"直觉的一记提醒:信息在那里,不等于模型能看见它。
另一个让我觉得有意思的地方是,论文最后提出了一个倡议,就是未来的长上下文基准测试,应该区分"证据稀疏"和"证据密集"两类任务。前者是那种答案只藏在少数几段里的问题,用检索式思路就能很好地解决;后者是那种需要综合整篇文档信息才能回答的问题,比如写一份摘要或者做风格分析,这种任务检索帮不上太多忙。目前很多长上下文测试把这两类混在一起评估,容易得出误导性的结论。这个区分其实挺重要,因为它提醒我们,不是所有看起来"需要长上下文"的任务,背后的真实需求都是一样的。
这篇论文没有解决的问题也很明显:它的训练数据全部来自维基百科问答,换到完全不同的领域,比如法律合同、医疗病历,这套检索能力能不能平滑迁移,论文里没有给出答案。另外,UNREAL每个文本块要存储多个压缩向量,存储开销比单向量的传统稠密索引要大,这在真正大规模部署的时候会是个现实的成本问题。
如果一个模型真的能做到"自己知道该看哪里",这是不是意味着,未来我们评价一个大模型的智能程度,不应该只看它答得对不对,还要看它有没有本事在信息过载之前,先把真正重要的东西挑出来。
Q&A
Q1:UNREAL是什么?
A:UNREAL是NVIDIA等机构提出的一种模型内置检索机制,它让一个冻结不动的大语言模型,通过添加不到50万个额外参数,同时具备从海量文本库检索信息和在长文本中筛选证据的能力,不需要额外的外部检索模型。
Q2:UNREAL和传统的检索增强生成有什么区别?
A:传统RAG需要一个独立训练的检索模型加上一个独立的生成模型,两套系统要分别维护和对齐。UNREAL只用同一个大模型,利用它内部的表征来完成检索和生成两件事,额外训练的参数极少,模型主体完全冻结不变。
Q3:UNREAL在长文本任务上效果如何?
A:在NoLiMa基准128K token长度下,全文本推理准确率只有1.0%,UNREAL能达到24.83%。在LV-Eval基准256K长度下,F1分数从49.97%提升到54.66%,同时上下文超过32K token后,UNREAL的推理速度也开始反超全文本推理。
更新时间:2026-11-06
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号