跳轉到

RAG 進階系列:Chunking、Hybrid Search、Reranking、Query Rewriting、Citation 與 Freshness

整理自技術評測與論文(見文末),2026-06-20。這是 RAG 完整指南 的進階配套:當 naive RAG(切塊→向量檢索→塞給模型)召回不夠、答非所問時,這幾個槓桿是把它推到生產級的關鍵。

實證標記:〔研究〕= 出自論文或技術評測;〔實務〕= 業界慣例或本人整理。預設 under-claim,量化數字標明出處與前提。

先看全貌:進階 RAG 在補 naive RAG 的哪些洞

槓桿 補哪個洞 改善的指標
Chunking 切太大稀釋、切太小失脈絡 recall + 下游精度
Hybrid Search 純向量漏掉精確關鍵字 recall
Reranking 檢索回來的順序不夠準 precision
Query Rewriting 使用者問法和文件用詞對不上 recall
Citation 答案無法溯源、難查幻覺 可信度/可驗證性
Freshness 索引過期、回答用舊資料 正確性/時效

〔研究〕一個值得記住的整體量級:在不換 LLM 的前提下,hybrid retrieval + reranking + query rewriting 一起上,回答準確度可提升約 18–30 個百分點。這說明「檢索端」往往比「換更強的生成模型」更划算。當「方向證據」看,實際幅度視語料而定。

1. Chunking:切塊決定上限

切塊是 RAG 的地基——切壞了,後面再強都救不回。核心張力是「大小」:〔研究〕

  • 切太大 → 一塊塞太多主題,稀釋了 BM25 與向量的訊號,reranker 也難判斷。
  • 切太小 → 失去上下文,reranker 看不懂、答案拼不起來。
  • Heading-aware(依標題/結構切) 通常比固定字數硬切好:尊重文件原本的語意邊界。〔研究〕

〔實務〕沒有萬用 chunk 大小。要對你自己的語料實測(不同大小 × 不同 embedding model),用 recall@K 挑,而不是抄別人的數字。

純向量檢索擅長「語意相近」,但會漏掉需要精確字面命中的查詢(產品型號、人名、錯誤碼)。Hybrid search 把兩者合併:〔研究〕

  • Dense(向量):抓語意相似。
  • Sparse(BM25):抓精確關鍵字。
  • 融合:常用 Reciprocal Rank Fusion(RRF) 把兩條排名加權合併,兼顧字面命中與語意匹配。〔研究〕

〔研究〕Hybrid 在 chunk heading-aware、大小適中時效果最好(太大會同時稀釋 BM25 與 dense)。評估時分別追 BM25-only / dense-only / fused 的 recall@K,看融合有沒有真的補到單一管道的漏。

3. Reranking:兩階段,先廣撈再精排

檢索與精排是兩種不同取捨。標準做法是兩階段:〔研究〕

  1. 第一階段(廣召回):用 hybrid 撈一個較大的候選集(追 recall,寧可多撈)。
  2. 第二階段(精排):用 cross-encoder reranker 對候選逐一打分、重排,截到最終要進 context 的小集合(追 precision)。

cross-encoder 比向量內積準,因為它讓「查詢 + 候選」一起進模型算相關性,而非各自編碼再比距離;代價是慢,所以只用在「縮小後的候選集」上。〔研究〕

〔實務〕調 reranker 主要看 context precision,並調「給 reranker 幾個候選」。目標是 hybrid 把 recall 拉起來、rerank 把 precision 拉起來,但別把 recall 殺掉

4. Query Rewriting:先把問題問對

使用者的原始問法常和文件用詞對不上。在檢索之前改寫/擴展查詢,能顯著補 recall:〔研究〕

  • Query Expansion:補同義詞、相關詞、拆解多意圖。
  • HyDE(Hypothetical Document Embeddings):先讓 LLM 生一個「假設的理想答案/文件」,用它的向量去檢索,橋接「問題」與「文件」的措辭落差。〔研究〕

這在 agentic RAG 裡會進一步變成「檢索失敗 → 改寫 → 重試」的迴圈,見 Agentic RAG(2026)

5. Citation / Attribution:讓答案可溯源

生產級 RAG 不只要對,還要能查。讓答案綁定來源,有兩個好處:使用者可驗證、你可抓幻覺。〔研究〕

  • prompt 層:給帶 ID 的片段,並指示「只根據來源回答、引用來源 ID」。〔研究〕
  • 評估層:用 attribution / grounding 指標衡量「答案是否真的有來源支撐」,與 faithfulness 呼應(見 LLM Evaluation 實務)。
  • 〔實務〕引用不是裝飾:沒有 citation,faithfulness 低時你連「它在瞎掰哪一句」都難定位。

6. Freshness:索引會過期

RAG 的正確性會隨索引腐化而衰退——文件更新了、索引沒跟上,模型就用舊資料答題。把時效當成一個要維運的工程問題:〔研究〕

  • Freshness window / 定期 re-embed:對更新的文件 re-embed delta,定期做索引清理。〔研究〕
  • Metadata 前置:在索引存 source、date、authority、region、PII flag 等屬性,查詢時依時效/合規/信任過濾。〔研究〕
  • 指示偏好新來源:在 metadata 標 freshness、提示 LLM 優先採用較新的來源,可緩解新舊 chunk 互相矛盾。〔研究〕
  • 把索引時效當指標:監控「文件更新 → 進索引」的延遲,並給它一個 SLA。〔研究〕

落地優先序〔實務〕

如果你只能逐步加,建議順序:

  1. 先把 chunking 與評估做對(沒有 recall@K 量測,後面都在盲調)。
  2. 加 hybrid search(補純向量漏的精確命中)——CP 值通常最高。
  3. 加 reranking(把 precision 拉起來)。
  4. 加 query rewriting / HyDE(再補 recall)。
  5. 補 citation 與 freshness 維運(上生產的門檻,不是加分項)。

延伸閱讀(本站)

來源