多模態輸出的驗證:怎麼確認模型真的看懂了
視覺任務的錯誤特別隱蔽,因為輸出看起來永遠很合理。
文字任務答錯時常常看得出破綻;視覺任務答錯時,模型會用非常肯定的語氣描述一個圖中不存在的東西。這讓驗證變得更重要。
三種可程式化的驗證
- 交叉一致性:同一張圖問兩次不同問法,答案應該一致。不一致就標為低信心。
- 可驗證欄位:抽取任務中,把能對照外部資料的欄位(統編、日期、金額加總)拿去驗證。
- 反向確認:先讓模型描述,再問「圖中是否出現 X」,比對前後是否矛盾。
a1 = ask(img, '這張發票的總金額是多少?只回數字。')
a2 = ask(img, '請列出發票上所有金額欄位與其名稱。')
total_in_list = next((v for k, v in a2.items() if '總' in k), None)
low_confidence = (a1 != total_in_list)人工抽查的比例
即使自動驗證都通過,仍要保留人工抽查。建議初期抽 10%,穩定後降到 1–2%,並且在模型或流程改動後拉回高比例一段時間。
建立錯誤樣態清單
- 把每一次發現的錯誤分類:漏看、看錯、幻覺、格式錯。
- 統計各類佔比,決定該加強前處理、提示、還是驗證。
- 把典型錯誤圖片收進評測集。
視覺任務的評測集一定要包含「刻意模糊、傾斜、反光、部分遮擋」的樣本。實驗室裡的乾淨圖片測不出真實世界的失敗率。