トレーニングジョブの拡張マニフェストファイル - Amazon SageMaker AI

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

トレーニングジョブの拡張マニフェストファイル

データセットとともにメタデータをトレーニングジョブに含めるには、拡張マニフェストファイルを使用します。拡張マニフェストファイルを使用する場合は、データセットを Amazon Simple Storage Service (Amazon S3) に保存し、そこに保存されているデータセットを使用するようにトレーニングジョブを設定する必要があります。1 つ以上の Channel に対してこのデータセットの場所と形式を指定します。拡張マニフェストはパイプ入力モードのみをサポートできます。パイプ入力モードの詳細については、「Channel」の「InputMode」セクションを参照してください。

チャネルのパラメータを指定するときは、S3Uri と呼ばれるファイルへのパスを指定します。Amazon SageMaker AI は、 S3DataTypeで指定された に基づいてこの URI を解釈しますS3DataSourceAugmentedManifestFile オプションは、入力データを含むメタデータを含むマニフェスト形式を定義します。データにラベルを付けた場合は、拡張マニフェストファイルの使用が、前処理の代わりになります。ラベル付きのデータを使用してジョブをトレーニングする場合は、通常、トレーニング前にデータセットを前処理して、データセットをメタデータと結合する必要があります。トレーニングデータセットが大きい場合、前処理に時間とコストがかかる可能性があります。

拡張マニフェストファイル形式

拡張マニフェストファイルは JSON Lines 形式で形式設定する必要があります。JSON Lines 形式では、ファイル内の各行が完全な JSON オブジェクトであり、その後に改行区切り文字が続きます。

トレーニング中、SageMaker AI は各 JSON 行を解析し、その属性の一部またはすべてをトレーニングアルゴリズムに送信します。渡す属性の内容とそれらを渡す順序は、CreateTrainingJob API の AttributeNames パラメータで指定します。AttributeNames パラメータは、SageMaker AI がトレーニング入力として使用する JSON オブジェクトで検索する属性名の順序付きリストです。

たとえば、AttributeNames["line", "book"] をリストした場合、入力データには、指定された順序で linebook の属性名を含める必要があります。この例では、次の拡張マニフェストファイルの内容が有効です。

{"author": "Herman Melville", "line": "Call me Ishmael", "book": "Moby Dick"} {"line": "It was love at first sight.", "author": "Joseph Heller", "book": "Catch-22"}

SageMaker AI は、リストされた属性の前にある、続く、またはリストされた属性の間にある場合でも、リストされていない属性名を無視します。

拡張マニフェストファイルを使用するときには、以下のガイドラインに従ってください。

  • AttributeNames パラメータにリストされている属性の順序によって、トレーニングジョブでアルゴリズムに渡される属性の順序が決まります。

  • リストされている AttributeNames は、JSON 行のすべての属性のサブセットにすることができます。SageMaker AI は、ファイル内のリストされていない属性を無視します。

  • テキスト、数値、データ配列、オブジェクトなど、JSON 形式で許可されている任意のタイプのデータを AttributeNames に指定できます。

  • 属性名として S3 URI を含めるには、サフィックス -ref をそれに追加します。

属性名にサフィックス -ref が含まれている場合、属性の値はトレーニングジョブにアクセス可能なデータファイルの S3 URI である必要があります。例えば、AttributeNames["image-ref", "is-a-cat"] が含まれている場合、次の例は有効な拡張マニフェストファイルを示しています。

{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "is-a-cat": 1} {"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "is-a-cat": 0}

このマニフェストファイルの最初の JSON 行の場合、SageMaker AI は からimage1.jpgファイルを取得しs3://amzn-s3-demo-bucket/sample01/、イメージ分類"1"is-a-cat 属性の文字列表現を取得します。

ヒント

拡張マニフェストファイルを作成するには、Amazon SageMaker Ground Truth を使用してラベル付けジョブを作成します。ラベル付けジョブの出力の詳細については、「ラベル付けジョブの出力データ」を参照してください。

拡張マニフェストファイルを使用する

以下のセクションでは、Amazon SageMaker SageMaker トレーニングジョブで拡張マニフェストファイルを使用する方法を示します。 SageMaker

拡張マニフェストファイルを使用する (コンソール)

この手順を完了するには、以下が必要です。

  • 拡張マニフェストファイルを保存している S3 バケットの URL。

  • 拡張マニフェストファイルにリストされているデータを S3 バケットに保存する。

  • ジョブの出力を保存する S3 バケットの URL。

拡張マニフェストファイルをトレーニングジョブで使用する (コンソール)
  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker AI コンソールを開きます。

  2. ナビゲーションペインで [トレーニング]、[トレーニングジョブ] の順に選択します。

  3. [トレーニングジョブの作成] を選択します。

  4. トレーニングジョブの名前を指定します。名前は、 AWS アカウントの リージョン内で一意 AWS である必要があります。1 〜 63 文字で指定できます。有効な文字は、a ~ z、A ~ Z、0 ~ 9、および . : + = @ _ % - (ハイフン) です。

  5. 使用するアルゴリズムを選択します。サポートされている組み込みアルゴリズムの詳細については、「Amazon SageMaker の組み込みアルゴリズムと事前トレーニング済みモデル」を参照してください。カスタムアルゴリズムを使用するには、パイプモードと互換性があることを確認してください。

  6. (オプション) [リソース設定] で、デフォルト値をそのまま使用するか、計算時間を短縮するためにリソース使用量を増やします。

    1. (オプション) [インスタンスタイプ] で、使用する ML コンピューティングインスタンスのタイプを選択します。ほとんどの場合、ml.m4.xlarge で十分です。

    2. [インスタンス数] で、デフォルトの 1 を使用します。

    3. (オプション) [インスタンスあたりのボリュームサイズ (GB)] で、プロビジョニングする ML ストレージボリュームのサイズを選択します。ほとんどの場合、デフォルトの 1 を使用できます。大規模なデータセットを使用する場合は、サイズを大きくします。

  7. トレーニングデータセットの入力データに関する情報を入力します。

    1. [チャネル名] で、デフォルト (train) をそのまま使用するか、training-augmented-manifest-file のようにわかりやすい名前を入力します。

    2. [入力モード] で [Pipe (パイプ)] を選択します。

    3. [S3 データディストリビューションタイプ] で [FullyReplicated] を選択します。段階的にトレーニングする場合は、完全なレプリケーションを実行すると、各 ML コンピューティングインスタンスが、展開されたデータセットの完全なコピーを使用します。ニューラルトピックモデル (NTM) アルゴリズム などのニューラルベースのアルゴリズムの場合は、ShardedByS3Key を選択します。

    4. 拡張マニフェストファイルで指定されたデータが圧縮されていない場合は、[圧縮の種類] を [なし] に設定します。データが gzip を使用して圧縮されている場合は、[Gzip] に設定します。

    5. (オプション) [コンテンツタイプ] に、適切な MIME タイプを指定します。コンテンツタイプ は、多目的インターネットメール拡張 (MIME) タイプのデータです。

    6. [レコードラッパー] で、拡張マニフェストファイルで指定されたデータセットが RecordIO 形式で保存されている場合は、[RecordIO] を選択します。データセットが RecordIO 形式のファイルとして保存されていない場合は、[なし] を選択します。

    7. [S3 データタイプ] で [AugmentedManifestFile (拡張マニフェストファイル)] を選択します。

    8. [S3 の場所] に、拡張マニフェストファイルを保存したバケットのパスを指定します。

    9. [AugmentedManifestFile attribute names (拡張マニフェストファイルの属性名)] に、使用する属性の名前を指定します。属性名は、拡張マニフェストファイル内に存在する必要があり、大文字と小文字が区別されます。

    10. (オプション) 属性名をさらに追加するには、[行を追加] を選択して、各属性に別の属性名を指定します。

    11. (オプション) 属性名の順序を調整するには、名前の横にある上下ボタンを選択します。拡張マニフェストファイルを使用するときには、指定する属性名の順序が重要です。

    12. [完了] をクリックします。

  8. [出力データ設定] で、以下の情報を入力します。

    1. [S3 の場所] に、出力データを保存する S3 バケットのパスを入力します。

    2. (オプション) AWS Key Management Service (AWS KMS) 暗号化キーを使用して、保管中の出力データを暗号化できます。[暗号化キー] に、キー ID またはその Amazon リソース番号 (ARN) を入力します。詳細については、KMS で管理された暗号化キーを参照してください。

  9. (オプション) [タグ] で、1 つ以上のタグをトレーニングジョブに追加します。タグは、定義して AWS リソースに割り当てることができるメタデータです。この例では、タグを使用してトレーニングジョブを管理しやすくすることができます。タグは、ユーザーが定義するキーと値で構成されます。たとえば、Project をキーとし、Home value forecasts などのトレーニングジョブに関連するプロジェクトを参照する値を持つタグを作成するとします。

  10. [トレーニングジョブの作成] を選択します。SageMaker AI はトレーニングジョブを作成して実行します。

トレーニングジョブが完了すると、SageMaker AI は、出力データ設定フィールドに S3 出力パスにパスを指定したバケットにモデルアーティファクトを保存します。モデルをデプロイして予測を得るには、モデルを Amazon EC2 にデプロイするを参照してください。

拡張マニフェストファイルを使用する (API)

以下は、SageMaker AI の高レベル Python ライブラリを使用して、拡張マニフェストファイルでモデルをトレーニングする方法を示しています。

import sagemaker # Create a model object set to using "Pipe" mode. model = sagemaker.estimator.Estimator( training_image, role, instance_count=1, instance_type='ml.p3.2xlarge', volume_size = 50, max_run = 360000, input_mode = 'Pipe', output_path=s3_output_location, sagemaker_session=session ) # Create a train data channel with S3_data_type as 'AugmentedManifestFile' and attribute names. train_data = sagemaker.inputs.TrainingInput( your_augmented_manifest_file, distribution='FullyReplicated', content_type='application/x-recordio', s3_data_type='AugmentedManifestFile', attribute_names=['source-ref', 'annotations'], input_mode='Pipe', record_wrapping='RecordIO' ) data_channels = {'train': train_data} # Train a model. model.fit(inputs=data_channels, logs=True)

トレーニングジョブが完了すると、SageMaker AI は、出力データ設定フィールドに S3 出力パスにパスを指定したバケットにモデルアーティファクトを保存します。モデルをデプロイして予測を得るには、モデルを Amazon EC2 にデプロイするを参照してください。