怎麼評估 AI 回答的品質?建立你的測試集
「換了新模型之後,感覺回答變聰明了。」——這句話在我們團隊是被禁止當結論的。感覺不能上線,感覺也不能回滾。做 LLM 應用一年多、模型帳單自己付的心得是:沒有評估測試集的 LLM 應用,等於沒有測試的軟體——你不知道它現在多好,更不知道下次改動之後它變好還是變壞。這篇講我們實際在用的評估方法,不需要學術等級的框架,一份試算表就能開始。
為什麼「用用看」不算評估
LLM 的輸出是機率性的:同一個提示詞,今天好明天普,你隨手試的三五個案例,樣本太小、又常挑自己熟的問題,結論幾乎必然偏誤。更麻煩的是改動的連鎖效應:你為了修好一個 case 調整提示詞,可能默默弄壞另外十個 case——沒有測試集,你根本不會發現。這跟寫程式不寫測試、每次改動全靠手點的處境一模一樣,解法也一樣:把驗證自動化、可重複。
第一步:建立你的測試集
測試集不用大,有代表性比有規模重要。我們的做法:
- 從真實輸入取樣。抓生產環境的真實案例(去識別化後),按場景分層:常見題占大宗、邊緣案例、已知會出錯的地雷題、還有「不該回答」的題目(超出範圍、誘導違規)。幾十題就能開始,一兩百題已經很夠用。
- 每題定義「好答案的標準」。不是寫標準答案逐字比對(LLM 每次措辭都不同),而是寫判準:必須包含哪些要點、不可以出現什麼(捏造的數字、超出知識庫的宣稱)、格式與語氣要求。
- 地雷題要持續累積。每次生產環境出包,那個案例就進測試集——這是最有價值的題目來源,等於把每一次翻車變成永久的回歸防線。
第二步:評分——人工盲測與 LLM 評審並用
人工盲測是最可信的基準:把兩個版本(舊提示詞 vs 新提示詞、模型 A vs 模型 B)的輸出去掉標籤、隨機排序,讓評審選比較好的那個。盲測是關鍵——不遮標籤,人會不自覺偏袒自己剛調好的版本,我們自己就犯過。
LLM 當評審(LLM-as-judge)負責規模化:把判準寫進評審提示詞,讓另一個模型幫每題打分。它讓你每次改動都能全量回歸,但有已知偏誤——偏好長答案、偏好特定風格、對自家模型偏心——所以我們的紀律是:LLM 評審跑日常回歸,人工盲測做重大決策(換模型、大改提示詞),並定期抽樣核對兩者的分數有沒有走鐘。
另外,能用程式硬驗的就不要用模型驗:輸出是不是合法 JSON、有沒有出現禁用詞、字數是否在範圍內——這些用規則檢查,又快又準又免費。
第三步:回歸驗證——改動前後都要跑
流程收斂成一句話:任何改動(提示詞、模型版本、檢索策略、參數)上線前,先跑測試集,分數持平或上升才放行。模型供應商更新版本、你換一家模型省成本,都是同一套流程。我們在自家剪片引擎上就是這樣管「LLM 選段」的品質:累積了一批「這支影片的精華在哪」的標注案例,每次調整選段提示詞就回歸一次,不然「感覺選得不錯」三個月後就會變成「客戶問為什麼精華都選錯」。
「感覺變聰明了」是聊天的語言,不是工程的語言。工程的語言是:一百題裡,上一版對七十四題,這一版對八十一題。
常見的三個坑
- 測試集洩漏進提示詞。拿測試題去調提示詞、再用同一批題驗收,分數必然好看但毫無意義。調校用的案例和驗收用的案例要分開。
- 只測正確率,不測拒答。「不該答的有沒有乖乖不答」和「該答的有沒有答對」一樣重要,尤其是有合規要求的場景——這部分跟幻覺防護的工程做法是同一套防線。
- 指標一次設太多。正確性、完整性、語氣、格式各給一個分數,最後沒人知道該看哪個。先用一個主指標(這題過/不過)跑起來,需要再細分。
今天就能開始的版本
開一份試算表:第一欄輸入、第二欄判準、之後每欄是一個版本的輸出與過/不過。三十題、每次改動花二十分鐘人工看完——這個最陽春的版本,已經勝過市面上大多數「憑感覺上線」的 LLM 應用。等題數與改動頻率上來,再把它自動化。如果你的團隊正要把 LLM 應用推上生產環境、想把評估這一層一次建好,歡迎看看我們的 AI 導入服務。
這類問題,我們每天都在自己的產品上解
免費 30 分鐘線上諮詢・先釐清方向,不推銷・一個工作天內回覆