跳到内容
Coding with AI · Lecture 08
Esc
↑↓导航↵打开⌘J预览
本页内容

同一批问题、同一个文档库,只换检索器

在 NQ 上同问题、同文档库只换检索器,DPR 的命中率高于 BM25。

这一页为什么在这里

揭示:在 Q08 定下的公平比较里,学出来的向量大幅超过 BM25。第 3 步 先给一个意外(1,000 个训练样本就够),再停在“先别急着说向量检索更好”,把学生引向 Q10 的边界。

上屏

  • 第 1 步:表格,条件小字:2020 · DPR · Natural Questions 测试集。列:检索器|前 20 段含答案|前 100 段含答案。BM25 行:59.1%|73.7%;DPR 行是“?”。
  • 第 2 步:DPR 行填上 78.4%|85.4%;59.1 → 78.4 用箭头标出。
  • 第 3 步:两行:只用 1,000 个训练问答对,向量检索就已超过 BM25。只换一个部件,差别才算得到它头上。

讲

第 1 步 · 教师可说的话

先看字面检索基线

他们正是这么比的。BM25 在前 20 段里找到答案的比例是 59.1%。你猜学出来的向量能到多少?

指图与比较

先看字面检索基线

第 2 步 · 教师可说的话

揭示向量检索成绩

78.4%。前 100 段也从 73.7% 到 85.4%。几十年的强基线,被拉开将近 20 个点。

指图与比较

揭示向量检索成绩

第 3 步 · 教师可说的话

看样本效率并划定归因

更意外的是,只用 1,000 个训练样本,向量检索就已经超过 BM25。RAG 用的检索器正是它。但先别急着说“向量检索更好”,下一页换个地方再测一次。

指图与比较

看样本效率并划定归因

本页衔接

先别把同分布胜出推广到所有领域;下一页换分布再测。

连续教师稿原文

他们正是这么比的。BM25 在前 20 段里找到答案的比例是 59.1%。你猜学出来的向量能到多少?

78.4%。前 100 段也从 73.7% 到 85.4%。几十年的强基线,被拉开将近 20 个点。

更意外的是,只用 1,000 个训练样本,向量检索就已经超过 BM25。RAG 用的检索器正是它。但先别急着说“向量检索更好”,下一页换个地方再测一次。

完整推理

结果。 DPR 论文表 2:在 Natural Questions 测试集上,前 20 段含答案的比例 BM25 为 59.1%,DPR 为 78.4%;前 100 段为 73.7% 对 85.4%。几十年的强基线被拉开约 19 个百分点。

样本效率。 §5.2 与图 1(NQ 开发集):只用 1,000 个训练问答对训练的 DPR,前 20 段命中已超过 BM25。对 2020 年的人来说这是意外:以为学出来的检索器需要海量标注,其实少量就够。双编码器建在预训练语言模型(BERT)上,借了它已有的语言知识。

为什么这个比较可信。 问题、文档库、判据相同,只换检索器,分数差可以归到检索器上。这是方法线的第二步。

它还没说明什么。 DPR 在 NQ 上训练、也在 NQ 上测,训练和测试来自同一个分布。换一个领域、不再训练,它还赢不赢?这是下一页。

接上 RAG。 RAG 的检索器正是用 DPR 的双编码器初始化的(它在 TriviaQA 与 Natural Questions 上训练过),问题编码器在 RAG 训练中继续微调。

学生可能的回答与误区

  • 第 1 步|猜的数多半偏低(60–70%)。揭示后追问:差这么多,会不会是别的东西不同?这张表里只有检索器不同。
  • 第 3 步|“所以向量检索全面更好。”这是同一个分布里的结论;Q10 换了领域就不成立了。
  • 第 3 步|“1,000 个样本就够,说明任务很简单。”它说明双编码器借了预训练模型的语言知识,少量问答对就能调到可用;不说明开放域问答简单。

教学构造与出处

  • 箭头和“只换一个部件”一句是课件的归纳。
  • DPR · 表 2、§5.2 与图 1:arXiv 2004.04906v3;表 2 是 NQ 测试集的前 20/前 100 段检索准确率;样本效率来自 NQ 开发集(图 1)。来源支持。
  • RAG · §2.2 Retriever: DPR:arXiv 2005.11401v4;检索器用 DPR 预训练的双编码器初始化。

动手

  • LAB-A|检索器开关:Deepnote · A|换索引:知识从哪来。同一个 40 段的教学书架、同一批题,只换检索器:字面(TF-IDF)与小型向量模型(MiniLM),比较前 k 段里有没有支持段。
  • 先写下:同义改写的题,哪个检索器更容易取到?
  • 课前实测(教学用小实验,不是 DPR 复现):同义改写的 10 题,取 3 段时向量 10/10、字面 2/10;取 1 段时向量 1/10、字面 0/10。
  • 再只改一个条件:取回段数在 1 和 3 之间切换,看向量检索的优势还剩多少。

在课堂中打开

这个页面有帮助吗?