

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

# 執行機器學習推論
<a name="perform-machine-learning-inference"></a>

使用 AWS IoT Greengrass，您可以使用雲端訓練模型，在本機產生的資料上執行邊緣裝置上的機器學習 (ML) 推論。您可以從低延遲時間和節省執行本機推論成本中獲益，但仍同時充分利用雲端運算能力進行訓練模型和處理複雜地處理。

AWS IoT Greengrass 可讓執行推論所需的步驟更有效率。您可以在任何地方訓練推論模型，並將其部署為*機器學習元件*本機。例如，您可以在 [Amazon SageMaker AI ](https://console.aws.amazon.com/sagemaker)中建置和訓練深度學習模型。然後，您可以將這些模型存放在 [Amazon S3](https://console.aws.amazon.com/s3) 儲存貯體中，以便將這些模型用作元件中的成品，在核心裝置上執行推論。

**Topics**
+ [AWS IoT Greengrass ML 推論的運作方式](#how-ml-inference-works)
+ [第 2 AWS IoT Greengrass 版有何不同？](#ml-differences)
+ [要求](#ml-requirements)
+ [支援的模型來源](#ml-model-sources)
+ [支援的機器學習執行時間](#ml-runtime-libraries)
+ [AWS提供的機器學習元件](#ml-components)
+ [在 Greengrass 核心裝置上使用 Amazon SageMaker AI Edge Manager](use-sagemaker-edge-manager.md)
+ [自訂您的機器學習元件](ml-customization.md)
+ [故障診斷機器學習推論](ml-troubleshooting.md)

## AWS IoT Greengrass ML 推論的運作方式
<a name="how-ml-inference-works"></a>

AWS 提供[機器學習元件](#ml-components)，可讓您用來建立單一步驟部署，以在裝置上執行機器學習推論。您也可以使用這些元件做為範本來建立自訂元件，以符合您的特定需求。<a name="ml-component-types"></a>

AWS 提供以下類別的機器學習元件：
+ **模型元件** - 包含機器學習模型做為 Greengrass 成品。
+ **執行期元件** - 包含在 Greengrass 核心裝置上安裝機器學習架構及其相依性的指令碼。
+ **推論元件** - 包含推論程式碼，並包含元件相依性，以安裝機器學習架構並下載預先訓練的機器學習模型。

您為執行機器學習推論而建立的每個部署都包含至少一個執行推論應用程式的元件、安裝機器學習架構，以及下載機器學習模型。若要使用 AWS提供的元件執行範例推論，您可以將推論元件部署到核心裝置，其會自動將對應的模型和執行期元件納入做為相依性。若要自訂部署，您可以使用自訂模型元件來插入或交換範例模型元件，也可以使用 AWS所提供元件的元件配方做為範本，以建立您自己的自訂推論、模型和執行期元件。

若要使用自訂元件執行機器學習推論：

1. 建立模型元件。此元件包含您要用來執行 inference 的機器學習模型。 AWS 提供範例預先訓練的 DLR 和 TensorFlow Lite 模型。若要使用自訂模型，請建立您自己的模型元件。

1. 建立執行期元件。此元件包含為模型安裝機器學習執行期所需的指令碼。 AWS 提供[深度學習執行期 (DLR) 和 TensorFlow Lite 的範例執行期](https://github.com/neo-ai/neo-ai-dlr)元件。 [TensorFlow ](https://www.tensorflow.org/lite/guide/python) 若要將其他執行時間與自訂模型和推論程式碼搭配使用，請建立您自己的執行時間元件。

1. 建立推論元件。此元件包含您的推論程式碼，並將您的模型和執行期元件納入相依性。 AWS 提供範例推論元件，以使用 DLR 和 TensorFlow Lite 進行影像分類和物件偵測。若要執行其他類型的推論，或使用自訂模型和執行時間，請建立您自己的推論元件。

1. 部署推論元件。當您部署此元件時， AWS IoT Greengrass 也會自動部署模型和執行期元件相依性。

若要開始使用 AWS提供的元件，請參閱 [教學課程：使用 TensorFlow Lite 執行範例影像分類推論](ml-tutorial-image-classification.md)。

如需建立自訂機器學習元件的詳細資訊，請參閱 [自訂您的機器學習元件](ml-customization.md)。

## 第 2 AWS IoT Greengrass 版有何不同？
<a name="ml-differences"></a>

AWS IoT Greengrass 將機器學習的功能單位，例如模型、執行期和推論程式碼，合併成可讓您使用單一步驟程序來安裝機器學習執行期、下載訓練過的模型，以及在裝置上執行推論的元件。

透過使用 AWS提供的機器學習元件，您可以靈活地使用範例推論程式碼和預先訓練的模型開始執行機器學習推論。您可以插入自訂模型元件，將您自己的自訂訓練模型與 AWS 提供的推論和執行期元件搭配使用。對於完全自訂的機器學習解決方案，您可以使用公有元件做為範本來建立自訂元件，並使用您想要的任何執行時間、模型或推論類型。

## 要求
<a name="ml-requirements"></a>

若要建立和使用機器學習元件，您必須具備下列項目：
+ Greengrass 核心裝置。如果您沒有帳戶，請參閱 [教學課程：入門 AWS IoT Greengrass V2](getting-started.md)。
+ 至少 500 MB 的本機儲存空間，可使用 AWS提供的範例機器學習元件。

## 支援的模型來源
<a name="ml-model-sources"></a>

AWS IoT Greengrass 支援使用儲存在 Amazon S3 中的自訂訓練機器學習模型。您也可以使用 Amazon SageMaker AI 邊緣封裝任務，直接為 SageMaker AI Neo 編譯模型建立模型元件。如需搭配 使用 SageMaker AI Edge Manager 的詳細資訊 AWS IoT Greengrass，請參閱 [在 Greengrass 核心裝置上使用 Amazon SageMaker AI Edge Manager](use-sagemaker-edge-manager.md)。

包含模型的 S3 儲存貯體必須符合下列要求：
+ 它們不得使用 SSE-C 加密。 對於使用伺服器端加密的儲存貯體， AWS IoT Greengrass 機器學習推論目前僅支援 SSE-S3 或 SSE-KMS 加密選項。如需伺服器端加密選項的詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)。
+ 其名稱不得包含句點 (`.`)。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的使用虛擬託管式儲存貯體搭配 SSL [的 儲存貯體命名規則](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules)。
+ <a name="sr-artifacts-req"></a>存放模型來源的 S3 儲存貯體必須與機器學習元件位於相同 AWS 帳戶 和 AWS 區域 。
+ AWS IoT Greengrass 必須具有模型來源的`read`許可。若要讓 AWS IoT Greengrass 存取 S3 儲存貯體，[Greengrass 裝置角色](device-service-role.md)必須允許 `s3:GetObject`動作。如需裝置角色的詳細資訊，請參閱 [授權核心裝置與 AWS 服務互動](device-service-role.md)。

## 支援的機器學習執行時間
<a name="ml-runtime-libraries"></a>

AWS IoT Greengrass 可讓您建立自訂元件，以使用您選擇的任何機器學習執行時間，透過自訂訓練模型執行機器學習推論。如需建立自訂機器學習元件的詳細資訊，請參閱 [自訂您的機器學習元件](ml-customization.md)。

為了讓機器學習入門的過程更有效率， AWS IoT Greengrass 提供使用下列機器學習執行期的範例推論、模型和執行期元件：
+  [深度學習執行期 ](https://github.com/neo-ai/neo-ai-dlr)(DLR) 1.6.0 版和 1.3.0 版
+  [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 2.5.0 版 

## AWS提供的機器學習元件
<a name="ml-components"></a>

下表列出用於機器學習的 AWS所提供元件。

**注意**  <a name="component-nucleus-dependency-update-note"></a>
數個 AWS提供的元件取決於 Greengrass 核的特定次要版本。由於此相依性，當您將 Greengrass 核更新為新的次要版本時，您需要更新這些元件。如需每個元件所依賴之核的特定版本的資訊，請參閱對應的元件主題。如需更新核心的詳細資訊，請參閱 [更新 AWS IoT Greengrass 核心軟體 (OTA)](update-greengrass-core-v2.md)。


| 元件 | 說明 | [元件類型](develop-greengrass-components.md#component-types) | 支援的作業系統 | [開放原始碼](open-source.md) | 
| --- | --- | --- | --- | --- | 
| [SageMaker AI Edge Manager](sagemaker-edge-manager-component.md) | 在 Greengrass 核心裝置上部署 Amazon SageMaker AI Edge Manager 代理程式。 | 一般 | Linux、Windows | 否 | 
| [DLR 影像分類](dlr-image-classification-component.md) | 使用 DLR 影像分類模型存放區和 DLR 執行期元件做為相依性的推論元件，以安裝 DLR、下載範例影像分類模型，以及在支援的裝置上執行影像分類推論。 | 一般 | Linux、Windows | 否 | 
| [DLR 物件偵測](dlr-object-detection-component.md) | 使用 DLR 物件偵測模型存放區和 DLR 執行期元件做為相依性的推論元件，以安裝 DLR、下載範例物件偵測模型，以及在支援的裝置上執行物件偵測推論。 | 一般 | Linux、Windows | 否 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例 ResNet-50 影像分類模型。 | 一般 | Linux、Windows | 否 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例 YOLOv3 物件偵測模型。 | 一般 | Linux、Windows | 否 | 
| [DLR 執行時間](dlr-component.md) | 包含安裝指令碼的執行期元件，用於在 Greengrass 核心裝置上安裝 DLR 及其相依性。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 影像分類](tensorflow-lite-image-classification-component.md) | 使用 TensorFlow Lite 影像分類模型存放區和 TensorFlow Lite 執行期元件做為相依性的推論元件，以安裝 TensorFlow Lite、下載範例影像分類模型，以及在支援的裝置上執行影像分類推論。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 物件偵測](tensorflow-lite-object-detection-component.md) | 使用 TensorFlow Lite 物件偵測模型存放區和 TensorFlow Lite 執行期元件做為相依性的推論元件，以安裝 TensorFlow Lite、下載範例物件偵測模型，以及在支援的裝置上執行物件偵測推論。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例 MobileNet v1 模型。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 物件偵測模型存放區](tensorflow-lite-object-detection-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例單一鏡頭偵測 (SSD) MobileNet 模型。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 執行時間](tensorflow-lite-component.md) | 包含安裝指令碼的執行期元件，用於在 Greengrass 核心裝置上安裝 TensorFlow Lite 及其相依性。 | 一般 | Linux、Windows | 否 | 