Skip to content

第 17 章 基准争议与评测陷阱 ​

2026 年 3 月,一家做 CRM 智能助手的团队把记忆系统从 A 换到 B。决策依据是一份公开对比:B 在长程对话基准上比 A 高 12 分。切换完成后的第一个月,销售团队反馈「助手记不住客户上周改过的预算口径」,投诉量比切换前翻了一倍。团队回头复测,用自己抽的 80 条真实客户会话,A 得 63 分、B 得 58 分——排序反了。

两个结果都不是伪造的。问题在于公开对比里 B 的高分来自单会话内检索,而真实业务需要跨会话对齐同一客户的多轮修订。评测回答的问题与业务问题不同,分数在基准内有效,跨出边界就失效。失效不伴随报错,所以最难发现。

本章处理的就是这条边界。上一章解决「同一个基准内的分数能不能信」,本章解决「两个都算对的分数为什么仍然不能比」。这两件事经常被混为一谈,后果是把可复现性当成可比性:一个基准做得再严谨,也只在自己定义的条件下成立。

边界由五个变量共同划定:数据集版本、判定器实现、prompt 模板、检索轮数、是否允许多跳。任何一个不同,都足以造成十几分的差距,而这个差距通常大于系统之间的真实能力差距。这意味着在多数情况下,厂商之间的分数比较测的是条件差异,不是能力差异。

本章先拆开这五个变量(17.1),再说明两个主要基准在性质上的差异(17.2),然后把这个差异换算成一个读者能直接使用的选型问题(17.3)。17.4 处理行业内的互相指控——这一节的方法是只给判断规则、不复述未核实的数字。17.5 列出五个具体陷阱,17.6 给出企业自建评测的最小可行方案。

17.1 为什么没有两个厂商的分数可以直接比较 ​

17.1.1 五个变量的具体影响 ​

数据集版本。 同一个基准在不同版本间可能增删题目、修订标注、调整难度分布。版本号不写清楚时,两个分数可能跑在两份不同的题集上。更隐蔽的是数据集的静默修订:上游修了几个标注错误,分数变化被归因于系统改进。

判定器实现。 「正确答案是柏林」这道题,严格匹配要求输出含「柏林」,宽松语义判定允许「用户现居德国首都」。同一份预测在两种判定下能差出十几个百分点。判定器本身的版本也会漂移——换了底层模型,判定口径就变了。

prompt 模板。 检索到的记忆如何拼进 prompt,直接决定系统能否用上它们。同一批检索结果,按「按时间倒序平铺」和「按相关性分组并标注来源」两种模板拼接,答案准确率不同。模板通常不公布,而它属于系统实现的一部分,不属于基准。

检索轮数。 允许一轮检索与允许多轮迭代检索,是两个难度级别的任务。多轮检索让系统可以先用宽泛查询定位,再收窄,这在长上下文场景下提升显著。若一方跑一轮、另一方跑三轮,分数不可比。

是否允许多跳。 需要跨三条记忆链推理的题目,允许图遍历的系统有结构性优势。这不是作弊,但它测的是另一种能力。

变量常见取值差异对分数的典型影响是否通常公布
数据集版本修订前后、子集与全量数分至十几分部分公布
判定器实现严格匹配 / 宽松语义十几分少数公布
prompt 模板平铺 / 分组标注来源数分极少公布
检索轮数单轮 / 多轮迭代十几分少数公布
多跳许可禁止 / 允许图遍历视题型而定少数公布

表 17-1 跨系统比较时的五个不可控变量

17.1.2 变量叠加的复合效应 ​

五个变量不是独立叠加的。判定器放宽会放大检索轮数带来的收益——多轮检索容易召回一批边缘相关内容,严格匹配下这些内容不算命中,宽松判定下其中一部分被算作正确。两个变量同时变化时,差距不是相加而是相乘。

这个复合效应解释了一个反复出现的现象:同一对系统在两份对比材料里的排序可以完全相反,而两份材料各自都如实描述了条件。差异不在诚实度,而在变量的组合方式。

一家做工业备件检索的团队做过一次交叉验证:把候选系统按「严格匹配 + 单轮」和「宽松判定 + 三轮」两种配置分别测一遍,排序结果互换。他们的结论不是「某一方作弊」,而是「在不锁定配置的情况下,任何排序都不成立」。

17.1.3 为什么统一 harness 也解决不了跨基准比较 ​

有人会推论:既然变量这么多,那就用同一个 harness 跑所有系统。这个推论只对了一半。统一 harness 解决的是同一基准内的可比性,它无法解决跨基准的比较,因为基准的定义本身不同——题集不同、能力维度不同、通过标准不同。

一家做工业设备维保的团队试过这条路:把三个候选系统都接到同一份自建题集上,结果可比性确实提高了。但他们随即发现自建题集只覆盖了「查历史工单」这一类任务,而生产环境里 40% 的查询是「这台设备的当前状态是什么」——这类问题需要时序推理,题集里一道都没有。统一 harness 让他们在一个错误的维度上得到了精确的排序。

代价在这里显形:统一 harness 的投入不小(写适配器、标 ground truth、维护题集),而它保证的只是内部一致性,不保证维度覆盖。一个覆盖不全的精确排序,比一个覆盖全的粗略排序更危险,因为它看起来更可信。

17.2 LoCoMo 与 LongMemEval 的性质差异 ​

17.2.1 LoCoMo:面向多会话对话记忆 ​

LoCoMo 给定一段跨多个会话的对话历史,问关于其中事实的问题。它的核心是「能不能在长对话里找对信息」,评测重心在召回与跨会话关联。

这类基准贴近对话型产品的真实形态:用户在多轮交流中逐步透露信息,系统需要把这些分散在时间轴上的片段关联起来。它的强项是检验检索在长历史中的定位能力,弱项是不区分「找到」与「正确使用」——只要召回了正确片段,通常就算得分。

17.2.2 LongMemEval:五项能力的综合基准 ​

LongMemEval(ICLR 2025,arXiv:2410.10813)是 500 道题的综合基准,评测五项能力:信息抽取、多会话推理、时序推理、知识更新、拒答。

五项并列意味着它测的不只是「找得到」,还包括「知道什么时候该说不知道」和「知道哪条信息更新」。这个结构与 LoCoMo 的单一重心形成对照:LongMemEval 上的高分必须同时满足五个方向,任何一项短板都会拉低总分;反过来,LongMemEval 的高分也不保证在 LoCoMo 式场景里表现好,因为两者的对话长度分布不同。

更关键的是 LongMemEval 论文报告的一个现象:商业助手与长上下文模型在持续交互中出现约 30% 的准确率下降。这个数字不是某个系统的缺陷,是这类架构在长周期使用中的共性表现。

维度LoCoMoLongMemEval
题量未在本书核验具体题数500 题
能力覆盖跨会话对话记忆信息抽取、多会话推理、时序推理、知识更新、拒答
主要失效模式长对话中召回偏移单点能力强但综合能力不均
适用判断对话型产品的基础召回长周期助手的综合能力

表 17-2 两个主要基准的性质对照

需要说明的是,本书不对 LoCoMo 的具体题量与版本作断言,因为该信息在公开材料中存在多版本表述。表格中标注「未在本书核验」是刻意的:一个无法核验的数字写进来,会让整张表失去可信度。

17.2.3 能力覆盖差异的后果 ​

两个基准的差异会直接改变选型结论。一个在 LoCoMo 上领先的系统,可能只在召回环节强;一个在 LongMemEval 上均衡的系统,可能在超长对话的召回精度上不如前者。选哪一个取决于业务更像哪一种。

判据是问一句:你的用户是「一次性问很多」还是「长期反复回来问」?前者接近 LoCoMo 的形态,后者接近 LongMemEval 的形态。问错这个问题的代价,就是本章开头那个 CRM 团队的遭遇——他们按 LoCoMo 式的高分选了系统,却需要 LongMemEval 式的能力。

17.3 30% 下降意味着什么 ​

17.3.1 结构性数字而非噪声 ​

30% 是一个结构性数字,不是噪声。它说明在短对话上跑出的高分,在长周期使用中会系统性崩塌,而崩塌幅度远大于系统之间的差距。

设想两个系统,短对话基准上分别是 92 分和 88 分。按 30% 的相对下降估算,长周期使用中大致落到 64 分和 62 分附近。原来的 4 分差距缩小到 2 分,而绝对水平下降了近三成。选型会上被认真比较的那 4 分,在真实使用中几乎不构成差别;真正决定体验的是「下降幅度是 30% 还是 45%」这个问题,而它通常没有被测。

17.3.2 提问顺序的改变 ​

这个推论改变了选型的提问顺序。第一个问题不该是「你多少分」,而该是「你的基准跑的是多少轮」。轮数决定了这个分数属于哪个能力区间:十几轮测的是检索精度,两百轮以上测的是时序一致性、知识更新与拒答。

一家做企业差旅助手的团队把这个问题问在了前面。他们要求三家候选在同一份 180 轮会话上复测,结果排序与短基准完全不同:短基准第一名掉到第三,原因是它在「用户三个月前改过报销标准」这类知识更新题上错误率偏高。这个问题在十几轮的题集里根本不会出现。

17.3.3 判据与代价 ​

判据可以写成一句:当你的生产会话平均轮数超过基准轮数一个数量级时,基准分数只能用于排除,不能用于排序。

代价是这类复测成本高。180 轮会话的构造成本、判定成本、以及需要业务专家标注 ground truth,都不是一次会议能完成的。愿意付这个成本的团队,通常也能避开最贵的那类错误;不愿付的团队,则会在上线后以客诉的形式支付同一笔成本,只是金额更高、时间更晚。

17.4 行业争议的正确读法 ​

17.4.1 争议的结构 ​

记忆系统领域在 2025 至 2026 年间出现过若干次公开的评测争议:一方公布复现结果,指出另一方的分数无法重现;被指控方回应称对方的复现条件不同。这类争论在本书写作时仍在进行,涉及的具体数字各方说法不一。

本书的处理方式是:不复述任何未经核实的指控数字。原因不是回避,而是这类数字一旦被引用,就会以「某本书写过」的形式获得可信度,而它实际上只是一个主张。读者若需要了解细节,应当直接查阅双方原始材料并自行判断条件差异。

17.4.2 三条可写下来的判断 ​

第一,当评测双方都是利益相关方、且没有中立仲裁者时,任何一方的复现结论都应视为「主张」而非「事实」。 这不是质疑动机,而是陈述一个结构性事实:复现者与被复现者都在市场里,双方的结论都会影响自身处境。在这种结构下,「谁对」往往无法通过材料判定。

第二,可复现的方法学比复现结论更重要。 一个团队公布了 harness、适配器和逐题结果,即便它的结论有争议,其他人在其基础上继续工作的成本也低。反之,一个只公布「我复现失败了」的声明,除了制造怀疑之外不产生可用信息。判断一条争议信息是否有价值,看它是否让第三方能继续往下走。

第三,条件差异的清单比结论更值得记录。 当两方分数不一致时,真正有用的产出是一份「哪些条件不同」的对照表。这张表能告诉读者:分歧来自数据集版本,还是判定器,还是检索轮数。若这张表能被填满,争议本身就已经被解决了一半。

17.4.3 这套读法的代价 ​

代价是它不提供结论。读者会希望知道「到底谁对」,而本章的回答是「在这个结构下无法判定,但你可以自己测」。这个回答不令人满意,但它是准确的。

对一个必须在两周内做出选型决定的团队,这套读法的实际帮助有限——它降低了误信的风险,却没有提供决策依据。此时更合理的做法是跳过争议、直接跑第 17.6 节的最小方案,用自己的 100 条任务给出结论。争议的价值在于提醒你外部分数不可直接采信,而不在于提供替代答案。

17.5 五个常见评测陷阱 ​

17.5.1 泄漏与同源 ​

陷阱一:题集泄漏进训练或记忆。 基准题目被用于微调,或被提前写入被测系统的记忆库,分数会虚高。检测方法是留出一份从未公开的题集做对照;若公开题集与私有题集分数差距超过十几个百分点,泄漏很可能存在。

陷阱二:judge 与被测系统同源。 用同一家厂商的模型既做被测系统又做判定器,会引入系统性偏袒——判定器倾向于认可与自己风格一致的输出。检测方法是换一个不同厂商的判定器重跑,看分数是否稳定。

这两个陷阱的共同点是它们不改变 harness 的正确性,只改变结论的有效性。一个完全按规范实现的基准,仍然可能同时踩中两者。

17.5.2 拒答与时近性 ​

陷阱三:只测召回不测拒答。 这是危害最大的一项。召回错了,用户可能察觉并纠正;记错了却自信作答,用户往往无从发现。某家做用药提醒的产品在内部评测中召回率很高,上线后出现把两种药名混淆的情况——评测集里没有一道「库里没有这条信息,应当拒答」的题,所以这个缺陷在评测中完全不可见。

陷阱四:忽略时近性导致旧事实干扰。 用户改了口径、换了住址、撤销了条款,旧记忆仍在库里且语义相近。若评测集只问「用户住哪」而不区分时间,系统答旧地址也会被判对。正确做法是构造成对题目:同一问题在两个时间点各有不同正确答案。

这两个陷阱的修复方式相同:在题集里显式构造「不该回答」和「答案已变」的情形。代价是标注成本上升——一道拒答题需要标注者确认「库里确实没有」,而一道时序题需要标注两个时间点的两个答案。

17.5.3 平均分掩盖长尾 ​

陷阱五:用平均分掩盖长尾崩溃。 平均 85 分可能来自 80% 的题接近满分加 20% 的题接近零分。后者在生产中表现为「大多数时候很好,偶尔完全不可用」,而这类失败对用户的伤害最大。检测方法是看分数分布的分位数,而不只看均值。

一个具体的判断标准:若最低 10% 的题平均分低于 20,则这个系统的长尾已经不可接受,无论均值多高。原因是生产中的失败不是均匀分布的,长尾题目对应的往往正是高价值、高复杂度的真实任务。

陷阱在分数上的表现检测方法
题集泄漏公开题集显著高于私有题集留出未公开对照集
judge 同源换判定器后分数波动大交叉判定
不测拒答召回率高但错误自信加入无答案题
忽略时近性旧事实被计为正确构造成对时序题
平均掩盖长尾均值高、低分位很差看分位数分布

表 17-3 五个评测陷阱的识别信号

17.6 企业自建评测的最小可行方案 ​

17.6.1 四个步骤 ​

自建评测不必从零设计基准。一个能在两周内跑起来、并在此后持续产生价值的最小方案包含四步。

第一步,从自己的 Trace 里抽 100 条真实任务。 抽样要覆盖失败过的任务,而不只是成功任务——只抽成功样本的评测集无法发现退化。100 条是经验下限:少于这个数量,单题波动会淹没系统改进。

第二步,人工标 ground truth。 每条任务标注「正确答案」与「可接受的等价表述」,并标注该题属于哪类能力(抽取、推理、时序、更新、拒答)。标注者需要业务背景,不能用通用标注外包替代。

第三步,固定 judge 版本。 判定器型号、prompt 模板、温度参数全部写入配置文件并纳入版本控制。判定器升级时必须重跑历史题集,产出对照,否则改进与判定漂移无法区分。

第四步,做 A/B 并记录每次变更。 每次改动系统(换嵌入模型、调阈值、改冲突策略)都在同一批题上跑前后对照,记录分数变化、逐题差异与成本变化。记录的目的是让「这次改动为什么值得保留」在三个月后仍可回答。

17.6.2 成本与失效条件 ​

这套方案的成本主要在第二步。100 条真实任务的人工标注,按每题 10 分钟估算约 17 小时,且需要业务专家而非普通标注员。代价是这套评测只覆盖自己的业务,无法与外部结果对照——它是内部决策工具,不是对外声明。

它也有明确的失效条件:当业务发生结构性变化(新增一类查询、更换上游数据源)时,题集需要重建,旧分数不再可比。一个不随业务更新的评测集,会在半年内退化成一份历史文档。

第三个代价是它无法验证「维度覆盖是否完整」。100 条抽样天然偏向高频任务,低频但高风险的场景(如涉及权限变更的查询)容易被漏掉。缓解方式是强制留出 20 条给低频高风险场景,即便它们在日常流量中占比很小。

17.7 本章小结 ​

本章确立三条判断。第一,跨厂商的分数比较在多数情况下测的是条件差异而非能力差异;五个变量中任何一个不同都足以造成十几分的差距,而这个差距通常大于真实能力差距。第二,基准的轮数比分数更重要:LongMemEval 论文报告的约 30% 长周期准确率下降说明,短对话高分在长周期使用中会系统性崩塌,因此选型的第一问应当是轮数而不是分数。第三,在双方都是利益相关方且无中立仲裁者的争议中,任何复现结论都是主张;可复现的方法学比复现结论更有价值,条件差异清单比胜负判定更有用。

三条判断的成立条件需要说明。第一条在读者能控制变量时最有用;若读者无法要求厂商按统一条件重跑,这条判断只能用于降低对分数的信任权重,不能用于排序。第二条的 30% 是论文报告的共性现象,不适用于所有架构——一个专门为长周期设计的系统可能下降更少,但本书没有可核验的数据支持具体数值,因此不给出估计。第三条在读法上要求读者接受「无法判定」这个结论,对需要快速决策的场景,这个答案的实际帮助有限,此时更合理的做法是自建小规模评测直接测。

本章与上一章共同构成了调优篇的判断基础:分数在基准内可信(第 16 章),跨基准不可比(本章)。两者合起来指向一个实践结论——外部分数只能用于初筛,真正的选型依据必须来自自己业务的评测集。

但自建评测集只解决了「选型」这一次决策。系统上线后,质量会随会话时长、数据分布、用户行为持续漂移,而漂移不会主动报告。第 18 章处理这个层面:不是如何选对系统,而是如何在系统运行中持续观测质量、定位劣化、并把每一次修复验证到位。那里的核心问题不再是分数,而是度量——一个系统在没有任何人打分的情况下,能否自己说出「我最近的召回变差了」。


Copyright © 2026 胡景堃(Hu Jingkun). 采用 CC BY-NC-ND 4.0 许可。未经授权禁止传播、复制或用于商业化。