使用 Amazon SageMaker 進行部署

Amazon SageMaker 為您提供在生產內部署機器學習模型的一切所需,讓您輕鬆建立預測,並監控模型品質。

功能

模型監控

機器學習模型具體是利用歷史資料進行訓練和評估,但它們的品質於部署至生產後開始下降。從開始分發資料至模型進行預測起,到模型訓練為止,您的資料組都有所不同。預測結果的有效性在過了一段日子後就會改變,且錯誤將從下一直引進至上游,進而影響模型的品質。為避免此等事件的發生,您需要監控生產中的模型品質、快速辨識問題,並採取補救行動,例如:稽核或再訓練模型。為達成此等目的,您需要建立工具,以便安全儲存與預測相關的資料、執行不同的統計技巧,以分析此資料,並評估模型的品質。最後,您需要偵測模型品質的異常情況,進而採取正確的補救行動。以固定頻率再訓練模型,是建立額外工具的替代方法,但作業的成本高昂。

Amazon SageMaker Model Monitor 無需建立任何工具去監控生產中的模型,更能偵測是否需要採取補救行動。SageMaker Model Monitor 持續監控生產中的機器學習模型品質,一旦模型品質出現異常,就會向您警示模型品質的異常處。

SageMaker Model Monitor 根據內建規則或您的自訂規則,以固定頻率分析收集所得的資料,並決定是否發生違規情況。可使用內建規則,分析表格式資料,並偵測共通問題,例如:預測資料的異常值、與訓練資料組相比下的資料分佈偏離,以及根據現實世界的觀察而取得的預測正確度改變。可在 SageMaker Studio 內使用 SageMaker Model Monitor,且可發出指標至 Amazon CloudWatch,以便設定稽核和再訓練模型的警示。可檢視這些警示,了解哪些資料導致異常情況,並據之調整您的訓練資料。您無需改變任何代碼,就能為所有部署於 SageMaker 的模型,安全儲存預測要求和回應。

模型監控

一鍵式部署

Amazon SageMaker 讓您只要按一下就能在生產環境中輕鬆部署訓練模型,以便您為即時或批次資料產生預測。您可以按一下滑鼠就能將模型部署到多個可用區域上的自動調整規模 Amazon ML 執行個體,以獲得高冗餘。只要指定執行個體的類型,以及需要的最大和最小數量即可,SageMaker 將會完成剩餘的工作。SageMaker 會啟動執行個體、部署您的模型,以及為您的應用程式設定安全的 HTTPS 端點。您的應用程式只須包含這個端點的 API 呼叫,即可達成低延遲、高輸送量推斷。由於變更模型不再需要同時更改應用程式的程式碼,所以這個架構可讓您在數分鐘內,將新模型整合到應用程式內。

批次轉換

若要分批處理資料以執行非即時預測,則往往需要先將大型資料集分割成較小的資料區塊,並管理即時端點。這項作業成本高昂,也會出錯。配備 Amazon SageMaker 批次轉換功能,您就無需將資料組細分為多個區塊,或管理即時端點。批次轉換可讓您針對大型或小型批次資料組進行預測。使用簡易的 API 時,您可以請求針對大量資料記錄進行預測,並快速、輕鬆地轉換資料。資料可以大至 PB 值,或小如數個位元組,或任何在此兩者範圍內的數值,以執行探索。

一次訓練、隨處部署

為了要跨一系列邊緣裝置達成高推論效能,具體上您需要花數週或數月,手動為每個目標裝置調校模型,因為每個硬體組態都有獨特的功能組和限制。Amazon SageMaker Neo 讓您只需訓練機器學習模型一次,即可在雲端和邊緣的任何地方部署它們。

SageMaker Neo 使用機器學習,自動佳化受訓模型。其執行速度快兩倍,且只耗用少於十分之一的記憶體,卻不會遺失目標部署環境的正確性。首先使用 MXNet、TensorFlow、PyTorch 或 XGBoost 建立機器學習模型,然後透過 SageMaker 進行訓練。接著選擇想要部署模型的目標硬體平台。只需按一下滑鼠,SageMaker Neo 就會將訓練好的模型編譯成可執行檔。編譯器使用神經網路找出所有特定效能佳化並加以套用,讓模型以最有效率的方式在目標硬體平台上執行。接著,您就能部署該模型,開始在雲端或邊緣進行預測。您可以使用 AWS IoT Greengrass ,將本機運算和 ML 推論功能帶到邊緣裝置。

為了簡化邊緣部署,Greengrass 支援 Neo 優化模型,讓您透過無線更新,將模型直接部署到邊緣。Neo 也透過 Apache 軟體授權以開放原始碼的形式提供作為 Neo-AI 專案,讓開發人員為不同的裝置和應用程式自訂軟體。

2 倍

效能

1/10

原有架構的大小

與 Kubernetes 整合

Kubernetes 是開放原始碼系統,用於實現容器化應用程式的部署、擴展和管理自動化。許多客戶不僅希望使用 Amazon SageMaker 的全管理式功能進行機器學習,還希望平台和基礎設施團隊繼續使用 Kubernetes 來協調和管理管道。SageMaker 讓 Kubernetes 使用者採用 SageMaker-Kubeflow 作業和管道,在 SageMaker 內訓練和部署模型,以滿足這項要求。在運算子和管道的協助下, Kubernetes 使用者可存取全管理式 SageMaker ML 工具和來自 Kubeflow 本機的引擎。此舉排除手動管理和佳化 Kubernetes 內的 ML 基礎設施之需要,同時仍能透過 Kubernetes,保留整體協調作業的控管能力。為 Kubernetes 使用 SageMaker 運算子和管道,您就能在 Kubernetes 內取得機器學習的全管理式服務之效益,再也無需移轉工作負載。

訓練以外的資料處理

現實世界的 ML 工作負載,除了訓練和預測之外,它的要求還要更多。資料需進行事前和事後處理,有時候還需要進行數個步驟。進行訓練和部署時,您也許還要運用一連串的演算法,從原始資料開始就需要協作,才能提供預測。SageMaker 可讓您部署界面管道,以便傳遞原始輸入資料,並在即時和批次界面請求上執行事前處理、預測和事後處理。界面管道可由任何機器學習架構、內建演算法,或可在 Amazon SageMaker 上使用的自訂容器組成。您可以利用一組可在 SparkML 和 Scikit-learn 架構容器 (位於 Amazon SageMaker 中) 取得的特性轉換器,來建置特性資料處理和特性工程管道,並將這些管道部署為推論管道的一部分,以重複使用資料處理程式碼,並更輕鬆地管理機器學習程序。

多模型端點

越來越多公司正在根據個別的使用者資料,訓練機器學習模型。例如:音樂串流服務會根據每位聽眾的音樂歷史,訓練自訂模型,以便提出個人化的音樂推薦,或計程車服務會根據每座城市的交通模式訓練自訂模型,預測客戶的等候時間。為每個使用案例建立自訂 ML 模型,帶來更高的推論正確度,但部署和管理模型的成本卻大幅增加。一旦無法利用相同費率取得所有模型,但卻要求模型能隨時待命時,這些挑戰就變得越發明顯而迫切。

Amazon SageMaker Multi-Model Endpoints 提供可擴展且具經濟效益的方法,讓您部署大量的自訂機器學習模型。只需點選一次單一端點,SageMaker Multi-Model Endpoints 就能讓您部署多個模型,並利用單一服務容器,就能執行多項服務。只需指定執行個體的類型,以及需要的最大和最小數量即可,SageMaker 將會完成其餘工作。SageMaker 會啟動執行個體、部署您的模型,以及為您的應用程式設定安全的 HTTPS 端點。您的應用程式只須包括帶目標模型的這個端點之 API 呼叫,即可達成低延遲、高輸送量推斷。

將 ML 模型從實驗移至生產

了解如何使用 SageMaker 將 ML 模型部署至生產

使用 Amazon SageMaker 部署已訓練的 Keras 或 TensorFlow 模型

了解如何使用 Amazon SageMaker 部署訓練過的 Keras 或 TensorFlow

自動化 Amazon SageMaker 自訂 ML 模型

遵循這些 GitHub 上的範例,自動建立、訓練和部署自訂 ML 模型。