執行機器學習推論 - AWS IoT Greengrass

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

執行機器學習推論

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

AWS IoT Greengrass使執行推論所需的步驟更有效率。您可以在任何地方訓練推論模型,並在本機部署為機器學習元件。例如,您可以在 Amazon 中建立和訓練深度學習模型, SageMaker或在 Amazon 瞭望視覺中建置和訓練電腦視覺模型。然後,您可以將這些模型存放在 Amazon S3 儲存貯體中,以便將這些模型用作元件中的成品,在核心裝置上執行推論。

AWS IoT Greengrass 機器學習推論如何運作

AWS提供機器學習元件,您可以使用這些元件建立單步驟部署,以便在裝置上執行機器學習推論。您也可以使用這些元件做為範本來建立自訂元件,以符合您的特定需求。

AWS提供下列類別的機器學習元件:

  • 模型元件 — 包含做為 Greengrass 人工因素的機器學習模型。

  • 執行階段元件 — 包含在 Greengrass 核心裝置上安裝機器學習架構及其相依性的指令碼。

  • 推論元件:包含推論程式碼並包含元件相依性,可安裝機器學習架構和下載預先訓練的機器學習模型。

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

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

  1. 建立模型元件。此元件包含您要用來執行推論的機器學習模型。 AWS提供樣品預先訓練的 DLR 和 TensorFlow 精簡版模型。若要使用自訂模型,請建立您自己的模型元件。

  2. 建立執行階段元件。此元件包含為您的模型安裝機器學習執行階段所需的指令碼。 AWS提供深度學習執行階段 (DLR) 和 TensorFlow Lite 的範例執行階段元件。若要將其他執行階段與自訂模型和推論程式碼搭配使用,請建立您自己的執行階段元件。

  3. 建立推論元件。此元件包含您的推論程式碼,並包含您的模型和執行階段元件做為相依性。 AWS提供使用 DLR 和 Lite 進行影像分類和物件偵測的範例推論元件。 TensorFlow 若要執行其他類型的推論,或使用自訂模型和執行階段,請建立您自己的推論元件。

  4. 部署推論元件。當您部署此元件時,AWS IoT Greengrass也會自動部署模型和執行階段元件相依性。

若要開始使用提AWS供的元件,請參閱教學課程:使 TensorFlow 用 Lite 執行範例影像分類推論

如需有關建立自訂機器學習元件的資訊,請參閱自訂您的機器學習元件

AWS IoT Greengrass版本 2 有什麼不同?

AWS IoT Greengrass將機器學習的功能單元 (例如模型、執行階段和推論程式碼) 整合到元件中,讓您使用單一步驟程序來安裝機器學習執行階段、下載訓練過的模型,以及在裝置上執行推論。

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

要求

若要建立和使用機器學習元件,您必須具備下列項目:

支援的模型來源

AWS IoT Greengrass支援使用存放在 Amazon S3 中的自訂訓練機器學習模型。您也可以使用 Amazon SageMaker Edge 封裝任務,為 SageMaker 新編譯的模型直接建立模型元件。如需搭配使用 SageMaker 邊管理員的資訊AWS IoT Greengrass,請參閱在核心設備上使用 Amazon SageMaker 邊緣管理器。您也可以使用 Amazon Lookout for Vision 模型封裝任務,為您的 Lookout for Vision 模型建立模型元件。如需使用瞭望視覺搭配使用的更多資訊AWS IoT Greengrass,請參閱Greengrass out out out out out out out out out out out on Vision

包含您模型的 S3 儲存貯體必須符合下列需求:

  • 它們不得使用 SSE-C 進行加密。 對於使用伺服器端加密的儲存貯體,AWS IoT Greengrass機器學習推論目前僅支援 SSE-S3 或 SSE-KMS 加密選項。如需伺服器端加密選項的詳細資訊,請參閱 Amazon 簡單儲存服務使用者指南中的使用伺服器端加密保護資料

  • 它們的名稱不得包含句點 (.)。如需詳細資訊,請參閱 Amazon 簡單儲存體服務使用者指南中的儲存貯體命名規則中有關將虛擬託管樣式值區與 SSL 搭配使用的規則。

  • 存放模型來源的 S3 儲存貯體必須AWS 帳戶與AWS 區域您的機器學習元件位於相同的儲存貯體中。

  • AWS IoT Greengrass必須具有模型來源的read權限。若AWS IoT Greengrass要啟用存取 S3 儲存貯體,Greengrass 裝置角色必須允許此動作。s3:GetObject如需有關裝置角色的詳細資訊,請參閱授權核心裝置與 AWS 服務互動

支援的機器學習執行階段

AWS IoT Greengrass可讓您建立自訂元件,以使用您選擇的任何機器學習執行階段,透過自訂訓練的模型執行機器學習推論。如需有關建立自訂機器學習元件的資訊,請參閱自訂您的機器學習元件

為了讓開始使用機器學習的程序更有效率,請AWS IoT Greengrass提供使用下列機器學習執行階段的範例推論、模型和執行階段元件:

AWS-提供機器學習元件

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

注意

幾個AWS提供的組件取決於 Greengrass 核的特定次要版本。由於這種依賴關係,您需要在將 Greengrass 核更新為新的次要版本時更新這些組件。如需每個元件所依賴之特定原子核版本的詳細資訊,請參閱對應的元件主題。如需更新核心的詳細資訊,請參閱更新AWS IoT Greengrass核心軟件(OTA)

元件 描述 元件類型 支援的作業系統 開放原始碼
Lookout for Vision 邊緣代理 在 Greengrass 核心裝置上部署適用於視覺的 Amazon Lookout 執行階段,因此您可以使用電腦視覺來尋找工業產品中的瑕疵。 通用型 Linux
SageMaker 邊緣管理員 在 Greengrass 核心裝置上部署 Amazon SageMaker 邊緣管理器代理程式。 通用型 Linux、Windows
DLR 影像分類 使用 DLR 影像分類模型存放區和 DLR 執行階段元件做為相依性的推論元件,以安裝 DLR、下載範例影像分類模型,以及在支援的裝置上執行影像分類推論。 通用型 Linux、Windows
DLR 物體偵測 使用 DLR 物件偵測模型存放區和 DLR 執行階段元件做為相依性的推論元件,以安裝 DLR、下載範例物件偵測模型,以及在支援的裝置上執行物件偵測推論。 通用型 Linux、Windows
DLR 圖像分類模型商店 包含示例 ResNet -50 圖像分類模型作為 Greengrass 工件的模型組件。 通用型 Linux、Windows
DLR 物件偵測模型商店 包含樣本 Yolov3 對象檢測模型作為綠色工件的模型組件。 通用型 Linux、Windows
DLR 執行階段 包含用於在 Greengrass 核心裝置上安裝 DLR 及其相依性的安裝指令碼的執行階段元件。 通用型 Linux、Windows
TensorFlow 精簡版圖片分類 使用 TensorFlow Lite 影像分類模型存放區和 Lite 執行階段元件做為相依性的推論元件,以安裝 TensorFlow Lite、下載範例影像分類模型,以及在支援的裝置上執行影像分類推論。 TensorFlow 通用型 Linux、Windows
TensorFlow 精簡型物體偵測 使用 TensorFlow Lite 物件偵測模型存放區和 Lite 執行階段元件做為相依性的推論元件,以安裝 TensorFlow Lite、下載範例物件偵測模型,以及在支援的裝置上執行物件偵測推論。 TensorFlow 通用型 Linux、Windows
TensorFlow 精簡版圖片分類模型店 包含做為 Greengrass 人工因素的 MobileNet v1 模型範例的模型元件。 通用型 Linux、Windows
TensorFlow 精簡型物件偵測模型商店 包含做為 Greengrass 假影的範例單次發射偵測 (SSD) MobileNet 模型的模型元件。 通用型 Linux、Windows
TensorFlow 精簡版運行 包含用於在 Greengrass 核心裝置上安裝 TensorFlow Lite 及其相依性的安裝指令碼的執行階段元件。 通用型 Linux、Windows