

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

# アルゴリズムとモデルパッケージのリソースの作成


トレーニングや推論コードが Docker コンテナでパッケージ化されたら、お使いの Amazon SageMaker AI アカウントで使用できるアルゴリズムとモデルパッケージリソースを作成し、必要に応じて AWS Marketplaceで公開します。

**Topics**
+ [

# アルゴリズムリソースを作成する
](sagemaker-mkt-create-algo.md)
+ [

# モデルパッケージのリソースを作成する
](sagemaker-mkt-create-model-package.md)

# アルゴリズムリソースを作成する


Amazon SageMaker AI のトレーニングジョブで使用するアルゴリズムリソースを作成し、 AWS Marketplaceに公開できます。以下のセクションでは、 AWS マネジメントコンソール と SageMaker API を使用してこれを行う方法について説明します。

アルゴリズムリソースを作成するには、次の情報を指定します。
+ トレーニングと、オプションで推論コードを含む Docker コンテナ。
+ アルゴリズムがトレーニングに対して期待する入力データの設定。
+ アルゴリズムがサポートするハイパーパラメータ。
+ トレーニングジョブ中にアルゴリズムが Amazon CloudWatch に送信するメトリクス。
+ アルゴリズムがトレーニングと推論のためにサポートするインスタンスタイプ、および複数のインスタンスにわたる分散トレーニングがサポートされるかどうか。
+ 検証プロファイルは、SageMaker AI がアルゴリズムのトレーニングコードをテストするために使用するトレーニングジョブで、SageMaker AI がアルゴリズムの推論コードをテストするために実行するバッチ変換ジョブでもあります。

  購入者と販売者が、SageMaker AI で商品が機能すると確信できるようにするには、 AWS Marketplaceに出品する前にアルゴリズムを検証する必要があります。検証が成功した AWS Marketplace 場合にのみ、 に製品を一覧表示できます。アルゴリズムを検証するために、SageMaker AI はユーザーの検証プロファイルとサンプルデータを使用して以下の検証タスクを実行します。

  1. お使いのアカウントでトレーニングジョブを作成して、トレーニングイメージが SageMaker AI で機能することを検証します。

  1. アルゴリズムに推論コードを含めた場合は、アルゴリズムの推論イメージと、トレーニングジョブによって生成されたモデルアーティファクトを使用して、アカウントでモデルを作成します。

  1. アルゴリズムに推論コードが含まれる場合は、お使いのアカウントでモデルを使用して変換ジョブを作成し、推論イメージが SageMaker AI で機能することを検証します。

  に製品を一覧表示すると AWS Marketplace、この検証プロセスの入出力は製品の一部として保持され、購入者が利用できるようになります。これにより、購入者は購入前に商品を理解し、評価することができます。購入者は、たとえば使用された入力データ、生成された出力、およびコードによって発行されたログとメトリクスを調べることができます。検証仕様がより包括的であるほど、顧客による商品の評価が容易になります。
**注記**  
検証プロファイルには、公開しても構わないデータのみを指定してください。

  検証には数時間かかることがあります。アカウントでジョブのステータスを確認するには、SageMaker AI コンソールで **[トレーニングジョブ]** ページと **[変換ジョブ]** ページを参照してください。検証に失敗した場合は、SageMaker AI コンソールからスキャンレポートと検証レポートにアクセスできます。問題が見つかった場合は、アルゴリズムをもう一度作成する必要があります。
**注記**  
アルゴリズムを公開するには AWS Marketplace、少なくとも 1 つの検証プロファイルが必要です。

アルゴリズムを作成するには、SageMaker AI コンソールまたは SageMaker AI API を使います。

**Topics**
+ [

## アルゴリズムリソースを作成する (コンソール)
](#sagemaker-mkt-create-algo-console)
+ [

## アルゴリズムリソースを作成する (API)
](#sagemaker-mkt-create-algo-api)

## アルゴリズムリソースを作成する (コンソール)


**アルゴリズムリソースを作成するには (コンソール)**

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

1. 左側のメニューから **[トレーニング]** を選択します。

1. ドロップダウンメニューから **[アルゴリズム]** を選択し、**[アルゴリズムの作成]** を選択します。

1. [**Training specifications (トレーニング仕様)**] ページで、以下の情報を指定します。

   1. [**アルゴリズム名**] では、アルゴリズムの名前を入力します。アルゴリズム名は、アカウントと AWS リージョンで一意である必要があります。名前は 1 ～ 64 文字で指定する必要があります。有効な文字は、a～z、A～Z、0～9、- (ハイフン) です。

   1. アルゴリズムの説明を入力します。この説明は、SageMaker AI コンソールと AWS Marketplaceに表示されます。

   1. **[Training image]** (トレーニングイメージ) には、トレーニングコンテナが保存されている Amazon ECR のパスを入力します。

   1. [**Support distributed training (分散トレーニングのサポート)**] では、アルゴリズムが複数のインスタンスでのトレーニングをサポートしている場合に [**はい**] を選択します。それ以外の場合は [**いいえ**] を選択します。

   1. [**Support instance types for training (トレーニングのインスタンスタイプをサポート)**] では、アルゴリズムがサポートしているインスタンスタイプを選択します。

   1. [**Channel specification (チャネル仕様)**] では、アルゴリズムの入力データを最大 8 チャネルまで指定します。たとえば、`train`、`validation`、および `test` という 3 つの入力チャネルを指定できます。各チャネルについて、以下の情報を指定します。

      1. [**チャネル名**] には、チャネルの名前を入力します。名前は 1 ～ 64 文字で指定する必要があります。有効な文字は、a～z、A～Z、0～9、- (ハイフン) です。

      1. アルゴリズムのチャネルを要求するには、[**Channel required (チャネルは必須)**] を選択します。

      1. チャネルの説明を入力します。

      1. [**Supported input modes (サポートされている入力モード)**] では、アルゴリズムが入力データのストリーミングをサポートしている場合は [**Pipe mode (パイプモード)**] を、入力データのファイルとしてのダウンロードをサポートしている場合は [**File mode (ファイルモード)**] を選択します。両方を選択することもできます。

      1. [**Supported content types (サポートされるコンテンツタイプ)**] には、アルゴリズムが入力データに期待する MIME タイプを入力します。

      1. [**Supported compression type (サポートされている圧縮タイプ)**] では、アルゴリズムが Gzip 圧縮をサポートしている場合に [**Gzip**] を選択します。それ以外の場合は、[**なし**] を選択します。

      1. 別のデータ入力チャネルを追加するには [**チャネルの追加**] を選択し、チャネルの追加が終わったら [**次へ**] を選択します。

1. [**Tuning specifications (調整仕様)**] ページで、以下の情報を指定します。

   1. [**Hyperparameter specification (ハイパーパラメータの仕様)**] では、JSON オブジェクトを編集して、アルゴリズムがサポートするハイパーパラメータを指定します。アルゴリズムがサポートしているハイパーパラメータごとに、次のような JSON ブロックを作成します。

      ```
      {
      "DefaultValue": "5",
      "Description": "The first hyperparameter",
      "IsRequired": true,
      "IsTunable": false,
      "Name": "intRange",
      "Range": {
      "IntegerParameterRangeSpecification": {
      "MaxValue": "10",
      "MinValue": "1"
      },
      "Type": "Integer"
      }
      ```

      JSON で以下を指定します。

      1. `DefaultValue` には、ハイパーパラメータのデフォルト値がある場合にそれを指定します。

      1. `Description` には、ハイパーパラメータの説明を指定します。

      1. `IsRequired` では、ハイパーパラメータが必要かどうかを指定します。

      1. `IsTunable` には、ユーザーがこのアルゴリズムを使用するハイパーパラメータ調整ジョブを実行するときにこのハイパーパラメータを調整できる場合に、`true` を指定します。詳細については、「[SageMaker AI の自動モデルチューニング](automatic-model-tuning.md)」を参照してください。

      1. `Name` には、ハイパーパラメータの名前を指定します。

      1. `Range` には、次のいずれかを指定します。
         + `IntegerParameterRangeSpecification` - ハイパーパラメータの値は整数である。ハイパーパラメータの最小値と最大値を指定します。
         + 
         + `ContinuousParameterRangeSpecification` - ハイパーパラメータの値は浮動小数点値である。ハイパーパラメータの最小値と最大値を指定します。
         + `CategoricalParameterRangeSpecification` - ハイパーパラメータの値はカテゴリ別の値である。指定可能なすべての値をリスト形式で指定します。

      1. `Type` には、`Integer`、`Continuous`、または `Categorical` を指定します。値は、指定した `Range` のタイプに対応している必要があります。

   1. **[Metric definitions]** (メトリクス定義) には、アルゴリズムが出力するトレーニングメトリクスを指定します。SageMaker AI は、トレーニング中にトレーニングコンテナのログを解析することにより、ここで指定された正規表現を使用してメトリクスを見つけます。ユーザーは、アルゴリズムを使用してトレーニングジョブを実行するときに、このメトリクスを表示し、Amazon CloudWatch でモニタリングおよびプロットできます。詳細については、「[トレーニングジョブのモニタリングと分析を行うための Amazon CloudWatch メトリクス](training-metrics.md)」を参照してください。各メトリクスについて、以下の情報を指定します。

      1. [**メトリクス名**] には、メトリクスの名前を入力します。

      1. `Regex` には、メトリクス値を見つけられるように、SageMaker AI がトレーニングログを解析する際に使用する正規表現を入力します。

      1. [**Objective metric support (目標メトリクスのサポート)**] では、このメトリクスをハイパーパラメータ調整ジョブの目標メトリクスとして使用できる場合に [**はい**] を選択します。詳細については、「[SageMaker AI の自動モデルチューニング](automatic-model-tuning.md)」を参照してください。

      1. 別のメトリクスを追加するには [**メトリクスの追加**] を選択し、メトリクスの追加が終わったら [**次へ**] を選択します。

1. アルゴリズムが推論をサポートしている場合は、[**Inference specifications (推論の仕様)**] ページで以下の情報を指定します。

   1. **[推論イメージの場所]** には、推論コンテナが保存されている Amazon ECR 内のパスを入力します。

   1. [**Container DNS host name (コンテナの DNS ホスト名)**] には、イメージの DNS ホストの名前を入力します。

   1. **[リアルタイム推論のサポートインスタンスタイプ]** では、SageMaker AI がホストするエンドポイントとしてデプロイされたモデル用に、アルゴリズムがサポートしているインスタンスタイプを選択します。詳細については、「[推論のためのモデルをデプロイする](deploy-model.md)」を参照してください。

   1. [**Supported instance types for batch transform jobs (バッチ変換ジョブでサポートされているインスタンスタイプ)**] では、アルゴリズムがバッチ変換ジョブ用にサポートしているインスタンスタイプを選択します。詳細については、「[Amazon SageMaker AI による推論のためのバッチ変換](batch-transform.md)」を参照してください。

   1. [**Supported content types (サポートされるコンテンツタイプ)**] には、アルゴリズムが推論リクエストに期待する入力データのタイプを入力します。

   1. [**Supported response MIME types (サポートされているレスポンス MIME タイプ)**] には、アルゴリズムが推論レスポンス用にサポートしている MIME タイプを入力します。

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

1. [**Validation specifications (検証の仕様)**] ページで、以下の情報を指定します。

   1. **このアルゴリズムを公開する AWS Marketplace** で、は**い** を選択してアルゴリズムを に公開します AWS Marketplace。

   1. アルゴリズムのトレーニングコードや推論コードをテストするために指定したトレーニングジョブやバッチ変換ジョブを SageMaker AI で実行する場合は、**[このリソースを検証する]** で **[はい]** を選択します。
**注記**  
アルゴリズムを公開するには AWS Marketplace、アルゴリズムを検証する必要があります。

   1. **[IAM ロール]** では、SageMaker AI でのトレーニングジョブとバッチ変換ジョブの実行に必要な許可を持つ IAM ロールを選択するか、**[新しいロールを作成]** を選択して、`AmazonSageMakerFullAccess` 管理ポリシーがアタッチされたロールの作成を SageMaker AI に許可します。詳細については、「[SageMaker AI 実行ロールの使用方法](sagemaker-roles.md)」を参照してください。

   1. [**Validation profile (検証プロファイル)**] では、以下を指定します。
      + 検証プロファイルの名前。
      + [**Training job definition (トレーニングジョブ定義)**]。これは、トレーニングジョブを記述する JSON ブロックです。これは、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API の [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html) 入力パラメータと同じ形式です。
      + [**Transform job definition (変換ジョブの定義)**]。これは、バッチ変換ジョブを記述する JSON ブロックです。これは、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API の [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) 入力パラメータと同じ形式です。

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

## アルゴリズムリソースを作成する (API)


SageMaker API を使用してアルゴリズムリソースを作成するには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API を呼び出します。

# モデルパッケージのリソースを作成する


Amazon SageMaker AI でデプロイ可能なモデルを作成し、 で公開するために使用できるモデルパッケージリソースを作成するには、次の情報 AWS Marketplace を指定します。
+ 推論コード、またはモデルの学習に使用されたアルゴリズムリソースを含む Docker コンテナ。
+ モデルアーティファクトの場所。モデルアーティファクトは、推論コードと同じ Docker コンテナでパッケージ化するか、Amazon S3 に保存します。
+ モデルパッケージがリアルタイム推論ジョブとバッチ変換ジョブの両方に対してサポートするインスタンスタイプ。
+ 検証プロファイル。モデルパッケージの推論コードをテストするために SageMaker AI が実行するバッチ変換ジョブです。

  モデルパッケージを一覧表示する前に AWS Marketplace、検証する必要があります。これにより購入者と販売者は、Amazon SageMaker AI で商品が機能することを確認できます。検証が成功した AWS Marketplace 場合にのみ、 に製品を一覧表示できます。

  検証手順では、検証プロファイルとサンプルデータを使用して、以下の検証タスクを実行します。

  1. モデルパッケージの推論イメージと、Amazon S3 に保存されているオプションのモデルアーティファクトを使用して、お使いのアカウントでモデルを作成します。
**注記**  
モデルパッケージは、それを作成したリージョンに固有です。モデルアーティファクトが保存されている S3 バケットは、モデルパッケージを作成したリージョンと同じリージョンに存在している必要があります。

  1. お使いのアカウントでモデルを使用して変換ジョブを作成し、推論イメージが SageMaker AI で機能することを検証します。

  1. 検証プロファイルを作成します。
**注記**  
検証プロファイルには、公開しても構わないデータのみを指定してください。

  検証には数時間かかることがあります。アカウントでジョブのステータスを確認するには、SageMaker AI コンソールで **[変換ジョブ]** ページを参照してください。検証に失敗した場合は、SageMaker AI コンソールからスキャンレポートと検証レポートにアクセスできます。問題を修正したら、アルゴリズムを再作成します。アルゴリズムのステータスが `COMPLETED` である場合は、SageMaker AI コンソールでそのアルゴリズムを見つけて、出品プロセスを開始します。
**注記**  
モデルパッケージを に公開するには AWS Marketplace、少なくとも 1 つの検証プロファイルが必要です。

モデルパッケージを作成するには、SageMaker AI コンソールまたは SageMaker API を使用します。

**Topics**
+ [

## モデルパッケージのリソースを作成する (コンソール)
](#sagemaker-mkt-create-model-pkg-console)
+ [

## モデルパッケージのリソースを作成する (API)
](#sagemaker-mkt-create-model-pkg-api)

## モデルパッケージのリソースを作成する (コンソール)


**SageMaker AI コンソールでモデルパッケージを作成するには**

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

1. 左側のメニューで、**[推論]** を選択します。

1. **[Marketplace モデルパッケージ]** を選択し、**[Marketplace モデルパッケージを作成]** を選択します。

1. [**Inference specifications (推論の仕様)**] ページで、以下の情報を指定します。

   1. [**Model package name (モデルパッケージ名)**] には、モデルパッケージの名前を入力します。モデルパッケージ名は、アカウントと AWS リージョンで一意である必要があります。名前は 1 ～ 64 文字で指定する必要があります。有効な文字は、a～z、A～Z、0～9、- (ハイフン) です。

   1. モデルパッケージの説明を入力します。この説明は、SageMaker AI コンソールと AWS Marketplaceに表示されます。

   1. [**Inference specification options (推論仕様のオプション)**] では、[**Provide the location of the inference image and model artifacts (推論イメージとモデルアーティファクトの場所を指定)**] を選択して、推論コンテナとモデルアーティファクトを使用してモデルパッケージを作成します。[**Provide the algorithm used for training and its model artifacts (トレーニング用に使用したアルゴリズムとそのモデルアーティファクトを指定)**] を選択して、 AWS Marketplaceから作成したアルゴリズムリソースまたはサブスクライブしているアルゴリズムリソースからモデルパッケージを作成します。

   1. **[Inference specification options]** (推論仕様のオプション) に **[Provide the location of the inference image and model artifacts]** (推論イメージとモデルアーティファクトの場所を指定) を選択した場合、**Container definition** (コンテナの定義) と **Supported resources** (サポートされるリソース) に以下の情報を指定します。

      1. [**Location of inference image (推論イメージの場所)**] には、推論コードを含むイメージのパスを入力します。イメージは、Amazon ECR で Docker コンテナとして保存されている必要があります。

      1. [**Location of model data artifacts (モデルデータアーティファクトの場所)**] には、モデルアーティファクトが保存されている S3 内の場所を入力します。

      1. [**Container DNS host name (コンテナの DNS ホスト名)**] には、コンテナに使用する DNS ホストの名前を入力します。

      1. **[リアルタイム推論のサポートインスタンスタイプ]** では、SageMaker AI がホストするエンドポイントからのリアルタイム推論用にモデルパッケージがサポートしているインスタンスタイプを選択します。

      1. [**Supported instance types for batch transform jobs (バッチ変換ジョブでサポートされているインスタンスタイプ)**] では、モデルパッケージがバッチ変換ジョブ用にサポートしているインスタンスタイプを選択します。

      1. [**Supported content types (サポートされるコンテンツタイプ)**] に、モデルパッケージが推論リクエストに期待するコンテンツタイプを入力します。

      1. [**Supported response MIME types (サポートされているレスポンス MIME タイプ)**] には、モデルパッケージが推論を提供するために使用する MIME タイプを入力します。

   1. **[Inference specification options]** (推論仕様のオプション) に **[Provide the algorithm used for training and its model artifacts]** (トレーニングに使用するアルゴリズムとそのモデルアーティファクトを指定) を選択した場合は、以下の情報を指定します。

      1. [**Algorithm ARN (アルゴリズム ARN)**] には、モデルパッケージの作成に使用するアルゴリズムリソースの Amazon リソースネーム (ARN) を入力します。

      1. [**Location of model data artifacts (モデルデータアーティファクトの場所)**] には、モデルアーティファクトが保存されている S3 内の場所を入力します。

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

1. [**Validation and scanning (検証およびスキャン)**] ページで、以下の情報を指定します。

   1. **このモデルパッケージを に公開 AWS Marketplace**するには、**はい** を選択してモデルパッケージを に公開します AWS Marketplace。

   1. モデルパッケージの推論コードをテストするために指定したバッチ変換ジョブを SageMaker AI で実行する場合は、**[このリソースを検証する]** で **[はい]** を選択します。
**注記**  
モデルパッケージを に公開するには AWS Marketplace、モデルパッケージを検証する必要があります。

   1. **[IAM ロール]** では、SageMaker AI でのバッチ変換ジョブの実行に必要な許可を持つ IAM ロールを選択するか、**[新しいロールを作成]** を選択して、`AmazonSageMakerFullAccess` 管理ポリシーがアタッチされたロールの作成を SageMaker AI に許可します。詳細については、「[SageMaker AI 実行ロールの使用方法](sagemaker-roles.md)」を参照してください。

   1. [**Validation profile (検証プロファイル)**] では、以下を指定します。
      + 検証プロファイルの名前。
      + [**Transform job definition (変換ジョブの定義)**]。これは、バッチ変換ジョブを記述する JSON ブロックです。これは、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API の [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) 入力パラメータと同じ形式です。

1. **[Marketplace モデルパッケージを作成]** を選択します。

## モデルパッケージのリソースを作成する (API)


SageMaker API を使用してモデルパッケージを作成するには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html) API を呼び出します。