除錯復盤:給誤報一個「處理預算」,檢測組省下了兩個人月
上個月我們給業務端上線一套內容異常檢測,第一週就撞上老毛病:模型很「熱」,把高分的異常件全撈出來,人工複審佇列三天堆了三千多筆。業務端的結論只有一句:「這麼多誤報我們沒辦法看,先別用了。」

除錯復盤:給誤報一個「處理預算」,檢測組省下了兩個人月
上個月我們給業務端上線一套內容異常檢測,第一週就撞上老毛病:模型很「熱」,把高分的異常件全撈出來,人工複審佇列三天堆了三千多筆。業務端的結論只有一句:「這麼多誤報我們沒辦法看,先別用了。」
問題的根源不是模型準確率——離線評估的準確率其實達標——而是我們沒有給誤報定一個**處理預算**。沒有預算,誤報會無限膨脹,把複審能力拖垮,最後被砍掉的是整條鏈路,不是誤報本身。
第一步:先區分「業務不可接受的誤報」和「技術上可自動消化的誤報」
我們拉了兩週的複審記錄,人工給每一筆誤報打標籤:這筆「看了就丟」的實際成本是多少?哪些根本不該送到人眼前?
結果大約三成誤報屬於同一類——命中系統自己前天剛記過日誌的常規批次操作。這些「有據可查的已知模式」走人工純屬浪費,應該由設定直接消化並留痕。
這一步省的不是模型的錢,是人的錢。模型準確率沒動,複審入口從三天三千筆降到一千出頭。
第二步:把「日預算」寫死在排程層,而不是靠人每天拍腦袋
我們給複審佇列定了一條硬規則:**每天人工最多處理兩百筆;超出的部分不丟棄、不升級警報嚇唬團隊,而是降為「觀察級」,進一個獨立頻道的自動判定平行處理。**
關鍵不是「兩百」這個數字,而是「寫進設定 + 有超額警報」。超預算那天必須有人看警報、決定是否臨時放開;如果沒人看,說明預算定錯了,或者上游變了。預算一旦進排程層,就必須有警報對象盯著——只配數字不配警報,等於沒配。
第三步:觀察級通道獨立部署,否則 burst 時第二條通道是假的
最初超預算部分的自動判定是複用主檢測通道的快取結果,工程上很省事。直到某天上游批次操作換了套路,快取整體失效:超預算的那批既沒預算走人工、自動判定又拿不到結果,積壓堆了兩三天,靠手動補佇列才清掉。
後來把「超預算自動判定」拆成獨立服務:不依賴主通道快取、有自己的佇列和重試上限、burst 時至少有人兜底。拆完之後類似失效事件歸零。
預算跑起來之後的數字
- 複審佇列長度:從 3200 筆/天 → 平均 610 筆/天
- 人工複審 SLA(入隊到出結論):46 小時 → 8 小時
- 自動處理佔比:22% → 68%
- 預算超限警報:兩週觸發 1 次,原因是上游批次任務提前 40 分鐘,當天下調了 50 筆預算而不是硬扛
值班的一句話
準確率報告不會告訴你「誰在看這些結果」。預算不是限制模型,是限制人。先把處理能力寫死,再看模型能配多高——順序反了,業務端只會看到一堆好看的曲線和一句「沒辦法用」。
留言區
歡迎分享你的想法!
載入留言中…