

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

# 使用 SageMaker Neo 最佳化模型效能
<a name="neo"></a>

Neo 是 Amazon SageMaker AI 的一項功能，只要訓練一次機器學習模型，就能在雲端和邊緣的任何位置執行。

如果您是第一次使用 SageMaker Neo 的使用者，我們建議您查看[ Edge 裝置入門](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-getting-started-edge.html)章節，以取得有關如何編譯和部署到邊緣裝置的逐步指示。

## 什麼是 SageMaker Neo？
<a name="neo-what-it-is"></a>

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

Neo 會自動最佳化 Gluon、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite 和 ONNX 模型，以用在以 Ambarella、ARM、Intel、Nvidia、NXP、Qualcomm、Texas Instruments 和 XilinxAndroid 的處理器為基礎之 Android、Linux 和 Windows 機器上進行推論。Neo 已使用跨框架的模型庫中提供的電腦視覺模型進行測試。SageMaker Neo 支援兩個主要平台的編譯和部署：雲端執行個體 (包含 Inferentia) 和邊緣裝置。

如需可在其上部署的支援架構和雲端執行個體類型的更多相關資訊，請參閱雲端執行個體的 [支援的執行個體類型和架構](neo-supported-cloud.md)。

如需 SageMaker AI Neo 針對邊緣裝置測試的支援架構、邊緣裝置、作業系統、晶片架構和常見機器學習模型的更多相關資訊，請參閱邊緣裝置的 [支援的架構、裝置、系統和架構](neo-supported-devices-edge.md)。

## 運作方式
<a name="neo-how-it-works"></a>

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

![\[Neo 在 SageMaker AI 中的運作方式。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/neo_how_it_works.png)


您可以從 SageMaker AI 主控台、AWS Command Line Interface (AWS CLI)、Python 筆記本或 SageMaker AI SDK 建立 Neo 編譯任務。如需有關如何編譯模型的資訊，請參閱[使用 Neo 編譯模型](neo-job-compilation.md)。使用幾個 CLI 命令、一個 API 調用，或者只要按幾下滑鼠，您就可以針對選擇的平台轉換模型。您可以將模型快速部署到 SageMaker AI 端點或 AWS IoT Greengrass 裝置上。

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

**Topics**
+ [什麼是 SageMaker Neo？](#neo-what-it-is)
+ [運作方式](#neo-how-it-works)
+ [使用 Neo 編譯模型](neo-job-compilation.md)
+ [雲端執行個體](neo-cloud-instances.md)
+ [Edge 裝置](neo-edge-devices.md)
+ [故障診斷錯誤](neo-troubleshooting.md)