第 3 章 — 檢索增強生成

發佈於: 2026-04-16 最後更新於: 2026-07-05 版本: 1
第 3 章 — 檢索增強生成

第 3 章 — 檢索增強生成

LLM Primer V: Building Real-World LLM Applications 章節走讀的第三篇。這一章從頭走過 RAG 管線,並把「在你十個最愛文件上會動的 demo」跟「撐得住真實語料的系統」區分開來。


這一章為什麼存在

基礎模型只知道訓練語料給它看過的東西,別的都不知道。你在做的產品大概率需要模型對訓練語料以外的東西推理 — 內部文件、上週的工單、客戶的訂單歷史、今天早上剛發的政策。檢索增強生成是把那個縫補起來的工程學科:查詢時從 system of record 撈相關材料、把它塞進 prompt、讓模型對著它生成。天真版就是一次嵌入呼叫、一個 top-k 查找。生產版是一條有切塊策略、查詢改寫、混合評分、reranker、還有評估迴圈的管線。第 3 章從頭走一遍,再走過那些把 demo 管線變成部署的技術。

一句話總結:RAG 是一條五段管線 — 載入、切塊、嵌入、檢索、生成 — 而且幾乎每一個品質抱怨追到根源都會變成切塊的問題,而混合檢索加上一個 reranker 就是生產環境會收斂到的形狀。

3.1 五段管線與混合檢索

最小的 RAG 管線有五段,而且每一段跟其他段的互動事後看都很明顯。Loader 保留結構 — 標題、章節路徑、時間戳、來源 URL、存取控制標籤 — 因為下游的每一件事都倚賴 loader 留下的東西。切塊沿著文件的自然紋理切,不沿隨便一個 token 數切。Embedder 把 chunk 投影到向量空間,而那個空間的幾何完全由嵌入模型的訓練分布決定。Retriever 找最近鄰。Generator 拿著被檢索到的 context 去被 prompt,而框話語很重要:「只根據下面的 context 回答,否則回『我沒有這個資訊』」是生產 RAG 裡最有效的抑制幻覺樣板,單獨一個都比其他多。純密集檢索抓得到改寫、抓不到準確 ID;詞彙檢索抓得到 ID、抓不到語意;用 Reciprocal Rank Fusion 融合的混合檢索兩邊都拿到,再對融合後的 top-50 過一層 cross-encoder reranker,精準率還能再加十到二十個百分點。

3.2 品質活在切塊,或死在切塊

「每 500 個 token 切一次、重疊 50 個」這種預設值在意外多的一群通用語料上會動,在幾乎每一群專門語料上都會爆。結構化切塊器按 heading 層級走 HTML 或 Markdown,每個葉章節出一個 chunk,前面掛上祖先 heading 的麵包屑。父子切塊器把小的 child chunk 拿去嵌入來提高檢索精準度,但每一個命中在丟給 generator 前先擴到它的父段落,把檢索單位跟 context 單位解耦。語意切塊器沿著句子嵌入序列走,在主題轉折處切。組合起來 — 先結構、再在長章節內用語意 — 這兩個樣板可以應付真實語料裡幾乎每一種來源型別。而每一個 chunk 都帶著豐富的元資料 — 來源、URL、時間戳、標題路徑、語言、可視範圍 — 因為那些欄位就是讓被檢索到的 chunk 對系統其他部分「可歸屬、可過濾、可讀」的原因。

3.3 查詢改寫、多模態、text-to-SQL

使用者的查詢很少是理想的檢索查詢。Multi-query 展開會請模型出幾個改寫,對每一個檢索、再融合。HyDE — Hypothetical Document Embeddings — 請模型編一個像樣的答案,拿那個去嵌入而不是問題本身,理論根據是答案住在嵌入空間跟問題不同的區域。Step-back 提示產出一個較一般的版本、對兩者都檢索,讓模型用那個框架來回答具體案例。分解會把複合問題切成子問題,讓 retriever 一次處理一個。迭代式檢索讓模型自己決定下一步該撈什麼 — 這是 RAG 通往 agent 的橋。RAG 也不只是文字:CLIP 風格的圖文聯合嵌入空間支援多模態檢索,而 text-to-SQL 把資料庫 schema 當成檢索語料,對讀取副本產生帶 timeout 的查詢。一個 router 會根據每次查詢挑對的改寫,而不是一次跑全部。

值得記住:錯的檢索很少大聲失敗 — 模型會盡責地拿錯的 context 寫出一段有自信的答案,然後品質在沒人注意下侵蝕掉。調校檢索之前先給檢索裝上量測。

第 3 章接下來會怎麼走

RAG 只是眾多能力裡的一個。生產級的助手很少靠檢索過活:它要撈客戶最近的訂單、去另一個系統查庫存、摘要結果、問一個澄清問題、還要自己決定什麼時候做哪一件事。那種行為的自然框話是代理式的 — 模型從一組工具挑一個、系統跑選中的工具、結果送回模型、然後迴圈繼續到任務完成。在那個框話下,檢索就是代理能伸手拿的一個工具。第 4 章把包裝變成代理:ReAct 迴圈、把工具 schema 當契約看、以及讓代理能跨回合維持狀態的三層記憶。


下一篇 — 第 4 章:AI 代理與工具呼叫那個把「無狀態模型」變成「追著目標跑的行動者」的迴圈 — 帶工具、帶記憶、還帶著擋失控的硬邊界。

想看完整的全貌?整本書帶著完整的 hybrid retriever、HTML-aware 的結構化切塊器、父子存儲、CLIP 雙嵌入樣板,以及帶查詢驗證的 text-to-SQL 管線。第 III 卷把 RAG 的機制寫得更深,第 V 卷收攏後繼續往前走。在 Amazon 查看 LLM Primer V →

下田 昌平
下田 昌平
RECEIPTROLLER 的 CTO 與創辦人。專注於數據、驅動創新、始終保持好奇心。