MS MARCO:把「真实用户的真实搜索问题」变成机器阅读理解的基准战场
- 关联论文:1611.09268
- 作者:flyP
- 更新:2026-10-29
一句话结论
MS MARCO 用 Bing 真实搜索日志里的 1,010,916 个匿名 query 做问题、8,841,823 个网页段落做上下文、1,026,758 个唯一答案(其中 182,669 条是经人工 review-and-rewrite 的 well-formed 答案),配上从 BM25 1000 候选重排到生成式问答的三个难度递增任务——它真正的贡献不是模型,而是换掉了 MRC 数据集的生成范式:从「标注员看着一段干净文本编问题」变成「问题来自真实信息需求、答案由标注员综合多篇杂乱网页写出、并且允许问题根本无解」;代价是噪声、标注不一致、评测指标难以标准化,论文自己承认 v2.1 比 v1.1 更难。
它解决的真问题
2016 年前后,MRC 与 QA 的公开数据集有几个共同的结构性缺陷,论文把它们列得很清楚:
第一,规模不足以训练大参数模型。 论文以 ImageNet 为类比——150 万标注样本、1000 类,催生了超越人类的分类模型;而当时最大的 MRC 数据集 SQuAD 只有 107,785 个问答对、536 篇文章。论文明确说 "many of these existing datasets are not sufficiently large to train deep neural models with large number of parameters"。
第二,问题是「人造」的。 几乎所有既有数据集的问题都由众包工人基于给定文本片段反向编造("questions are usually generated by crowd workers based on provided text spans or documents")。这意味着模型学到的其实是「读完一段文本然后回答关于它的问题」,而不是「如何回应一个真实的信息需求」。
第三,语料太干净。 既有数据集多为 Wikipedia 式的高质量故事或文本片段,而真实世界文本 messiness——拼写错误、缩写、口语输入的转写错误、不同文档间互相冲突的信息——在数据集里完全缺席。论文明确说真实 MRC 系统应该能在「noisy and problematic inputs」上保持鲁棒。
第四,信息分布被简化为单一段落。 真实应用中答案所需信息往往分散在同一文档的不同位置,甚至跨多个文档;而多数既有任务只要求模型在单个 entity 或单个 text span 上工作。
MS MARCO 的每一个设计决策都是对着这四条来的。
核心方法
数据构造流水线
Bing 搜索日志 query
│ ① ML 分类器过滤 navigational / 非问题类 query
▼
问题池(1,010,916 个问题,1,026,758 个唯一答案)
│ ② Bing 网页索引检索文档
▼
3,563,535 篇网页文档
│ ③ Bing 的 SOTA passage retrieval 系统切分
▼
8,841,823 个段落(平均每题 ~10 段)
│ ④ 人工标注员阅读段落、标注 is_selected、撰写答案
▼
Answers + Well-formed Answers + is_selected 标注
论文举了两个真实 query 例子来说明「真实」意味着什么:"in what type of circulation does the oxygenated blood flow between the heart and the cells of the body?"(一个从句结构完整的问句),以及 "will I qualify for osap if i'm new in Canada"(全小写、口语化、有隐含前提)。论文还记录了一个标注员的观察:"even the human editors find the task of answering these questions to be sometimes difficult—especially when the question is in a domain the editor is unfamiliar with"。
六个数据组件
- Questions:Bing 搜索日志中的匿名 query,过滤掉 navigational 等意图(由先在人工标注数据上训练好的 ML 分类器自动完成)。
- Passages:每题平均 10 段,由 Bing 的 SOTA passage retrieval 系统从相关网页文档中抽取,可能包含也可能不包含答案。
- Answers:每题零个或多个由标注员撰写的答案。标注员被要求「read and understand the questions, inspect the retrieved passages, and then synthesize a natural language answer with the correct information extracted strictly from the passages provided」——严格限定在给定段落内是这条流水线里最关键的一条约束,它把「检索」与「生成」的边界切开了。
- Well-formed Answers:对部分问答对,由另一位标注员做 review-and-rewrite,触发条件是 (i) 语法 improper,(ii) 答案与某个给定段落高度重合(说明原标注员可能直接照抄段落),(iii) "the answer can not be understood without the question and the passage context"(答案脱离问题与段落上下文就无法理解)。well-formed 的定义标准是:"if the answer is read-aloud then it should make sense even without the context of the question and retrieved passages"。论文给出的改写示例:问题 "tablespoon in cup"、答案 "16",well-formed 答案应为 "There are 16 tablespoons in a cup."
- is_selected 标注:标注员把用于撰写答案的段落标记为
is_selected = 1;若无任一段落含答案,则全部标 0。论文明确声明 该标注不保证穷尽("we do not enforce these annotations to be exhaustive")。 - Passage ranking 数据集:所有段落的并集 + 相关的 question-passage id 对,用于 IR 重排挑战。论文还说明:约 30 万篇文档因已从 Bing 索引下线而无法回取,其余文档正文可能已经发生变化。
三个任务(难度递增)
任务 1(Novice):给定一组上下文段落,先预测问题是否可答(不可答则输出 "No Answer Present"),可答则抽取并综合出答案。
任务 2(Intermediate):与任务 1 类似,但答案必须是 well-formed 的——脱离问题与段落上下文单独朗读也能成立。
任务 3(Passage re-ranking):给定 query 与 1000 个 BM25 检索出的段落,输出一份排序,衡量各段落包含答案信息的可能性。这是给神经 IR 方法准备的 benchmark,论文提到在 2019 年 TREC 组织了 "Deep Learning" track。
三个任务的区分不是造出来的复杂度,而是从真实标注流程里自然长出来的:标注员本来就要判断可答性、标记支持段落、撰写答案;well-formed 答案来自一个额外的改写环节;is_selected 标注天然就是排序监督信号。数据集结构与标注流程严格对齐,这是它比人工拼装的数据集更"厚"的原因。
评测指标
论文原文的分段口径是:数值类答案用 accuracy 与 precision-recall,长文本答案用 ROUGE-L 与 phrasing-aware evaluation framework("We use accuracy and precision-recall measures for numeric answers and apply metrics like ROUGE-L and phrasing-aware evaluation framework for long textual answers")。论文未逐条写明 Yes/No 类别的具体指标,本解读此前的「Yes/No 用 accuracy」属推断而非原文表述,已按原文口径修正。
phrasing-aware 框架(Mitra et al. 2016)是这套评测里最值得学习的部分。动机是自然语言表达本身多样,单一参考答案无法公平评判。做法是:每个问题由不同标注员各写一个参考答案,用多个参考答案之间的 pairwise similarity 构造 BLEU / METEOR 的变体(论文称 pa-BLEU),论文称这类指标 "showed to achieve better correlation with human judgments"。
关键实验与数据
与既有数据集对比(Table 1)
| Dataset | Segment | Question Source | Answer | # Questions | # Documents |
|---|---|---|---|---|---|
| NewsQA | No | Crowd-sourced | Span of words | 100k | 10k |
| DuReader | No | Crowd-sourced | Human generated | 200k | 1M |
| NarrativeQA | No | Crowd-sourced | Human generated | 46,765 | 1,572 stories |
| SearchQA | No | Generated | Span of words | 140k | 6.9M passages |
| RACE | No | Crowd-sourced | Multiple choice | 97k | 28k |
| ARC | No | Generated | Multiple choice | 7,787 | 14M sentences |
| SQuAD | No | Crowd-sourced | Span of words | 100K | 536 |
| MS MARCO | Yes | User logs | Human generated | 1M | 8.8M passages, 3.2m docs |
MS MARCO 是唯一一个 Segment 标注 + User logs 问题来源 + Human generated 答案 三项全中的。注意「Human generated」答案这一列——多数对手是 Span of words(答案是原文片段拷贝),只有 DuReader、NarrativeQA 和 MS MARCO 是完整句子。
口径提示(核查新增):上表末行的 "8.8M passages, 3.2m docs" 是论文 Table 1 自己的写法;而摘要与正文 §3 给的是 8,841,823 个段落、3,563,535 篇网页文档。两者是论文内部的取整差异(3.2m ≈ 3.56m 向下取整),引用时建议直接用摘要口径。
v1.1 基准结果(Table 4,ROUGE-L)
| Description | ROUGE-L |
|---|---|
| Best Passage(段落 oracle 上限) | 0.351 |
| Passage Ranking(DSSM-alike) | 0.177 |
| Memory Network(带 MemNN 的 seq2seq) | 0.119 |
| Vanilla Seq2Seq | 0.089 |
Table 5(多答案子集):Best Passage BLEU 0.359 / pa-BLEU 0.453;Memory Network BLEU 0.340 / pa-BLEU 0.341。
最关键的一行是 "Best Passage" = 0.351。 这不是某个模型的成绩,而是「假设你已经完美检索到了含答案的那一段」的 oracle 上限。它比实际的 Memory Network(0.119)高出近 3 倍,说明在这个数据集上,检索的收益远大于阅读理解本身。这个结构性事实,比任何单点模型分数都更能指导工程投入。
Cloze-style 模型(Table 6,numeric 子集准确率)
| MS MARCO | CNN (test) | |
|---|---|---|
| AS Reader | 55.0 | 69.5 |
| ReasoNet | 58.9 | 74.7 |
两个模型在 MS MARCO 上都掉了 14-16 个百分点——同样的模型、不同的数据分布,结论是 MS MARCO 显著更难。
v2.1 基准与人类基线(Table 7)
| Task | ROUGE-L | BLEU-1 | BLEU-2 | BLEU-3 | BLEU-4 |
|---|---|---|---|---|---|
| BiDaF on Original | 0.268 | 0.129 | 0.094 | 0.079 | 0.070 |
| Human Ensemble on Novice | 0.73703 | 0.51586 | 0.46771 | 0.43391 | 0.40540674 |
| Human Ensemble on Intermediate | 0.63044 | 0.52747 | 0.45439 | 0.41235 | 0.38173 |
| BiDaF on V2 Novice | 0.150 | 0.126 | 0.094 | 0.079 | 0.072 |
| BiDaF on V2 Intermediate | 0.170 | 0.093 | 0.070 | 0.059 | 0.053 |
人类基线的构造方式值得学:选出 5 位在审计题上表现最好的标注员,随机采样 1,427 道题让他们重新作答,然后把这些新答案与原 ground truth 比对,取 ROUGE-L 最高的那一版作为该题的候选答案("we compare all our editorial answers to the ground truth and select the answer with the best ROUGE-L score as the candidate answer")。这不是一个人写的答案,而是「五人里最贴近参考的那次」,基线本身是按评测指标优化的。
人类基线 0.737 vs 模型 0.150,差距近 5 倍。 这是全文最直白的一个数字:2018 年时,机器离"像人一样综合多篇网页写出通顺答案"还差得很远。
论文还记录了一个时间维度的事实:"The human baseline on our v1.1 benchmark was surpassed by competing machine learned models in approximately 15 months."(人类基线在约 15 个月内被机器学习方法超过。)这是对数据集价值的最好背书——一个好的 benchmark 应该被刷穿。
v2.1 为何更难(论文的解释)
论文给出一条清晰的机制解释,两条原因分别对应两个任务:
- Novice 任务:"BiDaF cannot determine when the question is not answerable and thus performs substantially worse"(BiDaF 无法判断问题何时不可答,因此表现显著变差)。v2.1 把无答案问题纳入评测,模型的「可答性判别」成了独立门槛。
- Intermediate 任务:"the model only uses vocabulary present in the passage whereas the well-formed answers may include words from the general vocabulary"(模型只会使用段落中出现的词,而 well-formed 答案可能包含通用词表中的词)。也就是说 well-formed 答案需要模型生成段落中没写的连接词与摘要性表达,这是闭式抽取式方法的结构性天花板。
亮点与局限
亮点
- 问题来源的根本性改变。从 Bing 真实 query 采样,让「问题分布」与「真实信息需求」对齐。论文指出这类 query "often complex, ambiguous, and may even contain typographical and other errors"——而这种模糊性恰恰是真实场景的特征。
- 严格限定「答案只能来自给定段落」,把 retrieval 与 generation 的接口显式化,避免了开放式 QA 的幻觉问题。
- 允许无答案问题并显式评测可答性判别,这是对「模型应该知道自己不知道什么」这一能力的制度化。
- 数据构造与标注流程严格对齐:标注员写的答案天然满足 well-formed 要求;is_selected 标注天然构成排序监督;段落抽取天然复现线上检索分布。
- phrasing-aware 评测框架,用多个参考答案的 pairwise similarity 处理语言多样性,是 MRC 评测方法论上的实质推进。
- 诚实的人类基线构造(五人投票 + 按指标取优),且坦承 BiDaF 在 v2.1 上的大幅退步。
- 主动披露时间线:人类基线约 15 个月被机器超过。
局限
- 标注一致性未量化。论文只说 "We continuously audit the data being generated to ensure accuracy and quality of answers",但没有给出 inter-annotator agreement 数字。对一份 100 万问题的数据集,这是一个显著缺失。
- is_selected 标注不穷尽,这直接让 passage ranking 任务的 ground truth 含噪(论文自己标注了这一点:"this annotation should be considered as incomplete"),但没量化噪声比例。
- 答案风格受单个标注团队的规范约束,可能不反映真实用户的期望分布;well-formed 答案由 "review-and-rewrite" 产生的这部分,论文只说 "For some question-answer pairs",具体比例原文未明确。
- 段落抽取依赖 Bing 内部的 SOTA retrieval 系统,外部研究者无法完全复现检索分布;且每题只有 ~10 段,与真实搜索结果页规模不匹配。约 30 万篇文档已无法回取,其余正文可能已被改动。
- 评测指标的选择仍然是个难题。ROUGE-L 对长文本答案的语义覆盖度有限,pa-BLEU 依赖参考答案数量与质量;不同答案类别的指标划分原文只写了两类(数值 / 长文本),未穷举。
- English only。论文把多语言数据集列为 future work,原文未提供任何多语言数据。
- 数据规模与当年深度模型的匹配关系已经过时。Table 4/5 中的 seq2seq、MemNN、DSSM 基线在今天已被 LLM 全面超越,这些数字主要是历史记录,不再是 SOTA 参考。
对工程落地的启发
- 「答案必须严格来自给定上下文」是一条可以立刻采纳的接口规范。任何 RAG / 检索增强系统,都应该明确规定「检索不到就说检索不到」,并把它作为可评测的独立能力(对应 Novice 任务)。这比事后用 faithfulness 指标打分更有效。
- 先看 oracle 上限,再选模型。MS MARCO 的 "Best Passage = 0.351 vs Memory Network = 0.119" 是一个通用诊断范式:在真实任务上先算检索 oracle 上限。如果模型远低于 oracle,投入应该在检索;如果模型已经接近 oracle,投入应该在理解与生成。跳过这一步排期,是工程上最常见的错误。
- 多参考答案 + pairwise 相似度是 LLM 评测可直接借用的思路。当生成答案有多种正确表述时,用多个参考答案的相似度共识来代替单一参考答案,能显著降低评测对措辞的过拟合。
- 用「真实 query 日志」造评测集,而不是让标注员编题。这是本文最可迁移的一条:问题分布的真实性比问题数量的规模更重要。你的业务日志里就是最好的评测集来源。
- 可答性判别要单独建指标。「模型知道自己不知道」应该是一个独立 KPI,而不是混在整体准确率里。
- 数据集设计与标注流程对齐。设计数据集时,先设计标注流程,答案格式、评测指标、可答性标注都会自动对齐。反过来(先定数据集再找人标)就会像很多既有数据集那样,只能得到 span 抽取。
- 人机基线差距(0.737 vs 0.150)提示:生成式 QA 的瓶颈在「综合」而非「抽取」。要让模型写出 well-formed 的答案,必须允许它使用段落之外的通用词汇与连接词——这对闭式抽取架构是硬约束。
- 别把论文里的历史基线当今天的目标。但要记住这些基线测的是什么:ROUGE-L 0.119 时代的 seq2seq,与今天的 RAG+LLM 不在同一维度上比较。
与同方向工作的关系
- 与 SQuAD (Rajpurkar et al.):最直接的对照,论文逐条列出四点区别(规模十倍以上、问题来自真实日志、答案是生成而非抽取、最初全部可答)。MS MARCO 是 SQuAD 的「现实主义对立面」。
- 与 DuReader (He et al.):中文 MRC 数据集,正文说它 "built with real application data from Baidu search and Baidu Zhidao",并额外标注 fact-based / opinionative 以及 entity / yes-no / descriptive 分类;Table 1 中它的 Question Source 一栏则写作 Crowd-sourced。MS MARCO 在英文侧提供了同类基准。
- 与 NewsQA / NarrativeQA / SearchQA / RACE / ARC:Table 1 中的其余数据集,共同特征是「问题由标注员编造、答案多为 span 或多选」。MS MARCO 的差异化正是问题来源。
- 与 ReCoRD (Zhang et al.):cloze 风格且强调常识推理(12,000 条 CNN/Daily Mail 问答对),与 MS MARCO 的 numeric 子集对比实验在 Table 6 中同框出现。
- 与 TREC / neural IR 社区:论文明确说 passage ranking 任务 "is targeted to provide a large scale dataset for benchmarking emerging neural IR methods",并提到在 2019 年 TREC 组织了 Deep Learning track。MS MARCO passage ranking 后来成为 BERT 时代之前神经 IR 论文的标准 benchmark,是 DPR / ColBERT 一系列工作的标准 benchmark。
- 与后续 LLM 时代的 RAG / QA:MS MARCO 的 "No Answer Present" 约定、well-formed 答案要求,以及「答案严格来自上下文」的约束,在 RAG 系统中被延续为 grounded generation 的标准范式。MMLU 时代的 benchmark 靠知识,MS MARCO 时代的 benchmark 靠 grounding——这是两条不同的能力轴。
- 与 BEIR / MTEB 等统一评测套件:MS MARCO passage ranking 后来被纳入这类多任务检索评测套件,成为 IR 部分的常驻任务。
适合谁读
- 必读:做 RAG / 检索增强问答的工程师(Novice/Intermediate 任务设计与「答案只能来自上下文」约束直接可用);评测工程师与数据集设计者(phrasing-aware 评测、人类基线构造方法)。
- 强烈建议:搜索与排序团队(passage ranking 任务的标准起点);要建内部评测集的团队(真实 query 日志作为问题来源的方法论)。
- 选择性:做数据飞轮 / 标注体系设计的读者读 §3 与 §4;关心评测方法学的读 §5.1 的 phrasing-aware 部分。
- 不适合:想找「当前 SOTA 分数」的读者(论文基线是 2016-2018 年的 seq2seq / MemNN / BiDaF 时代,已完全过时)。
待核查 / 未完全确认项
- well-formed 答案在总答案中的占比:原文只写 "For some question-answer pairs",具体比例原文未明确。原文给出的 182,669 是「完全人工重写生成的答案」数量(摘要口径:"each with a human generated answer and 182,669 completely human rewritten generated answers"),不是全部答案数;全部唯一答案数为 1,026,758(§3)。
- inter-annotator agreement / 标注一致性数字:原文提及持续审计流程但未给出量化指标,已标注。
- Table 7 中 Human Ensemble 的 BLEU-1 (0.52747) 高于 BLEU-2/3/4 且 BLEU-1 在 Novice 与 Intermediate 之间的排序反常(Novice 0.51586 < Intermediate 0.52747,而 ROUGE-L 上 Novice 0.737 > Intermediate 0.630),本解读按原文 verbatim 抄录,未做调和解释,原文亦未给出解释。
- 「Best Passage」0.351 的精确定义:原文表述为 "Best ROUGE-L of any passage",即「所有段落中 ROUGE-L 最高的那一段」,属检索 oracle 上限;具体是哪个检索系统提供的候选段落,per-question 还是全局最优,原文未明确。
- v1.1 与 v2.1 的问题总数差异:论文说明 v1.1 于 2017 年 1 月发布、2.0 与 v2.1 于 2018 年 3 月与 4 月发布,但两版的具体规模数字原文未逐一对照给出。
- 文档侧不可复现性:约 300,000 篇文档已从 Bing 索引下线无法回取,其余文档正文可能已改变——这意味着 passage 的正文快照无法由第三方完整重建,是复现该数据集时的实际障碍(原文 §3 第 5 点)。
工程落地与核查(Jay)
本节为第二读者审校 + 工程视角补强。凡本节标 ⚠️ 者,为原文自身未给出、无法二次核实的项,已集中收纳于此,不散落在正文。
一、事实核查结论(已逐条回查 arXiv:1611.09268v3)
| 核查项 | 原文数值 | 结论 |
|---|---|---|
| 问题数 | 1,010,916 | ✅ 与摘要、§3 一致 |
| 唯一答案数 | 1,026,758 | ✅ §3 verbatim |
| well-formed / 重写答案数 | 182,669 | ⚠️ 此前被误当作"全部人工撰写答案数",实为"完全人工重写生成的答案"子集(摘要原文:"each with a human generated answer and 182,669 completely human rewritten generated answers")。已就正文「一句话结论」与「六个数据组件」两处就地修正并注明 |
| 段落 / 文档数 | 8,841,823 / 3,563,535 | ✅ 摘要与 §3;Table 1 写作 "8.8M passages, 3.2m docs",属论文内部取整差异,已加口径提示 |
| 每题平均段落数 | 10 | ✅ §3 组件 2 |
| well-formed 第三个改写条件 | — | ⚠️ 此前记为"HTML 截断、原文未明确",实为原文完整给出:"(iii) the answer can not be understood without the question and the passage context"。已就地修正正文并删除原"截断"表述 |
| Segment 标签枚举与占比 | — | ⚠️ 此前记为"原文未列出",实为 Table 2 明确给出:Description 53.12%、Numeric 26.12%、Entity 8.81%、Location 6.17%、Person 5.78%;标签集为 NUMERIC / ENTITY / LOCATION / PERSON / DESCRIPTION(§3 第 6 点,由 ML 分类器自动标注)。已就地补入正文并修正原待核查项 |
| 评测指标口径 | — | ⚠️ 此前"用 accuracy"属推断,非原文。原文只写两类:数值类用 accuracy + precision-recall,长文本用 ROUGE-L + phrasing-aware。已按原文口径改写 |
| 人类基线 ROUGE-L | 0.73703(Novice)/ 0.63044(Intermediate) | ✅ Table 7 verbatim |
| 人类基线构造 | 5 名标注员、1,427 题、按 ROUGE-L 取最优 | ✅ §5.2;措辞已修正为「与 ground truth 比对后取 ROUGE-L 最高者作候选答案」 |
| 15 个月 | v1.1 人类基线被机器超越 | ✅ §5.2 verbatim |
| BM25 1000 候选 | passage re-ranking | ✅ §4 verbatim |
| TREC 2019 Deep Learning track | — | ✅ §3.1 verbatim,且给出 trec.nist.gov 链接 |
| Table 4 / 5 / 6 数字 | 0.351 / 0.177 / 0.119 / 0.089;0.359 / 0.453 / 0.340 / 0.341;55.0 / 69.5 / 58.9 / 74.7 | ✅ 全部 verbatim |
二、五个工程坑(现象—影响—修复)
坑 1:把 182,669 当成「数据集中全部人工答案数」,导致容量规划差一个量级
- 现象:检索摘要时容易只看到 "182,669 editorially generated answers",就把它当成数据集答案池规模。但同段还有 1,026,758 个 unique answers,182,669 只是其中经过 rewrite-and-review 的 well-formed 子集。
- 影响:按 182,669 条估算「一个 epoch 要跑多久 / 要多少标注预算」会低估约 5~6 倍;更要命的是把它当作「全部答案都是完整句子」会误导团队以为可以直接拿来做生成式 SFT(实际上多数答案是抽取式短答案,风格分布完全不同)。
- 修复:建库时把答案拆成两个字段并分别统计——answers(全量,唯一答案 1,026,758)与 wellformed_answers(182,669);训练集构造时按目标任务选字段,做生成式微调用 well-formed 集,做抽取/可答性判别用全量集。
坑 2:把 "Best Passage = 0.351" 当成"模型分数",从而把预算错误地投给生成模型 - 现象:Table 4 里 ROUGE-L 最高的一行叫 "Best Passage",看表容易当成某个模型。 - 影响:这是 oracle(完美检索前提下的抽取上限),拿它当 SOTA 会得出"离满分还差 0.35"这种荒谬结论;反过来也会让人误以为提升阅读理解就能线性提分,而实际上这个数据集上检索的杠杆远大于阅读理解(0.351 vs 0.119,接近 3 倍)。 - 修复:在自己系统上先跑一遍 oracle 诊断——用标注出的答案所在段落做上下文测上限,再用真实检索段落测实际值,两者之差即"检索债"。差值大就先投召回(切分、召回率、rerank),差值小再投生成。
坑 3:可答性判别混在总体指标里,导致线上"一本正经地编答案" - 现象:v1.1 的 BiDaF ROUGE-L 0.268 → v2.1 Novice 掉到 0.150,论文归因是"无法判断问题何时不可答"。Novice 任务要求不可答时输出 "No Answer Present"。 - 影响:在 RAG 系统中这对应一个非常具体的线上事故模式——检索没召回时模型不是拒答,而是基于无关段落编一个像样的答案。整体 ROUGE/准确率还能看,但用户信任度崩塌,且错误答案会被下游系统当作事实消费。 - 修复:把"检索不到 → 返回 no-answer"做成独立的、可评测的 KPI(覆盖率 / 正确拒答率 / 误拒率三项分开看);生成前加一个可答性判别器或置信度阈值闸门;评测集里显式包含不可答样本,并单独统计该子集上的表现。
坑 4:ROUGE-L / BLEU 单一参考,对"换个说法就答对"的模型系统性低估 - 现象:论文为此专门设计了 phrasing-aware 指标(pa-BLEU),用多个不同标注员写的参考答案做 pairwise similarity 聚合。 - 影响:用单一参考的 ROUGE-L 打分时,一个意思正确但措辞不同的答案会被判低分。后果是:团队误把"指标低"当成"能力差",进而放弃本来正确的方案去换模型;或者为了刷分去优化措辞而非内容。 - 修复:评测集为每个问题保留 ≥2 条独立参考答案;主指标用 ROUGE-L/pa-BLEU 组合,并把"多参考答案平均分"与"人工判定内容正确率"同时报出来。若只能维护一条参考,则额外加一个 LLM-judge 的内容等价判定,并单独报告两者的 gap。
坑 5:用 is_selected 当排序 ground truth,却忘了它是"不完备"的 - 现象:论文明说 is_selected 标注不穷尽("we do not enforce these annotations to be exhaustive",且 "should be considered as incomplete"),并专门警告可能存在含答案但未被标注的段落。 - 影响:拿它训练 reranker 时,被标为负例的段落里有相当比例其实含答案,模型会被教成"把含答案的段落压下去",直接损害召回;线上表现为某些原本能召回的文档被排到后面。 - 修复:训练时对负例做去噪(例如用答案字符串匹配筛掉疑似正例,或用多标注/多次标注投票);评测时把"漏标正例"计入召回上限估计,不要拿标注数当真值数;线上用模型自身置信度做二次筛选。
三、给落地方案的直接建议
- 把「答案严格来自给定段落」写进系统契约,并在 prompt 与解码层各加一道约束;同时保留一条"允许模型用通用词汇做衔接"的通道——否则会直接撞上 Intermediate 任务的结构性天花板(论文已证明闭式抽取路线做不到 well-formed 答案)。
- 问题池直接来自业务日志,但要复刻论文的两个前置动作:用分类器剔除 navigational / 非问句 query;对 query 做人工可答性标注。跳过这两步,你的评测集会混入大量"导航型"query,指标好看但无意义。
- 每题 ~10 段这个密度要与你的真实检索场景对齐。MS MARCO 的段落数远小于真实搜索结果页,做检索评测时要么复刻 10 段,要么明确声明自己换了一个更难的设定——不要拿两套数字互相比较。
- 数据会漂:约 30 万篇文档已无法回取,其余正文可能已改。若自建同类数据集,务必在构建时把文档正文快照与 URL 一起存档,否则三年后无法复现基线。
- 别把 2018 年的数字当今天的目标,但要记住它们测的是什么:0.119 时代的 seq2seq 与今天的 RAG+LLM 不在同一维度。当前真正该抄的是评测协议(可答性单列、多参考答案、人类基线按指标取优、oracle 上限诊断),不是分数。