分類工作該讓決策模型接手
最近看到 Sebastian Raschka 實測 Jev 的文章,讓我重新想了一次「LLM 到底該負責什麼」。
他用 25,000 則 IMDb 評論做情緒分類。Jev 的 Choice API 準確率 96.47%,耗時 22 分 24 秒,成本 0.6492 美元;Noul API 是 96.20%、23 分 3 秒、0.6345 美元。bag-of-words 加 logistic regression 基線只有 89.9%,ModernBERT 約 95%。我覺得重點不在 Jev 贏了哪個排行榜,重點在任務邊界。
分類只需要從固定 label 做判斷,卻常被交給能寫文章、規劃和用工具的通用模型。這很像請會做研究報告的教授,每天替你把發票分成餐飲、交通、辦公用品。教授做得到,但能力、延遲和費用都花在分類以外。生成模型適合處理模糊輸入與解釋理由,決策模型適合輸出分數與機率。
routing 要先看機率和代價
我會做三層 routing。第一層用便宜 classifier,回傳 label 和 calibrated probability,例如「退款申請,0.93」。第二層設定 abstain threshold,低於 0.80 就升級到較強模型或人工。第三層才讓 LLM 處理需要語境推理的例外,並要求結構化輸出。
calibrated 很關鍵。模型報 0.93,不等於真的有 93% 機率正確。先切 validation set,用 reliability diagram 或 Expected Calibration Error 檢查。若 0.8 到 0.9 的預測,實際正確率只有 0.68,就要重新設 threshold,可用 Platt scaling 或 isotonic regression 校準。
threshold 也不能只看 accuracy。漏掉一筆高風險退款若損失 500 元,誤送人工審核只要 20 元,就應優先顧召回率。我的 decision table 至少列出錯誤類型、單次損失、可接受延遲和每筆預算,再決定哪個模型接手。
驗證路由,不要只看總平均
驗證時把資料按長度、語言、否定句、拼寫錯誤和少數類別切片,比較 macro F1、calibration error、p95 latency 和每千筆成本。若一般評論 96%,雙重否定只剩 72%,那類輸入就該提早升級。新路由先做一週 shadow test,觀察升級率與錯誤成本,再切正式流量。
通用 LLM 仍然重要,只是它未必該承包每個小決策。先問任務有沒有固定 label、是否需要可校準機率、錯誤代價是否對稱,再決定生成與決策要不要拆開。博士念到第十年,終於學會先算每次呼叫多少錢。
作者:十年大博士