翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
機械学習コンポーネントのカスタマイズ
AWS IoT Greengrass では、推論、モデル、ランタイムコンポーネントを設定要素としてデバイスに機械学習の推論を実行する方法をカスタマイズするため、サンプルの機械学習コンポーネントを設定できます。AWS IoT Greengrass は、サンプルコンポーネントをテンプレートとして使用し、必要に応じて独自のカスタムコンポーネントを作成できる柔軟性も提供します。このモジュラーアプローチを組み合わせて、次の方法で機械学習の推論コンポーネントをカスタマイズできます。
- サンプル推論コンポーネントの使用
-
-
推論コンポーネントをデプロイするときに設定を修正します。
-
サンプルモデルストアコンポーネントをカスタムモデルコンポーネントに置き換えて、サンプル推論コンポーネントを備えたカスタムモデルを使用します。カスタムモデルは、サンプルモデルと同じランタイムを使用してトレーニングする必要があります。
-
- カスタム推論コンポーネントの使用
-
-
パブリックモデルコンポーネントとランタイムコンポーネントをカスタム推論コンポーネントの従属関係として追加して、サンプルモデルとランタイムを備えたカスタム推論コードを使用します。
-
カスタムモデルコンポーネントまたはランタイムコンポーネントをカスタム推論コンポーネントの従属関係として作成して追加します。AWS IoT Greengrass がサンプルコンポーネントを提供しないカスタム推論コードまたはランタイムを使用する場合、カスタムコンポーネントを使用する必要があります。
-
パブリック推論コンポーネントの設定の修正
AWS IoT Greengrass コンソール
{ "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }, "PublishResultsOnTopic": "ml/tflite/image-classification", "ImageName": "cat.jpeg", "InferenceInterval": 3600, "ModelResourceKey": { "model": "TensorFlowLite-Mobilenet" } }
パブリック推論コンポーネントをデプロイするとき、デフォルト設定を修正してデプロイをカスタマイズできます。各パブリック推論コンポーネントに利用可能な設定パラメータの情報については、AWS が提供する機械学習コンポーネント のコンポーネントトピックを参照してください。
このセクションでは、修正済コンポーネントを AWS IoT Greengrass コンソールからデプロイする方法について説明します。AWS CLI を使用してコンポーネントをデプロイする情報については、「デプロイの作成」を参照してください。
修正済パブリック推論コンポーネント (コンソール) をデプロイするには
-
AWS IoT Greengrass コンソール
にサインインします。 -
ナビゲーションメニューで、[Components] (コンポーネント) を選択します。
-
[Components] (コンポーネント) ページの [Public components] (パブリックコンポーネント) タブで、デプロイするコンポーネントを選択します。
-
コンポーネントページで、[Deploy] (デプロイ) を選択します。
-
[Add to deployment] (デプロイに追加) から、次のいずれかを選択します。
-
ターゲットデバイスにある既存のデプロイにこのコンポーネントをマージするには、[Add to existing deployment] (既存のデプロイに追加) をクリックし、修正するデプロイを選択します。
-
ターゲットデバイスに新しいデプロイを作成するには、[Create new deployment] (新しいデプロイの作成) を選択します。デバイスに既存のデプロイがある場合は、このステップを選択すると既存のデプロイが置き換えられます。
-
-
[Specify device state] (ターゲットを指定) ページで、次を実行します。
-
[Deployment information] (デプロイ情報) で、デプロイの名前を入力または変更して、わかりやすくします。
-
[Deployment targets] (デプロイターゲット) でデプロイのターゲットを選択し、[Next] (次へ) を選択します。既存のデプロイを修正する場合は、デプロイターゲットを変更できません。
-
-
[Select components] (コンポーネントを選択) ページの [Public components] (パブリックコンポーネント) 内で、修正した設定を適用した推論コンポーネントが選択されていることを確認し、[Next] (次) を選択します。
-
[Configure components] (コンポーネントの設定) ページで、次の手順を実行します:
-
推論コンポーネントを選択して、[Configure component] (コンポーネントの設定) を選択します。
-
[Configuration update] (設定更新) 内で、更新する設定値を入力します。例えば、[Configuration to merge] (マージする設定) ボックスに次の設定更新を入力し、推論間隔を 15 秒に変更して、
/custom-ml-inference/images/
フォルダにcustom.jpg
という名前のイメージを検索するようにコンポーネントに指示します。{ "InferenceInterval": "15", "ImageName": "custom.jpg", "ImageDirectory": "/custom-ml-inference/images/" }
コンポーネントの設定を全体的にデフォルト値にリセットするには、[Reset paths] (パスのリセット) ボックスで空の文字列
""
を 1 つ指定します。 -
[Confirm] (確認)、[Next] (次へ) の順に選択します。
-
-
[Configure advanced setting] (高度な設定を設定) ページで、デフォルト構成設定のままにして [Next] (次) を選択します。
-
[Review] (レビュー) ページで、[Deploy] (デプロイ) を選択します。
サンプルの推論コンポーネントでカスタムモデルの使用
AWS IoT Greengrass がサンプルランタイムコンポーネントをランタイムに、サンプル推論コンポーネントを独自の機械学習モデルと使用する場合、これらのモデルをアーティファクトとして使用するコンポーネントで、パブリックモデルコンポーネントをオーバーライドする必要があります。高度なレベルで、次の手順を実行して、サンプル推論コンポーネントを備えたカスタムモデルを使用します。
-
S3 バケットのカスタムモデルをアーティファクトとして使用するモデルコンポーネントを作成します。カスタムモデルは、置き換えるモデルと同じランタイムを使用してトレーニングする必要があります。
-
カスタムモデルを使用するには、推論コンポーネントの
ModelResourceKey
設定パラメータを修正します。推論コンポーネントの設定の更新に関する情報については、「パブリック推論コンポーネントの設定の修正」を参照してください。
推論コンポーネントをデプロイするとき、AWS IoT Greengrass はコンポーネント従属関係の最新バージョンを検索します。コンポーネントのそれ以降のカスタムバージョンが同じ AWS アカウント と AWS リージョン に存在する場合、依存するパブリックモデルコンポーネントをオーバーライドします。
-
モデルを S3 バケットにアップロードします。S3 バケットにモデルをアップロードする情報については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットの使用」を参照してください。
注記
アーティファクトは、コンポーネントと同じ AWS アカウント と AWS リージョン の S3 バケットに格納する必要があります。AWS IoT Greengrass がこれらのアーティファクトにアクセスできるようにするには、Greengrass デバイスロールは
s3:GetObject
アクションを許可する必要があります。デバイスロールの詳細については、「コアデバイスが AWS サービスとやり取りできるように認証する」を参照してください。 -
AWS IoT Greengrass コンソール
のナビゲーションメニューで、[Components] (コンポーネント) を選択します。 -
パブリックモデルのストアコンポーネントのコンポーネントレシピを取得します。
-
[Components] (コンポーネント) ページの [Public components] (パブリックコンポーネント) タブで、新しいバージョンを作成するパブリックモデルコンポーネントを探して選択します。例えば、
variant.DLR.ImageClassification.ModelStore
です。 -
コンポーネントページで、[View recipe] (レシピを確認) を選択して表示された JSON レシピをコピーします。
-
-
[Components] (コンポーネント) ページの [My components] (マイコンポーネント) タブで、[Create component] (コンポーネントの作成) を選択します。
-
[Create component] (コンポーネントの作成) ページの [Component information] (コンポーネント情報) 内で、[Enter recipe as JSON] (JSON としてレシピを入力) をコンポーネントソースとして選択します。
-
[Recipe] (レシピ) ボックスで、以前にコピーしたコンポーネントレシピを貼り付けます。
-
レシピで次の値を更新します。
-
ComponentVersion
: コンポーネントのマイナーバージョンをインクリメントします。カスタムコンポーネントを作成してパブリックモデルコンポーネントをオーバーライドする場合、既存のコンポーネントバージョンのマイナーバージョンのみを更新する必要があります。例えば、パブリックコンポーネントのバージョンが
2.1.0
の場合、バージョン2.1.1
でカスタムコンポーネントを作成できます。 -
Manifests.Artifacts.Uri
: 各 URI 値を使用するモデルの Amazon S3 URI に更新します。
注記
コンポーネントの名前は変更しないでください。
-
-
[Create component] (コンポーネントの作成) を選択します。
-
モデルを S3 バケットにアップロードします。S3 バケットにモデルをアップロードする情報については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットの使用」を参照してください。
注記
アーティファクトは、コンポーネントと同じ AWS アカウント と AWS リージョン の S3 バケットに格納する必要があります。AWS IoT Greengrass がこれらのアーティファクトにアクセスできるようにするには、Greengrass デバイスロールは
s3:GetObject
アクションを許可する必要があります。デバイスロールの詳細については、「コアデバイスが AWS サービスとやり取りできるように認証する」を参照してください。 -
次のコマンドを実行して、パブリックコンポーネントのコンポーネントレシピを取得します。このコマンドは、コマンドで指定した出力ファイルにコンポーネントレシピを書き込みます。必要に応じて、取得した Base64 でエンコードされた文字列を JSON または YAML に変換します。
-
レシピファイルの名前を
に更新します。ここでは、コンポーネントバージョンは新しいコンポーネントのターゲットバージョンです。例えば、<component-name>
-<component-version>
variant.DLR.ImageClassification.ModelStore-2.1.1.yaml
です。 -
レシピで次の値を更新します。
-
ComponentVersion
: コンポーネントのマイナーバージョンをインクリメントします。カスタムコンポーネントを作成してパブリックモデルコンポーネントをオーバーライドする場合、既存のコンポーネントバージョンのマイナーバージョンのみを更新する必要があります。例えば、パブリックコンポーネントのバージョンが
2.1.0
の場合、バージョン2.1.1
でカスタムコンポーネントを作成できます。 -
Manifests.Artifacts.Uri
: 各 URI 値を使用するモデルの Amazon S3 URI に更新します。
注記
コンポーネントの名前は変更しないでください。
-
-
次のコマンドを実行して、取得して修正したレシピを使用して新しいコンポーネントを作成します。
aws greengrassv2 create-component-version \ --inline-recipe fileb://
path/to/component/recipe
注記
この手順では、AWS クラウド の AWS IoT Greengrass サービスのコンポーネントを作成します。コンポーネントをクラウドにアップロードする前に、Greengrass CLI を使用してコンポーネントをローカルで開発、テスト、デプロイできます。詳細については、「AWS IoT Greengrass コンポーネントを開発する」を参照してください。
コンポーネントの作成に関する詳細については、「AWS IoT Greengrass コンポーネントを開発する」を参照してください。
カスタム機械学習のコンポーネントを作成
AWS IoT Greengrass がサンプルコンポーネントを提供しないカスタム推論コードまたはランタイムを使用する場合、カスタムコンポーネントを作成する必要があります。カスタム推論コードを AWS が提供するサンプル機械学習モデルとランタイムと使用することができます。または、独自のモデルとランタイムを使用した完全にカスタマイズされた機械学習の推論ソリューションを開発できます。モデルが、AWS IoT Greengrass がサンプルランタイムコンポーネントを提供するランタイムを使用している場合、そのランタイムコンポーネントを使用できますが、推論コードと使用するモデルに対してのみカスタムコンポーネントを作成する必要があります。
パブリックコンポーネントのレシピを取得
既存のパブリック機械学習コンポーネントのレシピをテンプレートとして使用して、カスタムコンポーネントを作成できます。パブリックコンポーネントの最新バージョン用のコンポーネントレシピを確認するには、コンソールまたは AWS CLI を次のように使用します。
-
コンソールの使用
-
[Components] (コンポーネント) ページの [Public components] (パブリックコンポーネント) タブで、パブリックコンポーネントを探して選択します。
-
コンポーネントページで、[View recipe] (レシピを確認) を選択します。
-
-
AWS CLI を使用する
次のコマンドを実行して、パブリックバリアントコンポーネントのコンポーネントレシピを取得します。このコマンドは、コマンドで指定した JSON または YAML レシピファイルにコンポーネントレシピを書き込みます。
コマンドの値を、次のように置き換えます。
-
: パブリックコンポーネントの Amazon リソースネーム (ARN)。<arn>
-
: レシピファイルを作成するフォーマット。サポートされている値は、<recipe-format>
JSON
およびYAML
です。 -
:<recipe-file>
フォーマットのレシピの名前。<component-name>
-<component-version>
-
サンプルコンポーネントのアーティファクトを取得
パブリック機械学習コンポーネントで使用されるアーティファクトをテンプレートとして使用して、推論コードまたはランタイムインストールスクリプトなど、カスタムコンポーネントのアーティファクトを作成できます。
パブリック機械学習コンポーネントに含まれるサンプルアーティファクトを確認するには、パブリック推論コンポーネントをデプロイし、
フォルダのデバイスのアーティファクトを確認します。
/packages/artifacts-unarchived//greengrass/v2
component-name
/component-version
/
S3 バケットへコンポーネントアーティファクトのアップロード
カスタムコンポーネントを作成する前に、コンポーネントアーティファクトを S3 バケットにアップロードし、コンポーネントレシピの S3 URI を使用する必要があります。例えば、推論コンポーネントでカスタム推論コードを使用するには、S3 バケットにコードをアップロードします。次に、推論コードの Amazon S3 URI をコンポーネントのアーティファクトとして使用できます。
S3 バケットにコンテンツのアップロードに関する情報については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットの操作」を参照してください。
注記
アーティファクトは、コンポーネントと同じ AWS アカウント と AWS リージョン の S3 バケットに格納する必要があります。AWS IoT Greengrass がこれらのアーティファクトにアクセスできるようにするには、Greengrass デバイスロールは s3:GetObject
アクションを許可する必要があります。デバイスロールの詳細については、「コアデバイスが AWS
サービスとやり取りできるように認証する」を参照してください。
カスタムコンポーネントの作成
取得したアーティファクトとレシピを使用してカスタム機械学習コンポーネントを作成できます。例については「カスタム推論コンポーネントを作成」を参照してください。
コンポーネントの作成と Greengrass デバイスへのデプロイの詳細については、「AWS IoT Greengrass コンポーネントを開発する」と「デバイスに AWS IoT Greengrass コンポーネントのデプロイ」を参照してください。
カスタム推論コンポーネントを作成
このセクションでは、DLR イメージ分類コンポーネントをテンプレートとして使用して、カスタム推論コンポーネントを作成する方法を説明します。
推論コードを Amazon S3 バケットにアップロード
推論コードを作成し、S3 バケットにアップロードします。S3 バケットにコンテンツのアップロードに関する情報については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットの操作」を参照してください。
注記
アーティファクトは、コンポーネントと同じ AWS アカウント と AWS リージョン の S3 バケットに格納する必要があります。AWS IoT Greengrass がこれらのアーティファクトにアクセスできるようにするには、Greengrass デバイスロールは s3:GetObject
アクションを許可する必要があります。デバイスロールの詳細については、「コアデバイスが AWS
サービスとやり取りできるように認証する」を参照してください。
推論コンポーネントのレシピを作成
-
次のコマンドを実行して、DLR イメージ分類コンポーネントのコンポーネントレシピを取得します。このコマンドは、コマンドで指定した JSON または YAML レシピファイルにコンポーネントレシピを書き込みます。
<recipe-file>
を
形式のレシピの名前に置き換えます。<component-name>
-<component-version>
-
レシピの
ComponentDependencies
オブジェクトに、使用するモデルとランタイムコンポーネントに応じて次の操作を 1 つ以上実行します。-
DLR コンパイル型モデルを使用する場合、DLR コンポーネントの従属関係を維持します。次の例で示すように、カスタム ランタイム コンポーネントの従属関係に置き換えることもできます。
ランタイムコンポーネント
-
DLR イメージ分類モデルストアの依存関係を維持して、 AWSが提供する事前トレーニング済みの ResNet-50 モデルを使用するか、カスタムモデルコンポーネントを使用するように変更します。パブリックモデルコンポーネントの従属関係を含めるとき、そのコンポーネントの新しいカスタムバージョンが同じ AWS アカウント と AWS リージョン に存在する場合、推論コンポーネントはそのカスタムコンポーネントを使用します。次の例に示すように、モデルコンポーネントの従属関係を指定します。
パブリックモデルコンポーネント
カスタムモデルコンポーネント
-
-
ComponentConfiguration
オブジェクトで、このコンポーネントのデフォルト設定を追加します。コンポーネントをデプロイするときに、後でこの設定を修正できます。次の抜粋は、DLR イメージ分類コンポーネントのコンポーネント設定を示しています。例えば、カスタム推論コンポーネントの従属関係としてカスタムモデルコンポーネントを使用する場合、使用しているモデルの名前を提供するように
ModelResourceKey
を修正します。 -
Manifests
オブジェクトで、コンポーネントが異なるプラットフォームにデプロイされるときに使用されるこのコンポーネントのアーティファクトと設定に関する情報、並びにコンポーネントを正常に実行するために必要な他の情報を提供します。次の抜粋では、DLR イメージ分類コンポーネントの Linux プラットフォームのManifests
オブジェクトに対する設定を示しています。
コンポーネントレシピの作成の詳細については、「AWS IoT Greengrass コンポーネントレシピリファレンス」を参照してください。
推論コンポーネントの作成
AWS IoT Greengrass コンソールまたは AWS CLI を使用して、今定義したレシピを使用してコンポーネントを作成します。コンポーネントを作成した後、デバイスに推論を実行するためにデプロイできます。推論コンポーネントのデプロイ方法の例については、「チュートリアル: TensorFlow Lite を使用してサンプルイメージ分類推論を実行する」を参照してください。
-
AWS IoT Greengrass コンソール
にサインインします。 -
ナビゲーションメニューで、[Components] (コンポーネント) を選択します。
-
[Components] (コンポーネント) ページの [My components] (マイコンポーネント) タブで、[Create component] (コンポーネントの作成) を選択します。
-
[Create component] (コンポーネントの作成) ページの [Component information] (コンポーネント情報) 内で、[Enter recipe as JSON] (JSON としてレシピを入力) または [Enter recipe as YAML] (YAML としてレシピを入力) をコンポーネントソースとして選択します。
-
[Recipe] (レシピ) ボックスで、作成したカスタムレシピを入力します。
-
[Create component] (コンポーネントの作成) をクリックします。
次のコマンドを実行し、作成したレシピを使用して、新しいカスタムコンポーネントを作成します。
aws greengrassv2 create-component-version \ --inline-recipe fileb://
path/to/recipe/file
注記
この手順では、AWS クラウド の AWS IoT Greengrass サービスのコンポーネントを作成します。コンポーネントをクラウドにアップロードする前に、Greengrass CLI を使用してコンポーネントをローカルで開発、テスト、デプロイできます。詳細については、「AWS IoT Greengrass コンポーネントを開発する」を参照してください。