語言人工智慧指南

密集通道檢索

密集段落檢索 (DPR) 透過比較問題和段落的含義(作為數字向量,而不是匹配單字)來尋找相關文本。

閱讀時間約2分鐘最後更新

概述

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 等後期交互模型(保留每個標記向量以實現更精細的匹配)以及適應許多任務的指令調整嵌入。預計會出現更便宜、多語言和更長上下文的編碼器,以及檢索器與其所服務的生成器更緊密的聯合訓練。

現實世界的實施

開放域問答系統,在法學碩士寫下答案之前提取支持維基百科的段落

企業文檔搜索,員工提出自然問題並獲取相關段落,即使沒有確切的關鍵字

客戶支援機器人從轉述的投訴中檢索正確的幫助中心文章

檢索增強型聊天機器人將回應建立在私人知識庫中,以減少幻覺

風險與防護欄

幻覺的事實可以悄悄地進入報告、支持流程或研究成果。

及時的敏感性可能會在類似的請求中產生不一致的結果。

如果存取控制薄弱,敏感文字資料可能會暴露。

實施路線圖

1

在推出之前定義輸出格式、語氣和品質標準。

2

當準確性很重要時,請使用可信任來源進行地面回應。

3

為高風險輸出保留人工審查檢查點。

4

追蹤故障模式並定期重新訓練提示或工作流程。

不斷探索

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

下一步指南

ColBERT 後期互動檢索

常見問題

What is Dense Passage Retrieval?

密集段落檢索 (DPR) 透過比較問題和段落的含義(作為數字向量,而不是匹配單字)來尋找相關文本。這很重要,因為即使查詢和文件共享零詞彙量,它也可以檢索正確的答案。

密集通道檢索背後的核心思想是什麼?

DPR 將查詢和段落映射為密集向量,並透過它們的相似性(點積)來衡量相關性,捕獲含義而不是單字重疊。

DPR 使用「雙編碼器」架構。這意味著什麼?

雙編碼器具有針對問題和段落的獨立編碼器,因此可以提前預先計算和索引段落向量。

為什麼DPR中可以提前計算通道向量?

由於段落編碼器不依賴查詢,因此可以預先計算並儲存所有段落嵌入,只留下查詢在搜尋時進行編碼。

什麼訓練技巧可以讓 DPR 廉價地產生許多反例?

批內否定將小批量中的其他段落視為給定問題的否定,從而有效地產生許多對比對。

通常使用什麼工具來使 DPR 的最近鄰搜尋快速大規模進行?

像 FAISS 這樣的向量索引對數百萬個預先計算的段落嵌入執行快速近似最近鄰搜尋。