機器學習維運與生產
影子部署(shadow deployment)
在你願意把真實決策交給新模型之前,你會想先看看它在真實流量上的表現,又不讓任何人受其錯誤影響。影子部署正是如此:每一個線上請求都被同時鏡像給新模型,與當前的生產模型平行,新模型算出它的預測,而該預測被記錄下來後即丟棄。使用者只會體驗到既有模型的輸出。挑戰者在暗處運行,被完整的生產分布所操練,並以它在評估時從未見過的資料來評斷。
在運作上,服務層複製請求、扇出給兩個模型,只把生產回應回傳給呼叫端,同時記錄影子回應、其延遲、資源用量與任何錯誤。由於影子模型接觸的是生產輸入,這能暴露離線評估無法發現的失敗:特徵管線不匹配、結構描述漂移、尾端延遲暴衝,以及在罕見輸入上的當機。把影子預測與最終抵達的真實標籤相比,能對真實世界準確度給出誠實且零風險的評估。
代價是你要為推論付兩次費用,且必須保證影子路徑沒有副作用——不寫入、不呼叫外部、不消耗配額,否則暗發布就不再是暗的了。影子模式也無法衡量那些取決於模型實際行動的結果,例如使用者如何回應它的推薦;要量這些,你終究需要一個會服務真實流量的金絲雀。
又称
另见