使用 SageMaker Neo 進行模型效能最佳化 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SageMaker Neo 進行模型效能最佳化

Neo 是 Amazon 的功能 SageMaker ,可讓機器學習模型訓練一次,並在雲端和邊緣的任何位置執行。

如果您是 SageMaker Neo 的第一次使用者,建議您查看開始使用邊緣裝置一節,以取得 step-by-step如何編譯和部署至邊緣裝置的指示。

什麼是 SageMaker Neo?

一般來說,在多個平台上最佳化機器學習模型以進行推論是很困難的,因為您需要針對每個平台的特定硬體和軟體組態手動調校模型。如果您想要獲得指定工作負載的最佳效能,您需要了解硬體架構、指示集、記憶存取模式和輸入資料形狀等各種因素。針對傳統軟體開發,編譯器和分析工具等工具會簡化程序。針對機器學習,大多數的工具都是專門針對架構或硬體。這將強制您進入不可靠和無生產力的手動 trial-and-error程序。

Neo 會根據 Ambarella、、ARMIntel、Nvidia、MXNet PyTorch、Qualcomm、Texas Instruments 和 Xilinx 的處理器,在 Android、Linux 和 Windows 機器上自動最佳化 Gluon、Keras、、、NXPL TensorFlow TensorFlowite 和ONNX模型的推論。Neo 已透過跨架構的模型區域中可用的電腦視覺模型進行測試。 SageMaker Neo 支援兩個主要平台的編譯和部署:雲端執行個體 (包括 Inferentia) 和邊緣裝置。

如需可在其上部署的支援架構和雲端執行個體類型的更多相關資訊,請參閱雲端執行個體的 支援的執行個體類型和架構

如需有關支援架構、邊緣裝置、作業系統、晶片架構和 Neo 針對邊緣裝置測試 SageMaker 之常見機器學習模型的詳細資訊,請參閱 支援的架構、裝置、系統和架構 for edge device。

運作方式

Neo 包含編譯器和執行期。首先,Neo 編譯會API讀取從各種架構匯出的模型。將架構特定的函式和操作轉換為跨架構的中繼表示法。接著,執行一系列的最佳化。然後,產生最佳化操作的二進位程式碼、寫入共用物件庫,再將模型定義和參數儲存到個別的檔案。Neo 也提供每個載入和執行已編譯模型之目標平台的執行期。

Neo 如何在 中運作 SageMaker。

您可以從 SageMaker 主控台、 AWS Command Line Interface (AWS CLI)、Python 筆記本或 建立 Neo 編譯任務 SageMaker SDK。如需如何編譯模型的資訊,請參閱 使用 Neo 進行模型編譯。透過幾個CLI命令、API調用或按幾下滑鼠,您可以轉換所選平台的模型。您可以將模型快速部署到 SageMaker 端點或 AWS IoT Greengrass 裝置上。

Neo 可以使用 中的參數FP32,或量化為 INT8或 FP16 位元寬度來最佳化模型。