

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

# AWS Marketplace の機械学習製品
<a name="machine-learning-products"></a>

AWS Marketplace 販売者は、購入者が AWS にデプロイできる機械学習 (ML) アルゴリズムとモデルを作成することができます。このトピックでは、AWS Marketplace に出品されている Amazon SageMaker AI 製品のタイプについて説明します。

AWS Marketplace に出品されている SageMaker AI 製品には、次の 2 つのタイプがあります。

**モデルパッケージ**  
 購入者による追加のトレーニングを必要としない、予測を行うための事前トレーニング済みモデル。

**アルゴリズム**  
 予測を行う前に、購入者がトレーニングデータを提供する必要があるモデル。トレーニングアルゴリズムは含まれています。

これらの製品は、Amazon SageMaker AI コンソールまたは AWS Marketplace から購入できます。購入者は、製品説明、ドキュメント、カスタマーレビュー、料金表、サポート情報を確認できます。モデルパッケージ製品またはアルゴリズム製品のいずれかをサブスクライブすると、SageMaker AI コンソールの製品リストに追加されます。購入者は、AWS SDK、AWS Command Line Interface (AWS CLI)、または SageMaker AI コンソールを使用して、フルマネージド型の REST 推論エンドポイントを作成したり、データのバッチに対して推論を実行したりすることもできます。

 Amazon SageMaker AI を使用した機械学習製品の作成に関するサポートについては、[AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) チームにお問い合わせください。

# 機械学習製品を理解する
<a name="ml-overview"></a>

 AWS Marketplace は、Amazon SageMaker AI を使用する 2 つの機械学習製品タイプをサポートしています。モデルパッケージ製品とアルゴリズム製品のどちらのタイプでも、予測を行うためのデプロイ可能な推論モデルが生成されます。

## SageMaker AI モデルパッケージ
<a name="ml-amazon-sagemaker-model-package"></a>

 [Amazon SageMaker AI モデルパッケージ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html#sagemaker-mkt-model-package)製品には、事前トレーニング済みのモデルが含まれています。事前にトレーニングされたモデルを SageMaker AI にデプロイして、リアルタイムまたはバッチで推論や予測を行うことができます。本製品には、モデルアーティファクト (存在する場合) を含むトレーニング済みの推論コンポーネントが含まれています。販売者は、SageMaker AI を使用してモデルをトレーニングすることも、独自のモデルを持ち込むこともできます。

## SageMaker AI アルゴリズム
<a name="ml-amazon-sagemaker-algorithm"></a>

 購入者は [SageMaker AI アルゴリズム](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html#sagemaker-mkt-algorithm)製品を使用して完全な機械学習ワークロードを実行できます。アルゴリズム製品には、トレーニングと推論という 2 つの論理コンポーネントがあります。SageMaker AI では、購入者は独自のデータセットを使用してトレーニングコンポーネントを含むトレーニングジョブを作成します。アルゴリズムがコンポーネントのトレーニングを完了すると、機械学習モデルのモデルアーティファクトが生成されます。SageMaker AI は、購入者の Amazon Simple Storage Service (Amazon S3) バケットにモデルアーティファクトを保存します。SageMaker AI では、購入者は生成されたモデルアーティファクトと共に推論コンポーネントをデプロイして、推論 (または予測) をリアルタイムまたはバッチで実行できます。

## 推論モデルのデプロイ
<a name="ml-deploying-an-inference-model"></a>

 推論モデルがモデルパッケージから作成されたものであれ、アルゴリズムから作成されたものであれ、それらをデプロイするには次の 2 つの方法があります。
+  **エンドポイント** - このメソッドでは SageMaker AI を使用してモデルをデプロイし、API エンドポイントを作成します。購入者はこのエンドポイントをバックエンドサービスの一部として使用してアプリケーションを強化できます。データがエンドポイントに送信されると、SageMaker AI がモデルコンテナに渡し、結果を API レスポンスで返します。エンドポイントとコンテナは、購入者が停止するまで実行され続けます。
**注記**  
 AWS Marketplaceエンドポイントメソッドは*リアルタイム推論*と呼ばれ、SageMaker AI ドキュメントでは*ホスティングサービス*と呼ばれます。詳細については、「[Amazon SageMaker AI でモデルをデプロイする](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-deployment.html)」を参照してください。
+  **バッチ変換ジョブ** - この方法では、購入者は推論用データセットを Amazon S3 に保存します。バッチ変換ジョブが開始されると、SageMaker AI はモデルをデプロイし、S3 バケットからモデルのコンテナにデータを渡し、結果を Amazon S3 バケットに返します。ジョブが完了すると、SageMaker AI はジョブを停止します。詳細については、「[Use Batch Transform](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html)」を参照してください。
**注記**  
 SageMaker AI はデータをモデルに渡し、結果を購入者に返すため、どちらの方法もモデルに対して透過的です。

# 機械学習製品のライフサイクル
<a name="ml-product-lifecycle"></a>

の機械学習製品は、1 つ以上のソフトウェアバージョンと関連するメタデータ AWS Marketplace で構成されます。製品設定には、名前、説明、使用方法、料金、分類、検索キーワードなどの重要なプロパティが含まれています。

## 機械学習製品の作成プロセス
<a name="ml-publication-process"></a>

 で機械学習製品を一覧表示するには AWS Marketplace、以下を完了する必要があります。

1. [SageMaker AI での製品の準備](ml-prepare-your-product-in-sagemaker.md)

1. [での製品の一覧表示 AWS Marketplace](ml-publishing-your-product-in-aws-marketplace.md)

 機械学習製品を作成したら、製品を編集および管理できます。詳細については、「[機械学習製品の管理](ml-product-management.md)」を参照してください。

## 機械学習製品のステータス
<a name="ml-product-status"></a>

 新製品の可視性は当初は限られており、許可リストに登録されたアカウントと製品作成者のみがアクセスできます。テストと検証の後、製品を公開して、すべての購入者が AWS Marketplace カタログで利用できるようにします。の製品は、次のステータス値を持つ AWS Marketplace ことができます。


| ステータス | 定義 | 
| --- |--- |
| Staging |  このステータスは、情報を追加中の、不完全な製品を示します。セルフサービスエクスペリエンスを最初に保存して終了すると、 は、完了したステップの情報を含む未公開の製品 AWS Marketplace を作成します。このステータスから、引き続き情報を追加したり、送信された詳細を変更したりできます。  | 
| Limited | A product attains this status after it's submitted to AWS Marketplace and passes all validation checks. At this point, the product has a detail page accessible only to your account and allowlisted entities. You can conduct product testing through this detail page. | 
| Public | When you're prepared to make your product visible to buyers for subscription, update the product visibility in the console. Once processed, the product transitions from Limited to Public status. For information about AWS guidelines, see [機械学習製品を作成するための要件とベストプラクティス](ml-listing-requirements-and-best-practices.md).  | 
| Restricted |  新しいユーザーが製品をサブスクライブしないようにするには、可視性設定を更新して制限できます。[制限] ステータスでは、既存の許可リストに登録されたユーザーが製品を引き続き使用できますが、一般公開されたり、新しいユーザーが使用したりすることはできなくなります。  | 

 詳細またはヘルプについては、[AWS Marketplace Seller Operations チーム](https://aws.amazon.com/marketplace/management/contact-us/)までお問い合わせください。

# の機械学習製品の料金 AWS Marketplace
<a name="machine-learning-pricing"></a>

 AWS Marketplaceの Amazon SageMaker AI 製品は、複数の料金モデルから選択できます。製品をサブスクライブしている購入者は、自身の AWS アカウント内の SageMaker AI でその製品を実行します。購入者に提示される料金は、購入者の AWS アカウント で稼働するリソースのインフラストラクチャコストと、設定した製品価格の組み合わせです。以下のセクションでは、 の SageMaker AI 製品の料金モデルについて説明します。 AWS Marketplace

**Topics**
+ [インフラストラクチャの料金](#ml-infrastructure-pricing)
+ [ソフトウェアの料金](#ml-software-pricing)

## インフラストラクチャの料金
<a name="ml-infrastructure-pricing"></a>

購入者は、製品を使用する際にかかる SageMaker AI のインフラストラクチャコストをすべて負担します。これらのコストは によって設定 AWS され、[Amazon SageMaker AI の料金](https://aws.amazon.com/sagemaker/pricing/)ページで確認できます。

## ソフトウェアの料金
<a name="ml-software-pricing"></a>

製品の使用に対して購入者に AWS Marketplace 請求するソフトウェア料金を決定します。機械学習製品を AWS Marketplaceに追加する際に、料金と条件を設定します。

インスタンスタイプあたりのすべてのインフラストラクチャとソフトウェアの料金は、購入者がサブスクライブ AWS Marketplace する前に、 の製品出品ページに表示されます。

**Topics**
+ [料金無料](#ml-pricing-free)
+ [時間単位の料金](#ml-pricing-hourly)
+ [推論の料金](#ml-pricing-inference)
+ [無料トライアル](#ml-pricing-free-trial)

### 料金無料
<a name="ml-pricing-free"></a>

製品を無料で提供することもできます。この場合、購入者はインフラストラクチャの料金のみを支払います。

### 時間単位の料金
<a name="ml-pricing-hourly"></a>

SageMaker AI で実行されているソフトウェアのインスタンスごとに 1 時間あたりの料金を設定して製品を提供できます。ソフトウェアが実行するインスタンスタイプごとに異なる時間単位の料金を請求できます。購入者がソフトウェアを実行している間、 は使用量 AWS Marketplace を追跡し、それに応じて購入者に請求します。使用量は分単位で計算されます。

*モデルパッケージ*製品の場合、購入者はソフトウェアを 2 つの方法で実行できます。エンドポイントを継続的にホストしてリアルタイムの推論を実行する方法と、データセットに対してバッチ変換ジョブを実行する方法です。購入者がソフトウェアを実行する 2 つの方法にそれぞれ異なる料金を設定できます。

*アルゴリズム*製品では、前述のように推論の実行に対して料金を決定するだけでなく、トレーニングジョブに対しても時間単位の料金を決定します。トレーニングイメージがサポートするインスタンスタイプごとに異なる時間単位の料金を請求できます。

### 推論の料金
<a name="ml-pricing-inference"></a>

購入者がエンドポイントをホストしてソフトウェアを実行し、リアルタイムの推論を継続的に実行する場合、推論ごとに料金を設定することができます。

**注記**  
次の ML 製品タイプでは、常に時間単位の料金を使用します。  
バッチ変換ジョブ
非同期推論エンドポイント
アルゴリズム製品のトレーニングジョブ
推論料金と相互に関係なく、各タイプの料金を設定します。

デフォルトでは、推論料金では、 はエンドポイントの呼び出しごとに購入者に AWS Marketplace 課金します。ただし、ソフトウェアが 1 回の呼び出しで推論のバッチを処理する場合もあります (*ミニバッチ*とも呼ばれます)。エンドポイントのデプロイでは、1 回の呼び出しに対して AWS Marketplace が購入者に請求する推論の数をカスタムで指定できます。これを行うには、次の例のように、呼び出しの HTTP レスポンスヘッダーにカスタムメータリングヘッダーを含めます。この例では、3 件の推論を購入者に請求する呼び出しを示しています。

```
X-Amzn-Inference-Metering: {"Dimension": "inference.count", "ConsumedUnits": 3}
```

**注記**  
推論料金の場合、 は HTTP レスポンスコードが であるリクエストに対して AWS Marketplace のみ購入者に請求します`2XX`。

### 無料トライアル
<a name="ml-pricing-free-trial"></a>

オプションで、製品の無料トライアルを作成し、無料トライアルの日数を定義できます。無料トライアルは 5～31 日です。無料トライアル期間中、購入者はソフトウェアを好きなだけ実行でき、ソフトウェア料金は発生しません。無料トライアル中、インフラストラクチャの料金は発生します。トライアル期間が終了すると、通常のソフトウェア料金とインフラストラクチャの料金が請求されます。

購入者が無料トライアルのある製品をサブスクライブすると、ウェルカムメールメッセージが届きます。メッセージには、無料トライアルの期間、計算された有効期限、サブスクリプションの解除に関する詳細が含まれます。有効期限が切れる 3 日前に通知メールが送信されます。

で製品の無料トライアルを提供する場合 AWS Marketplace、無料トライアルの特定の[返金ポリシー](https://docs.aws.amazon.com/marketplace/latest/userguide/refunds.html#refund-policy)に同意したことになります。

**注記**  
機械学習のプライベートオファーについて詳しくは、「[プライベートオファー](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-overview.html)」をご覧ください。

# での機械学習製品のサービス制限とクォータ AWS Marketplace
<a name="ml-service-restrictions-and-limits"></a>

このセクションでは、 AWS Marketplaceの機械学習 (ML) 製品の制限とクォータについて説明します。

**Topics**
+ [ネットワークの隔離](#ml-network-isolation)
+ [イメージのサイズ](#ml-image-size)
+ [ストレージサイズ](#ml-storage-size)
+ [インスタンスサイズ](#ml-instance-size)
+ [推論のペイロードサイズ](#ml-payload-size-for-inference)
+ [推論の処理時間](#ml-processing-time-for-inference)
+ [Service Quotas](#ml-service-quotas)
+ [サーバーレス推論](#severless-inference)
+ [マネージドスポットトレーニング](#ml-managed-spot-training)
+ [Docker イメージと AWS アカウント](#ml-docker-images-and-aws-accounts)
+ [組み込みアルゴリズムまたは からのモデルパッケージの公開 AWS Marketplace](#ml-publishing-model-packages-from-built-in-algorithms-or-aws-marketplace)
+ [公開 AWS リージョン でサポート](#ml-supported-aws-regions-for-publishing)

## ネットワークの隔離
<a name="ml-network-isolation"></a>

セキュリティ上の理由から、コンテナ化された製品を購入者がサブスクライブすると、Docker コンテナはネットワークアクセスのない隔離された環境で実行されます。コンテナの作成時には、インターネット経由での呼び出しに依存しないでください。その呼び出しは失敗します。への呼び出しも失敗 AWS のサービス します。

## イメージのサイズ
<a name="ml-image-size"></a>

Docker イメージのサイズは、Amazon Elastic Container Registry (Amazon ECR) の[Service Quotas](https://docs.aws.amazon.com/AmazonECR/latest/userguide/service_limits.html) によって管理されます。Docker イメージのサイズは、トレーニングジョブ、バッチ変換ジョブ、エンドポイント作成時の起動時間に影響します。パフォーマンスを向上させるため、最適な Docker イメージのサイズを維持してください。

## ストレージサイズ
<a name="ml-storage-size"></a>

エンドポイントが作成されると、Amazon SageMaker AI は、エンドポイントをホストする各 ML コンピューティングインスタンスに Amazon Elastic Block Store (Amazon EBS) ストレージボリュームをアタッチします。(エンドポイントは*リアルタイム推論*または *Amazon SageMaker AI ホスティングサービス*とも呼ばれます)。ストレージボリュームのサイズは、インスタンスタイプによって異なります。詳細については、「*Amazon SageMaker AI デベロッパーガイド*」の「[ホストインスタンスストレージボリューム](https://docs.aws.amazon.com/sagemaker/latest/dg/host-instance-storage.html)」を参照してください。 

バッチ変換については、「*Amazon SageMaker AI デベロッパーガイド*」の「[バッチ変換のストレージ](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-storage.html)」を参照してください。

## インスタンスサイズ
<a name="ml-instance-size"></a>

SageMaker AI では、インスタンスタイプの選択肢があり、ML のさまざまなユースケースに合わせて最適化できます。インスタンスタイプは、CPU、GPU、メモリ、およびネットワーク容量のさまざまな組み合わせで構成されます。インスタンスタイプでは、ML モデルの構築、トレーニング、デプロイに適したリソースの組み合わせを柔軟に選択できます。詳細については、「[Amazon SageMaker AI ML インスタンスタイプ](https://aws.amazon.com/sagemaker/pricing/instance-types/)」を参照してください。

## 推論のペイロードサイズ
<a name="ml-payload-size-for-inference"></a>

 エンドポイントの場合、1 回の呼び出しあたりの入力データの最大サイズが 25 MB に制限されます。この値を調整することはできません。

バッチ変換の場合、1 回の呼び出しあたりの入力データの最大サイズは 100 MB です。この値を調整することはできません。

## 推論の処理時間
<a name="ml-processing-time-for-inference"></a>

エンドポイントの場合、呼び出しあたりの最大処理時間は、通常のレスポンスの場合は 60 秒、ストリーミングレスポンスの場合は 8 分です。この値を調整することはできません。

バッチ変換の場合、1 回の呼び出しあたりの最大処理時間は 60 分です。この値を調整することはできません。

## Service Quotas
<a name="ml-service-quotas"></a>

トレーニングと推論に関連するクォータの詳細については、「[Amazon SageMaker AI Service Quotas](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html#limits_sagemaker)」を参照してください。

## サーバーレス推論
<a name="severless-inference"></a>

で発行されたモデルパッケージとアルゴリズムは、Amazon AWS Marketplace SageMaker AI Serverless Inference 用に設定されたエンドポイントにデプロイできません。 [Amazon SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html) サーバーレス推論用に設定されたエンドポイントの場合、モデルにネットワーク接続が必要です。すべての AWS Marketplace モデルはネットワーク分離で動作します。詳細については、「[No network access](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-security-and-intellectual-property.html#ml-no-network-access)」を参照してください。

## マネージドスポットトレーニング
<a name="ml-managed-spot-training"></a>

からのすべてのアルゴリズムについて AWS Marketplace、[マネージドスポットトレーニング](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html) のチェックポイントが実装されている場合でも、 の値は 3,600 秒 (60 分) に`MaxWaitTimeInSeconds`設定されます。この値を調整することはできません。

## Docker イメージと AWS アカウント
<a name="ml-docker-images-and-aws-accounts"></a>

公開するには、イメージを AWS アカウント 販売者の が所有する Amazon ECR リポジトリに保存する必要があります。別の が所有するリポジトリに保存されているイメージを発行することはできません AWS アカウント。

## 組み込みアルゴリズムまたは からのモデルパッケージの公開 AWS Marketplace
<a name="ml-publishing-model-packages-from-built-in-algorithms-or-aws-marketplace"></a>

[Amazon SageMaker AI 組み込みアルゴリズム](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html)または AWS Marketplace サブスクリプションのアルゴリズムを使用してトレーニングジョブから作成されたモデルパッケージは公開できません。

トレーニングジョブのモデルアーティファクトは引き続き使用できますが、モデルパッケージを公開するには独自の推論イメージが必要です。

## 公開 AWS リージョン でサポート
<a name="ml-supported-aws-regions-for-publishing"></a>

AWS Marketplace は、以下の両方 AWS リージョン が当てはまる からのモデルパッケージとアルゴリズムリソースの公開をサポートします。
+ [Amazon SageMaker AI がサポート](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)するリージョン 
+ デフォルトでオプトインされている[利用可能なリージョン](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) (例えば、[describe-regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#ec2-describe-regions) が返す `"OptInStatus": "opt-in-not-required"` など) 

モデルパッケージまたはアルゴリズム製品の公開に必要なすべてのアセットは、公開元と同じリージョンに保存する必要があります。これには以下が含まれます。
+ Amazon SageMaker AI で作成されたモデルパッケージとアルゴリズムのリソース 
+ Amazon ECR リポジトリにアップロードされる推論イメージとトレーニングイメージ 
+ Amazon Simple Storage Service に保存され、モデルパッケージリソースのモデルデプロイ中に動的にロードされるモデルアーティファクト (存在する場合) 
+ Amazon S3 に保存されている推論およびトレーニング検証用のテストデータ 

SageMaker AI がサポートするどのリージョンでも、製品の開発とトレーニングを行うことができます。ただし、公開する前に、 AWS Marketplace が発行元をサポートしているリージョンにすべてのアセットをコピーして、そのリージョンでリソースを再作成する必要があります。

# Amazon SageMaker AI でのセキュリティと知的財産
<a name="ml-security-and-intellectual-property"></a>

Amazon SageMaker AI は、取得したモデルとアルゴリズムの知的財産と購入者データの両方を保護します AWS Marketplace。以下のセクションでは、SageMaker AI の知的財産の保護方法と顧客データのセキュリティについて詳しく説明します。

**Topics**
+ [知的財産の保護](#ml-protecting-intellectual-property)
+ [ネットワークアクセスなし](#ml-no-network-access)
+ [顧客データのセキュリティ](#ml-security-of-customer-data)

## 知的財産の保護
<a name="ml-protecting-intellectual-property"></a>

 製品を作成すると、コードは Docker コンテナイメージにパッケージ化されます。詳細については、このガイドで後述する「[SageMaker AI での製品の準備](ml-prepare-your-product-in-sagemaker.md)」を参照してください。コンテナイメージをアップロードすると、イメージとアーティファクトは転送中も保存時も暗号化されます。また、イメージは公開前にスキャンされ、脆弱性がないことを確認されます。

 知的財産を保護するために、SageMaker AI では購入者のみが AWS のサービス エンドポイントを介して製品にアクセスできます。購入者は、コンテナイメージやモデルアーティファクトに直接アクセスしたり、コンテナイメージやモデルアーティファクトを取得したりすることはできません。また、基盤となるインフラストラクチャにアクセスすることはできません。

## ネットワークアクセスなし
<a name="ml-no-network-access"></a>

 購入者が作成する SageMaker AI モデルとアルゴリズムとは異なり、購入者が製品を起動すると AWS Marketplace、モデルとアルゴリズムはネットワークアクセスなしでデプロイされます。SageMaker AI は、ネットワークや AWS のサービス エンドポイントにアクセスできない環境にイメージをデプロイします。例えば、コンテナイメージは、インターネット、[VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)、またはその他の AWS のサービスへのアウトバウンド API 呼び出しを行うことができません。

## 顧客データのセキュリティ
<a name="ml-security-of-customer-data"></a>

 製品は購入者の AWS アカウントの SageMaker AI で実行されます。そのため、購入者が製品を使用してデータ推論を行っても、販売者はデータにアクセスできません。

 アルゴリズム製品の場合、トレーニングジョブのたびにトレーニングイメージからモデルアーティファクトが出力されます。モデルアーティファクトは購入者のアカウントに保存されます。トレーニングジョブのモデルアーティファクトは、購入者が顧客の推論イメージを使用してモデルをデプロイするときに使用されます。モデルアーティファクトに含まれる可能性のある知的財産を保護するには、公開前に暗号化してください。

**重要**  
 このセキュリティモデルにより、実行時にコードがインターネットにアクセスするのを防ぎます。したがって、コードはインターネット上のリソースやライブラリを使用できないため、依存関係は Docker コンテナイメージにパッケージ化してください。トレーニングジョブから出力されたアーティファクトを暗号化する場合、これは特に重要です。ランタイムには、アーティファクトを暗号化および復号化するキーにインターネット経由でアクセスすることはできません。これらは、イメージとパッケージ化する必要があります。

 詳細については「[Amazon SageMaker AI のセキュリティ](https://docs.aws.amazon.com/sagemaker/latest/dg/security.html)」を参照してください。

# の機械学習レポート AWS Marketplace
<a name="ml-reporting"></a>

AWS Marketplace は、購入者、財務、使用状況、税金に関するデータを含む Amazon SageMaker AI 製品のレポートを生成します。すべてのレポートは、[レポートページの](https://aws.amazon.com/marketplace/management/reports) AWS Marketplace 管理ポータル で利用できます。詳細については、「[販売者レポート](https://docs.aws.amazon.com/marketplace/latest/userguide/Reporting.html)」を参照してください。以下のセクションでは、機械学習製品レポートの概要について説明します。

**Topics**
+ [日別ビジネスレポート](#ml-daily-business-report)
+ [月別収益レポート](#ml-monthly-revenue-report)
+ [支払いレポート](#ml-disbursement-report)
+ [その他のレポートと分析](#ml-other-reports)

## 日別ビジネスレポート
<a name="ml-daily-business-report"></a>

 日次ビジネスレポートには、各購入者と製品のインスタンスタイプ、使用時間、ソフトウェア料金による収益、その他の詳細が記載されています。購入者は AWS アカウント ID で識別できます。詳細については、「[日次ビジネスレポート](https://docs.aws.amazon.com/marketplace/latest/userguide/daily-business-report.html)」を参照してください。

## 月別収益レポート
<a name="ml-monthly-revenue-report"></a>

 月次収益レポートには、ソフトウェアの使用に対して購入者に請求された月次収益が表示されます。詳細については、「[月別請求済み収益レポート](https://docs.aws.amazon.com/marketplace/latest/userguide/monthly-billed-revenue-report.html)」を参照してください。

## 支払いレポート
<a name="ml-disbursement-report"></a>

 月次支払いレポートには、ソフトウェア料金の決済期間中にお客様に代わって収集された総額の内訳が表示されます。レポートに反映される決済総額は、お客様の銀行口座に入金される金額と一致する必要があります。詳細については、「[支払いレポート](https://docs.aws.amazon.com/marketplace/latest/userguide/monthly-disbursement-report.html)」を参照してください。

## その他のレポートと分析
<a name="ml-other-reports"></a>

 利用可能なその他のレポートについては、「[販売者レポート](https://docs.aws.amazon.com/marketplace/latest/userguide/dashboards.html)」を参照してください。

 AWS Marketplaceから利用可能な [AWS Marketplace の販売者配信データフィード](data-feed-service.md) を使用してカスタムレポートを作成することもできます。

# SageMaker AI での製品の準備
<a name="ml-prepare-your-product-in-sagemaker"></a>

AWS Marketplace で製品を公開する前に、Amazon SageMaker AI で製品を準備する必要があります。AWS Marketplace に出品される SageMaker AI 製品には、モデルパッケージとアルゴリズムの 2 種類があります。詳細については、「[AWS Marketplace の機械学習製品](machine-learning-products.md)」を参照してください。このトピックでは、製品を準備するために必要な 3 つのステップの概要を説明します。

1. [での機械学習製品のイメージへのコードのパッケージ化 AWS Marketplace](ml-packaging-your-code-into-images.md) - モデルパッケージまたはアルゴリズム製品を準備するには、製品用の Docker コンテナイメージを作成する必要があります。

1. [Amazon Elastic Container Registry へのイメージのアップロード](ml-uploading-your-images.md) - コードをコンテナイメージにパッケージ化してローカルでテストしたら、イメージをアップロードしてスキャンし、既知の脆弱性を持っていないかを確認します。続行する前に、すべての脆弱性を修正してください。

1.  [Amazon SageMaker AI リソースの作成](ml-creating-your-amazon-sagemaker-resource.md) - イメージが正常にスキャンされたら、SageMaker AI でそのイメージを使用してモデルパッケージまたはアルゴリズムリソースを作成できます。

# での機械学習製品のイメージへのコードのパッケージ化 AWS Marketplace
<a name="ml-packaging-your-code-into-images"></a>

の機械学習製品は、Amazon SageMaker AI AWS Marketplace を使用して、購入者に提供する機械学習ロジックを作成して実行します。SageMaker AI は、ロジックを含む Docker コンテナイメージを実行します。SageMaker AI は、これらのコンテナを安全でスケーラブルなインフラストラクチャで実行します。詳細については、「[Amazon SageMaker AI でのセキュリティと知的財産](ml-security-and-intellectual-property.md)」を参照してください。以下のセクションでは、SageMaker AI の Docker コンテナイメージにコードをパッケージ化する方法について説明します。

**Topics**
+ [どのタイプのコンテナイメージを作成すればよいですか?](#ml-which-type-of-container-image-do-i-create)
+ [モデルパッケージイメージの作成](ml-model-package-images.md)
+ [アルゴリズムイメージの作成](ml-algorithm-images.md)

## どのタイプのコンテナイメージを作成すればよいですか?
<a name="ml-which-type-of-container-image-do-i-create"></a>

 コンテナイメージには、推論イメージとトレーニングイメージの 2 つのタイプがあります。

 モデルパッケージ製品を作成するには、推論イメージのみが必要です。詳細な手順については、「[モデルパッケージイメージの作成](ml-model-package-images.md)」を参照してください。

 アルゴリズム製品を作成するには、トレーニングイメージと推論イメージの両方が必要です。詳細な手順については、「[アルゴリズムイメージの作成](ml-algorithm-images.md)」を参照してください。

 コードをコンテナイメージに正しくパッケージ化するには、コンテナが SageMaker AI のファイル構造に従っている必要があります。サービスがコンテナとデータをやり取りできるよう、コンテナは正しいエンドポイントを公開する必要があります。以下のセクションでは、このプロセスを詳しく説明します。

**重要**  
 セキュリティ上の理由から、コンテナ化された製品を購入者がサブスクライブすると、Docker コンテナはインターネット接続のない隔離された環境で実行されます。コンテナの作成時には、インターネット経由での呼び出しに依存しないでください。その呼び出しは失敗します。への呼び出しも失敗 AWS のサービス します。詳細については「[Amazon SageMaker AI でのセキュリティと知的財産](ml-security-and-intellectual-property.md)」セクションを参照してください。

 必要に応じて、推論イメージとトレーニングイメージを作成するときに、開始点として、[使用可能な深層学習コンテナイメージ](https://aws.amazon.com/releasenotes/available-deep-learning-containers-images/)のコンテナを使用します。イメージは既にさまざまな機械学習フレームワークで適切にパッケージ化されています。

# モデルパッケージイメージの作成
<a name="ml-model-package-images"></a>

Amazon SageMaker AI モデルパッケージは、予測を行う事前トレーニングされたモデルです。購入者はこれをさらにトレーニングする必要はありません。SageMaker AI でモデルパッケージを作成して、 AWS Marketplaceで機械学習製品を公開できます。以下のセクションでは、 のモデルパッケージを作成する方法について説明します AWS Marketplace。これには、コンテナイメージの作成、イメージのローカルでのビルドとテストが含まれます。

**Topics**
+ [概要:](#ml-model-package-images-overview)
+ [モデルパッケージ用の推論イメージの作成](#ml-creating-an-inference-image-for-model-packages)

## 概要:
<a name="ml-model-package-images-overview"></a>

 モデルパッケージには、次のコンポーネントが含まれています。
+  [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) (Amazon ECR) に保存された推論イメージ 
+  (オプション) [Amazon S3](https://aws.amazon.com/s3/) に個別に保存されているモデルアーティファクト 

**注記**  
モデルアーティファクトは、モデルが予測を行うために使用するファイルであり、通常は独自のトレーニングプロセスの結果です。アーティファクトは、モデルが必要とするどのようなファイルタイプでも構いませんが、.tar.gz 圧縮を使用する必要があります。モデルパッケージの場合、推論イメージにバンドルすることも、Amazon SageMaker AI に個別に保存することもできます。Amazon S3 に保存されているモデルアーティファクトは、実行時に推論コンテナにロードされます。モデルパッケージを公開すると、これらのアーティファクトは公開され、購入者が直接アクセスできない AWS Marketplace 所有の Amazon S3 バケットに保存されます。

**ヒント**  
推論モデルが Gluon、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX などの深層学習フレームワークで構築されている場合は、Amazon SageMaker AI Neo の使用を検討してください。Neo は、`ml.c4`、`ml.p2` などの、クラウドインスタンスタイプの特定のファミリーにデプロイする推論モデルを自動的に最適化できます。詳細については、「*Amazon SageMaker AI デベロッパーガイド*」の「[Neo を使用してモデルのパフォーマンスを最適化する](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html)」を参照してください。

次の図は、モデルパッケージ製品を公開して使用するワークフローを示しています。

![\[販売者がモデルパッケージイメージを作成する方法と購入者がそれを使用する方法を示す図。\]](http://docs.aws.amazon.com/ja_jp/marketplace/latest/userguide/images/ml-model-package-images.png)


の SageMaker AI モデルパッケージを作成するワークフロー AWS Marketplace には、次のステップが含まれます。

1. 販売者は推論イメージ (デプロイ時のネットワークアクセス不可) を作成し、Amazon ECR レジストリにプッシュします。

   モデルアーティファクトは推論イメージにバンドルすることも S3 に個別に保存することもできます。

1. 次に、販売者は Amazon SageMaker AI でモデルパッケージリソースを作成し、ML 製品を AWS Marketplaceに公開します。

1. 購入者は ML 製品をサブスクライブしてモデルをデプロイします。
**注記**  
 このモデルは、リアルタイムの推論を行うエンドポイントとしてデプロイすることも、データセット全体の予測を一度に取得するバッチジョブとしてデプロイすることもできます。詳細については、「[推論のためのモデルをデプロイする](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)」を参照してください。

1. SageMaker AI は推論イメージを実行します。推論イメージにバンドルされていない販売者提供のモデルアーティファクトは、ランタイムに動的に読み込まれます。

1.  SageMaker AI は、コンテナの HTTP エンドポイントを使用して購入者の推論データをコンテナに渡し、予測結果を返します。

## モデルパッケージ用の推論イメージの作成
<a name="ml-creating-an-inference-image-for-model-packages"></a>

このセクションでは、推論コードをモデルパッケージ製品の推論イメージにパッケージ化する手順を説明します。そのプロセスは、以下のステップで構成されています。

**Topics**
+ [ステップ 1: コンテナイメージを作成する](#ml-step-1-creating-the-container-image)
+ [ステップ 2: イメージをローカルでビルドしてテストする](#ml-step-2-building-and-testing-the-image-locally)

推論イメージは、推論ロジックを含む Docker イメージです。コンテナは実行時に HTTP エンドポイントを公開し、SageMaker AI がコンテナとの間でデータをやり取りできるようにします。

**注記**  
 以下は、推論イメージのパッケージコードの一例です。詳細については、「[SageMaker AI で Docker コンテナを使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html)」と GitHub の「[AWS Marketplace SageMaker AI example](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)」を参照してください。  
以下の例ではわかりやすくするために [Flask](https://pypi.org/project/Flask/) というウェブサービスを使用していますが、本番環境に対応しているとは見なされていません。

### ステップ 1: コンテナイメージを作成する
<a name="ml-step-1-creating-the-container-image"></a>

 推論イメージに SageMaker AI との互換性を持たせるには、Docker イメージが HTTP エンドポイントを公開する必要があります。コンテナの実行中、SageMaker AI は推論用の、販売者による入力を、コンテナの HTTP エンドポイントに渡します。推論結果は HTTP レスポンスの本文で返されます。

 次のチュートリアルでは、Linux Ubuntu ディストリビューションを使用する開発環境で Docker CLI を使用します。
+ [ウェブサーバースクリプトを作成する](#ml-create-the-web-server-script)
+ [コンテナ実行用のスクリプトを作成する](#ml-create-the-script-for-the-container-run)
+ [`Dockerfile` の作成](#ml-create-the-dockerfile)
+ [モデルアーティファクトをパッケージ化またはアップロードする](#ml-package-or-upload-the-model-artifacts)

#### ウェブサーバースクリプトを作成する
<a name="ml-create-the-web-server-script"></a>

 この例では [Flask](https://pypi.org/project/Flask/) という Python サーバーを使用していますが、フレームワークに適した任意のウェブサーバーを使用できます。

**注記**  
ここではわかりやすくするために [Flask](https://pypi.org/project/Flask/) を使用しています。本番環境に対応するウェブサーバーとは見なされません。

 SageMaker AI が使用する TCP ポート 8080 で 2 つの HTTP エンドポイントを処理する Flask ウェブサーバースクリプトを作成します。想定されるエンドポイントは次の 2 つです。
+  `/ping` - SageMaker AI は、このエンドポイントに HTTP GET リクエストを送信して、コンテナが準備できているかどうかを確認します。コンテナの準備が完了すると、コンテナはこのエンドポイントでの HTTP GET リクエストに HTTP 200 レスポンスコードで応答します。
+  `/invocations` - SageMaker AI は、推論のためにこのエンドポイントに HTTP POST リクエストを送ります。推論用の入力データはリクエストの本文で送信されます。ユーザー指定のコンテンツタイプは HTTP ヘッダーで渡されます。レスポンスの本文は推論出力です。タイムアウトの詳細については、「[機械学習製品を作成するための要件とベストプラクティス](ml-listing-requirements-and-best-practices.md)」を参照してください。

 **`./web_app_serve.py`** 

```
# Import modules
import json
import re
from flask import Flask
from flask import request
app = Flask(__name__)

# Create a path for health checks
@app.route("/ping")
def endpoint_ping():
  return ""
 
# Create a path for inference
@app.route("/invocations", methods=["POST"])
def endpoint_invocations():
  
  # Read the input
  input_str = request.get_data().decode("utf8")
  
  # Add your inference code between these comments.
  #
  #
  #
  #
  #
  # Add your inference code above this comment.
  
  # Return a response with a prediction
  response = {"prediction":"a","text":input_str}
  return json.dumps(response)
```

前の例には、実際の推論ロジックはありません。実際の推論イメージについては、ウェブアプリに推論ロジックを追加し、入力を処理して実際の予測を返します。

推論イメージには、インターネットアクセスも、 への呼び出しもできないため、必要な依存関係がすべて含まれている必要があります AWS のサービス。

**注記**  
これと同じコードがリアルタイム推論とバッチ推論の両方で呼び出されます。

#### コンテナ実行用のスクリプトを作成する
<a name="ml-create-the-script-for-the-container-run"></a>

 Docker コンテナイメージの実行時に SageMaker AI が実行する `serve` というスクリプトを作成します。次のスクリプトは HTTP ウェブサーバーを起動します。

 **`./serve`** 

```
#!/bin/bash

# Run flask server on port 8080 for SageMaker
flask run --host 0.0.0.0 --port 8080
```

#### `Dockerfile` の作成
<a name="ml-create-the-dockerfile"></a>

 ビルドコンテキストに `Dockerfile` を作成します。この例では Ubuntu 18.04 を使用していますが、フレームワークに適していれば、どのベースイメージからでも開始できます。

 `./Dockerfile` 

```
FROM ubuntu:18.04

# Specify encoding
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

# Install python-pip
RUN apt-get update \
&& apt-get install -y python3.6 python3-pip \
&& ln -s /usr/bin/python3.6 /usr/bin/python \
&& ln -s /usr/bin/pip3 /usr/bin/pip;

# Install flask server
RUN pip install -U Flask;

# Add a web server script to the image
# Set an environment to tell flask the script to run
COPY /web_app_serve.py /web_app_serve.py
ENV FLASK_APP=/web_app_serve.py

# Add a script that Amazon SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /serve /opt/program/serve
RUN chmod 755 /opt/program/serve
ENV PATH=/opt/program:${PATH}
```

 `Dockerfile` は、以前に作成した 2 つのスクリプトをイメージに追加します。`serve` スクリプトのディレクトリが PATH に追加されると、コンテナの実行時にそれを実行できるようになります。

#### モデルアーティファクトをパッケージ化またはアップロードする
<a name="ml-package-or-upload-the-model-artifacts"></a>

 モデルのトレーニングから推論イメージまで、モデルアーティファクトを提供する方法には、以下の 2 つがあります。
+  推論イメージと共に静的にパッケージ化します。
+  ランタイムに動的にロードします。動的に読み込まれるため、同じイメージをさまざまな機械学習モデルのパッケージ化に使用できます。

 モデルのアーティファクトを推論イメージと一緒にパッケージ化する場合は、アーティファクトを `Dockerfile` に含めてください。

 モデルアーティファクトを動的にロードする場合は、それらのアーティファクトを Amazon S3 の圧縮ファイル (.tar.gz) に個別に保存します。モデルパッケージを作成するときに圧縮ファイルの場所を指定すると、SageMaker AI はコンテナを実行するときにその内容を抽出してコンテナディレクトリ `/opt/ml/model/` にコピーします。モデルパッケージを公開すると、それらのアーティファクトは、購入者が直接アクセスできない、 AWS Marketplace 所有の Amazon S3 バケットに公開および保存されます。

### ステップ 2: イメージをローカルでビルドしてテストする
<a name="ml-step-2-building-and-testing-the-image-locally"></a>

 ビルドコンテキストには、現在、以下のファイルが存在します。
+  `./Dockerfile` 
+  `./web_app_serve.py` 
+  `./serve` 
+  推論ロジックと (オプションの) 依存関係 

 次に、コンテナイメージをビルド、実行、テストします。

#### イメージを構築する
<a name="ml-build-the-image"></a>

 ビルドコンテキストで Docker コマンドを実行し、イメージをビルドしてタグ付けします。この例ではタグ `my-inference-image` を使用します。

```
sudo docker build --tag my-inference-image ./
```

 この Docker コマンドを実行してイメージをビルドすると、`Dockerfile` の各行に基づいて Docker がイメージをビルドするときの出力が表示されます。終了すると、次のようなものが表示されます。

```
Successfully built abcdef123456
Successfully tagged my-inference-image:latest
```

#### をローカルで実行する
<a name="ml-run-locally"></a>

 ビルドが完了したら、イメージをローカルでテストできます。

```
sudo docker run \
  --rm \
  --publish 8080:8080/tcp \
  --detach \
  --name my-inference-container \
  my-inference-image \
  serve
```

 コマンドの詳細は次のとおりです。
+ `--rm` - コンテナが停止したら自動的に削除します。
+ `--publish 8080:8080/tcp` - ポート 8080 を公開して、SageMaker AI が HTTP リクエストを送信する先のポートをシミュレートします。
+ `--detach` - コンテナをバックグラウンドで実行します。
+ `--name my-inference-container` - 実行中のこのコンテナに名前を付けます。
+ `my-inference-image` - ビルドされたイメージを実行します。
+ `serve` - コンテナの実行時に、SageMaker AI が実行するスクリプトと同じものを実行します。

 このコマンドを実行すると、Docker は、ビルドした推論イメージからコンテナを作成してバックグラウンドで実行します。コンテナは `serve` スクリプトを実行し、テスト目的でウェブサーバーを起動します。

#### HTTP エンドポイントへの ping をテストします。
<a name="ml-test-the-ping-http-endpoint"></a>

 SageMaker AI はコンテナを実行すると定期的にエンドポイントに ping を送信します。エンドポイントがステータスコード 200 の HTTP レスポンスを返すと、コンテナが推論できる状態になったことを SageMaker AI に通知します。これをテストするには、次のコマンドを実行します。このコマンドはエンドポイントをテストしてレスポンスヘッダーを含めます。

```
curl --include http://127.0.0.1:8080/ping
```

出力例は次のとおりです。

```
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 0
Server: MyServer/0.16.0 Python/3.6.8
Date: Mon, 21 Oct 2019 06:58:54 GMT
```

#### 推論 HTTP エンドポイントをテストします。
<a name="ml-test-the-inference-http-endpoint"></a>

 コンテナが ping に対して 200 ステータスコードを返して準備完了を示すと、SageMaker AI は `POST` リクエストを介して `/invocations` HTTP エンドポイントに推論データを渡します。以下のコマンドを実行して、推論ポイントをテストします。

```
curl \
  --request POST \
  --data "hello world" \
  http://127.0.0.1:8080/invocations
```

 出力例は次のとおりです。

 `{"prediction": "a", "text": "hello world"}` 

 これら 2 つの HTTP エンドポイントが機能するようになり、推論イメージは SageMaker AI との互換性を持っています。

**注記**  
 モデルパッケージ製品のモデルは、リアルタイムとバッチの 2 つの方法でデプロイできます。どちらのデプロイでも、SageMaker AI は Docker コンテナの実行中に同じ HTTP エンドポイントを使用します。

 コンテナを停止するには、次のコマンドを実行します。

```
sudo docker container stop my-inference-container
```

 推論イメージの準備とテストが完了したら、次の「[Amazon Elastic Container Registry へのイメージのアップロード](ml-uploading-your-images.md)」に進むことができます。

# アルゴリズムイメージの作成
<a name="ml-algorithm-images"></a>

Amazon SageMaker AI アルゴリズムでは、購入者が予測を行う前に独自のデータをトレーニングに持ち込む必要があります。 AWS Marketplace 販売者は、SageMaker AI を使用して、購入者がデプロイできる機械学習 (ML) アルゴリズムとモデルを作成できます AWS。以下のセクションでは、アルゴリズムイメージを作成する方法について説明します AWS Marketplace。これには、アルゴリズムをトレーニングするための Docker トレーニングイメージと、推論ロジックを含む推論イメージの作成が含まれます。アルゴリズム製品を公開するには、トレーニングイメージと推論イメージの両方が必要です。

**Topics**
+ [概要:](#ml-algorithm-images-overview)
+ [アルゴリズム用のトレーニングイメージの作成](#ml-creating-a-training-image-for-algorithms)
+ [アルゴリズムの推論イメージの作成](#ml-creating-an-inference-image-for-algorithms)

## 概要:
<a name="ml-algorithm-images-overview"></a>

アルゴリズムには以下のコンポーネントが含まれています。
+  [Amazon ECR](https://aws.amazon.com/ecr/) に保存されたトレーニングイメージ 
+  Amazon Elastic Container Registry (Amazon ECR) に保存された推論イメージ 

**注記**  
 アルゴリズム製品では、トレーニングコンテナによってモデルアーティファクトが生成され、モデルのデプロイ時に推論コンテナに読み込まれます。

次の図は、アルゴリズム製品を公開して使用するワークフローを示しています。

![\[販売者がアルゴリズムパッケージイメージを作成する方法と購入者がそれを使用する方法を示す図。\]](http://docs.aws.amazon.com/ja_jp/marketplace/latest/userguide/images/ml-algorithm-package-images.png)


の SageMaker AI アルゴリズムを作成するためのワークフロー AWS Marketplace には、次のステップが含まれます。

1. 販売者はトレーニングイメージと推論イメージ (デプロイ時のネットワークアクセス不可) を作成し、Amazon ECR レジストリにアップロードします。

1. 次に、販売者は Amazon SageMaker AI でアルゴリズムリソースを作成し、ML 製品を AWS Marketplaceに公開します。

1. 購入者は ML 製品をサブスクライブします。

1. 購入者は、互換性のあるデータセットと適切なハイパーパラメータ値を使用してトレーニングジョブを作成します。SageMaker AI はトレーニングイメージを実行し、トレーニングデータとハイパーパラメータをトレーニングコンテナに読み込みます。トレーニングジョブが完了すると、`/opt/ml/model/` にあるモデルアーティファクトが圧縮され、購入者の [Amazon S3](https://aws.amazon.com/s3/) バケットにコピーされます。

1. 購入者は Amazon S3 に保存されているトレーニングのモデルアーティファクトを含むモデルパッケージを作成し、モデルをデプロイします。

1. SageMaker AI は推論イメージを実行して、圧縮されたモデルアーティファクトを抽出し、ファイルを推論コンテナのディレクトリパス `/opt/ml/model/` にロードします。このパスは、推論を提供するコードによって使用されます。

1.  モデルがエンドポイントとして展開されるかバッチ変換ジョブとしてデプロイされるかにかかわらず、SageMaker AI は購入者に代わってコンテナの HTTP エンドポイント経由で推論用データをコンテナに渡し、予測結果を返します。

**注記**  
 詳細については、「[モデルのトレーニング](https://docs.aws.amazon.com/sagemaker/latest/dg/train-model.html)」を参照してください。

## アルゴリズム用のトレーニングイメージの作成
<a name="ml-creating-a-training-image-for-algorithms"></a>

 このセクションでは、トレーニングコードをトレーニングイメージにパッケージ化する手順を説明します。アルゴリズム製品を作成するには、トレーニングイメージが必要です。

 *トレーニングイメージは*、トレーニングアルゴリズムを含む Docker イメージです。コンテナは特定のファイル構造に準拠しているため、SageMaker AI はコンテナとの間でデータをコピーできます。

 アルゴリズム製品を公開する際は、トレーニングイメージと推論イメージの両方が必要です。トレーニングイメージを作成したら、推論イメージを作成する必要があります。2 つのイメージは 1 つのイメージに結合することも、個別のイメージのままにしておくこともできます。イメージを結合するか個別のイメージのままにするかは、ユーザーしだいです。通常、推論は学習よりも単純です。イメージを結合せずに個別のイメージのままにすると、推論のパフォーマンスが向上することがあります。

**注記**  
 以下は、トレーニングイメージのパッケージコードの一例です。詳細については、「[AWS Marketplaceで独自のアルゴリズムとモデルを使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html)」および GitHub の「[AWS Marketplace SageMaker AI サンプル](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)」を参照してください。

**Topics**
+ [ステップ 1: コンテナイメージを作成する](#ml-step-1-creating-the-container-image-1)
+ [ステップ 2: イメージをローカルでビルドしてテストする](#ml-step-2-building-and-testing-the-image-locally-1)

### ステップ 1: コンテナイメージを作成する
<a name="ml-step-1-creating-the-container-image-1"></a>

 トレーニングイメージに Amazon SageMaker AI との互換性を持たせるには、SageMaker AI で特定のファイル構造を遵守して、トレーニングデータと設定入力をコンテナ内の特定のパスにコピーできるようにする必要があります。トレーニングが完了すると、生成されたモデルアーティファクトは、SageMaker AI がコピーする元のコンテナ内の特定のディレクトリパスに保存されます。

 以下では、Linux の Ubuntu ディストリビューションの開発環境にインストールされた Docker CLI が使用されています。
+ [設定入力を読み取れるようプログラムを準備します。](#ml-prepare-your-program-to-read-configuration-inputs)
+ [データ入力を読み取れるようプログラムを準備します。](#ml-prepare-your-program-to-read-data-inputs)
+ [トレーニング出力を書き込めるようプログラムを準備します。](#ml-prepare-your-program-to-write-training-outputs)
+ [コンテナ実行用のスクリプトを作成する](#ml-create-the-script-for-the-container-run-1)
+ [`Dockerfile` の作成](#ml-create-the-dockerfile-1)

#### 設定入力を読み取れるようプログラムを準備します。
<a name="ml-prepare-your-program-to-read-configuration-inputs"></a>

 トレーニングプログラムで購入者提供の設定入力が必要な場合は、実行時に以下がコンテナ内にコピーされます。必要に応じて、プログラムはこれらの特定のファイルパスから読み取りを行う必要があります。
+  `/opt/ml/input/config` は、プログラムの実行方法を制御する情報が保存されているディレクトリです。
  +  `hyperparameters.json` は、ハイパーパラメータ名とハイパーパラメータ値の、JSON 形式の辞書です。値は文字列のため、変換が必要になる場合があります。
  +  `resourceConfig.json` は JSON 形式のファイルで、[分散型トレーニング](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-dist-training)に使用されるネットワークレイアウトを記述しています。トレーニングイメージが分散型トレーニングをサポートしていない場合、このファイルは無視してかまいません。

**注記**  
 設定入力の詳細については、「[Amazon SageMaker AI がトレーニング情報を提供する方法](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html)」を参照してください。

#### データ入力を読み取れるようプログラムを準備します。
<a name="ml-prepare-your-program-to-read-data-inputs"></a>

 トレーニングデータは、次の 2 つのモードのいずれかでコンテナに渡すことができます。コンテナ内で実行されるトレーニングプログラムは、これら 2 つのモードのいずれかでトレーニングデータのダイジェストを作成します。

 **ファイルモード** 
+  `/opt/ml/input/data/<channel_name>/` にそのチャネルの入力データが含まれます。チャネルは `CreateTrainingJob` オペレーションの呼び出しに基づいて作成されますが、一般的にはアルゴリズムが期待するものとチャネルが一致することが重要です。各チャネルのファイルは [Amazon S3](https://aws.amazon.com/s3/) からこのディレクトリにコピーされ、Amazon S3 のキー構造によって示されるツリー構造が保持されます。

 **パイプモード** 
+  `/opt/ml/input/data/<channel_name>_<epoch_number>` は特定のエポックのパイプです。エポックは 0 から始まり、読み込まれるたびに 1 ずつ増えていきます。実行できるエポックの数に制限はありませんが、次のエポックを読み込む前に各パイプを閉じる必要があります。

#### トレーニング出力を書き込めるようプログラムを準備します。
<a name="ml-prepare-your-program-to-write-training-outputs"></a>

 トレーニングの出力は次のコンテナディレクトリに書き込まれます。
+  `/opt/ml/model/` はトレーニングアルゴリズムが生成するモデルまたはモデルアーティファクトが書き込まれるディレクトリです。モデルはどのような形式でもかまいません。1 つのファイルでもディレクトリツリー全体でもかまいません。SageMaker AI は、このディレクトリ内のすべてのファイルを圧縮ファイル (.tar.gz) にパッケージ化します。このファイルは、`DescribeTrainingJob` API オペレーションによって返される、Amazon S3 の場所にあります。
+  `/opt/ml/output/` は、ジョブが失敗した理由が記述された `failure` ファイルをアルゴリズムが書き込むことができるディレクトリです。このファイルの内容は `DescribeTrainingJob` の結果の `FailureReason` フィールドに返されます。ジョブが成功してもこのファイルは無視されるため、このファイルを書き込む理由はありません。

#### コンテナ実行用のスクリプトを作成する
<a name="ml-create-the-script-for-the-container-run-1"></a>

 Docker コンテナイメージの実行時に SageMaker AI が実行する `train` シェルスクリプトを作成します。トレーニングが完了し、モデルアーティファクトがそれぞれのディレクトリに書き込まれたら、スクリプトを終了します。

 **`./train`** 

```
#!/bin/bash

# Run your training program here
#
#
#
#
```

#### `Dockerfile` の作成
<a name="ml-create-the-dockerfile-1"></a>

 ビルドコンテキストに `Dockerfile` を作成します。この例ではベースイメージとして Ubuntu 18.04 を使用していますが、フレームワークに適していれば、どのベースイメージからでも開始できます。

 **`./Dockerfile`** 

```
FROM ubuntu:18.04

# Add training dependencies and programs
#
#
#
#
#
# Add a script that SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /train /opt/program/train
RUN chmod 755 /opt/program/train
ENV PATH=/opt/program:${PATH}
```

 `Dockerfile` は以前に作成した `train` スクリプトをイメージに追加します。スクリプトのディレクトリが PATH に追加され、コンテナの実行時にスクリプトを実行できるようになります。

 前の例には、実際のトレーニングロジックはありません。実際のトレーニングイメージでは、トレーニングの依存関係を `Dockerfile` に追加し、トレーニング入力を読み取るロジックを追加してトレーニングを行い、モデルアーティファクトを生成します。

 トレーニングイメージはインターネットにアクセスできないため、必要な依存関係がすべて含まれている必要があります。

 詳細については、「[AWS Marketplaceで独自のアルゴリズムとモデルを使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html)」および GitHub の「[AWS Marketplace SageMaker AI サンプル](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)」を参照してください。

### ステップ 2: イメージをローカルでビルドしてテストする
<a name="ml-step-2-building-and-testing-the-image-locally-1"></a>

 ビルドコンテキストには、現在、以下のファイルが存在します。
+ `./Dockerfile`
+ `./train`
+ トレーニングの依存関係とロジック

 次に、このコンテナイメージをビルド、実行、テストできます。

#### イメージを構築する
<a name="ml-build-the-image-1"></a>

 ビルドコンテキストで Docker コマンドを実行し、イメージをビルドしてタグ付けします。この例ではタグ `my-training-image` を使用します。

```
sudo docker build --tag my-training-image ./
```

 この Docker コマンドを実行してイメージをビルドすると、`Dockerfile` の各行に基づいて Docker がイメージをビルドするときの出力が表示されます。終了すると、次のようなものが表示されます。

```
Successfully built abcdef123456
Successfully tagged my-training-image:latest
```

#### をローカルで実行する
<a name="ml-run-locally-1"></a>

 完了したら、次の例に示すようにイメージをローカルでテストします。

```
sudo docker run \
  --rm \
  --volume '<path_to_input>:/opt/ml/input:ro' \
  --volume '<path_to_model>:/opt/ml/model' \
  --volume '<path_to_output>:/opt/ml/output' \
  --name my-training-container \
  my-training-image \
  train
```

 コマンドの詳細は次のとおりです。
+  `--rm` - コンテナが停止したら自動的に削除します。
+  `--volume '<path_to_input>:/opt/ml/input:ro'` - テスト入力ディレクトリをコンテナが読み取り専用で使用できるようにします。
+  `--volume '<path_to_model>:/opt/ml/model'` - トレーニングテストが完了したら、モデルアーティファクトが保存されているパスをホストマシンでバインドマウントします。
+  `--volume '<path_to_output>:/opt/ml/output'` - 障害理由が書き込まれる `failure` ファイル内のパスをホストマシンでバインドマウントします。
+  `--name my-training-container` - 実行中のこのコンテナに名前を付けます。
+  `my-training-image` - ビルドされたイメージを実行します。
+  `train` - コンテナの実行時に、SageMaker AI が実行するスクリプトと同じものを実行します。

 このコマンドを実行すると、Docker は、ビルドされたトレーニングイメージからコンテナを作成して実行します。コンテナは `train` スクリプトを実行します。これで、トレーニングプログラムが起動します。

 トレーニングプログラムが終了し、コンテナが終了したら、出力モデルのアーティファクトが正しいことを確認します。さらに、ログ出力をチェックして、トレーニングジョブに関する十分な情報が提供されていることを確認し、併せて、不要なログが生成されていないことを確認します。

 これで、アルゴリズム製品用のトレーニングコードのパッケージ化が完了しました。アルゴリズム製品には推論イメージも含まれるため、次のセクション、「[アルゴリズムの推論イメージの作成](#ml-creating-an-inference-image-for-algorithms)」に進んでください。

## アルゴリズムの推論イメージの作成
<a name="ml-creating-an-inference-image-for-algorithms"></a>

 このセクションでは、推論コードをアルゴリズム製品の推論イメージにパッケージ化する手順を説明します。

 推論イメージは、推論ロジックを含む Docker イメージです。コンテナは実行時に HTTP エンドポイントを公開し、SageMaker AI がコンテナとの間でデータをやり取りできるようにします。

 アルゴリズム製品を公開する際は、トレーニングイメージと推論イメージの両方が必要です。これをまだ確認していない場合は、「[アルゴリズム用のトレーニングイメージの作成](#ml-creating-a-training-image-for-algorithms)」に関する前のセクションを参照してください。2 つのイメージは 1 つのイメージに結合することも、個別のイメージのままにしておくこともできます。イメージを結合するか個別のイメージのままにするかは、ユーザーしだいです。通常、推論は学習よりも単純です。イメージを結合せずに個別のイメージのままにすると、推論のパフォーマンスが向上することがあります。

**注記**  
 以下は、推論イメージのパッケージコードの一例です。詳細については、「[AWS Marketplaceで独自のアルゴリズムとモデルを使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html)」および GitHub の「[AWS Marketplace SageMaker AI サンプル](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)」を参照してください。  
以下の例ではわかりやすくするために [Flask](https://pypi.org/project/Flask/) というウェブサービスを使用していますが、本番環境に対応しているとは見なされていません。

**Topics**
+ [ステップ 1: 推論イメージを作成する](#ml-step-1-creating-the-inference-image)
+ [ステップ 2: イメージをローカルでビルドしてテストする](#ml-step-2-building-and-testing-the-image-locally-2)

### ステップ 1: 推論イメージを作成する
<a name="ml-step-1-creating-the-inference-image"></a>

 推論イメージに SageMaker AI との互換性を持たせるには、Docker イメージが HTTP エンドポイントを公開する必要があります。コンテナの実行中、SageMaker AI は購入者から提供された推論用の入力をコンテナの HTTP エンドポイントに渡します。推論の結果は HTTP レスポンスの本文で返されます。

 以下では、Linux の Ubuntu ディストリビューションの開発環境にインストールされた Docker CLI が使用されています。
+ [ウェブサーバースクリプトを作成する](#ml-create-the-web-server-script-1) 
+ [コンテナ実行用のスクリプトを作成する](#ml-create-the-script-for-the-container-run-2)
+ [`Dockerfile` の作成](#ml-create-the-dockerfile-2)
+ [モデルアーティファクトを動的に読み込むためのプログラムを準備する](#ml-preparing-your-program-to-dynamically-load-model-artifacts)

#### ウェブサーバースクリプトを作成する
<a name="ml-create-the-web-server-script-1"></a>

 この例では [Flask](https://pypi.org/project/Flask/) という Python サーバーを使用していますが、フレームワークに適した任意のウェブサーバーを使用できます。

**注記**  
ここではわかりやすくするために [Flask](https://pypi.org/project/Flask/) を使用しています。本番環境に対応するウェブサーバーとは見なされません。

 SageMaker AI が使用する TCP ポート 8080 で 2 つの HTTP エンドポイントを処理する Flask ウェブサーバースクリプトを作成します。想定されるエンドポイントは次の 2 つです。
+  `/ping` - SageMaker AI は、このエンドポイントに HTTP GET リクエストを送信して、コンテナが準備できているかどうかを確認します。コンテナの準備が完了すると、コンテナはこのエンドポイントでの HTTP GET リクエストに HTTP 200 レスポンスコードで応答します。
+  `/invocations` - SageMaker AI は、推論のためにこのエンドポイントに HTTP POST リクエストを送ります。推論用の入力データはリクエストの本文で送信されます。ユーザー指定のコンテンツタイプは HTTP ヘッダーで渡されます。レスポンスの本文は推論出力です。

 **`./web_app_serve.py`** 

```
# Import modules
import json
import re
from flask import Flask
from flask import request
app = Flask(__name__)

# Create a path for health checks
@app.route("/ping")
def endpoint_ping():
  return ""
 
# Create a path for inference
@app.route("/invocations", methods=["POST"])
def endpoint_invocations():
  
  # Read the input
  input_str = request.get_data().decode("utf8")
  
  # Add your inference code here.
  #
  #
  #
  #
  #
  # Add your inference code here.
  
  # Return a response with a prediction
  response = {"prediction":"a","text":input_str}
  return json.dumps(response)
```

 前の例には、実際の推論ロジックはありません。実際の推論イメージについては、ウェブアプリに推論ロジックを追加し、入力を処理して予測を返します。

 推論イメージはインターネットにアクセスできないため、必要な依存関係がすべて含まれている必要があります。

#### コンテナ実行用のスクリプトを作成する
<a name="ml-create-the-script-for-the-container-run-2"></a>

 Docker コンテナイメージの実行時に SageMaker AI が実行する `serve` というスクリプトを作成します。このスクリプトでは、HTTP ウェブサーバーを起動します。

 **`./serve`** 

```
#!/bin/bash

# Run flask server on port 8080 for SageMaker AI
flask run --host 0.0.0.0 --port 8080
```

#### `Dockerfile` の作成
<a name="ml-create-the-dockerfile-2"></a>

 ビルドコンテキストに `Dockerfile` を作成します。この例では Ubuntu 18.04 を使用していますが、フレームワークに適していれば、どのベースイメージからでも開始できます。

 **`./Dockerfile`** 

```
FROM ubuntu:18.04

# Specify encoding
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

# Install python-pip
RUN apt-get update \
&& apt-get install -y python3.6 python3-pip \
&& ln -s /usr/bin/python3.6 /usr/bin/python \
&& ln -s /usr/bin/pip3 /usr/bin/pip;

# Install flask server
RUN pip install -U Flask;

# Add a web server script to the image
# Set an environment to tell flask the script to run
COPY /web_app_serve.py /web_app_serve.py
ENV FLASK_APP=/web_app_serve.py

# Add a script that Amazon SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /serve /opt/program/serve
RUN chmod 755 /opt/program/serve
ENV PATH=/opt/program:${PATH}
```

 `Dockerfile` は以前に作成した 2 つのスクリプトをイメージに追加します。`serve` スクリプトのディレクトリが PATH に追加されると、コンテナの実行時にそれを実行できるようになります。

#### モデルアーティファクトを動的に読み込むためのプログラムを準備する
<a name="ml-preparing-your-program-to-dynamically-load-model-artifacts"></a>

 アルゴリズム製品の場合、購入者は独自のデータセットとトレーニングイメージを使用して、独自のモデルアーティファクトを生成します。トレーニングプロセスが完了すると、トレーニングコンテナはモデルアーティファクトをコンテナディレクトリ ` /opt/ml/model/` に出力します。SageMaker AI はそのディレクトリ内のコンテンツを .tar.gz ファイルに圧縮し、Amazon S3 の購入者の AWS アカウント に保存します。

 モデルがデプロイされると、SageMaker AI は推論イメージを実行し、購入者の Amazon S3 のアカウントに保存されている .tar.gz ファイルからモデルアーティファクトを抽出して、`/opt/ml/model/` ディレクトリの推論コンテナにロードします。実行時、推論コンテナコードはモデルデータを使用します。

**注記**  
 モデルアーティファクトファイルに含まれる可能性のある知的財産を保護するために、ファイル出力前の暗号化を選択できます。詳細については、「[Amazon SageMaker AI でのセキュリティと知的財産](ml-security-and-intellectual-property.md)」を参照してください。

### ステップ 2: イメージをローカルでビルドしてテストする
<a name="ml-step-2-building-and-testing-the-image-locally-2"></a>

 ビルドコンテキストには、現在、以下のファイルが存在します。
+ `./Dockerfile`
+ `./web_app_serve.py`
+ `./serve`

 次に、このコンテナイメージをビルド、実行、テストできます。

#### イメージを構築する
<a name="ml-build-the-image-2"></a>

 Docker コマンドを実行し、イメージをビルドしてタグ付けします。この例ではタグ `my-inference-image` を使用します。

```
sudo docker build --tag my-inference-image ./
```

 この Docker コマンドを実行してイメージをビルドすると、`Dockerfile` の各行に基づいて Docker がイメージをビルドするときの出力が表示されます。終了すると、次のようなものが表示されます。

```
Successfully built abcdef123456
Successfully tagged my-inference-image:latest
```

#### をローカルで実行する
<a name="ml-run-locally-2"></a>

 ビルドが完了したら、イメージをローカルでテストできます。

```
sudo docker run \
  --rm \
  --publish 8080:8080/tcp \
  --volume '<path_to_model>:/opt/ml/model:ro' \
  --detach \
  --name my-inference-container \
  my-inference-image \
  serve
```

 コマンドの詳細は次のとおりです。
+  `--rm` - コンテナが停止したら自動的に削除します。
+  `--publish 8080:8080/tcp` - ポート 8080 を公開して、SageMaker AI が HTTP リクエストを送信する先のポートをシミュレートします。
+  `--volume '<path_to_model>:/opt/ml/model:ro'` - テストモデルアーティファクトが保存されているホストマシン上のパスを、コンテナ内の推論コードで使用できるよう読み取り専用としてバインドマウントします。
+  `--detach` - コンテナをバックグラウンドで実行します。
+  `--name my-inference-container` - 実行中のこのコンテナに名前を付けます。
+  `my-inference-image` - ビルドされたイメージを実行します。
+  `serve` - コンテナの実行時に、SageMaker AI が実行するスクリプトと同じものを実行します。

 このコマンドを実行すると、Docker は、推論イメージからコンテナを作成してバックグラウンドで実行します。コンテナは `serve` スクリプトを実行し、テスト目的でウェブサーバーを起動します。

#### HTTP エンドポイントへの ping をテストします。
<a name="ml-test-the-ping-http-endpoint-1"></a>

 SageMaker AI はコンテナを実行すると定期的にエンドポイントに ping を送信します。エンドポイントがステータスコード 200 の HTTP レスポンスを返すと、コンテナが推論できる状態になったことを SageMaker AI に通知します。

 次のコマンドを実行してエンドポイントをテストし、レスポンスヘッダーを含めます。

```
curl --include http://127.0.0.1:8080/ping
```

 以下の例に、出力例を示します。

```
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 0
Server: MyServer/0.16.0 Python/3.6.8
Date: Mon, 21 Oct 2019 06:58:54 GMT
```

#### 推論 HTTP エンドポイントをテストします。
<a name="ml-test-the-inference-http-endpoint-1"></a>

 コンテナが 200 ステータスコードを返して準備完了を示すと、SageMaker AI は `POST` リクエストを介して `/invocations` HTTP エンドポイントに推論データを渡します。

 以下のコマンドを実行して、推論エンドポイントをテストします。

```
curl \
  --request POST \
  --data "hello world" \
  http://127.0.0.1:8080/invocations
```

 以下の例に、出力例を示します。

```
{"prediction": "a", "text": "hello world"}
```

 これら 2 つの HTTP エンドポイントが機能するようになり、推論イメージは SageMaker AI との互換性を持っています。

**注記**  
 アルゴリズム製品のモデルは、リアルタイムとバッチの 2 つの方法でデプロイできます。どちらのデプロイでも、SageMaker AI は Docker コンテナの実行中に同じ HTTP エンドポイントを使用します。

 コンテナを停止するには、次のコマンドを実行します。

```
sudo docker container stop my-inference-container
```

 アルゴリズム製品のトレーニングイメージと推論イメージの両方の準備とテストが完了したら、「[Amazon Elastic Container Registry へのイメージのアップロード](ml-uploading-your-images.md)」に進みます。

# Amazon Elastic Container Registry へのイメージのアップロード
<a name="ml-uploading-your-images"></a>

推論イメージとトレーニングイメージを作成したら、Amazon Elastic Container Registry にアップロードできます。[Amazon ECR](https://aws.amazon.com/ecr/) は、フルマネージドの Docker レジストリです。Amazon SageMaker AI は、Amazon ECR からイメージをプルして、推論用のモデルパッケージまたはトレーニングジョブ用のアルゴリズムを作成します。 AWS Marketplace は、Amazon ECR からこれらのイメージを取得し、モデルパッケージとアルゴリズム製品を公開します。このトピックでは、推論イメージとトレーニングイメージを Amazon ECR にアップロードする手順を説明します。

**Topics**
+ [アップロードする必要があるイメージ](#ml-which-images-must-i-upload)
+ [必要となる IAM アクセス許可](#ml-what-iam-permissions-are-required)
+ [Docker クライアントを にログインする AWS](#ml-log-in-your-docker-client)
+ [リポジトリを作成してイメージをアップロードします。](#ml-create-repository-and-upload-image)
+ [アップロードしたイメージをスキャンします。](#ml-scan-your-uploaded-image)

## アップロードする必要があるイメージ
<a name="ml-which-images-must-i-upload"></a>

 モデルパッケージを公開する場合は、推論イメージのみをアップロードします。アルゴリズムを公開する場合は、推論イメージとトレーニングイメージの両方をアップロードします。推論イメージとトレーニングイメージを結合する場合は、結合されたイメージを 1 回だけアップロードしてください。

## 必要となる IAM アクセス許可
<a name="ml-what-iam-permissions-are-required"></a>

 以下の手順では、ローカルマシンに販売者の AWS Identity and Access Management (IAM) ロールまたはユーザーの正しい AWS 認証情報があることを前提としています AWS アカウント。ロールまたはユーザーは、 AWS Marketplace と Amazon ECR の両方に正しいポリシーを設定する必要があります。たとえば、次の AWS 管理ポリシーを使用できます。
+  [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceSellerProductsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceSellerProductsFullAccess.html) – へのアクセス用 AWS Marketplace 
+  [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryFullAccess.html) - Amazon ECR へのアクセス用 

**注記**  
リンクをクリックすると、*AWS マネージドポリシーリファレンス*が表示されます。

## Docker クライアントを にログインする AWS
<a name="ml-log-in-your-docker-client"></a>

 発行元の の変数を設定します ( AWS リージョン 「」を参照[公開 AWS リージョン でサポート](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。この例では、米国東部 (オハイオ) リージョンを使用します。

```
region=us-east-2
```

 次のコマンドを実行して、 AWS アカウント ID を持つ変数を設定します。この例では、current AWS Command Line Interface (AWS CLI) 認証情報が販売者の認証情報に属していることを前提としています AWS アカウント。

```
account=$(aws sts get-caller-identity --query Account --output text)
```

 リージョンの AWS アカウント Amazon ECR Docker レジストリを使用して Docker CLI クライアントを認証するには、次のコマンドを実行します。

```
aws ecr get-login-password \
--region ${region} \
| sudo docker login \
--username AWS \
--password-stdin \
${account}.dkr.ecr.${region}.amazonaws.com
```

## リポジトリを作成してイメージをアップロードします。
<a name="ml-create-repository-and-upload-image"></a>

 アップロードしたイメージのタグに変数を設定し、アップロードしたイメージリポジトリの名前に別の変数を設定します。

```
image=my-inference-image
repo=my-inference-image
```

**注記**  
 **推論イメージとトレーニングイメージを作成した、このガイドの前のセクションで、これらのイメージは **my-inference-image** および my-training-image** としてそれぞれタグ付けされていました。この例では、推論イメージを作成して同じ名前のリポジトリにアップロードします。

 次のコマンドを実行して、Amazon ECR にイメージリポジトリを作成します。

```
aws ecr --region ${region} create-repository --repository-name "${repo}"
```

 Amazon ECR リポジトリの場所のフルネームは、次のパーツで構成されています。` <account-id>.dkr.ecr.<region>.amazonaws.com/<image-repository-name>`

 イメージをリポジトリにプッシュするには、リポジトリの場所のフルネームをイメージにタグ付けする必要があります。

 イメージリポジトリの場所のフルネームとして変数を `latest` タグと共に設定します。

```
fullname="${account}.dkr.ecr.${region}.amazonaws.com/${repo}:latest"
```

 イメージにフルネームをタグ付けします。

```
sudo docker tag ${image} ${fullname}
```

 最後に、Amazon ECR のリポジトリに推論イメージをプッシュします。

```
sudo docker push ${fullname}
```

 アップロードが完了すると、公開元のリージョンの [Amazon ECR コンソールのリポジトリリスト](https://console.aws.amazon.com/ecr/repositories?region=us-east-2)にイメージが表示されます。前の例では、イメージは米国東部 (オハイオ) リージョンにプッシュされました。

## アップロードしたイメージをスキャンします。
<a name="ml-scan-your-uploaded-image"></a>

 [Amazon ECR コンソール](https://console.aws.amazon.com/ecr/repositories?region=us-east-2)で、公開 AWS リージョン 元の を選択し、イメージがアップロードされたリポジトリを開きます。アップロードしたイメージを選択し、スキャンを開始して既知の脆弱性を確認します。 は、Amazon SageMaker AI リソースで使用されるコンテナイメージの Amazon ECR スキャン結果を公開前に AWS Marketplace チェックします。製品を作成するには、重要度が「重大」または「高」の脆弱性があるコンテナイメージを修正する必要があります。

 イメージが正常にスキャンされたら、そのイメージを使用してモデルパッケージまたはアルゴリズムリソースを作成できます。

商品のスキャン中に誤検出のエラーがあったと思われる場合は、[AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us) チームに連絡し、エラーの関する情報を伝えてください。

 **次のステップ** 
+  [機械学習製品を作成するための要件とベストプラクティス](ml-listing-requirements-and-best-practices.md) におけるファイルサイズ制限を確認する 
+  「[Amazon SageMaker AI リソースの作成](ml-creating-your-amazon-sagemaker-resource.md)」に進む 

# Amazon SageMaker AI リソースの作成
<a name="ml-creating-your-amazon-sagemaker-resource"></a>

 モデルパッケージまたはアルゴリズム製品を公開するには、Amazon SageMaker AI でそれぞれの[モデルパッケージリソース](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-creating-your-amazon-sagemaker-resource.html#ml-creating-your-model-package-product)または[アルゴリズムリソース](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-creating-your-amazon-sagemaker-resource.html#ml-creating-your-algorithm-product)を作成する必要があります。 AWS Marketplace 製品用のリソースを作成するときは、検証ステップを通じて認定を受ける必要があります。検証ステップでは、公開前にモデルパッケージまたはアルゴリズムリソースをテストするためのデータを提供する必要があります。以下のセクションでは、モデルパッケージリソースまたはアルゴリズムリソースのいずれかの SageMaker AI リソースを作成する方法を示します。これには、SageMaker AI に検証の実行方法を指示する検証仕様が含まれます。

**注記**  
製品のイメージをまだ作成しておらず、Amazon Elastic Container Registry (Amazon ECR) にアップロードしていない場合は、その方法の情報について、「[での機械学習製品のイメージへのコードのパッケージ化 AWS Marketplace](ml-packaging-your-code-into-images.md)」および「[Amazon Elastic Container Registry へのイメージのアップロード](ml-uploading-your-images.md)」を参照してください。

**Topics**
+ [モデルパッケージの作成](#ml-creating-your-model-package-product)
+ [アルゴリズムの作成](#ml-creating-your-algorithm-product)

## モデルパッケージの作成
<a name="ml-creating-your-model-package-product"></a>

 AWS Marketplaceのモデルパッケージを作成するための要件は次のとおりです。
+  [Amazon ECR](https://aws.amazon.com/ecr/) に保存されている推論イメージ 
+  (オプション) [Amazon S3](https://aws.amazon.com/s3/) に個別に保存されているモデルアーティファクト 
+ Amazon Simple Storage Service に保存されている、推論に使用されるテストデータ 

**注記**  
 以下は、モデルパッケージ製品の作成に関するものです。SageMaker AI のモデルパッケージの詳細については、「[モデルパッケージリソースの作成](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-create-model-package.html)」を参照してください。

### モデルパッケージリソースの作成
<a name="ml-create-model-package"></a>

以下の手順では、モデルパッケージリソースを作成する方法を順を追って説明します。

**ステップ 1: モデルパッケージリソースを作成する**

1. [Amazon SageMaker AI コンソール](https://us-east-2.console.aws.amazon.com/sagemaker/home)を開きます。

1. ページの右上を見て、発行元の AWS リージョンにいることを確認します。公開については、「[公開 AWS リージョン でサポート](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing)」セクションを参照してください。前のステップで Amazon ECR にアップロードした推論イメージが同じリージョンに存在する必要があります。

1. 左側のナビゲーションメニューから **[モデルパッケージ]** を選択します。

1. [**Create model package (モデルパッケージの作成)**] を選択します。

パッケージを作成したら、推論パッケージの仕様を設定する必要があります。

**ステップ 2: 推論の仕様を設定する**

1.  モデルパッケージの **[名前]** (例えば、*my-model-package*) を指定します。

1.  **[推論イメージの場所]** には、Amazon ECR にアップロードされた推論イメージの URI を入力します。URI は [Amazon ECR コンソール](https://us-east-2.console.aws.amazon.com/ecr/repositories)でイメージを検索すると取得できます。

1.  トレーニングで得たモデルアーティファクトが推論イメージのロジックにバンドルされている場合、**モデルデータアーティファクトの場所**は空欄のままにしておきます。それ以外の場合は、モデルアーティファクトの圧縮ファイル (.tar.gz) の、Amazon S3 の完全な場所を指定します。

1.  ドロップダウンボックスを使用して、リアルタイム推論 (*エンドポイント*とも呼ばれる) ジョブとバッチ変換ジョブの両方でサポートされる推論イメージのインスタンスタイプを選択します。

1.  [**次へ**] を選択します。

 モデルパッケージを作成して公開するには、期待どおりに機能するかを確認するための検証が必要です。そのためには、提供した推論用テストデータを使用してバッチ変換ジョブを実行する必要があります。検証仕様は、SageMaker AI に検証の実行方法を指示します。

**ステップ 3: 検証仕様を設定する**

1.  **[ AWS Marketplaceでこのモデルパッケージを公開する]** を **[はい]** に設定します。これを **[いいえ]** に設定すると、このモデルパッケージを後で公開することはできません。**Yes** を選択すると[、 のモデルパッケージが認定](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-CertifyForMarketplace) AWS Marketplace され、検証ステップが必要です。

1.  このプロセスを初めて完了する場合は、**IAM ロール**の **[新規ロールの作成]** を選択します。Amazon SageMaker AI はモデルパッケージをデプロイするときにこのロールを使用します。これには、Amazon ECR からのイメージの取得や Amazon S3 からのアーティファクトの取得などのアクションが含まれます。設定を確認し、**[ロールを作成]** を選択します。ここでロールを作成すると、作成したロールに、[AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) IAM ポリシーに記述されているアクセス許可が付与されます。

1.  検証プロファイルの **JSON** を編集します。許可される値の詳細については、「[TransformJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html)」を参照してください。

   1.  `TransformInput.DataSource.S3Uri`: 推論用のテストデータを保存する場所を設定します。

   1.  `TransformInput.ContentType`: テストデータのコンテンツタイプ (`application/json`、`text/plain`、`image/png `、またはその他の値など) を指定します。SageMaker AI は実際の入力データを検証しません。この値は、`Content-type` ヘッダー値としてコンテナの HTTP エンドポイントに渡されます。

   1.  `TransformInput.CompressionType`: Amazon S3 の推論用テストデータが圧縮されていない場合は `None` に設定します。

   1.  `TransformInput.SplitType`: `None` に設定して、Amazon S3 内の各オブジェクトを推論用にまとめて渡します。

   1.  `TransformOutput.S3OutputPath`: 推論出力が保存される場所に設定します。

   1.  `TransformOutput.AssembleWith`: `None` に設定して、各推論を Amazon S3 の個別のオブジェクトとして出力します。

1.  [**Create model package (モデルパッケージの作成)**] を選択します。

 SageMaker AI は Amazon ECR から推論イメージを取得して、すべてのアーティファクトを推論コンテナにコピーし、テストデータを推論に使用してバッチ変換ジョブを実行します。検証が成功すると、ステータスは **[完了済み]** に変わります。

**注記**  
 検証ステップでは、テストデータによるモデルの精度は評価されません。検証ステップでは、コンテナが実行されて期待どおりに応答するかどうかが確認されます。

 モデル製品リソースの作成が完了しました。「[での製品の一覧表示 AWS Marketplace](ml-publishing-your-product-in-aws-marketplace.md)」に進みます。

## アルゴリズムの作成
<a name="ml-creating-your-algorithm-product"></a>

 AWS Marketplaceのアルゴリズムを作成するための要件は次のとおりです。
+ Amazon ECR に保存された推論イメージ 
+ Amazon ECR に保存されたトレーニングイメージ 
+  Amazon S3 に保存されたトレーニング用テストデータ 
+ Amazon S3 に保存された推論用テストデータ 

**注記**  
 次のウォークスルーでは、アルゴリズム製品を作成します。詳細については、「[アルゴリズムリソースを作成する](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-create-algo.html)」を参照してください。

### アルゴリズムリソースの作成
<a name="ml-create-algorithm"></a>

以下の手順では、アルゴリズムパッケージのリソースを作成する方法を順を追って説明します。

**ステップ 1: アルゴリズムリソースを作成する**

1.  [Amazon SageMaker AI コンソール](https://us-east-2.console.aws.amazon.com/sagemaker/home)を開きます。

1.  ページの右上を見て、発行元の AWS リージョンにいることを確認します (「」を参照[公開 AWS リージョン でサポート](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。前のステップで Amazon ECR にアップロードしたトレーニングイメージと推論イメージが同じリージョンに存在する必要があります。

1.  左のナビゲーションペインで **[アルゴリズム]** をクリックします。

1.  [**Create algorithm (アルゴリズムの作成)**] を選択します。

アルゴリズムパッケージを作成したら、モデルのトレーニングとチューニングの仕様を設定する必要があります。

**ステップ 2: トレーニングとチューニングの仕様を設定する**

1.  アルゴリズムの**[名前]** (例えば *my-algorithm*) を入力します。

1.  **[トレーニングイメージ]** には、Amazon ECR にアップロードされたトレーニングイメージの、完全な URI の場所を貼り付けます。URI は [Amazon ECR コンソール](https://us-east-2.console.aws.amazon.com/ecr/repositories)でイメージを検索すると取得できます。

1.  ドロップダウンボックスを使用して、トレーニングイメージがサポートする**トレーニング用のインスタンスタイプ**を選択します。

1.  **[チャネルの仕様]**セクションで、アルゴリズムがサポートする各入力データセットに 1 つのチャネルを追加します (入力ソースの最大数は 20 チャネル)。詳細については、「[入力データ設定](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-inputdataconfig)」を参照してください。

1.  [**次へ**] を選択します。

1. アルゴリズムがハイパーパラメータとハイパーパラメータ調整をサポートしている場合は、調整パラメータを指定する必要があります。

1.  [**次へ**] を選択します。

**注記**  
 アルゴリズムがハイパーパラメータ調整をサポートして適切なパラメータを調整できるようになっていることが、強く推奨されます。これにより、データサイエンティストはモデルを調整して最良の結果を得ることができます。

調整パラメータがある場合、そのパラメータを設定したら、推論イメージの仕様を設定する必要があります。

**ステップ 3: 推論イメージ仕様を設定する**

1.  **[推論イメージの場所]** には、Amazon ECR にアップロードされた推論イメージの URI を貼り付けます。URI は [Amazon ECR コンソール](https://us-east-2.console.aws.amazon.com/ecr/repositories)でイメージを検索すると取得できます。

1.  ドロップダウンボックスを使用して、リアルタイム推論 (*エンドポイント*とも呼ばれる) ジョブとバッチ変換ジョブの両方でサポートされる推論イメージのインスタンスタイプを選択します。

1.  [**次へ**] を選択します。

 アルゴリズムを作成して公開するには、期待どおりに機能するかを確認するための検証が必要です。そのためには、トレーニング用のテストデータを使用するトレーニングジョブと、提供した推論用テストデータを使用してバッチ変換ジョブの両方を実行する必要があります。検証仕様は、SageMaker AI に検証の実行方法を指示します。

**ステップ 4: 検証仕様を設定する**

1.  **[ AWS Marketplaceでこのアルゴリズムを公開する]**を **[はい]** に設定します。これを **[いいえ]** に設定すると、このアルゴリズムを後で公開することができません。**Yes** を選択すると[、 のアルゴリズムが認定](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html#sagemaker-CreateAlgorithm-request-CertifyForMarketplace) AWS Marketplace され、検証仕様が必要です。

1.  の機械学習パッケージを初めて作成する場合は AWS Marketplace、**IAM** **ロールの新しいロールを作成する**を選択します。Amazon SageMaker AI は、アルゴリズムをトレーニングして後続のモデルパッケージをデプロイするときにこのロールを使用します。これには、Amazon ECR からのイメージの取得、Amazon S3 へのアーティファクトの保存、Amazon S3 からのトレーニングデータのコピーなどのアクションが含まれます。設定を確認し、**[ロールを作成]** を選択します。ここでロールを作成すると、作成したロールに、[AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) IAM ポリシーに記述されているアクセス許可が付与されます。

1.  **[トレーニングジョブ定義]** の検証プロファイルの **[JSON]** ファイルを編集します。許可される値の詳細については、「[ TrainingJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html)」を参照してください。

   1.  `InputDataConfig`: この JSON 配列に、トレーニング仕様のステップで指定した各チャネルの [[チャネルオブジェクト]](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html) を追加します。チャネルごとに、トレーニング用のテストデータを保存する場所を指定します。

   1.  `OutputDataConfig`: トレーニングが完了すると、トレーニングコンテナディレクトリパス `/opt/ml/model/` 内のモデルアーティファクトが圧縮され、Amazon S3 にコピーされます。圧縮ファイル (.tar.gz) が保存されている Amazon S3 の場所を指定します。

1.  **[変換ジョブの定義]** の検証プロファイルの JSON ファイルを編集します。許可される値の詳細については、「[TransformJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html)」を参照してください。

   1.  `TransformInput.DataSource.S3Uri`: 推論用のテストデータを保存する場所を設定します。

   1.  `TransformInput.ContentType`: テストデータのコンテンツタイプを指定します。例えば、`application/json`、`text/plain`、`image/png`、またはその他の値です。Amazon SageMaker AI は実際の入力データを検証しません。この値は、`Content-type` ヘッダー値としてコンテナの HTTP エンドポイントに渡されます。

   1.  `TransformInput.CompressionType`: Amazon S3 の推論用テストデータが圧縮されていない場合は `None` に設定します。

   1.  `TransformInput.SplitType`: S3 内のオブジェクトをどのように分割するかを選択します。例えば、`None` では、Amazon S3 内の各オブジェクトが推論用にまとめて渡されます。詳細については、「Amazon SageMaker AI API リファレンス」の「[SplitType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#sagemaker-Type-TransformInput-SplitType)」を参照してください。

   1.  `TransformOutput.S3OutputPath`: 推論出力が保存される場所に設定します。

   1.  `TransformOutput.AssembleWith`: `None` に設定して、各推論を Amazon S3 の個別のオブジェクトとして出力します。

1. **[アルゴリズムパッケージの作成]** を選択します。

 SageMaker AI は Amazon ECR からトレーニングイメージを取得して、データを使用してテストトレーニングジョブを実行し、モデルアーティファクトを Amazon S3 に保存します。次に、Amazon ECR から推論イメージを取得して、アーティファクトを Amazon S3 から推論コンテナにコピーし、推論用のテストデータを使用してバッチ変換ジョブを実行します。検証が成功すると、ステータスは **[完了済み]** に変わります。

**注記**  
 検証ステップでは、テストデータによるトレーニングまたはモデルの精度は評価されません。検証ステップでは、コンテナが実行されて期待どおりに応答するかどうかが確認されます。  
検証ステップではバッチ処理のみが検証されます。リアルタイム処理が製品で機能することを検証するのはユーザーしだいです。

 アルゴリズム製品リソースの作成が完了しました。「[での製品の一覧表示 AWS Marketplace](ml-publishing-your-product-in-aws-marketplace.md)」に進みます。

# での製品の一覧表示 AWS Marketplace
<a name="ml-publishing-your-product-in-aws-marketplace"></a>

コードをモデルパッケージイメージまたはアルゴリズムイメージにパッケージ化し、イメージをアップロードして Amazon SageMaker AI リソースを作成したら、 AWS Marketplaceで機械学習製品を公開できます。以下のセクションでは、製品の出品、製品のテスト、公開へのサインオフなど、公開プロセスについて説明します。製品が公開されたら、出品内容を更新するための変更をリクエストします。詳細については、「[機械学習製品の管理](ml-product-management.md)」を参照してください。

**Topics**
+ [前提条件](ml-publishing-prereq.md)
+ [ステップ 1: 新しいリストを作成する](create-new-listing.md)
+ [ステップ 2: 製品情報の提供](provide-general-info.md)
+ [ステップ 3: 製品の初期バージョンの追加](add-initial-version.md)
+ [ステップ 4: 料金モデルを設定する](set-pricing-model.md)
+ [ステップ 5: 返金ポリシーの設定](configure-refund-policy.md)
+ [ステップ 6: EULA を設定する](configure-eula.md)
+ [ステップ 7: 許可リストを設定する](configure-allowlist.md)

# 前提条件
<a name="ml-publishing-prereq"></a>

モデルパッケージまたはアルゴリズムを で公開する前に AWS Marketplace、次のものが必要です。
+  AWS Marketplace 販売者として登録 AWS アカウント されている 。これは、[AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/)で行えます。
+  AWS Marketplace 管理ポータルの [[設定]](https://aws.amazon.com/marketplace/management/seller-settings) ページの完了済みセラープロファイル。
+  有料製品を公開するには、Tax Interview と銀行フォームに必要事項を記入する必要があります。これは無料製品の公開には必要ありません。詳細については、「[Seller registration process](https://docs.aws.amazon.com/marketplace/latest/userguide/registration-process.html)」を参照してください。
+  AWS Marketplace 管理ポータル および Amazon SageMaker AI にアクセスするには、アクセス許可が必要です。詳細については、「[必要な アクセス許可](#ml-permissions-required)」を参照してください。

## 必要な アクセス許可
<a name="ml-permissions-required"></a>

Amazon SageMaker AI 製品を公開するには、 AWS Marketplace サービスプリンシパルとの信頼関係を持つ有効な IAM ロール ARN を指定する必要があります。加えて、サインインする IAM ユーザーまたはロールに、必要となるアクセス許可を設定する必要があります。

**サインイン許可の設定**
+  IAM ロールに次の権限を追加します。

  1. **sagemaker:DescribeModelPackage** — モデルパッケージを一覧表示するためのものです 

  1.  **sagemaker:DescribeAlgorithm** — アルゴリズムを一覧表示するためのものです 

------
#### [ JSON ]

****  

     ```
     { 
         "Version":"2012-10-17",		 	 	 
         "Statement": [ 
             { 
                 "Effect": "Allow", 
                 "Action": [ 
                     "sagemaker:DescribeModelPackage", 
                     "sagemaker:DescribeAlgorithm"
                 ],
                 "Resource": "*"  
            }
         ] 
     }
     ```

------

**IAM ロール AddVersion/Create 製品の設定**

1. カスタム信頼ポリシーを使用してロールを作成するには、次の手順に従います。詳細については、IAM ユーザーガイドの「[カスタム信頼ポリシーを使用した IAM ロールの作成 (コンソール)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

1. [カスタム信頼ポリシー] のステートメントに以下を入力します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Principal": {
                   "Service": "assets.marketplace.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 以下のアクセス許可ポリシーを入力します。

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [ 
           { 
               "Effect": "Allow", 
               "Action": [ 
                   "sagemaker:DescribeModelPackage", 
                   "sagemaker:DescribeAlgorithm"
               ],
               "Resource": "*"  
          }
       ] 
   }
   ```

------

1. リクエストに応じてロール ARN を指定します。ロールは次の形式に従う必要があります。`arn:aws:iam::<account-id>:role/<role-name>`

 必要な AWS Marketplace アクセス許可、または販売者アカウントの管理については、[AWS Marketplace 「販売者のポリシーとアクセス許可](https://docs.aws.amazon.com/marketplace/latest/userguide/detailed-management-portal-permissions.html)」を参照してください。

## 必須アセット
<a name="ml-required-assets"></a>

機械学習製品リストを作成する前に、次の必須アセットがあることを確認してください。
+ **Amazon リソースネーム (ARN)** — 発行元の でモデルパッケージまたはアルゴリズムリソースの ARN を指定します ( AWS リージョン 「」を参照[公開 AWS リージョン でサポート](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。
  +  モデルパッケージの ARN の形式は `arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>` です。

     モデルパッケージ ARN を確認するには、「[自分の Marketplace モデルパッケージ](https://console.aws.amazon.com/sagemaker/home#/model-packages/my-resources)」を参照してください。
  +  アルゴリズムの ARN の形式は `arn:aws:sagemaker:<region>:<account-id>:algorithm/<algorithm-name>` です。

     アルゴリズムリソース ARN を見つけるには、「[自分のアルゴリズム](https://console.aws.amazon.com/sagemaker/home#/algorithms/my-resources)」を参照してください。
+ [使用状況情報の要件](ml-listing-requirements-and-best-practices.md#ml-requirements-for-usage-information) — 入力、出力、およびコード例に関する詳細を提供します。
+  [入力と出力の要件](ml-listing-requirements-and-best-practices.md#ml-requirements-for-inputs-and-outputs) — ファイルまたはテキストのいずれかを提供します。
+ [Jupyter Notebook の要件](ml-listing-requirements-and-best-practices.md#ml-requirements-for-jupyter-notebook) — 製品の使用方法をすべてデモンストレーションします。

# ステップ 1: 新しいリストを作成する
<a name="create-new-listing"></a>

 機械学習製品の使用を開始するには、製品名の設定、組織のオプションのリソースタグの追加、製品 ID の生成により、出品プロセスを開始します。製品 ID は、製品のライフサイクル全体を通じて製品を追跡するために使用されます。

**注記**  
 リストを作成する前に、「[機械学習製品を作成するための要件とベストプラクティス](ml-listing-requirements-and-best-practices.md)」で指定されている必要なリソースがあることを確認してください。

1. 販売者の AWS アカウント にサインインし、[[AWS Marketplace 管理ポータル]](https://aws.amazon.com/marketplace/management) に移動します。

1.  トップメニューで **[製品]** に移動し、**[機械学習]** を選択します。

1.  **[機械学習製品の作成]** を選択します。

1. **[製品名]** に、製品出品ページの上部の購入者と検索結果に表示される一意の製品名を入力します。

1.  (オプション) **[タグ]** に、製品に関連付けるタグを入力します。詳細については、「[AWS リソースのタグ付け](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)」を参照してください。

1.  **[製品 ID とコード]** で、**[製品 ID とコードを生成する]** を選択します。

1.  **[ウィザードに進む]** を選択します。ウィザードで、詳細な製品情報の追加プロセスを開始します。

# ステップ 2: 製品情報の提供
<a name="provide-general-info"></a>

 AWS Marketplace で機械学習製品を一覧表示する場合、包括的で正確な製品情報を提供することが重要です。ウィザードの「**製品情報の提供**」ステップを使用して、製品カテゴリやサポート情報など、製品に関する重要な詳細をキャプチャします。

1.  製品に関する情報を入力します。

1.  **[次へ]** を選択して、ウィザードの次のステップに進みます。

# ステップ 3: 製品の初期バージョンの追加
<a name="add-initial-version"></a>

 このページでは、製品の初期バージョンを追加する方法について説明します。製品にはライフサイクルを通じて複数のバージョンが存在する場合があり、各バージョンは一意の SageMaker AI ARN で識別されます。

1.  **[Amazon リソースネーム (ARN)]** で: 

   1.  モデルまたはアルゴリズムの Amazon SageMaker AI ARN を入力します。
      +  モデルパッケージ ARN の例: `arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>` 

         モデルパッケージ ARN を確認するには、「[自分の Marketplace モデルパッケージ](https://console.aws.amazon.com/sagemaker/home#/model-packages/my-resources)」を参照してください。
      +  アルゴリズム ARN の例: `arn:aws:sagemaker:<region>:<account-id>:algorithm/<algorithm-name>` 

         アルゴリズムリソース ARN を見つけるには、「[自分のアルゴリズム](https://console.aws.amazon.com/sagemaker/home#/algorithms/my-resources)」を参照してください。

   1.  IAM アクセスロールの ARN を入力します。

       IAM ARN の例: `arn:aws:iam::<account-id>:role/<role-name>` 

1.  **[バージョンの情報]** に、**バージョン名**と**リリースノート**を入力します。

1.  **[モデル入力の詳細]** で、モデル入力の概要を入力し、リアルタイムおよびバッチジョブ入力のサンプル入力データを入力します。必要に応じて、任意の入力制限を指定できます。

1.  (オプション) **[入力パラメータ]** に、製品でサポートされている各入力パラメータに関する詳細情報を入力します。パラメータ名、説明、制約を指定し、パラメータが必須かオプションかを指定できます。最大 24 個の入力パラメータを指定できます。

1.  (オプション) **[カスタム属性]** で、製品でサポートされているカスタム呼び出しパラメータを指定します。属性ごとに、名前、説明、制約を指定し、属性が必須かオプションかを指定できます。

1.  **[モデルの出力の詳細]** で、モデル出力の概要を入力し、リアルタイムおよびバッチジョブ出力のサンプル出力データを入力します。必要に応じて、任意の出力制限を指定できます。

1.  (オプション) **[出力パラメータ]** に、製品でサポートされている各出力パラメータに関する詳細情報を入力します。パラメータ名、説明、制約を指定し、パラメータが必須かオプションかを指定できます。最大 24 個の出力パラメータを指定できます。

1.  **[使用説明書]** で、ベストプラクティス、一般的なエッジケースの処理方法、パフォーマンス最適化の提案など、モデルを効果的に使用するための明確な指示を提供します。

1.  **[Git リポジトリとノートブックのリンク]** で、サンプルノートブックと Git リポジトリへのリンクを指定します。サンプルノートブックには、モデルを呼び出す方法を含める必要があります。Git リポジトリには、ノートブック、データファイル、およびその他のデベロッパーツールが含まれている必要があります。

1.  **[推奨インスタンスタイプ]** で、製品の推奨インスタンスタイプを選択します。

   *[モデルパッケージ]* では、バッチ変換とリアルタイム推論の両方に推奨されるインスタンスタイプを選択します。

   *[アルゴリズムパッケージ]* では、トレーニングジョブに推奨されるインスタンスタイプを選択します。
**注記**  
 選択できるインスタンスタイプは、モデルまたはアルゴリズムパッケージでサポートされているインスタンスタイプに制限されます。サポートされているインスタンスタイプは、Amazon SageMaker AI でリソースを最初に作成した時点で決定されます。これにより、製品は機械学習ソリューションを効果的に実行できるハードウェア設定にのみ関連付けられます。

1. **[次へ]** を選択して、ウィザードの次のステップに進みます。

# ステップ 4: 料金モデルを設定する
<a name="set-pricing-model"></a>

 製品の料金モデルを設定するときは、製品を無料で提供したり、使用量ベースの料金を実装したりすることができます。製品の公開後に料金モデルを変更することはできません。

1.  料金モデルを選択します。バッチ変換とアルゴリズムトレーニング製品は無料か、時間単位の使用に対してのみ課金されます。
   +  製品を無料で提供することを選択した場合は、**[次]** を選択してウィザードを続行します。
   +  使用料金を選択した場合は、次のステップを続行します。

1.  使用量に基づいて課金することを選択した場合は、使用コストを入力できます。すべてのインスタンスタイプに適用される料金を入力するか、インスタンスタイプごとに料金を入力するかを選択して、料金をより詳細に設定できます。

1.  製品の無料トライアルを提供する場合は、**[はい、無料トライアルを提供します]** を選択します。

1. **[次へ]** を選択して、ウィザードの次のステップに進みます。

# ステップ 5: 返金ポリシーの設定
<a name="configure-refund-policy"></a>

 返金の提供は必須ではありませんが、AWS Marketplace に正式な返金ポリシーを提出する必要があります。

1. 返金ポリシーを入力します。

1.  **[次へ]** を選択して、ウィザードの次のステップに進みます。

# ステップ 6: EULA を設定する
<a name="configure-eula"></a>

 このステップでは、お客様が製品を使用する方法を規定する法的契約を選択します。AWS の標準契約条件を選択するか、独自のカスタムエンドユーザーライセンス契約 (EULA) をアップロードできます。

1.  標準契約を選択するか、カスタムエンドユーザーライセンス契約を提供します。

1.  **[次へ]** を選択して、ウィザードの次のステップに進みます。

# ステップ 7: 許可リストを設定する
<a name="configure-allowlist"></a>

 製品を送信する前に、AWS アカウント がどの製品にアクセスできるかを指定する必要があります。このオプションのステップは、製品の初期可視性を制御し、独自のアカウントへのアクセスと、許可リストに追加する特別に承認されたすべての AWS アカウント へのアクセスを制限します。

1.  製品にアクセスする AWS アカウント ID を入力します。

1.  **[送信]** を選択して製品を送信します。

    製品は **[制限付き可視性]** ステータスになり、製品および他の許可リストに登録されている AWS アカウント を作成した AWS アカウント にのみ表示されます。

    ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

 製品リストは、**[制限付き可視性]** 状態の間に表示およびテストできます。製品の可視性を変更する準備ができたら、「[製品の可視化の更新](ml-update-visibility.md)」を参照してください。

# 機械学習製品の管理
<a name="ml-product-management"></a>

AWS Marketplace 管理ポータルで、**[変更をリクエスト]** を選択して AWS Marketplace の製品またはバージョンを変更します。変更を送信すると、システムはその変更を処理します。処理時間は変更の種類に応じて異なり、数分から数日になります。AWS Marketplace 管理ポータルで変更のステータスをモニタリングできます。

**Topics**
+ [製品情報の更新](ml-update-product.md)
+ [製品の可視化の更新](ml-update-visibility.md)
+ [許可リストの更新](ml-update-allowlist.md)
+ [製品バージョンの管理](ml-manage-product-version.md)
+ [製品の料金の更新](ml-update-public-offer.md)
+ [返金ポリシーの更新](ml-update-refund-policy.md)
+ [EULA を更新する](ml-update-eula.md)
+ [製品を削除する](ml-remove-a-product.md)

**注記**  
 AWS Marketplace 管理ポータルを通じて変更を加えるほかに、[AWS Marketplace Catalog API](https://docs.aws.amazon.com/marketplace/latest/APIReference/welcome.html) を使用して変更を加えることもできます。

# 製品情報の更新
<a name="ml-update-product"></a>

 機械学習 (ML) 製品を作成したら、説明、ハイライト、タイトル、SKU、カテゴリ、キーワードなど、AWS Marketplace で特定の製品情報を変更できます。

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、ターゲット製品を選択します。

1.  **[変更をリクエスト]** を選択し、**[製品情報を更新]** を選択します。

1.  必要に応じて、フィールドの値を更新します。
**注記**  
 ロゴの仕様については、「[会社と製品のロゴ要件](product-submission.md#seller-and-product-logos)」を参照してください。

1.  **[送信]** を選択します。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

# 製品の可視化の更新
<a name="ml-update-visibility"></a>

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択して、**[製品の可視性の更新]** を選択し、次に **[パブリック]** または **[制限付き]** を選択します。

1.  変更内容を見直して、**[送信]** を選択します。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

# 許可リストの更新
<a name="ml-update-allowlist"></a>

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択し、**[許可リストを更新]** を選択します。

1.  変更する必要がある情報を変更し、**[送信]** を選択します。詳細については、「[ステップ 7: 許可リストを設定する](configure-allowlist.md)」を参照してください。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

# 製品バージョンの管理
<a name="ml-manage-product-version"></a>

 販売者は、既存のバージョン情報の更新、新しいバージョンの追加、サポートされなくなったバージョンの削除を行うことにより、AWS Marketplace で製品バージョンを管理できます。各バージョンには、購入者が製品の評価とデプロイに使用する一意の SageMaker AI ARN と関連情報があります。

**注記**  
 バージョンを追加する前に、製品 ID を作成し、料金を設定します。詳細については、「[ステップ 1: 新しいリストを作成する](create-new-listing.md)」を参照してください。

## バージョン情報の更新
<a name="ml-updating-versions"></a>

 バージョンを作成したら、リリースノート、使用手順、インスタンスのレコメンデーションなどの関連情報を変更できます。

**注記**  
 バージョン名と ARNs は変更できません。これらの変更には、新しいバージョンを作成する必要があります。

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択し、**[バージョン情報を更新]** を選択します。

1.  更新するバージョンを選択します。

1.  **[バージョンを編集]** を選択します。

1.  必要なフィールドを変更し、**[次へ]** を選択します。

1.  料金情報を入力し、**[送信]** を選択します。詳細については、「[ステップ 4: 料金モデルを設定する](set-pricing-model.md)」を参照してください。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

## 新しいバージョンを追加する
<a name="ml-adding-new-versions"></a>

 製品の新しいバージョンを追加して、以前のバージョンへのアクセスを維持しながら、機能、更新、または改善を導入できます。

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[バージョン]** を選択し、**[新しいバージョンを追加]** を選択します。

1.  「[ステップ 3: 製品の初期バージョンの追加](add-initial-version.md)」の手順に従って、新しいバージョンの情報を入力します。

1.  料金情報を入力し、**[送信]** を選択します。詳細については、「[ステップ 4: 料金モデルを設定する](set-pricing-model.md)」を参照してください。

新しいバージョンが正常に追加されると、購入者は新しいバージョンが利用可能であるという E メール通知を受け取ります。

## バージョンを制限する
<a name="ml-restricting-versions"></a>

 バージョンが古くなったり、可用性を停止したりする場合は、他のバージョンへのアクセスを維持しながら、そのバージョンへの購入者のアクセスを制限できます。

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[バージョン]** を選択し、**[バージョンの制限]** を選択します。
**注記**  
 少なくとも 1 つのバージョンが常に使用可能である必要があります。

1.  **[送信]** を選択します。

 バージョンを正常に制限すると、購入者はバージョンが制限されたという E メール通知を受け取ります。

# 製品の料金の更新
<a name="ml-update-public-offer"></a>

 AWS Marketplace では機械学習製品の料金と無料トライアル期間を変更できますが、料金モデル自体を変更することはできません。有料モデルの場合、料金引き上げは翌月の初日の 90 日間の通知期間後に有効になることに注意してください。この通知期間中は、追加の料金変更を行うことはできません。

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択して、**[パブリックオファーを更新]** を選択し、次に **[オファー情報を編集]** を選択します。

1.  変更する必要がある情報を変更し、**[送信]** を選択します。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

# 返金ポリシーの更新
<a name="ml-update-refund-policy"></a>

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択して、**[パブリックオファーを更新]** を選択し、**[返金ポリシーを更新]** を選択します。

1.  変更する必要がある情報を変更し、**[送信]** を選択します。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

# EULA を更新する
<a name="ml-update-eula"></a>

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択して、**[パブリックオファーを更新]** を選択し、**[EULA を更新]** を選択します。

1.  変更する必要がある情報を変更し、**[送信]** を選択します。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

# 製品を削除する
<a name="ml-remove-a-product"></a>

 AWS Marketplace から公開済み製品を削除 (サンセット) できます。削除されると、新規顧客はサブスクライブできませんが、少なくとも 90 日間は既存の顧客をサポートする必要があります。

 AWS Marketplace から製品を削除する条件は次のとおりです。
+  製品は AWS Marketplace 検索および検出ツールから削除されます。
+  サブスクライブ機能は無効になります。
+  製品の詳細ページは、ダイレクト URL から引き続きアクセスできます。
+  現在のサブスクライバーがサブスクリプションをキャンセルするまでアクセスは維持されます。
+  AWS Marketplace は削除について現在の購入者に通知します。

**機械学習製品を削除するには:**

1.  [AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management/tour/)で販売者アカウントにサインインします。

1.  **[機械学習製品]** ページに移動し、製品を選択します。

1.  **[変更をリクエスト]** を選択し、**[製品の可視化の更新]** を選択し、**[制限付き]** を選択します。

1.  (オプション) 代替製品 ID を入力します。

1.  変更内容を確認してから、**[送信]** を選択します。

 **[機械学習]** 製品ページの **[リクエスト]** タブからリクエストをモニタリングできます。ステータスの詳細については、「[機械学習製品のステータス](ml-product-lifecycle.md#ml-product-status)」を参照してください。

 削除されると、製品スプレッドシートのみをダウンロードできる**[現在の製品]** リストに製品が表示されます。製品の削除についてご不明な点がある場合は、[AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) チームにお問い合わせください。

# 機械学習製品のプライベートオファーの作成
<a name="machine-learning-private-offers"></a>

 機械学習製品について交渉し、顧客に直接プライベートオファーを提供できます。プライベートオファーの詳細については、「[AWS Marketplace 製品のプライベートオファーの準備](private-offers-overview.md)」を参照してください。

**前提条件:**
+  有料出品が必要です AWS Marketplace。
+  AWS Marketplace 管理ポータル (AMMP) にアクセスできる必要があります。

**機械学習製品のプライベートオファーを作成するには:**

1.  AWS Marketplace 管理ポータルにサインインします。

1. **[オファー]** を選択し、**[プライベートオファーの作成]** を選択します。

1.  **[プライベートオファーの作成]** ページで、プライベートオファーを作成する製品を選択します。利用可能な製品のオファーのみ作成できます。

1.  **[オファーの詳細]** ページで、次の操作を行います。

   1.  オファーの名前と説明を入力します。

   1.  更新オプションを選択します。

   1.  オファーの有効期限を設定します。オファーは、設定日の 23:59:59 UTC に期限切れになります。

1. **[次へ]** を 2 回選択します。

1.  **[オファーの料金と期間の設定]** ページで、以下を指定します。
   +  料金オプション

     (詳細については、[「ML 製品のプライベートオファー](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-supported-product-types.html#ml-private-offers)」を参照してください)
   + 使用量または契約期間
   + オファーの通貨
   + 料金ディメンション。

     (使用料金の場合、使用ベースの料金はオファー期間中にのみ適用されます。 契約の場合、使用量ベースの料金は契約期間が満了し、永続的である場合にのみ適用されます。)
**注記**  
詳細については、「[プライベートオファーの分割プラン](installment-plans.md)」を参照してください。

1. [**次へ**] を選択します。

1. **購入者の追加** ページで、購入者の AWS アカウント IDs を入力します。次いで、**[次へ]** を選択します。
**重要**  
リンクされたアカウントがプライベートオファーの利点を受けるには:  
支払者 AWS アカウント ID を含めます。
支払いアカウントは、まずプライベートオファーの時間単位の条件に同意する必要があります。
支払いアカウントが承諾すると、リンクされたアカウントはプライベートオファーを受け入れることができます。

1. **[法的条件とオファードキュメントの設定]** ページで、カスタム条件を追加し、**[次へ]** を選択します。
**注記**  
 最大 5 つのファイル (法的条件、作業明細書、部品表、料金表、または付録) を追加できます。システムはこれらを 1 つのドキュメントに結合します。

1. **[確認と作成]** ページで、オファーの詳細を確認し、**[オファーの作成]** を選択します。

1. オファーが **[プライベートオファーの管理]** ページに表示されたら、**[アクション]** メニューを開き、**[オファー URL をコピー]** を選択して、購入者に E メールで送信します。
**注記**  
 オファーの公開には時間がかかる場合があります。購入者が承諾するまで、**[プライベートオファーの管理]** ページでオファーを編集できます。

# 機械学習製品を作成するための要件とベストプラクティス
<a name="ml-listing-requirements-and-best-practices"></a>

モデルパッケージとアルゴリズム製品を購入者が簡単にテストできるかを確認することが重要です。以下のセクションでは、ML 製品のベストプラクティスについて説明します。要件と推奨事項の完全な要約については、「[ML 製品リストの要件と推奨事項の要約](#ml-summary-table-of-requirements-and-recommendations)」を参照してください。

**注記**  
公開済み製品が要件を満たしていない場合、これらの要件を満たすために AWS Marketplace 担当者から連絡されることがあります。

**Topics**
+ [ML 製品の一般的なベストプラクティス](#ml-general-best-practices)
+ [使用状況情報の要件](#ml-requirements-for-usage-information)
+ [入力と出力の要件](#ml-requirements-for-inputs-and-outputs)
+ [Jupyter Notebook の要件](#ml-requirements-for-jupyter-notebook)
+ [ML 製品リストの要件と推奨事項の要約](#ml-summary-table-of-requirements-and-recommendations)

## ML 製品の一般的なベストプラクティス
<a name="ml-general-best-practices"></a>

 使用している機械学習製品について、以下の情報を提供します。
+  製品の説明には、以下を含めます。
  +  モデルの機能 
  +  ターゲットとなる顧客 
  +  最も重要なユースケース 
  +  モデルのトレーニング方法、または使用されたデータの量 
  +  パフォーマンスメトリクスと、使用された検証データ 
  +  医療機器の場合、モデルが診断用かどうか 
+ デフォルトでは、機械学習製品は一般に公開されるよう設定されています。ただし、可視性を制限して製品を作成することもできます。詳細については、「[ステップ 7: 許可リストを設定する](configure-allowlist.md)」を参照してください。
+  (オプション) 有料製品の場合は、顧客に対して 14～30 日間の無料試用期間を提供し、製品を試してもらいます。詳細については、「[の機械学習製品の料金 AWS Marketplace](machine-learning-pricing.md)」を参照してください。

## 使用状況情報の要件
<a name="ml-requirements-for-usage-information"></a>

購入者の満足度を高めるには、製品の期待される入力と出力を説明した明確な使用情報 (例を含む) が不可欠です。

新しいバージョンのリソースを製品リストに追加するたびに、使用状況情報を提供する必要があります。

特定のバージョンの既存の使用状況情報を編集するには、「[バージョン情報の更新](ml-manage-product-version.md#ml-updating-versions)」を参照してください。

## 入力と出力の要件
<a name="ml-requirements-for-inputs-and-outputs"></a>

バイヤーが製品を理解して使用できるよう、サポートする入力パラメータおよび返された出力パラメータの例を含め、形式を明確に説明することが重要です。製品を理解すると、購入者は、入力データに対して必要な変換を行って最適な推論結果を得られるようになります。

Amazon SageMaker AI リソースを製品リストに追加すると、次の入力を求められます。

### 推論の入力と出力
<a name="ml-inference-inputs-and-outputs"></a>

推論入力では、リアルタイムエンドポイントとバッチ変換ジョブの両方に製品が期待する入力データの説明を指定します。データの前処理に必要なコードスニペットを含めてください。該当する場合は制約事項を含めます。[GitHub](https://github.com) でホストされている入力サンプルを指定します。

推論入力では、リアルタイムエンドポイントとバッチ変換ジョブの両方に製品が期待する入力データの説明を指定します。該当する場合は制約事項を含めます。[GitHub](https://github.com) でホストされている出力サンプルを指定します。

サンプルには、お使いの製品に対応する入力ファイルを提供してください。モデルが多クラス分類を実行する場合は、クラスごとに少なくとも 1 つのサンプル入力ファイルを提供してください。

### トレーニング入力
<a name="ml-training-inputs"></a>

「**モデルをトレーニングするための情報**」セクションに、データの前処理に必要な入力データ形式とコードスニペットを指定します。該当する場合は、値と制約事項の説明を含めます。[GitHub](https://github.com) でホストされている入力サンプルを指定します。

購入者が提供できるオプション機能と必須機能の両方を説明し、`PIPE` 入力モードがサポートされているかどうかを明記します。[分散型トレーニング](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-dist-training) (複数の CPU/GPU インスタンスによるトレーニング) がサポートされている場合は、その旨を明記してください。チューニングについては、推奨されるハイパーパラメータを一覧で表示してください。

## Jupyter Notebook の要件
<a name="ml-requirements-for-jupyter-notebook"></a>

SageMaker AI リソースを製品リストに追加するときは、[GitHub](https://github.com) でホストされているサンプル Jupyter Notebook へのリンクを提供します。これにより、購入者に対してデータのアップロードや検索を依頼することなく、ワークフロー全体を確認できます。

 AWS SDK for Python (Boto)を使用します。優れたサンプルノートブックを開発して提供できれば、購入者はリストを簡単に試して使用することができます。

モデルパッケージ製品の場合、サンプルノートブックには、入力データの準備、リアルタイム推論用エンドポイントの作成、バッチ変換ジョブの実行などが示されています。詳細については、GitHub の「[Model Package listing and Sample notebook](https://github.com/aws/amazon-sagemaker-examples/tree/main/aws_marketplace/curating_aws_marketplace_listing_and_sample_notebook/ModelPackage)」を参照してください。サンプルノートブックについては、「[auto\$1insurance](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/using_model_packages/auto_insurance)」を参照してください。ノートブックは、パラメータを入力することなく AWS リージョン、購入者がサンプルデータを見つけることなく、すべて機能します。

**注記**  
未開発のサンプル Jupyter Notebook ノートブックで、考えられる入力やデータの前処理手順が複数表示されていないと、購入者が製品の価値提案を完全に理解するのが難しい場合があります。

アルゴリズム製品の場合、サンプルノートブックには、トレーニング、調整、モデル作成、リアルタイム推論用エンドポイントの作成、バッチ変換ジョブのパフォーマンスがすべて示されています。詳細については、GitHub の「[Algorithm listing and Sample notebook](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/curating_aws_marketplace_listing_and_sample_notebook/Algorithm)」を参照してください。サンプルノートブックについては、GitHub の「[amazon\$1demo\$1product](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/using_algorithms/amazon_demo_product)」と「[automl](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/using_algorithms/automl)」を参照してください。これらのサンプルノートブックはすべてのリージョンで機能し、パラメータを入力したり、購入者がサンプルデータを探したりする必要はありません。

**注記**  
サンプルのトレーニングデータが不足していると、購入者が Jupyter Notebook を正常に実行できなくなります。サンプルノートブックが開発されていないと、購入者が製品を使用できなくなり、採用が見合わされるおそれがあります。

## ML 製品リストの要件と推奨事項の要約
<a name="ml-summary-table-of-requirements-and-recommendations"></a>

次の表に、機械学習製品の出品ページの要件と推奨事項の概要を示します。


|  **詳細**  |  **モデルパッケージリスト用**  |  **アルゴリズムリスト用**  | 
| --- |--- |--- |
| **Product descriptions** | 
| --- |
| Explain in detail what the product does for supported content types (for example, “detects X in images").  |  Required  |  Required  | 
| Provide compelling and differentiating information about the product (avoid adjectives like "best" or unsubstantiated claims).  |  Recommended  |  Recommended  | 
| List most important use case(s) for this product.  |  Required  |  Required  | 
| Describe the data (source and size) it was trained on and list any known limitations.  |  Required  |  Not applicable | 
| Describe the core framework that the model was built on.  |  Recommended  |  Recommended  | 
| Summarize model performance metric on validation data (for example, "XX.YY percent accuracy benchmarked using the Z dataset").  |  Required  |  Not applicable | 
| Summarize model latency and/or throughput metrics on recommended instance type.  |  Required  |  Not applicable | 
| Describe the algorithm category. For example, “This decision forest regression algorithm is based on an ensemble of tree-structured classifiers that are built using the general technique of bootstrap aggregation and a random choice of features.”  |  Not applicable |  Required  | 
| **Usage information** | 
| --- |
| For inference, provide a description of the expected input format for both the real-time endpoint and batch transform job. Include limitations, if applicable. See [入力と出力の要件](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide input samples for both the real-time endpoint and batch transform job. Samples must be hosted on GitHub. See [入力と出力の要件](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide the name and description of each input parameter. Provide details about the its limitations and specify if it is required or optional. | Recommended | Recommended | 
| For inference, provide details about the output data your product returns for both the real-time endpoint and batch transform job. Include any limitations, if applicable. See [入力と出力の要件](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide output samples for both the real-time endpoint and batch transform job. Samples must be hosted on GitHub. See [入力と出力の要件](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide an example of using an endpoint or batch transform job. Include a code example using the AWS Command Line Interface (AWS CLI) commands or using an AWS SDK.  |  Required  |  Required  | 
| For inference, provide the name and description of each output parameter. Specify if it is always returned.  | Recommended | Recommended | 
| For training, provide details about necessary information to train the model such as minimum rows of data required. See [入力と出力の要件](#ml-requirements-for-inputs-and-outputs).  |  Not applicable |  Required  | 
| For training, provide input samples hosted on GitHub. See [入力と出力の要件](#ml-requirements-for-inputs-and-outputs).  |  Not applicable |  Required  | 
| For training, provide an example of performing training jobs. Describe the supported hyperparameters, their ranges, and their overall impact. Specify if the algorithm supports hyperparameter tuning, distributed training, or GPU instances. Include code example such as AWS CLI commands or using an AWS SDK, for example.  |  Not applicable |  Required  | 
| Provide a Jupyter notebook hosted on GitHub demonstrating complete use of your product. See [Jupyter Notebook の要件](#ml-requirements-for-jupyter-notebook).  |  Required  |  Required  | 
| Provide technical information related to the usage of the product, including user manuals and sample data.  |  Recommended  |  Recommended  | 

# 機械学習製品の問題のトラブルシューティング
<a name="ml-troubleshooting"></a>

 このセクションでは、機械学習製品の公開プロセス中に発生する可能性のある一般的なエラーについて説明します。該当する問題がリストにない場合は、[AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) チームにお問い合わせください。

## 全般: モデルパッケージまたはアルゴリズムの Amazon リソースネーム (ARN) を に追加すると 400 エラーが発生する AWS Marketplace 管理ポータル
<a name="troubleshooting_error_code_400"></a>

### 一般的な原因
<a name="troubleshooting_common_cause"></a>

 SageMaker AI で機械学習製品を作成するときに、 AWS Marketplaceで製品を公開することを選択しなかった。

### 解決策
<a name="troubleshooting_resolution"></a>

 Amazon SageMaker AI コンソールを使用してリソースを作成した場合は、**[ AWS Marketplaceでこのモデルパッケージを公開する]** のプロセスの最後のページで **[はい]** を選択するか、**[ AWS Marketplaceでこのアルゴリズムを公開する]** で **[はい]** を選択する必要があります。**[いいえ]** を選択すると、後で公開することはできません。**[はい]** を選択しても、モデルパッケージやアルゴリズムは公開されません。ただし、モデルパッケージまたはアルゴリズムリソースは作成時に検証されるため、 AWS Marketplaceでの使用に必要です。

 AWS SDK を使用して [モデルパッケージ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-CertifyForMarketplace)を作成するか、[アルゴリズムを作成する](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html#sagemaker-CreateAlgorithm-request-CertifyForMarketplace)場合は、 パラメータ`CertifyForMarketplace`が に設定されていることを確認します`true`。

認定および検証済みのモデルパッケージまたはアルゴリズムリソースを再作成したら、新しい ARN を AWS Marketplace 管理ポータルに追加します。

## 全般: モデルパッケージまたはアルゴリズムの ARN を に追加する と 404 エラーが発生する AWS Marketplace 管理ポータル
<a name="troubleshooting_error_code_404"></a>

### 一般的な原因
<a name="troubleshooting_common_cause"></a>

 このエラーは、さまざまな理由で発生します。
+  ARN が無効の可能性があります。
+  モデルパッケージまたはアルゴリズムリソースが販売者アカウント AWS アカウント と同じ に作成されていません。
+  公開に使用するユーザーまたはロールに、モデルパッケージまたはアルゴリズムリソースにアクセスするための適切な IAM 権限がありません。

### 解決策
<a name="troubleshooting_resolution"></a>

1.  ARN が正しい ARN であり、想定される形式であることを確認します。

    モデルパッケージの場合、ARN は `arn:aws:sagemaker:us-east-2:000123456789:model-package/my-model-package-name` に似ています。

    アルゴリズムの場合、ARN は `arn:aws:sagemaker:us-east-2:000123456789:algorithm/my-algorithm` に似ています。

1.  公開するリソースとアセットがすべて、公開元の販売者アカウントにあることを確認してください。

1.  ユーザーまたはロールに、次のアクセス許可があることを確認してください。

    モデルパッケージの場合、モデルパッケージリソースに対するアクション `sagemaker:DescribeModelPackage` が許可されている必要があります。

    アルゴリズムの場合は、アルゴリズムリソースに対するアクション `sagemaker:DescribeAlgorithm` が許可されている必要があります。

## Amazon SageMaker AI: モデルパッケージまたはアルゴリズムリソースを作成すると、「クライアントエラー: レジストリへのアクセスが拒否されました」というエラーメッセージが表示される
<a name="troubleshooting_error_sm_access_denied"></a>

### 一般的な原因
<a name="troubleshooting_common_cause"></a>

このエラーは、モデルパッケージまたはアルゴリズムの作成に使用されているイメージが、別の AWS アカウントに属する [Amazon ECR](https://aws.amazon.com/ecr/) リポジトリに保存されている場合に発生することがあります。モデルパッケージまたはアルゴリズムの検証は、クロスアカウントイメージをサポートしていません。

### 解決策
<a name="troubleshooting_resolution"></a>

イメージを、公開に AWS アカウント 使用している が所有する Amazon ECR リポジトリにコピーします。次に、新しいイメージロケーションを使用してリソースを作成します。

## Amazon SageMaker AI:「開始されていません」と「クライアントエラー:スキャンがスケジュールされていません...」というメッセージが表示される モデルパッケージまたはアルゴリズムリソースを作成すると、失敗するメッセージが表示される
<a name="troubleshooting_error_sm_failure"></a>

### 一般的な原因
<a name="troubleshooting_common_cause"></a>

このエラーは、SageMaker AI が Amazon ECR に保存されている Docker コンテナイメージのスキャンを開始できなかった場合に発生することがあります。

### 解決策
<a name="troubleshooting_resolution"></a>

この場合は、[Amazon ECR コンソール](https://console.aws.amazon.com/ecr/repositories?region=us-east-2)を開き、イメージがアップロードされた先のリポジトリを見つけてイメージを選択し、**[スキャン]** を選択してください。