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 挑,而不是抄別人的數字。
2. Hybrid Search:語意 + 關鍵字,兩條腿走路¶
純向量檢索擅長「語意相近」,但會漏掉需要精確字面命中的查詢(產品型號、人名、錯誤碼)。Hybrid search 把兩者合併:〔研究〕
- Dense(向量):抓語意相似。
- Sparse(BM25):抓精確關鍵字。
- 融合:常用 Reciprocal Rank Fusion(RRF) 把兩條排名加權合併,兼顧字面命中與語意匹配。〔研究〕
〔研究〕Hybrid 在 chunk heading-aware、大小適中時效果最好(太大會同時稀釋 BM25 與 dense)。評估時分別追 BM25-only / dense-only / fused 的 recall@K,看融合有沒有真的補到單一管道的漏。
3. Reranking:兩階段,先廣撈再精排¶
檢索與精排是兩種不同取捨。標準做法是兩階段:〔研究〕
- 第一階段(廣召回):用 hybrid 撈一個較大的候選集(追 recall,寧可多撈)。
- 第二階段(精排):用 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。〔研究〕
落地優先序〔實務〕¶
如果你只能逐步加,建議順序:
- 先把 chunking 與評估做對(沒有 recall@K 量測,後面都在盲調)。
- 加 hybrid search(補純向量漏的精確命中)——CP 值通常最高。
- 加 reranking(把 precision 拉起來)。
- 加 query rewriting / HyDE(再補 recall)。
- 補 citation 與 freshness 維運(上生產的門檻,不是加分項)。
延伸閱讀(本站)¶
- RAG 完整指南:原理、架構與實作 — 基礎流程
- Agentic RAG(2026) — 把改寫/重試變成自我修正迴圈
- LLM Evaluation 實務 — RAGAS、faithfulness 與 attribution
- Context Engineering 實作篇 — retrieval 作為 context 槓桿之一
來源¶
- Hybrid Search: BM25, Vector & Reranking(Digital Applied)
- Hybrid Search + Reranking Playbook(OptyxStack)
- Advanced RAG techniques for high-performance LLM applications(Neo4j)
- Building Production RAG: Architecture, Chunking, Evaluation & Monitoring(PremAI)
- RAG in 2025: From Quick Fix to Core Architecture(Medium / Harsh Kumar)
- A Benchmark with Grounding Annotations for RAG(ACL 2025 Findings)