宣布MLflow模型在磚
2020年6月25日 在工程的博客
磚MLflow模型提供交鑰匙解決方案服務主機機器學習(ML)模型作為REST端點自動更新,使數據科學團隊擁有一個實時的端到端的生命周期從培訓到生產機器學習模型。
在部署時毫升模型、數據科學家必須做出選擇根據他們的用例。如果他們需要大量的預測和延遲不是一個問題,他們通常在批處理執行推理,喂食大量的模型數據和編寫預測表。如果他們需要預測低延遲,例如在一個應用程序響應用戶操作,最佳實踐是部署毫升模型作為REST端點。這允許應用程序發送請求的端點總是立即收到預測。
在磚上,我們已經簡化了部署毫升的工作流模型在大數據批處理或流的方式,使用MLflow的spark_udf。對於需要部署的情況下模型實時的方式,我們正在引入磚MLflow模型服務:一個新的交鑰匙服務,簡化了最初部署模型的工作流和也保持更新。磚MLflow模型直接關係到服務MLflow模型注冊自動部署新版本的模型和路由請求,方便毫升開發人員直接管理其所服務的模型。
服務模型
今天,服務模型可以複雜,因為它需要運行一個單獨的服務係統,比如Kubernetes毫升開發人員可能沒有訪問權。此外,開發人員必須小心使用更新版本的模型作為他們設計新車型,並請求路由到正確的模型。
磚MLflow模型解決這個問題通過集成與服務注冊中心。所有機器學習的模型注冊表可以存儲模型庫(TensorFlow, scikit-learn等等),並允許您存儲多個版本的模型,評論他們,促進他們登台和生產等不同生命周期階段。模型服務利用這些階段;你能提供最新的生產模型在“/模型/
一旦啟用模型服務,磚集群啟動,哪些主機所有活動模型版本與注冊相關模型作為REST端點。每個模型運行在一個conda環境反映環境訓練。
一旦端點正在運行,您可以從磚UI測試查詢,或者使用REST API提交自己。我們也與最近發布的模型集成模式和示例(在MLflow 1.9允許注釋模型模式和示例輸入),使其更容易和更安全的考驗你的服務模型。
https://www.youtube.com/watch?v=IVS2PyoQN0M
相同的請求可以發送通過REST API使用標準磚認證,例如使用curl:
curl - u標誌:XXXhttps:/ /dogfood.staging.cloud.m.eheci.com/model/model_with_example/Production/invocations- happlication / json內容類型:;格式= pandas-records '- d“[[5.1,3.5,1.4,0.2]]”
注意,URL包含“生產”,這意味著這是一個穩定的URL指向最新的生產版本。你也可以直接參考模型的版本號,如果你想鎖定您的應用程序到一個特定的版本(例如“/模型/ model_with_example / 1”)。
進化模型
許多用例從一個初始模型開始作為一個概念驗證,但在模型開發過程中,數據科學家經常進行迭代,產生新的和更好的版本的模型。模型服務使這一過程盡可能簡單。
假設你有版本1的模型生產,並準備嚐試和發布下一個版本。你第一次注冊第二個模型在模型中注冊表和促進“暫存”,表明你想測試一下一點之前更換您的生產版本。
自服務啟用模型模型,新模型版本自動啟動在現有的集群作為他們補充說。你可以看到下麵有兩個版本,可以查詢。
注意每個模型的URL:您可以查詢通過版本號(1或2)或階段(生產或分期)。這樣你可以有你的生活網站指向當前的生產版本和測試站點指出測試版本,它會自動選擇最新的模型版本作為他們提升通過注冊表。
當你準備促進生產模型版本,你隻是過渡階段的注冊表,正從暫存到生產。這種變化將反映在服務模型和REST端點在幾秒鍾——現在生產的URL指向版本2。
因為一切都是運行在同一個集群,旋轉的邊際資源和時間成本是很小的一個新版本。你不必擔心multi-minute迭代周期,或失去的舊版本。
監控你的模型
由於模型服務器是長壽的,重要的是能夠輕鬆監控和維護您的模型的可用性。模型服務使這項任務變得很容易,讓兩種信息:日誌和事件。
每個模型版本日誌可以通過UI和API,允許您輕鬆地發出,看問題畸形數據或其他相關的運行時錯誤。事件模型的補充自己的日誌詳細模型過程死機了,重啟時,或者當失去了一個完整的虛擬機和取代。就像聽起來那樣簡單,方便地訪問這些日誌和事件發展的過程,迭代和維護模型服務器更耗時。
回顧一下,模型在磚提供具有成本效益的服務,一鍵部署模型的實時推理,結合MLflow模型注冊表,以方便管理。用它來簡化你的實時預測用例!模型服務目前在私人預覽,將作為一個公共預覽在7月底。該服務在預覽,我們建議使用低吞吐量和非關鍵應用程序。
為快樂!