承昨日 LLM 可觀測性把「線上系統實際發生了什麼」變成可監控的訊號,今天往前一步,追問 RAG 系統裡最容易出錯、也最難量化的一環:檢索到底撈對了沒有,以及該怎麼系統化地評估與優化它。可觀測性告訴你「答錯了」,而 RAG 檢索品質評估要回答「錯在哪一段」——是檢索沒撈到證據,還是模型拿到證據卻沒用好。

📖 學

RAG 的品質評估在 2026 年已經定型為兩段式框架,把整條管線拆成「檢索」與「生成」兩個獨立階段分別診斷。這件事看似理所當然,實務上卻是多數團隊踩坑後才學會的:當使用者抱怨「答案是錯的」,一個混在一起的準確率數字完全無法告訴你該調 embedding、換 reranker,還是修 prompt。兩段式評估的價值就在於把責任歸屬拆開——檢索階段的失敗模式是「漏撈了相關片段」(recall 過低)與「撈進不相關的雜訊」(precision 過低);生成階段的失敗模式則是「捏造沒有根據的主張」(faithfulness 過低)、「答非所問」(answer relevance 過低)。診斷清楚了,優化才有方向。

檢索階段的核心指標圍繞著 context precision 與 context recall 這一對。Context precision 量的是撈回來的片段裡有多少比例真的與答案相關,高分代表檢索器把雜訊過濾得乾淨、命中的內容聚焦;context recall 則量的是「該有的證據有沒有全部撈齊」,高分代表回答所需的支持性資訊都在手上。這兩者常互相拉扯:把 top-k 開大能提升 recall,卻往往稀釋 precision,讓模型在一堆片段裡被雜訊干擾。除了這對指標,傳統資訊檢索的 Precision@k、Recall@k、MRR、NDCG 在 RAG 語境下依然管用,它們對「相關片段有沒有排在前面」特別敏感,而排序位置恰恰是後續生成品質的關鍵。

生成階段最容易被誤用的指標是 faithfulness。它衡量答案是否忠實地建立在撈回的脈絡之上,是抓幻覺的第一道防線。但 2026 年一個被反覆強調的教訓是:faithfulness 單看並不可靠,必須和 answer relevancy 一起讀。原因很直白——一個模型可以極度忠實地覆述撈回的內容,卻完全沒回答使用者的問題,這種「忠實但離題」的答案在 faithfulness 上拿高分,體驗上卻是失敗的。因此成熟的評估會把 faithfulness、groundedness(逐句檢查每個主張是否有根據)、answer relevance 三者並列,任何單一指標都不足以代表整體品質。

一個容易顛覆直覺、值得記住的量化結論來自研究界的觀察:檢索準確度只能解釋 RAG 品質變異的大約六成,剩下四成來自「模型有沒有把撈回的脈絡用好」。這意味著就算你把檢索調到接近完美,也還有近半的品質空間卡在生成端——模型如何取捨、綜合、忽略雜訊。這條結論直接影響優化的投資順序:純粹堆更強的 embedding 或更大的向量庫會邊際遞減,真正的槓桿往往在 reranking 與 prompt 對脈絡的組織方式上。

reranking 是 2026 年檢索優化的主流手段,理由是原始向量相似度未必反映你特定場景下的「真正相關」。向量檢索快、召回廣,但它用的是通用語意距離;cross-encoder reranker 則把 query 和每個候選片段成對送進模型做細緻打分,雖然慢,卻能顯著拉高最終的 faithfulness。典型架構因此變成兩級:先用向量檢索撈回較大的候選集(高 recall),再用 cross-encoder reranker 精挑細選重排前幾名(高 precision),讓送進生成模型的脈絡兼顧齊全與乾淨。這種「先廣後精」的分工,正是同時對付 recall 與 precision 拉扯的標準解法。

🧠 記

RAG 評估拆成兩段:檢索看 context precision(撈回的有多相關)與 context recall(該有的有沒有撈齊),生成看 faithfulness、groundedness、answer relevance。faithfulness 絕不能單看——忠實但離題照樣是壞答案,必須和 answer relevancy 並讀。記住那條反直覺的比例:檢索準確度只解釋約 60% 的品質變異,另外 40% 在模型用不用得好脈絡。優化的黃金架構是「向量檢索衝 recall + cross-encoder reranking 衝 precision」的兩級管線。

✍️ 實踐

替你手上的 RAG 系統建一份最小可行評估集:挑 30 到 50 個真實使用者問題,為每題人工標出「應該被撈回的正確片段」與「理想答案」。用 RAGAS 或 DeepEval 這類工具跑一輪,分開輸出 context precision、context recall、faithfulness、answer relevancy 四個數字,不要看合併分數。

接著做一個對照實驗:在現有向量檢索之後加一層 cross-encoder reranker(例如把向量檢索的 top-20 重排成 top-5),其餘不動,再跑同一份評估集。比較兩次的四個指標——你多半會看到 precision 與 faithfulness 上升,而 recall 幾乎不變,這就是 reranking 該有的訊號。如果 recall 本來就偏低,先別急著加 reranker,那代表證據根本沒撈到,問題出在 chunking 或 embedding,重排救不了不存在的片段。把這兩次結果連同昨天建立的線上監控串起來,你就有了從離線評估到線上追蹤的完整品質迴路。

🔗 延伸學習

💬 問 AI

我有一套上線的 RAG 系統,使用者常抱怨答案不準,但我不確定是檢索問題還是生成問題。
請幫我設計一個兩段式評估流程:
1. 檢索階段要量哪些指標(context precision / recall / Precision@k 等),以及各自代表什麼失敗模式;
2. 生成階段要量哪些指標(faithfulness / groundedness / answer relevance),並說明為什麼 faithfulness 不能單看;
3. 給我一個用 RAGAS 或 DeepEval 建立 30-50 題最小評估集的具體步驟;
4. 說明什麼情況下該加 cross-encoder reranker、什麼情況下加了也沒用(例如 recall 本來就低)。
請用我能直接照做的清單形式回答。