

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 機械学習の推論を実行する
<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**
+ [ML AWS IoT Greengrass 推論の仕組み](#how-ml-inference-works)
+ [AWS IoT Greengrass バージョン 2 の違いは何ですか?](#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)

## ML AWS IoT Greengrass 推論の仕組み
<a name="how-ml-inference-works"></a>

AWS には[、デバイスで機械学習推論を実行するためのワンステップデプロイを作成するために使用できる機械学習コンポーネント](#ml-components)が用意されています。これらのコンポーネントをテンプレートとしても使用し、お客様の特定の要件を満たすカスタムコンポーネントを作成できます。<a name="ml-component-types"></a>

AWS には、次のカテゴリの機械学習コンポーネントが用意されています。
+ **モデルコンポーネント** - Greengrass アーティファクトとして機械学習モデルが含まれます。
+ **ランタイムコンポーネント** - 機械学習フレームワークとその従属関係を Greengrass コアデバイスにインストールするスクリプトが含まれます。
+ **推論コンポーネント** - 推論コードが含まれ、機械学習フレームワークをインストールして事前学習済みの機械学習モデルをダウンロードするためのコンポーネント従属関係が含まれます。

機械学習の推論を実行するために作成する各デプロイは、推論アプリケーションの実行、機械学習フレームワークのインストール、機械学習モデルのダウンロードをするコンポーネントが少なくとも 1 つ設定されています。 AWSが提供するコンポーネントを使用してサンプル推論を実行するには、推論コンポーネントをコアデバイスにデプロイします。コアデバイスには、対応するモデルとランタイムコンポーネントが依存関係として自動的に含まれます。デプロイをカスタマイズするには、サンプルモデルコンポーネントをカスタムモデルコンポーネントとプラグインまたはスワップアウトするか、 AWS提供されたコンポーネントのコンポーネントレシピをテンプレートとして使用して、独自のカスタム推論、モデル、ランタイムコンポーネントを作成できます。

カスタムコンポーネントを使用して機械学習の推論を実行するには、次の手順を実行します。

1. モデルコンポーネントを作成します。このコンポーネントには、推論の実行に使用する機械学習モデルが含まれています。 は、事前トレーニング済みの DLR および TensorFlow Lite モデルのサンプル AWS を提供します。カスタムモデルを使用するには、独自のモデルコンポーネントを作成します。

1. ランタイムコンポーネントを作成します。このコンポーネントには、モデルの機械学習ランタイムをインストールするために必要なスクリプトが含まれています。 は、[深層学習ランタイム (DLR) と TensorFlow Lite のサンプルランタイム](https://github.com/neo-ai/neo-ai-dlr)コンポーネント AWS を提供します。 [TensorFlow ](https://www.tensorflow.org/lite/guide/python) カスタムモデルと推論コードで他のランタイムを使用するには、独自のランタイムコンポーネントを作成します。

1. 推論コンポーネントを作成します。このコンポーネントには推論コードが含まれ、モデルとランタイムコンポーネントが依存関係として含まれます。 は、DLR と TensorFlow Lite を使用したイメージ分類とオブジェクト検出用のサンプル推論コンポーネント AWS を提供します。他のタイプの推論を実行したり、カスタムモデルやランタイムを使用したりするには、独自の推論コンポーネントを作成します。

1. 推論コンポーネントをデプロイします。このコンポーネントをデプロイすると、 はモデルとランタイムコンポーネントの依存関係 AWS IoT Greengrass も自動的にデプロイします。

 AWSが提供するコンポーネントの使用を開始するには、「」を参照してください[チュートリアル: TensorFlow Lite を使用したサンプルイメージ分類推論の実行](ml-tutorial-image-classification.md)。

カスタム機械学習コンポーネントの作成方法については、「[機械学習コンポーネントのカスタマイズ](ml-customization.md)」を参照してください。

## AWS IoT Greengrass バージョン 2 の違いは何ですか?
<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 ユーザーガイド」の[バケット命名規則](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules)で、SSL で仮想ホスト型バケットの使用に関するルールを参照してください。
+ <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) v1.6.0 と v1.3.0
+  [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) v2.5.0 

## AWSが提供する機械学習コンポーネント
<a name="ml-components"></a>

次の表に、機械学習に使用される AWSが提供するコンポーネントを示します。

**注記**  <a name="component-nucleus-dependency-update-note"></a>
いくつかの AWS提供されるコンポーネントは、Greengrass nucleus の特定のマイナーバージョンによって異なります。この従属関係により、Greengrass nucleus を新しいマイナーバージョンに更新するとき、これらのコンポーネントを更新する必要があります。各コンポーネントが依存する nucleus の特定バージョンの情報については、対応するコンポーネントのトピックを参照してください。nucleus の更新の詳細については、「[AWS IoT Greengrass Core ソフトウェア (OTA) の更新](update-greengrass-core-v2.md)」を参照してください。


| コンポーネント | 説明 | [コンポーネントタイプ](develop-greengrass-components.md#component-types) | サポートされる OS | [オープンソース](open-source.md) | 
| --- | --- | --- | --- | --- | 
| [SageMaker AI Edge Manager](sagemaker-edge-manager-component.md) | Amazon SageMaker AI Edge Manager エージェントを Greengrass コアデバイスにデプロイします。 | ジェネリック | 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) | DLR とその従属関係を Greengrass コアデバイスにインストールするために使用されるインストールスクリプトを含むランタイムコンポーネント。 | ジェネリック | 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) | TensorFlow Lite とその従属関係を Greengrass コアデバイスにインストールするために使用されるインストールスクリプトを含むランタイムコンポーネント。 | ジェネリック | Linux、Windows | いいえ | 