您現在可以部署可預測獨角獸外觀的獨角獸模型了! 部署時,機器學習 (ML) 管道應會執行、更新 順利放送如果只部署模型就這麼簡單 大型「部署」按鈕不過,完整的機器學習系統 需要測試以下項目:
- 正在驗證輸入資料。
- 正在驗證特徵工程。
- 驗證新模型版本的品質。
- 正在驗證服務基礎架構。
- 測試管道元件之間的整合作業。
許多軟體工程師偏好測試導向的開發 (TDD)。在 TDD 中,軟體 工程師「事前」會撰寫測試,撰寫「真實」測試Cloud Build 觸發條件 會在您變更原始碼時自動啟動建構作業 不過,TDD 在機器學習領域可能很困難。 舉例來說,您無法在訓練模型前撰寫要驗證的測試 相反地,您必須先找出模型的可實現損失 開發及測試新的模型版本,並對照可達成的損失。
關於獨角獸模型
本節指的是 unicorn 模型。以下是一些注意事項:
您正在使用機器學習技術建構能預測 獨角獸出現的獨角獸。您的資料集會詳細列出 10,000 次獨角獸出現 10,000 隻獨角獸非出現在眼前。資料集包含位置 一天的時間、海拔高度、溫度、濕度、樹木覆蓋、 彩虹和其他多種功能
透過可重現的訓練測試模型更新
假設您想繼續改善獨角獸模型,舉例來說,假設 您對特定特徵進行額外特徵工程 重新訓練模型,希望獲得更好的結果 (或至少相同) 取得最佳結果。 不過,有時很難重現模型訓練。 如要提高重現性,請按照以下建議操作:
確定性植入隨機號碼產生器。 詳情請參閱資料隨機化 圖像生成
以固定順序初始化模型元件,確保元件取得 每次執行時,從隨機號碼產生器產生的隨機數字即可。 機器學習程式庫通常會自動處理這項需求。
計算模型多次執行作業的平均。
使用版本管控功能,即使是初步疊代作業也沒問題 在調查模型或管道時找出精確的程式碼和參數。
即使確實遵循這些規範,仍有其他非確定性的來源 仍存在
測試對機器學習 API 的呼叫
如何測試 API 呼叫的更新?您可以重新訓練模型 可能會耗費大量時間請改為編寫單元測試來產生隨機輸入資料 並執行梯度下降的單一步驟如果這個步驟完成 那麼對 API 所做的任何更新可能並未破壞您的模型。
編寫管道元件的整合測試
在機器學習管道中,某個元件發生變更可能會導致其他元件發生錯誤 元件。編寫 整合測試,以端對端的方式執行整個管道。
除了持續執行整合測試之外,您也必須執行整合測試 也有助於我們推出新模型和軟體版本執行容器時 都會讓持續整合測試變得更加困難。執行整合 加速測試,搭配部分資料或較簡單的模型進行訓練。詳細資料 則取決於模型和資料要獲得持續的涵蓋率,建議您調整 加速測試,與模型或軟體的每個新版本執行。 與此同時,緩慢測試會在背景中持續執行。
提供模型前,請先確認模型品質
將新的模型版本推送至實際工作環境之前,請先針對 品質降低分為以下兩種類型:
突然降級。新版本中的錯誤可能造成嚴重影響 品質較低檢查新版本的品質,驗證新版本 對應至先前的版本
運作速度緩慢。測試突然降低的情況可能無法偵測到緩慢的測試 多個版本的模型品質降低相反地, 模型對驗證資料集的預測結果達到固定門檻。如果您的 偏離即時資料,然後更新驗證資料集 並確保模型仍達到相同的品質門檻
先驗證模型基礎架構相容性再提供
如果模型的更新速度比伺服器快,則模型 不同軟體依附元件 。確保模型使用的運算出現在 方法是在沙箱版本的伺服器中測試模型。