在實際工作環境中測試管道

恭喜!您已部署全域的獨角獸外觀預測器。 您希望預測工具以 24 小時全天候執行,而且不需命中。您很快就發現您需要監控機器學習管線。監控所有元件時並不容易,接著讓我們來看看相關規定和解決方案。

查看訓練/應用偏差

訓練/應用偏差代表輸入的資料在訓練和提供之間有所不同。下表說明兩種重要類型:

類型 定義 範例 解決方法
結構定義偏差 訓練及提供輸入資料不符合相同的結構定義。 模型繼續使用舊資料進行訓練時,提供資料的格式或分佈會變動。 使用相同的結構定義來驗證訓練和提供資料。 請務必單獨檢查結構定義未檢查的統計資料,例如缺少值的部分比例
特徵偏差 訓練與提供資料的工程資料不同。 特徵工程程式碼在訓練和供應作業之間有所不同,因此會產生不同的工程資料。 與結構定義偏差類似,在訓練和提供工程化資料上套用相同的統計資料規則。追蹤偵測到的偏差特徵數量,以及每個特徵的偏移範例比例。

監控模型在各個管道中的使用年齡

如果提供資料會隨時間演進,但模型並未定期重新訓練,模型品質將下降。追蹤模型使用新資料經過訓練的時間,並設定快訊的存在門檻。除了監控模型提供服務的年齡之外,您應在整個模型中監控模型的年齡,以便捕捉管道停滯。

測試模型權重與輸出的數值穩定

在模型訓練期間,您的權重和層輸出結果不應為 NaN 或 Inf。撰寫測試,檢查權重和圖層輸出的 NaN 和 Inf 值。此外,請測試層的一半以上的輸出不是零。

監控模型效能

你的獨角獸外觀預測工具比預期更加熱門!你會收到大量預測要求,以及更多訓練資料。這樣您發現在自己的模型耗用更多記憶體和時間進行訓練時,這是很好的事情。您決定按照下列步驟監控模型的效能:

  • 按照程式碼、模型和資料的版本來追蹤模型效能。這類追蹤可讓您準確找出任何效能降低的確切原因。
  • 針對新模型,對照先前的版本和固定門檻,每秒測試訓練步驟。
  • 設定記憶體用量門檻,藉此避免發生記憶體流失的情形。
  • 監控 API 回應時間及追蹤百分位數。雖然 API 回應時間不在您的控制範圍內,但回應時間緩慢可能會導致實際指標不佳。
  • 監控每秒回答的查詢次數。

根據提供的資料測試即時模型的品質

已驗證模型。然而,如果真實世界的情境 (例如獨角獸行為) 在記錄驗證資料後有所變更,該怎麼辦?而提供模型的模型品質也會降低。不過,測試作業中的品質並不容易,因為實際資料不一定會加上標籤。如果提供的資料沒有標籤,請考慮下列測試:

  • 使用人工審查員產生標籤

  • 查看在預測中呈現重大統計資料偏誤的模型。請參閱分類:預測偏誤

  • 追蹤模型的真實指標。舉例來說,如要分類垃圾內容,請將預測結果與使用者回報的垃圾內容進行比較。

  • 針對一部分查詢提供新模型版本,藉此減少訓練和提供資料之間的潛在差異。驗證新的放送模型時,請逐步將所有查詢切換至新版本。

使用這些測試時,別忘了監控預測品質的突然和緩慢下降情形。