Amazon SageMaker Neo

以高達 25 倍的效能隨處執行 ML 模型

Amazon SageMaker Neo 可讓開發人員最佳化機器學習 (ML) 模型,以便在雲端中的 SageMaker 和邊緣的支援裝置上進行推論。

ML 推論是使用經過訓練的機器學習模型進行預測的程序。在對模型進行高準確度訓練之後,開發人員通常會花費大量時間和精力來調校模型以實現高效能。在雲端中推論時,開發人員經常以較高成本轉向記憶體高和處理功能強的大型執行個體,以實現更好的輸送量。為了在運算和記憶體有限的邊緣裝置上進行推論,開發人員通常花費數月時間手動調校模型,以在裝置硬體限制內實現可接受的效能。

Amazon SageMaker Neo 會自動最佳化機器學習模型,以便在雲端執行個體和邊緣裝置上進行推論,從而以更快的速度執行而不會損失準確度。首先,選擇一個已使用 DarkNet、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX 或 XGBoost 建置並在 Amazon SageMaker 中或其他任何地方訓練過的機器學習模型。然後,選擇目標硬體平台,該平台可以是 SageMaker 託管執行個體,也可以是基於 Ambarella、Apple、ARM、Intel、MediaTek、Nvidia、NXP、Qualcomm、RockChip、Texas Instruments 或 Xilinx 處理器的邊緣裝置。只需按一下滑鼠,SageMaker Neo 就會最佳化已訓練模型並將其編譯為可執行檔。編譯器使用機器學習模型來套用效能最佳化,從而為您的模型在雲端執行個體或邊緣裝置上擷取最佳可用效能。然後,您可以將模型部署為 SageMaker 端點或部署在支援的邊緣裝置上,並開始進行預測。

在雲端中推論時,SageMaker Neo 透過在 SageMaker 託管中建立推論最佳化容器來加快推論速度並節省成本。在邊緣推論時,SageMaker Neo 透過自動調校選取的作業系統和處理器硬體的模型,為開發人員節省數月的手動調校時間。

Amazon SageMaker Neo 使用 Apache TVM 和合作夥伴提供的編譯器和加速庫為指定模型和硬體目標提供最佳可用效能。根據 Apache 軟體授權,AWS 將編譯器代碼貢獻給 Apache TVM 專案,將執行時間代碼貢獻給 Neo-AI 開放原始碼專案,可讓處理器廠商和裝置製造商在通用的緊湊執行時間上快速創新。

運作方式

Amazon SageMaker 的運作方式

優勢

提升高達 25 倍效能

Amazon SageMaker Neo 會自動最佳化機器學習模型,讓執行速度提升高達 25 倍,而且不會降低準確性。SageMaker Neo 使用最適合您的模型和目標硬體平台的工具鏈,同時提供用於模型編譯的簡單標準 API。



不到 1/10 的執行時間使用量

Amazon SageMaker Neo 執行時間僅消耗相當於TensorFlow 或 PyTorch 等深度學習架構 1/10 的使用量。無需將架構安裝在目標硬體上,而是將緊湊型 Neo 執行時間庫載入至 ML 應用程式中。與 TensorFlow-Lite 之類的緊湊架構不同,Neo 執行時間可以執行在 Neo 編譯器支援的任何架構中訓練的模型。

更快的生產時間

只需在 Amazon SageMaker 主控台中按幾下,Amazon SageMaker Neo 即可輕鬆準備模型,在幾乎任何硬體平台上部署。您可以毫不費力地獲得手動調校的所有優勢。

主要特色

最佳化推論而不會影響準確性
Amazon SageMaker Neo 在機器學習編譯器中使用研究主導的技術,針對目標硬體最佳化模型。SageMaker Neo 自動套用這些系統的最佳化技術,可在不降低準確性的情況下加快模型的速度。

支援熱門機器學習架構
Amazon SageMaker Neo 將模型從 DarkNet、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX 或 XGBoost 等架構特定的格式轉換為通用表示形式,最佳化運算並為目標 SageMaker 託管執行個體或邊緣裝置產生硬體特定的可執行檔。

透過標準 API 提供緊湊的執行時間
Amazon SageMaker Neo 執行時間佔用 1MB 儲存空間和 2MB 記憶體,比架構的儲存和記憶體使用量小許多倍,同時提供一個簡單的通用 API 來執行源自任何架構的已編譯模型。

支援常用的目標平台
Android、Linux 和 Windows 作業系統以及 Ambarella、ARM、Intel、Nvidia、NXP、Qualcomm、Texas Instruments 和 Xilinx 的處理器上均支援 Amazon SageMaker Neo 執行時間。SageMaker Neo 還可以將 PyTorch 和 TensorFlow 模型轉換為 Core ML 格式,以便在 Apple 裝置上的 macOS、iOS、iPadOS、watchOS 和 tvOS 上進行部署。

針對 Amazon SageMaker 託管執行個體的推斷最佳化容器
在雲端中推論時,Amazon SageMaker Neo 提供推論最佳化容器,其中包括與 Neo 執行時間整合的 MXNet、PyTorch 和 TensorFlow。先前,SageMaker Neo 可能無法編譯使用不受支援運算子的模型。現在,SageMaker Neo 最佳化了每個模型,也就是說,編譯器支援模型中的運算子,並使用該架構執行未編譯模型的其餘部分。因此,您可以在推論最佳化容器中執行任何 MXNet、PyTorch 或 TensorFlow 模型,同時獲得可編譯模型的更佳效能。

異質硬體的模型分割
Amazon SageMaker Neo 充分利用合作夥伴提供的加速器庫為具有硬體加速器和 CPU 的異質硬體平台上的深度學習模型提供最佳可用效能。Ambarella CV Tools、Nvidia Tensor RT 和 Texas Instruments TIDL 等加速庫均支援一組特定的功能和運算子。SageMaker Neo 會自動對模型進行分割,以便具有加速器支援的運算子的零件可以在加速器上執行,而其餘模型則在 CPU 上執行。透過這種方式,SageMaker Neo 充分利用了硬體加速器,增加了可在硬體上執行的模型類型,同時提高了模型的效能,也就是說,加速器支援其運算子。

支援 Amazon SageMaker INF1 執行個體
Amazon SageMaker Neo 現在可以為 Amazon SageMaker INF1 執行個體目標編譯模型。SageMaker 託管為 INF1 執行個體 (基於 AWS Inferentia 晶片) 上的推論提供託管服務。SageMaker Neo 使用幕後原理的 Inferentia 處理器專用 Neuron 編譯器,同時提供標準模型編譯 API,從而簡化了準備在 SageMaker INF1 執行個體上部署模型的任務,同時提供 INF1 執行個體的最佳可用效能和成本節約優勢。

Amazon SageMaker Neo