iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
AI Engineering

現代化的 AI 系統設計系列 第 10

[Day10] - AI 回答對了系統就真的做對了嗎?淺談 AI Evaluation

  • 分享至 

  • xImage
  •  

Faithfulness 0.62,然後呢?

昨天我們替 Grounded Generation 加上三道閘門。但系統改完後,怎麼知道它真的變好了?

最常見的做法,是挑幾個問題跑 Demo,再看 Dashboard:Faithfulness 0.62、Answer Relevance 0.81。

新版高了 0.03,大家便準備發布。可是 0.62 究竟代表什麼?

回到 ORA-12541 的例子。原始文件有正確答案,Retriever 也在 Top-K 找到新版 Release Note,但 Context Builder 為了 Token Budget,將它裁掉,只留下數份語意相似的舊手冊。模型最後忠實地根據錯誤 Context 回答。

只看最終答案,我們可能繼續調 Prompt;只看 Retrieval Recall,又會以為證據已經找到。真正壞掉的是中間那一層。

好的 Evaluation 不是回答「系統有幾分」,而是回答「哪一層、在哪一類問題、以什麼代價失敗」。

https://ithelp.ithome.com.tw/upload/images/20260824/20183613PIEqqtoP7R.png

一個總分,無法告訴你該修哪裡

RAG 的最終回答是多個元件共同作用的結果。答案錯了,可能是:

  • 文件沒有正確進入 Index,或 Query 改寫遺失關鍵資訊
  • Retriever 沒找到 Evidence,或 Context Builder 將它裁掉
  • Generator 沒使用正確證據,或擅自加入額外 Claim
  • 問題不可回答,系統卻硬答
  • Judge 自己判錯

所以 RAG Evaluation 至少要分成 Retrieval、Context、Generation、Answerability、Task 與 Production 六層,各自指向不同 Owner。

加入 Agent 後,還要檢查 Tool、參數、授權、Recovery,以及外部世界是否到達預期狀態。

Evaluation 的目的不是替系統頒發成績單,而是建立一套能把失敗送回正確責任層的導航系統。


Golden Set 不是一份 Question–Answer Excel

若測試資料只有 Question 與 Expected Answer,很快會遇到問題:同一題可以有多種正確表達;文字接近標準答案,也可能漏掉重要條件。

RAG 的 Golden Case 更適合保存:

case_id: ora-12541-001
query: "升級到 3.2.1 後出現 ORA-12541,要怎麼恢復?"
answerability: partial
required_facets:
  - claim: "確認 Listener 是否啟動"
    evidence: [doc-12#span-8]
  - claim: "依 3.2.1 的變更決定恢復方式"
    evidence: [doc-21#span-3]
expected_action: partial_answer
slice_tags: [exact_error_code, version_sensitive, troubleshooting]
source_snapshot: corpus-2026-08-24

重點不是 Golden Answer,而是 Required Facets、Evidence Span、Answerability 與 Expected Action。

Evidence-backed Facet 可以成為整條 Pipeline 共用的標註單位:Retrieval 檢查有沒有找到支持這個 Facet 的證據;Context 檢查它是否真的被保留;Generation 檢查回答是否涵蓋 Facet;Citation 則檢查對應 Evidence 是否真的支持 Claim。

Golden Set 也不能只有簡單且可回答的題目,還要包含:

  • Answerable、Partial、Unanswerable、Ambiguous 與 Conflict
  • 精確 ID、版本、否定、例外與多段 Evidence
  • 同名實體、舊版文件、跨語言與多輪指代
  • Hard Distractor、惡意文件、權限限制與真實 Incident

真實 Query 需要去識別與人工標註;Synthetic Question 能擴充長尾,卻只能當候選題。RAGEval 研究情境化合成資料;mtRAG 則顯示多輪追問與不可回答問題無法由單輪 QA 代表。

先定義哪些行為算成功、哪些錯誤不可接受,再選擇 Metric 與工具;
不能先打開 Dashboard,才決定分數代表什麼。


六層 RAG Evaluation:每一層都要能被單獨診斷

Retrieval:必要證據有沒有被找到?

Recall@K、MRR 與 nDCG@K 是常見起點,但 Hit Rate 只表示至少命中一筆,MRR 也不能描述多段 Evidence 的完整性。

RAG 還可以增加:

  • Evidence Set Completeness 與 First Complete Rank
  • Filter/ACL Accuracy
  • 錯誤碼、版本、多語言等 Slice Recall

這些指標需要 Gold Evidence 或 Qrels。LLM Judge 可以估計 Relevance,卻不是 Retrieval Ground Truth。

Context Assembly:找到的證據有沒有活到最後?

Retriever 的輸出是候選排行榜;模型看到的則是經過 Reranking、去重、Compression、排序與 Token Budget 後的 Evidence Packet。兩者必須分開保存與評估。

這一層最值得加入的指標是:

Evidence Survival Rate:Retriever 已經找到的必要 Evidence,
最後有多少仍存在於模型實際看到的 Context?

此外還要觀察 Context Coverage、Duplicate/Distractor Rate、Conflict Detection 與 Provenance Integrity。

因此同一個錯答案可以被精確歸因:

Retrieval 最終 Context 回答 主要問題
沒找到 沒有 答錯 Retrieval
找到了 被裁掉 答錯 Context Assembly
找到了 已保留 沒使用 Generation
找到了 已使用 擅自加料 Grounding
證據不足 證據不足 仍回答 Answerability

https://ithelp.ithome.com.tw/upload/images/20260824/20183613STFQVvpW7D.png

Generation:模型有沒有正確使用證據?

這一層承接 Day 9,需要分開衡量 Faithfulness、Answer Correctness、Required Facet Completeness、Citation Validity、Citation Correctness 與 Citation Completeness。

Faithfulness 高不代表 Reference 正確;
Answer Relevance 高,也可能只是流暢地回答錯誤內容。
金額、權限或版本等關鍵錯誤不能被平均分掩蓋。

Answerability:資料不夠時,能不能停下來?

測試集若全是 Answerable,永遠回答的模型就會被錯誤獎勵。
需要分別觀察 False Answer、Over-abstention、Partial Answer Coverage、Conflict Disclosure,以及不同 Threshold 下的 Risk–Coverage Curve。

End-to-end:使用者任務有沒有完成?

最終指標應回到真實任務,例如是否找到條款、排除故障或正確路由工單。
Exact Match 適合封閉任務;
開放答案則使用 Required Facets、Executable Check 或 Blind Pairwise Comparison。

Production:真實環境是否仍然正常?

離線分數看不到流量尖峰、Timeout、Cache Stale 與跨 Tenant 風險。
Production 還需追蹤 Tail Latency、Fallback、成功任務成本、Stale Answer、ACL Leakage 與 Human Overturn。

AWS Bedrock 已將 RAG Evaluation 分成 Retrieve onlyRetrieve and generate,Microsoft Foundry 也區分 Process Evaluation 與 System Evaluation。重點不是採用哪一家,而是主流實務已不再把 RAG 壓成單一最終分數。AWS Bedrock RAG EvaluationMicrosoft Foundry RAG Evaluators


LLM-as-a-Judge 不是尺,而是一台需要校正的儀器

自然語言答案很難只靠 Exact Match 評估,因此 LLM-as-a-Judge 幾乎不可避免:

方法 適合 主要風險
Pointwise 對單一答案給 Pass/Fail 或 Likert Score 寬鬆程度與刻度漂移
Pairwise 比較 Candidate 與 Baseline Position、Length 與 Style Bias
Reference-based 對照 Gold Facts 或 Evidence Reference 可能不完整或過期

Judge 會受到 Rubric、順序、Evidence 長度、模型版本與回答風格影響。Generator 與 Judge 使用同一家族時,也可能共享盲點。

因此 Judge 本身也要接受 Evaluation:

  1. 用人工標註 Calibration Set 檢查重要 Slice
  2. 將 Rubric 寫成可觀察的 Assertions
  3. Pairwise 交換 A/B 順序
  4. 比較 Balanced Accuracy、Macro-F1 與 Confusion Matrix
  5. 鎖定 Model、Prompt、參數與 Schema Version
  6. 用 Sentinel Cases 偵測 Drift;更新後重新建立 Baseline
  7. 高風險與 Disagreement 交由人工裁決

Google Vertex AI 的官方流程同樣要求使用 Human Ratings 評估 Judge,並提供 Confusion Matrix、Balanced Accuracy 與 F1,而不是只相信 Judge 產生的平均分。Google Cloud:Evaluate a judge model

https://ithelp.ithome.com.tw/upload/images/20260824/20183613vWS9vRXkHq.png


從 RAG 到 Agent:回答對了,過程仍可能做錯

RAG 的主要輸出是 Context 與 Answer;Agent 則會呼叫 Tool、改變狀態,甚至代表使用者執行外部動作。這使 Evaluation 從「回答是否正確」擴大成「世界是否真的被正確改變」。

假設 Agent 回答:「Listener 已重新啟動,服務恢復正常。」它可能同時:

  • 在沒有確認的情況下修改 Production
  • 對錯誤 Tenant 操作,或先重啟才檢查原因
  • 忽略 Partial Failure,重試非 Idempotent Action
  • 任務完成後仍繼續呼叫 Tool

因此,Agent Evaluation 至少有三種粒度:

粒度 真正要驗證的事
Final State 外部環境是否真的達到預期狀態?
Milestone/Invariant 必要確認與條件是否完成,禁忌是否未發生?
Trajectory Tool、參數、順序、Recovery 與 Stop 是否合理?

Anthropic 將 Transcript 與 Outcome 明確分開:Agent 說「訂票完成」不算完成,資料庫裡是否真的存在 Reservation 才是 Outcome。Anthropic:Demystifying evals for AI agents

Final Answer 是 Agent 對自己做了什麼的描述;Final State 才是外部世界真正發生了什麼。


不要要求 Agent 重現唯一一條 Golden Trajectory

付款或權限流程可能有固定順序,但研究、除錯與客服通常有多條合理路徑。只保存一串標準 Tool Calls,會把有效的新路徑判錯。

Agent Case 應定義:

task: "診斷 ORA-12541,但不要修改正式環境"
final_state:
  diagnosis: listener_not_running
mandatory_milestones:
  - identify_environment
  - inspect_listener_status
  - present_evidence
forbidden_actions:
  - modify_production_configuration
  - restart_service_without_confirmation
allowed_tools: [knowledge_search, monitoring_read]
budgets:
  max_tool_calls: 6
  max_retries_per_tool: 2

評估可以採 Exact、In-order、Any-order 或 Partial-order。開放任務較適合 Milestones、Forbidden Set 與少量順序限制;只有封閉 SOP 才要求完整路徑一致。AWS AgentCore Ground Truth EvaluationLangSmith Trajectory Evaluation 都提供不同嚴格度的匹配方式。

https://ithelp.ithome.com.tw/upload/images/20260824/20183613dYMzSMGME9.png


Tool Call 不能只看 Function Name

Agent 選到正確 Tool,不代表行動正確。Tool Evaluation 至少要拆成:

  • Selection:是否選對 Tool,有沒有漏用或過度呼叫
  • Arguments:Tenant、Region、日期、金額、型別與必要欄位是否正確
  • Execution:Timeout、Exception、Partial Write 與 Retry 是否安全
  • Output Utilization:Agent 是否正確理解 Tool Result

Microsoft Foundry 也將 Tool Selection、Tool Input Accuracy、Tool Output Utilization 與 Tool Call Success 分成不同 Evaluator。這些維度不能只用「Function Name Match」概括。Microsoft Foundry Agent Evaluators

Offline Test 還應注入 Timeout、Stale Result、惡意 Tool Result 與 Partial Failure,觀察 Agent 是否:

  • 分辨可重試與不可重試錯誤
  • 避免重複執行非 Idempotent Action
  • 需要時要求澄清、授權或轉人工
  • 在成功後停止,而不是無限循環

效率不是步數越少越好。應先確認安全 Milestones,再衡量重複呼叫、Token、Latency 與成功任務成本。


安全與授權是 Hard Gate,不是總分中的 10%

如果 Agent 完成退款,但把另一位客戶的資料放進回覆,不能用 90 分 Task Success 抵銷。越權、資料洩漏、跳過確認與 Forbidden Action 必須直接阻擋發布或執行。

安全測試至少涵蓋未授權行動、跨 Tenant、敏感資料洩漏、Prompt Injection、惡意 Tool Result、確認繞過與防禦過度。

Deterministic Grader 應優先檢查真實 State、Tool Schema、Argument Range、Authorization、Forbidden Action 與 Business Invariant。LLM Judge 只處理語氣、互動品質與開放路徑是否合理等語意灰區;Borderline 與高風險案例保留 Human Adjudication。

可以用程式直接驗證的真相,不應先交給另一個 LLM 猜測。


公平比較:新架構不能偷帶更多 Budget

新版 Pipeline 如果使用更強模型、五倍 Retrieval、三倍 Context 與額外三次 Judge Call,回答改善不一定來自新方法本身。

比較 Candidate 與 Baseline 時,應固定或揭露:

  • Corpus、Dataset、Model 與 Judge Snapshot
  • Token、Tool、Retriever、Iteration、Latency 與 Cost Budget
  • Initial State、User Simulator 與 Evaluation Harness

EMNLP 2025 的 Stronger Baselines for RAG with Long-Context LMs 也提醒,複雜 RAG 應在 Matched Token Budget 下和簡單但強的 Baseline 比較,避免把更多資源帶來的改善歸功於新 Pipeline。

Agent 具有隨機性,同一 Case 還要跑多次 Trial,報告成功率、Variance、Cost 與 Latency 分布,不能挑最好的一次 Demo。


Offline 決定能否發布,Online 決定是否保留

Offline Evaluation 應在固定 Corpus 與隔離、可重置的環境中執行。每次 Parser、Chunker、Retriever、Context Policy、Prompt、Model、Tool Schema 或 Judge 更新,都需要重跑 Component Metrics 與 End-to-end Regression。

Release Gate 不應只有「平均分不能下降」:

  • Critical Case 不得新增 False Answer、Forbidden Action 或 ACL Leakage
  • 重要 Slice 的 Retrieval 與 Context Coverage 不得退化
  • Groundedness、Completeness 與 Answerability 分別過門檻
  • Agent Final State、Milestones 與 Authorization 必須通過
  • p95 Latency 與 Cost per Successful Task 在 Budget 內

上線後再用 Shadow、Canary 或 A/B 觀察真實 Task Outcome、Human Escalation、Undo、Correction、Latency 與 Cost。線上按讚或 Citation Click 只是行為訊號,不是 Correctness Ground Truth。

最重要的閉環是 Incident Replay:Production 發生錯誤後,由 SME 判定 Failure Layer、補上 Evidence/State/Expected Action,加入永久 Regression Suite。如此 Evaluation 才會隨真實失敗變得更完整。

https://ithelp.ithome.com.tw/upload/images/20260824/20183613LpKxCYFv5U.png


工具是積木,不是 Evaluation Strategy

  • RAGAS 適合建立 Metric 與 Experiment Baseline
  • RAGChecker 做 Claim-level 診斷
  • TruLens 偏向 Trace 與 Feedback
  • DeepEval 將 Regression Gate 放進 CI
  • LangSmith/AgentEvals 評估 Agent Trajectory
  • Inspect AI 則提供隔離的 Agent Evaluation Harness

但 Metric Library 不會產生企業 Ground Truth,Trace 不等於 Correctness,Test Runner 也不是 Dataset Strategy。即使兩套工具都叫 Faithfulness,只要 Judge、Rubric 與輸入不同,分數就不能直接比較。


Evaluation 的終點不是 Dashboard,而是 Decision

把今天的設計整理成一條開發循環:

  1. 先用 Evidence-backed Facets、Answerability、Final State、Milestones 與 Forbidden Actions 定義成功
  2. 分別量測 Retrieval、Context、Generation、Agent 與 Production
  3. Judge 以人工標註校準,並鎖定版本、追蹤 Drift
  4. Candidate 與 Baseline 在相同 Budget 與 Harness 下比較
  5. Critical Slice 與 Safety Hard Gate 決定能否發布
  6. Production Incident 經人工歸因後加入 Regression Suite

RAG 評估的是證據如何成為答案;Agent 評估的則是模型如何透過一連串決策、工具與狀態改變完成任務。兩者共同的原則是:不能只相信系統最後說了什麼,還要保留每一層真正看見、選擇與改變了什麼。

成熟的 Evaluation 不會只說新版從 0.81 進步到 0.84;
它會告訴我們改善發生在哪一類 Case、犧牲了多少成本與延遲、哪些關鍵風險仍然存在,
以及這個版本是否有資格被發布。

下一步,當 Evaluation 已經能指出問題在哪一層,就需要進一步討論 Production Observability:如何把 Query、Retrieval、Context、Tool Calls、Model、Verifier、Latency、Cost 與使用者結果串成一條可以重建的 Trace。

AI 你怎麼看?

https://ithelp.ithome.com.tw/upload/images/20260824/201836131zCEFUIEHx.png


上一篇
[Day9] - 有引用不代表有根據:如何讓 AI 只說證據支持的話?
下一篇
[Day11] - AI 出錯後,你能重建它看見了什麼嗎?Production Observability 與 Trace
系列文
現代化的 AI 系統設計19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言