跳到主要內容
yoAkyoku
← Notes
RAG約 1 分鐘

只看答案準確率,看不出 RAG 哪裡壞掉

精確名稱找不到、租戶資料混掉、證據不足還硬答。這三種失敗要分開量,才知道該修哪一段。

yoAkyoku 夜明曲 看板角色
Contents

問題

一個準確率數字,把三種失敗混在一起:對的段落根本沒被索引、索引了但沒被撈到、撈到了但生成時被忽略。

做民宿客服時,最常見的其實是第二種:房型名稱、政策名稱這種專有名詞,只靠向量搜尋不一定抓得準。

設計目標

每一段各有自己的指標,回歸時能指出是哪一段壞掉。

指標

階段

指標

回答的問題

檢索

recall@k

證據有沒有在前 k 筆裡?

上下文

context precision

拿到的上下文有多少是有用的?

生成

faithfulness

回答有沒有守住上下文?

混合檢索補的是哪一段

向量搜尋對語意好,對精確字詞弱。BM25 相反。兩邊各取前 N,用 Weighted RRF 合併。這不是讓流程看起來更複雜,而是補 recall@k 在專有名詞上的洞。

使用者問題 ──▶ Query Rewrite ──┬──▶ Vector Search ──┐
                               └──▶ BM25 ───────────┴──▶ Weighted RRF ──▶ Grounded Context

沒有證據時的行為也要量

檢索結果不足時,系統應該轉人工,而不是生成一段看似確定的文字。這件事也可以量:「證據不足卻回答了」的比例,比準確率更能反映客服的風險。

心得

  • Chunk 大小對 recall 的影響,比換 Embedding 模型還大。先量檢索,再調生成。
  • 租戶混掉是另一類失敗,指標抓不到,要靠 Tenant Context 沿路由傳到底來防。