模型部署模式
本文描述了兩種常見模式正毫升工件通過分期和恢複生產。改變模型的異步本性和代碼意味著有多個可能的模式,一個毫升開發過程可能也會步其後塵。
模型是由代碼,但由此產生的模型工件和創造它們的代碼可以異步操作。和代碼更改,新模型版本可能不發生在同一時間。例如,考慮以下場景:
檢測欺詐性交易,您將開發一個毫升管道通過每周一個模型。代碼可能不是經常變化,但該模型可能接受再培訓,每周將新數據。
您可以創建一個大型的、深層神經網絡對文檔進行分類。在這種情況下,訓練模型計算昂貴和耗時的,培訓模型可能會經常發生。然而,部署的代碼,可以更新服務,並監視這個模型沒有培訓模型。
兩種模式的區別在於是否模型工件或培訓生產模型工件的代碼正在向生產推廣。
部署代碼(推薦)
在大多數情況下,磚推薦“部署代碼”的方法。這種方法納入推薦MLOps工作流。
在此模式中,火車模型的代碼在開發環境中開發的。相同的代碼移動到暫存,然後生產。模型訓練在每個環境:最初在開發環境中作為模型開發的一部分,在分段(數據)的有限子集作為集成測試的一部分,並在生產環境中(完整的生產數據)來產生最終的模型。
優點:
在組織對生產數據的訪問是受限製的,這個模式允許訓練模型對生產數據在生產環境中。
自動模式培訓更安全,因為培訓代碼審查,測試和批準生產。
支持代碼遵循相同的模式,模型訓練的代碼。通過集成測試階段。
缺點:
數據科學家的學習曲線的手從代碼的合作者可以陡峭。預定義的項目模板和工作流是有幫助的。
也在此模式中,數據科學家必須能夠評估培訓結果的生產環境中,他們的知識來識別並修複ML-specific問題。
如果你的情況要求模型被訓練在舉辦全麵生產數據集,您可以使用一個混合的方式通過部署代碼階段,訓練模型,然後將其部署到生產環境模型。這種方法可以節省培訓成本在生產但在分段添加了一個額外的運營成本。
部署模型
在此模式中,生成模型工件通過訓練代碼在開發環境中。測試工件的登台環境部署到生產。
這個選項可以被認為是一個或多個以下應用:
模型訓練非常昂貴或難以複製。
所有的工作都是做在一個磚工作區。
你不使用外部回購或一個CI / CD的過程。
優點:
數據科學家的簡單切換
在模型訓練是昂貴的情況下,隻需要訓練模型。
缺點:
如果沒有生產數據可以從開發環境(可能是真的出於安全考慮),這種架構可能不是可行的。
自動模式培訓在這個模式是一個棘手的問題。您可以在開發環境中自動化培訓,但生產團隊負責部署模型可能不接受由此產生的模型作為生產就緒。
支持代碼,如管道用於工程特征,推斷,和監控,需要分別部署到生產。
下圖對比的代碼上麵部署模式在不同生命周期執行環境。
圖中所示的環境是最後一步是運行環境。例如,在模式部署模型,最後在開發環境中執行單元測試和集成測試。在部署代碼模式中,單元測試和集成測試開發環境,運行和最終執行單元測試和集成測試的登台環境。