密集通道检索
密集段落检索 (DPR) 通过比较问题和段落的含义(作为数字向量,而不是匹配单词)来查找相关文本。
概述
It matters because it can retrieve correct answers even when the query and the document share zero vocabulary.
深入探讨
Facebook AI 于 2020 年推出的 DPR 使用两个独立的 BERT 编码器:问题编码器和段落编码器。每个都将文本转换为固定长度的密集向量(通常为 768 维)。相关性是问题向量和段落向量之间的点积,因此检索变成了对预先计算的段落嵌入的快速最近邻搜索。该模型以对比目标进行训练:使用批量否定加上从 BM25 中挖掘的硬否定,将正确的段落向量拉近问题,并将错误的向量推开。在 Natural Questions 等开放域 QA 基准测试中,DPR 大幅击败了长期占据主导地位的 BM25,这表明学习语义匹配在回答问题方面的表现可能优于关键字搜索。
技术洞察
DPR 是一个双编码器:它独立地对查询和每个段落进行编码,因此所有段落向量都计算一次并存储在向量索引中(例如 FAISS)。在查询时,您只需对问题进行编码,然后运行近似最近邻搜索。训练依赖于批内负例 - 同一小批量中的其他段落几乎免费充当负例,这使得一对正例可以有效地生成许多对比比较。
战略影响
速度与规模
语言工作流程可以在不牺牲一致性的情况下更快地移动。
交通与覆盖范围
它扩展了跨语言和沟通方式的访问。
更清晰的判决
团队可以花更多时间进行判断,而自动化则可以处理重复。
密集通道检索的未来
密集检索现在支撑着大多数为大型语言模型提供数据的检索增强生成管道。研究正在转向融合密集分数和词汇分数的混合系统、ColBERT 等后期交互模型(保留每个标记向量以实现更精细的匹配)以及适应许多任务的指令调整嵌入。预计会出现更便宜、多语言和更长上下文的编码器,以及检索器与其所服务的生成器更紧密的联合训练。
现实世界的实施
开放域问答系统,在法学硕士写下答案之前提取支持维基百科的段落
企业文档搜索,员工提出自然问题并获取相关段落,即使没有确切的关键字
客户支持机器人从转述的投诉中检索正确的帮助中心文章
检索增强型聊天机器人将响应建立在私人知识库中,以减少幻觉
风险与防护栏
幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
及时的敏感性可能会在类似的请求中产生不一致的结果。
如果访问控制薄弱,敏感文本数据可能会暴露。
实施路线图
在推出之前定义输出格式、语气和质量标准。
当准确性很重要时,请使用可信来源进行地面响应。
为高风险输出保留人工审查检查点。
跟踪故障模式并定期重新训练提示或工作流程。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Dense Passage Retrieval quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
What is Dense Passage Retrieval?
密集段落检索 (DPR) 通过比较问题和段落的含义(作为数字向量,而不是匹配单词)来查找相关文本。这很重要,因为即使查询和文档共享零词汇量,它也可以检索正确的答案。
密集通道检索背后的核心思想是什么?
DPR 将查询和段落映射为密集向量,并通过它们的相似性(点积)来衡量相关性,捕获含义而不是单词重叠。
DPR 使用“双编码器”架构。这意味着什么?
双编码器具有针对问题和段落的独立编码器,因此可以提前预先计算和索引段落向量。
为什么DPR中可以提前计算通道向量?
由于段落编码器不依赖于查询,因此可以预先计算并存储所有段落嵌入,只留下查询在搜索时进行编码。
什么训练技巧可以让 DPR 廉价地生成许多反例?
批内否定将小批量中的其他段落视为给定问题的否定,从而有效地产生许多对比对。
通常使用什么工具来使 DPR 的最近邻搜索快速大规模进行?
像 FAISS 这样的向量索引对数百万个预先计算的段落嵌入执行快速近似最近邻搜索。