JevGPT双系统架构:让AI研究员先扫证据再动脑
2026年的秋天,一群在KAUST做研究的人遇到了一个挺奇怪的现象。他们让AI агent去做一件听起来很简单的事情:给它一个问题,让它在一堆文档里找答案。结果发现,很多时候AI明明把相关的文档都搜出来了,这些文档就安静地躺在检索结果列表里,AI却压根没去翻开看。这就好比你去图书馆查资料,管理员帮你把十本相关的书都推.
2026年秋天,KAUST的一群研究者碰上了一件怪事。
他们给AI agent派了个听着不难的活儿:抛出一个问题,让它在成堆文档里找答案。可结果常常是,AI把相关文档都检索出来了,那些文档就静静躺在结果列表里,它却根本没点开看。
这就像去图书馆查资料,管理员把十本相关的书全推到你面前,你只翻了前两本就开始动笔。剩下八本不是没找到,是找到了没打开。
这篇论文瞄准的,正是“找到了却没用上”这个毛病。
**检索覆盖率不等于证据利用率**
这是全文最要紧的一点洞察。直觉上,AI搜索能力越强,表现该越好吧?其实不然。搜得多不等于看得过来,看得过来不等于看得仔细,看得仔细也不等于能把看到的东西用在刀刃上。
论文里举了一个很能说明问题的发现:有研究显示,哪怕“预览召回率”已经饱和,继续加大检索深度,候选文档的召回率照样能往上走。也就是说,你能找到更多相关文档,可这些新找到的往往排在后面,压根没被真正打开读过。
矛盾就来了。
AI研究agent的流程是:搜索、检查候选文档、判断下一步怎么搜。每一步都得花时间去“看”文档,而看文档本身是有代价的。每看一篇都要调一次大语言模型去理解它,那么在有限的研究预算(时间、金钱、API调用次数)里,agent能看的文档数量就非常有限。看得越仔细,看得就越少;看得越快,理解可能就越浅。
**研究团队的办法是:把“看文档”和“做研究决策”分开,交给不同的脑子去处理。**
这个思路来自丹尼尔·卡尼曼那本有名的心理学书《思考,快与慢》。书里说人脑有两套系统:系统一管快速、直觉式的判断,比如看到一张脸立刻知道对方是不是生气了;系统二管慢速、费力的深度推理,比如解一道数学题。
JevGPT就是按这个思路搭起来的一套双系统架构。
系统二(System Two)交给GPT来做,负责制定研究计划、决定下一步搜什么、整合各方证据、最后给出答案或排序结果。这就是那个“慢脑子”,想得深,但想得慢。
系统一(System One)用一个叫Jev的模型来做,负责快速检查某个文档片段里有没有所需证据、给文档打分、决定要不要接着往下读。这是那个“快眼睛”,扫得快,也扫得准。
两者怎么配合?系统二先提出一个明确的“证据目标”(比如“这篇文档有没有提到某个人的生日”),系统一带着这个目标去快速扫描大量候选文档,把真正相关的原文片段抓回来,再交给系统二综合判断。
这里有个关键设计:系统一的判断是并行、独立进行的。
每份文档的判断互不干扰,可以同时跑。好比雇了十个助理,每人分一本书去找某一页内容,而不是你一个人把十本书依次翻一遍。没有并行机制,agent就得排队一本本看,时间全耗在等待上;有了并行,十本书的检查时间大约等于看一本书。
**Jev模型:三种判断方式撑起快速扫描能力**
要弄懂系统一怎么工作,得先看看Jev这个模型本身能干什么。
Jev会给出三种类型的判断结果:
Noul 判断给出的是一个概率值,用来衡量某段文本符不符合某个特定属性。举例来说,判断“这段话里有没有能回答问题的证据”,它输出的就是 0 到 1 之间的一个概率。
Choice 判断输出的则是一组选项上的概率分布。拿一篇被切成若干文本块的长文档来说,每个块含有目标信息的可能性有多大,Choice 判断都会逐一给出。
Score判断:给出一个等级评分的分布,比如一篇文档的相关性评级落在“不相关、部分相关、相关、高度相关”四个档位里的哪一档。
这三种判断方式,听着有点像考试里的选择题、填空题和评分题凑在一起。它们的共同点是:判断范围都被严格限定在一个明确目标之内,不需要模型自己去琢磨“我现在到底要干什么”这种开放式问题。系统一之所以能跑得快,原因就在这里——它不用做复杂推理,只针对一个具体问题给出判断。
论文里有一句话,把这个设计的根本逻辑讲得很清楚:研究规划和局部证据判断所需的信息范围并不一样。
规划要的是整个调查过程积累下来的全部历史;判断单篇文档,则只要有一个明确的证据目标就够了。两种任务因此天然适合交给不同的模型、不同的计算资源。硬让同一个重型模型包办所有事情,就好比让一个每次开会都要深思熟虑的决策者亲自去翻每一份文件,他的时间会被大量耗在不需要深度思考的环节上。
**三大核心机制:证据定位、相关性评估、证据发现**
JevGPT的系统一具体做三件事,分别对应问答任务和排序任务的不同需求。
证据定位(Evidence Localization),用于问答任务。
系统二提出一个局部的证据问题(比如“这个村庄的别名是什么”)后,系统一会逐个检查候选文档的每个区域,先用Noul判断估计该区域是否回答了这个问题,再用Choice判断定位到具体是哪个文本块。概率达到设定阈值(论文里设的是0.5),这个文本块就会被选中并返回原文。
这里有个很细腻的设计叫“自适应阅读”:当前找到的证据如果还不够,系统一可以自己决定要不要检查更多候选文档,或者去读周围的上下文来补全信息。这个决策同样由一个Choice判断来做。
论文举了一个很形象的例子:问的是苏格兰村庄Ancrum有什么“别名”。系统二直接追问“这个小村庄有什么别称或昵称”,系统一随即在一篇看似无关的文档(题为Jedburgh)中翻出一句原文——“Ancrum是个美丽的地方,有时被称为‘Little Lovely’。”
另一组Pi-Serini没走这条路,它没提出这种精确到局部的追问,而是泛泛浏览了村庄历史协会的主页。页面上最抢眼的口号是“一个拥有辉煌历史的小村庄”,Pi-Serini便拿它当答案交差,结果答错了。
这个对比特别能说明问题。
没有明确的局部证据目标,AI就很容易被文档里“看起来重要”的句子带偏,因为宣传语往往写得又醒目又像是答案。而一个具体到“别名是什么”的问题,能帮系统一在一堆文字里精准捕捉到“sometimes known as”这种明确表示“这就是别名”的语言标记。证据目标越具体,噪音干扰就越小。
相关性评估(Relevance Assessment),用于文档排序任务。
在这一步,系统一的任务是给每篇文档的各个区域打分:先由Score给出“不相关、部分相关、相关、高度相关”四档的概率分布,再挑出期望值最高的那一档,作为该文档的代表分。文档只有越过设定阈值才会进入后续处理——论文里这个阈值定在0.25,算比较松的门槛。
为什么要设置得这么宽松?
之所以放宽,是因为在局部判断阶段就把真正有用的文档筛掉,代价太大;宁可多留一些可能相关的,交给系统二后面去判断。说白了就是“先别急着下结论”,跟面试初筛一个道理:简历关掌握的信息太少,容易看走眼,面试官往往愿意多放几个人进下一轮,而不是在这一关就刷人。
证据发现(Evidence Discovery),这是三个机制里最主动的一个。
前面两个机制都是“系统二发问、系统一作答”的被动路子;证据发现不一样,系统一会主动翻查更多候选文档,不必等系统二开口。它设了一个“候选检查深度K”,每完成一次搜索,排名在K以内的候选文档都有资格被这个分支主动查看。
落到问答任务上,这个分支先把原问题按句子和从句边界切成若干条小“线索”,再看哪些文档命中了这些线索。命中的线索越多、该线索在其他文档中出现得越少(也就是越具体、越稀缺),这篇文档的优先级就越高。这套打分公式背后其实是一种信息论直觉:罕见的线索信息量通常更大,比那些随处可见的泛泛之谈更该优先处理。
对排序任务来说,优先级直接就是前面相关性评估给出的那个概率分数。
证据发现挑出的候选文档,会以异步方式回填到研究历史记录中,供系统二在下一步搜索或阅读时调用。后台默默干活、结果随时能取——系统二因此不必每步都停下来等所有检查跑完,整体效率也就上去了。
**候选检索:混合BM25,兼顾文档和段落两个维度**
在系统一开始判断之前,得先有候选文档可供检查,这就是检索环节。
JevGPT用的是一种叫“混合BM25”(Hybrid BM25)的检索方法。
BM25*:一种经典的文本检索算法,按查询词在文档中出现的频率、文档长度等因素打分,在信息检索领域已经用了几十年,属于基础方法,没有涉及任何深度学习。
整篇文档打分是一种做法,切成段落分别打分是另一种。JevGPT把两条路都走一遍:先算出整篇文档的BM25分数,再找出文档里得分最高的那个段落算一次BM25,两个分数分别归一化到0到1区间,最后取平均值,当作这篇文档的最终得分。
这样折腾的理由是什么?
一篇长文档整体看可能跟查询词关联度一般,但其中某一段却高度相关。拿一篇讲某地区历史的文章来说,也许只有中间一段详细写了某场战役的细节。只盯着整篇文档的得分,这种藏在角落里的黄金段落容易被埋没;反过来只看段落得分,文档整体的语境相关性又会被忽略。两个分数合在一起,整体印象和局部亮点都不落下。
招聘也是这个道理:简历上的整体履历要看,某个具体项目里的突出表现也要看。只看履历,可能错过某方面特别强、整体经历却平平的人才;只看单个项目,又可能被一次偶然的亮眼表现带偏。两者结合,判断才相对靠谱。
**实验结果:又快又省又准**
设计讲了这么多,实际效果如何?论文在两个基准测试上做了验证。
一个叫BrowseComp-Plus,是固定语料库上的问答测试集,共830道题。
另一个叫NeuCLIRBench,属于文档排序测试集,覆盖105个检索主题,涉及英语查询检索英语、波斯语、俄语、中文文档的英译版本。
BrowseComp-Plus上,JevGPT准确率达到90.48%,在全部对比方法中排第一。
速度比它慢的方法有BCP/ReAct(77.11%)、Pi-Serini(82.05%)、Agentica(84.46%)、AtlasNav(89.16%)、RISE(89.88%)、Reason-ColBERT(90.00%)。Reason-ColBERT的准确率其实已经离JevGPT很近,代价是每道题要研究136.2秒,JevGPT只需91.7秒,快了近三分之一;API成本上,Reason-ColBERT每道题1.609美元,JevGPT两套系统加起来才0.668美元,降了一半还多。
NeuCLIRBench上,JevGPT的nDCG@20为0.5390,同样在所有方法中最高。
nDCG@20*:衡量排序质量的指标,把排名前20的结果里相关文档的位置和相关程度一并算进去,数值越高排序越好,1.0是满分。
对照组里成绩最好的Pi-Serini是0.5240。每个主题JevGPT只消耗158K token(系统二),Pi-Serini要708K,相差四倍多;耗时上JevGPT平均79.3秒,Pi-Serini需要177秒。
这组数据说明一件挺关键的事:JevGPT的高分不是堆更多计算资源硬拼出来的,花更少的时间、更少的钱,反而拿到了更好的结果。实际应用里这一点分量很重,毕竟没人愿意为提升1%的准确率掏十倍的钱。
**证据分析:到底多看了多少文档**
最终得分还不足以说明全部问题。论文另外做了一组证据获取分析,追踪金标准相关文档从被检索出来,到被inspection(检查)、被delivery(原文送达系统二)、再到被citation(引用进答案)的整条链路,看每一步还剩多少存活下来。
候选文档池(Candidate Pool)这一步,JevGPT和Pi-Serini的覆盖率其实不相上下,都在接近100%的水平。差距从检查这一步开始出现:JevGPT在检查环节的召回率明显更高,到了原文送达这一步,差距进一步拉大。
这能说明什么?
说明在能找到多少相关文档这件事上,JevGPT和Pi-Serini差别不大;真正的差距在找到之后能不能真正看进去、读出来。这正好对上文章开头的核心观察:**检索覆盖率和证据使用率之间隔着一道鸿沟,JevGPT要解决的就是跨越这道鸿沟的问题。**
**消融实验:每个模块到底贡献了多少**
为了弄清各个组件起了多大作用,研究团队做了一组逐步叠加的消融实验:从Pi-Serini的基础版本出发,依次加上混合BM25、证据定位、证据发现三个组件,每轮测试都保留此前加上的全部组件。
结果显示:
提升最大的是混合BM25,准确率从72.05%跳到79.52%,多了7.47个百分点。证据定位的增益相对温和,从79.52%到81.20%,提升1.68个百分点,但搜索次数从8.70次降到7.17次,说明局部证据定位让AI少做了无谓的重复搜索。证据发现带来第二大提升,从81.20%跳到86.51%,涨了5.31个百分点,研究时间也从75.6秒降到70.2秒。
这些数字背后是个很朴素的道理:检索能力更强,先把地基打牢;局部阅读机制更聪明,才能在地基上挖得更深更快。两者缺一不可。
**不同的"慢脑子"表现差异也很大**
论文另做了一组对照实验:系统一(Jev)保持不变,只替换系统二所用的大语言模型,一共测了GPT-5.2、GPT-5.4、GPT-5.4 mini、GPT-5.5、GPT-5.6 Terra、GPT-6.1 Sol六个版本。
结果挺有意思。GPT-5.5准确率最高,92.29%,但成本也最贵,每题0.60美元;GPT-6.1 Sol准确率88.43%,成本仅0.132美元,性价比很突出;GPT-5.4 mini成本最低,0.071美元,可准确率只有79.76%,掉得明显;GPT-5.6 Terra用时最短,82.9秒。
这组数据其实指向一件事:系统二选哪个模型,并没有标准答案,关键看你更看重速度、成本还是准确率。
好比买车,有人图快,有人图省油,有人图便宜,没有哪辆车能在所有维度上都拿第一。论文把这种权衡画成了一条帕累托前沿曲线,让读者按自己的需求去挑。
**这个架构为什么重要**
回到开头那个问题:检索到的文档为什么会被闲置?
论文的答案,说到底是在讲agent的注意力资源有限,而传统架构没有专门机制去保护和优化这份注意力。深度推理也好,快速检查也罢,所有判断都交给同一个大模型完成,于是深度推理占用了本该留给广泛检查的资源,广泛检查又挤占了深度推理的时间。
JevGPT的做法,是把这两类任务显式拆给两个专门的系统:擅长快速局部判断的模型负责局部判断,擅长复杂推理和规划的模型负责规划。这算不上全新的理论突破,更像一种"术业有专攻"的工程智慧,但效果是实打实的——准确率提升、成本下降、速度加快,三个指标同时改善。在机器学习领域,这并不常见,通常你得在这几个维度之间做取舍。
论文还提到,这个思路与另外几项研究存在呼应。Jev-Mem用类似的快速判断机制去控制AI的记忆系统,Mnemon把LLM规划和Jev判断结合起来处理对话记录,SwiftSage则把快速动作模型和LLM规划器结合起来处理复杂交互任务。可见"快系统管局部,慢系统管全局"这个思路正被越来越多研究者验证和拓展,并非孤立的实验结果。
写在后面
读完这篇论文,让我印象最深的不是那张漂亮的准确率对比表,而是"别名"案例里的细节对比。
同一份材料摆在那里,两个系统读它的方式截然不同:一个心里揣着具体问题去翻,另一个只是从头到尾随便看。最后,前一个系统在另一份文件里挖出了那句要紧的话,后一个却被主页上的广告词牵着走了。这个例子指向一点:AI检索系统出问题,往往不在于"找不到信息",而在于"不知道自己在找什么"。
这背后是个人人都懂的老理儿:带着问题读书,跟随手乱翻,收效完全两码事,人和AI都一样。我们常把AI的短板归到算力不够,可这篇论文给出的提醒是,问题也可能卡在"任务定义"这种更靠底层的环节上。
论文里还有一处细节可以单独拎出来讲:证据发现机制中那个优先级公式,是按线索在各候选文档中出现的稀少程度来加权的。这套做法背后,其实藏着信息检索的一条老经验——证据越罕见,信息价值越高。它跟检索领域的老牌方法TF-IDF(词频-逆文档频率)思路相通,可见有些道理不管换哪个年代、哪套技术都站得住。
论文没啃下来的骨头也很清楚。眼下系统一和系统二是两个分别训练好的模型,硬拼在一块的。论文自己在"局限性"部分也承认,更理想的做法是有一个统一模型,让它自己判断何时走快系统、何时走慢系统,而不是靠人写规则来切。
这就引出一个让我好奇的问题:将来真出现这样一个统一模型,它自己学出来的"切换策略",会跟这篇论文里手工搭的架构差不多,还是会演化出一套完全不同的分工?