查詢轉換
使用者打出來的句子,往往不是向量庫裡最好搜的那句。查詢轉換(query translation)在檢索前改寫、擴寫或拆題,讓召回比較穩。
Multi-Query
請 LLM 把原問題改寫成幾個角度不同的問法,分別檢索,再合併去重。適合同一件事有很多說法(「退費」「退款」「取消訂單」)。
代價是多次嵌入與搜尋。合併時可用簡單聯集,或用 RAG-Fusion(倒數排名融合,Reciprocal Rank Fusion)把多路結果合成一張排名表。
HyDE
Hypothetical Document Embeddings:先讓模型「假設一篇能回答這個問題的短文」,再對這篇假文做嵌入去搜。問句和文件的寫法差異很大時(口語問、書面答)特別有用。假文寫錯,檢索也會偏掉,所以仍要抽樣檢查。
問題分解與 Step-Back
- Decomposition:把「比較 A 與 B 在 2021 的營收成長」拆成兩個子問題,分別檢索再綜合。Naive RAG 一次搜「比較……」常常兩家公司的塊都撈不齊。
- Step-Back:先問更抽象的原則(「退費的一般條件是什麼」),再帶著原則去答原題。適合需要先懂規範再套個案的問題。
這些技巧在 LangChain 系列 Part 5–9,以及 freeCodeCamp 長課對應章節,見 官方影音 與 YouTube 優質教學。
下一頁:重排序與混合搜尋。