アルゴリズムリソースを作成する - Amazon SageMaker

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

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

Amazon でトレーニングジョブを実行し SageMaker 、 で公開するために使用できるアルゴリズムリソースを作成するには、次の情報 AWS Marketplace を指定します。

  • トレーニングと、オプションで推論コードを含む Docker コンテナ。

  • アルゴリズムがトレーニングに対して期待する入力データの設定。

  • アルゴリズムがサポートするハイパーパラメータ。

  • トレーニングジョブ CloudWatch 中にアルゴリズムが Amazon に送信するメトリクス。

  • アルゴリズムがトレーニングと推論のためにサポートするインスタンスタイプ、および複数のインスタンスにわたる分散トレーニングがサポートされるかどうか。

  • 検証プロファイルは、アルゴリズムのトレーニングコードをテストするために が SageMaker 使用するトレーニングジョブであり、アルゴリズムの推論コードをテストするために が SageMaker 実行するバッチ変換ジョブです。

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

    1. アカウントにトレーニングジョブを作成して、トレーニングイメージが で動作することを確認します SageMaker。

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

    3. アルゴリズムに推論コードを含めた場合は、モデルを使用してアカウントに変換ジョブを作成し、推論イメージが で動作することを確認します SageMaker。

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

    注記

    検証プロファイルには、公開しても構わないデータのみを指定してください。

    検証には数時間かかることがあります。アカウント内のジョブのステータスを確認するには、 SageMaker コンソールの「トレーニングジョブ変換ジョブ」ページを参照してください。検証に失敗した場合は、 SageMaker コンソールからスキャンレポートと検証レポートにアクセスできます。問題が見つかった場合は、アルゴリズムをもう一度作成する必要があります。

    注記

    アルゴリズムを に公開するには AWS Marketplace、少なくとも 1 つの検証プロファイルが必要です。

SageMaker コンソールまたは SageMaker API を使用してアルゴリズムを作成できます。

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

アルゴリズムリソースを作成するには (コンソール)
  1. https://console.aws.amazon.com/sagemaker/ で SageMaker コンソールを開きます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. [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 には、ハイパーパラメータのデフォルト値がある場合にそれを指定します。

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

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

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

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

      6. Range には、次のいずれかを指定します。

        • IntegerParameterRangeSpecification - ハイパーパラメータの値は整数である。ハイパーパラメータの最小値と最大値を指定します。

        • ContinuousParameterRangeSpecification - ハイパーパラメータの値は浮動小数点値である。ハイパーパラメータの最小値と最大値を指定します。

        • CategoricalParameterRangeSpecification - ハイパーパラメータの値はカテゴリ別の値である。指定可能なすべての値をリスト形式で指定します。

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

    2. メトリクス定義 には、アルゴリズムで emit. SageMaker use にするトレーニングメトリクスを指定します。トレーニング中にトレーニングコンテナのログを解析して、メトリクスを検索するために指定する正規表現を使用します。ユーザーは、アルゴリズムを使用してトレーニングジョブを実行するときにこれらのメトリクスを表示でき、Amazon でメトリクスをモニタリングしてプロットできます CloudWatch。詳細については、Amazon CloudWatch メトリクスを使用したトレーニングジョブのモニタリングと分析 を参照してください。各メトリクスについて、以下の情報を指定します。

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

      2. にはRegex、 がメトリクス値を検索できるようにトレーニングログを解析 SageMaker するために使用する正規表現を入力します。

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

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

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

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

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

    3. [Supported instance types for real-time inference (リアルタイム推論のサポートインスタンスタイプ)] では、 SageMaker でホストエンドポイントとしてデプロイされたモデル用にアルゴリズムがサポートしているインスタンスタイプを選択します。詳細については、推論のためのモデルをデプロイする を参照してください。

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

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

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

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

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

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

    2. このリソースを検証する で、アルゴリズムのトレーニングや推論コードをテスト SageMaker するために指定したトレーニングジョブやバッチ変換ジョブを実行する場合は、はい を選択します。

      注記

      アルゴリズムを に公開するには AWS Marketplace、アルゴリズムを検証する必要があります。

    3. IAM ロール で、 でトレーニングジョブとバッチ変換ジョブを実行するために必要なアクセス許可を持つ IAM ロールを選択するか SageMaker、新しいロールの作成 を選択して、 が AmazonSageMakerFullAccess管理ポリシーがアタッチされたロール SageMaker を作成できるようにします。詳細については、 SageMaker 実行ロールの使用方法 を参照してください。

    4. [Validation profile (検証プロファイル)] では、以下を指定します。

      • 検証プロファイルの名前。

      • [Training job definition (トレーニングジョブ定義)]。これは、トレーニングジョブを記述する JSON ブロックです。これは、CreateAlgorithm API の TrainingJobDefinition 入力パラメータと同じ形式です。

      • [Transform job definition (変換ジョブの定義)]。これは、バッチ変換ジョブを記述する JSON ブロックです。これは、CreateAlgorithm API の TransformJobDefinition 入力パラメータと同じ形式です。

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

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

SageMaker API を使用してアルゴリズムリソースを作成するには、 CreateAlgorithm API を呼び出します。