Build Evals That Actually Matter - Nick Ung, Lyft
三句話摘要
Lyft 在构建客户支持 AI 代理時,如何設計完整的離線+在線評估系統來確保 AI 代理質量並持續改進。 評估系統不是靜態的指標集合,而是與代理開發共同演化的動態迴圈,需要可操作的業務對齐指標、持續的數據驅動驗證、以及將評估結果系統性地反饋進模型訓練和工程改進。 離線評估是發佈前必要關卡:使用 LangGraph 代理與微調的用戶 LLM 進行多輪對話模擬,輔以 LLM 評判和代碼斷言進行評估,確保不用真實用戶作為測試數據,這是從機器學習模型開發經驗直接借鑑的做法。
重點整理
重點- 1
離線評估是發佈前必要關卡:使用 LangGraph 代理與微調的用戶 LLM 進行多輪對話模擬,輔以 LLM 評判和代碼斷言進行評估,確保不用真實用戶作為測試數據,這是從機器學習模型開發經驗直接借鑑的做法。
- 2
用戶模擬器必須接近現實:初期使用前沿 LLM 角色扮演用戶會產生過於客氣的表述,導致評估分數虛高(90%),需要用真實用戶對話微調 LLM,同時定義具體用戶角色(忠實用戶、退款尋求者、AI 懷疑者等)才能獲得可信的評估結果。
- 3
LLM 評判必須可操作且與業務對齐:預構建的通用指標(如回應幫助性、對話自然度)無法指導改進,必須與領域專家協作定義任務成功/失敗二元標準,如「教育文案」指標會檢查代理是否嘗試過多次教育或過早升級。
- 4
評估指標需要持續演化和驗證:用手工標註約 100 例樣本建立訓練/開發/測試集,計算精確度和召回率驗證評判器效果,並定期進行誤差分析迴圈發現失敗模式,指標應與觀察到的數據共同演化而非前置定義。
實用技巧與重點
乾貨- 工具與平台
- LangGraph(代理構建框架)
- LangSmith、LangFuse(追踪和日誌工具)
- DeepEval(初期預構建評估指標來源)
- 手工標註界面(Annotation Queue)用於領域專家標註
- 評估流程組件
- 離線模擬器:包含代理、用戶 LLM、領域政策
- 用戶定義:意圖、用戶數據點(如「高級駕駛員、開車多年」)、用戶角色
- 失敗模式分類:用戶角色包括「貴人用戶」「不耐煩的升級請求者」「AI 懷疑論者」
- 確定性評估:代碼斷言檢查,如代理是否正確應用了優惠政策
- 可操作指標示例:「教育文案」指標,定義通過/失敗標準
- 數據分割方法(類似機器學習模型訓練)
- 訓練集:提取少量高質量例子用於評判提示
- 開發集:迭代改進評判提示和框架
- 測試集:驗證未過度擬合
- 精度與統計方法
- 初期評估結果:90% 準確率(過於樂觀)
- 微調後:降至更現實水平
- 樣本量指導:50 個例子 + 4% 提升無法證明真實收益,需更多例子驗證統計意義
- 置信區間計算:使所有報告的指標帶有不確定性範圍
- 持續改進環節
- 模型學習:微調模型權重、後訓練
- 上下文學習:改進代理能見的信息(文檔、用戶記憶、知識庫)
- 框架學習:系統提示、數據模式、控制流、路由、重試機制
- 評估框架配置
- 配置驅動(YAML 文件)
- 基本原語:任務、數據集、用戶角色、LLM 適配器、評估器
- 執行場景:本地開發時、提示調整時、提交前、CI/CD 中
結論
結論“評估系統不是靜態的指標集合,而是與代理開發共同演化的動態迴圈,需要可操作的業務對齐指標、持續的數據驅動驗證、以及將評估結果系統性地反饋進模型訓練和工程改進。”
完整解析
詳細Lyft 的客戶支持 AI 代理已經開發超過一年,在這個過程中,Nick 和 Akshay 團隊認識到評估系統是確保代理質量的關鍵。他們將評估分為開發階段和生產階段,設計了一個端到端的管道。
在開發階段,工程師需要構建代理的各個組件:管理上下文、建立 Red 管道獲取教育對話、定義工具、設計代理圖和系統提示。完成後,代理必須通過嚴格的離線評估才能進入生產環境。這一理念來自機器學習模型開發的最佳實踐——在發佈前進行離線評估,而不是讓真實用戶成為測試對象。
離線評估流程採用了 Tau Bench 論文的靈感,包含三個核心組件:一個是 AI 代理本身,一個是扮演用戶的 LLM,兩者進行多輪對話生成完整軌跡;二是領域政策規則,定義客戶支持場景下的處理指南;三是評判器,既有 LLM 評判器也有代碼斷言形式的確定性檢查。
然而,Lyft 在初期遇到了一個嚴重問題。使用前沿 LLM 扮演用戶時,模型傾向於表現得過度友好和耐心,導致對話聽起來不像真實的支持票,評估準確率虛高達 90%。真實的 Lyft 用戶往往不耐煩、已經挫折,對話簡短且直接。為了解決這一問題,他們用真實用戶對話數據對 LLM 進行了微調,同時定義了多種用戶角色(忠實客戶、退款尋求者、AI 懷疑論者等),使模擬器更接近現實場景。微調後評估分數下降了,但這正是所期望的——評估應該反映真實難度。
在 LLM 評判器設計上,Lyft 最初使用 DeepEval 提供的預構建指標,如回應幫助性、對話自然度等,但這些指標太通用、不可操作。例如,如果「回應幫助性」得分為 0.5,開發人員無法從中獲得改進方向。因此,他們與領域專家合作,定義了與業務目標對齐的二元指標,如「教育文案」指標:檢查代理是否在應該升級時進行了升級,或是否在無機會教育用戶時過早升級,以及其他失敗情況。這些指標是可操作的,能直接指導代理改進。
為了驗證評判器的有效性,Lyft 採用了機器學習分類器的驗證方法。他們手工標註約 100 個例子為通過/失敗,分割成訓練集、開發集和測試集。訓練集用於從評判提示中提取示例,開發集用於迭代改進評判提示和框架,測試集用於最終驗證。隨後計算精確度和召回率,確保評判器在看不見的數據上表現一致。
此外,Lyft 認識到評估標準不應前置定義,而應隨著觀察到的數據而演化。他們進行定期的誤差分析循環,深入檢查失敗案例,識別失敗模式,去除噪音指標,保留真正影響決策的指標。這個循環應持續運行(如每週或雙週),而不是一次性審計。
在統計方法上,他們添加了置信區間,避免虛假結論。例如,若一個評判器得分 84%,另一個 88%,在只有 50 個樣本的情況下,4% 的提升可能不具統計意義。只有在樣本量足夠或提升幅度明顯時,才能得出有效結論。
生產環節也有在線評估,使用 LangSmith 或 LangFuse 等工具追踪每次代理執行的完整軌跡(調用的節點、LLM 看到的信息、使用的工具、令牌用量、延遲等),結合 LLM 評判器和人工分析,持續識別失敗模式並反饋給開發團隊。
最後,Lyft 構想了一個配置驅動的評估框架,使用 YAML 文件定義任務、數據集、用戶角色、LLM 適配器和評估器等原語,允許工程師、分析師和數據科學家都能貢獻。該框架支持並行執行,處理數千甚至數萬評估案例。代理開發者可在本地調整提示時立即運行評估獲得反饋,在提交前執行評估確保性能無退化,在 CI/CD 中構建回歸測試套件。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


