實際工作環境機器學習系統:部署測試

您現在可以部署可預測獨角獸外觀的獨角獸模型了! 部署時,機器學習 (ML) 管道應會執行、更新 順利放送如果只部署模型就這麼簡單 大型「部署」按鈕不過,完整的機器學習系統 需要測試以下項目:

  • 正在驗證輸入資料。
  • 正在驗證特徵工程。
  • 驗證新模型版本的品質。
  • 正在驗證服務基礎架構。
  • 測試管道元件之間的整合作業。

許多軟體工程師偏好測試導向的開發 (TDD)。在 TDD 中,軟體 工程師「事前」會撰寫測試,撰寫「真實」測試Cloud Build 觸發條件 會在您變更原始碼時自動啟動建構作業 不過,TDD 在機器學習領域可能很困難。 舉例來說,您無法在訓練模型前撰寫要驗證的測試 相反地,您必須先找出模型的可實現損失 開發及測試新的模型版本,並對照可達成的損失。

關於獨角獸模型

本節指的是 unicorn 模型。以下是一些注意事項:

您正在使用機器學習技術建構能預測 獨角獸出現的獨角獸。您的資料集會詳細列出 10,000 次獨角獸出現 10,000 隻獨角獸非出現在眼前。資料集包含位置 一天的時間、海拔高度、溫度、濕度、樹木覆蓋、 彩虹和其他多種功能

透過可重現的訓練測試模型更新

假設您想繼續改善獨角獸模型,舉例來說,假設 您對特定特徵進行額外特徵工程 重新訓練模型,希望獲得更好的結果 (或至少相同) 取得最佳結果。 不過,有時很難重現模型訓練。 如要提高重現性,請按照以下建議操作:

  • 確定性植入隨機號碼產生器。 詳情請參閱資料隨機化 圖像生成

  • 以固定順序初始化模型元件,確保元件取得 每次執行時,從隨機號碼產生器產生的隨機數字即可。 機器學習程式庫通常會自動處理這項需求。

  • 計算模型多次執行作業的平均。

  • 使用版本管控功能,即使是初步疊代作業也沒問題 在調查模型或管道時找出精確的程式碼和參數。

即使確實遵循這些規範,仍有其他非確定性的來源 仍存在

測試對機器學習 API 的呼叫

如何測試 API 呼叫的更新?您可以重新訓練模型 可能會耗費大量時間請改為編寫單元測試來產生隨機輸入資料 並執行梯度下降的單一步驟如果這個步驟完成 那麼對 API 所做的任何更新可能並未破壞您的模型。

編寫管道元件的整合測試

在機器學習管道中,某個元件發生變更可能會導致其他元件發生錯誤 元件。編寫 整合測試,以端對端的方式執行整個管道。

除了持續執行整合測試之外,您也必須執行整合測試 也有助於我們推出新模型和軟體版本執行容器時 都會讓持續整合測試變得更加困難。執行整合 加速測試,搭配部分資料或較簡單的模型進行訓練。詳細資料 則取決於模型和資料要獲得持續的涵蓋率,建議您調整 加速測試,與模型或軟體的每個新版本執行。 與此同時,緩慢測試會在背景中持續執行。

提供模型前,請先確認模型品質

將新的模型版本推送至實際工作環境之前,請先針對 品質降低分為以下兩種類型:

  • 突然降級。新版本中的錯誤可能造成嚴重影響 品質較低檢查新版本的品質,驗證新版本 對應至先前的版本

  • 運作速度緩慢。測試突然降低的情況可能無法偵測到緩慢的測試 多個版本的模型品質降低相反地, 模型對驗證資料集的預測結果達到固定門檻。如果您的 偏離即時資料,然後更新驗證資料集 並確保模型仍達到相同的品質門檻

先驗證模型基礎架構相容性再提供

如果模型的更新速度比伺服器快,則模型 不同軟體依附元件 。確保模型使用的運算出現在 方法是在沙箱版本的伺服器中測試模型。