「我們的 RAG 表現好嗎?」這個問題沒測過不知道答案。三大指標 + 工具,幫您把 RAG 從「感覺有用」變成「可量化、可改善」。
三大核心指標
1. Faithfulness(忠實度)
定義:AI 的回答是否忠於 retrieved context?有沒有編造?
計算:把回答拆成多個 claims,每個 claim 檢查是否能從 context 推出。
目標值:> 90%
2. Answer Relevance(答案相關度)
定義:AI 的回答是否真的回答了用戶的問題?
計算:用 LLM 反推「如果這是答案,原本的問題應該是什麼」,與真實問題比較相似度。
目標值:> 85%
3. Context Relevance / Retrieval Recall(檢索召回)
定義:retrieved 的 context 中,有多少是真正相關的?
計算:人工標註 ground truth + 比對 retrieved 是否包含。
目標值:Top-3 > 85%
進階指標
- Latency:從問題到回答的時間(目標 < 3 秒)
- Cost per query:每次查詢的 API + 向量庫成本
- Citation accuracy:引用的來源是否正確
- Refusal rate:AI 主動拒答「不知道」的比例
工具:Ragas
開源評估框架,最常用:
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_recall
dataset = {
'question': [...],
'answer': [...], # AI 的回答
'contexts': [...], # retrieved 切片
'ground_truths': [...] # 標準答案
}
result = evaluate(
dataset,
metrics=[faithfulness, answer_relevancy, context_recall]
)
print(result)
建立 Test Set
需要 30–100 個有標準答案的「問題-答案」配對。建立方式:
- 從用戶實際問題挑(最真實)
- 業務專家寫(最準確)
- 用 LLM 從文件生成問題(最快)
監控與迭代流程
- 每月跑一次評估
- 找出表現最差的問題類型
- 針對性優化(chunking / embedding / prompt)
- 再跑一次,看分數有沒有提升
- 分數穩定後上線
常見問題類型
| 低分原因 | 改善方法 |
|---|---|
| Faithfulness 低 | 強化 Prompt「只能依 context 回答」 |
| Relevance 低 | 檢查切片是否相關、加 Reranker |
| Recall 低 | 檢查 chunking、Hybrid Search |
| Latency 高 | 降 Top-K、用 Flash 模型 |
| Cost 高 | Context Caching、用更小的模型 |
A/B 測試
上線後,定期 A/B 測試不同配置:
- 不同 chunk_size(300 vs 500 vs 800)
- 不同 Embedding 模型
- 不同 Top-K(5 vs 10 vs 20)
- 是否加 Reranker
用戶反饋整合
讓用戶在每個回答下方點「👍 / 👎」,收集真實數據。這比實驗室的評估更貼近實際表現。