超越語義相似度:支持代理式與詞彙檢索的理由

當前 AI 驅動的資訊檢索 (IR) 趨勢嚴重向語義相似度傾斜——使用 embeddings 來尋找與查詢「概念上」相關的文件。雖然這種方法解決了同義詞問題(例如在搜尋「canine」時找到「dog」),但也引入了一系列新的挑戰:缺乏可解釋性、結果不可預測,以及失去細粒度的控制。

最近圍繞著 Beyond Semantic Similarity 這篇論文的討論顯示了觀點的轉變。與其僅僅依賴黑盒般的 embedding 空間,人們對「代理式搜尋」(agentic search) 的興趣正日益增加——在這種模式下,LLM 作為協調者,可以迭代地優化搜尋術語,使用詞彙工具(如 grep),並根據發現的上下文來瀏覽語料庫。

語義搜尋的摩擦力

對於許多開發者和進階用戶來說,純粹的語義搜尋轉向過程令人感到沮喪。主要問題在於缺乏透明度。當關鍵字搜尋失敗時,原因很明確:該單字不在那裡。當語義搜尋失敗或回傳無關結果時,通常無法理解為什麼 embedding 模型會將該查詢與特定文件關聯起來。

正如一位從業者所指出的:

語義搜尋的可解釋性很差。關鍵字搜尋很棒,因為你可以確切地理解它找到了什麼或沒找到什麼,並且可以智慧地對其進行迭代。

這種控制權的缺失反映了現代網路搜尋引擎目前的困境,這些引擎往往試圖解釋用戶意圖,而不是提供所要求的精確匹配。在代理式工作流中,向搜尋工具提供精確回饋的能力,對於代理 (agent) 收斂到正確答案至關重要。

在代理式工作流中詞彙檢索的力量

雖然語義搜尋常被視為「現代」而關鍵字搜尋被視為「傳統」,但後者在與 LLM 搭配使用時仍然非常強大。代理 (agent) 可以使用像 grepBM25 這樣的工具來尋找精確匹配,然後利用得到的上下文來優化其下一次查詢。這種迭代迴圈允許代理透過在過程中發現的領域中生成多個搜尋術語來處理同義詞。

某些領域比其他領域更能從這種方法中受益。例如,技術文件和原始碼,具有高度精確的術語。在這些環境中,固定字串搜尋通常比語義近似值更可靠。相反,醫療或法律文本——其中同一個概念可以用數十種不同的方式表達——可能仍需要先進行語義檢索以確保覆蓋範圍。

一些開發者甚至發現,利用現有的版本控制工具可以簡化他們的代理框架。透過使用 git grepgit loggit diff,代理可以以前所未有的精確度來瀏覽複雜的程式碼庫,這是基於 embedding 的 RAG (Retrieval-Augmented Generation) 經常遺漏的。

實際限制:延遲、規模與語言

儘管代理式詞彙搜尋在理論上很有吸引力,但仍存在幾個生產環境中的障礙:

1. 延遲與可預測性

迭代搜尋本質上比單次向量查找更慢。雖然向量資料庫會在毫秒內回傳結果,但一個在語料庫中「漫遊」並在多次回合中優化其搜尋的代理,可能會引入不可預測的延遲。對於需要低於五秒回應時間的企業系統,除非限制在背景任務中,否則這種方法可能太慢了。

2. 規模問題

使用 grep 搜尋小型本地語料庫很快。搜尋數百 GB 的企業級數據則是另一回事。如果沒有分散式檔案系統或高度優化的索引,數據傳輸的成本和掃描海量數據集所需的時間可能會讓原始詞彙搜尋變得難以負擔。

3. 跨語言檢索

語義 embeddings 通常在跨語言檢索方面更具優勢(例如,使用英文查詢來尋找印地文文件)。詞彙搜尋在這些情況下會完全失敗,除非加入了翻譯層,因為它依賴於精確的字元匹配。

新興模式:混合搜尋與 Map-Reduce

為了平衡這些權衡,業界正趨向於混合模型。最穩健的生產環境系統通常採用多階段流水線:

  1. 初始檢索: 結合 BM25 (詞彙) 與基於 embedding 的 (語義) 搜尋,以廣泛但相關的範圍進行搜尋。
  2. 重排序 (Reranking): 使用更昂貴的 「LLM-as-judge」或 cross-encoder 來優化頂部結果的精確度。
  3. 代理式優化 (Agentic Refinement): 允許代理迭代地查詢索引,如果初始結果不足夠。

也有人對在 IR 中復興 Map-Reduce 模式感興趣。透過將語料庫的分片 (shards) 對應到不同的代理,並將其發現結果進行歸約 (reducing),系統可以實現高度的在地化與覆蓋率,迭代地遍歷語料庫直到找到所需的資訊。

結論

「超越語義相似度」並非要放棄 embeddings,而是要意識到它們只是眾多工具中的其中之一。對於高精確度任務,特別是在技術領域,當由智慧代理所協調時,詞彙搜尋的透明度與控制權——往往比語義相似度的「黑盒」表現更佳。

Sources