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

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

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

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

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

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

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

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

たとえば、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 は、リストされた属性の前にある、従う、またはリストされた属性の間にある場合でも、リストされていない属性名を無視します。

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

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

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

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

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

属性名にサフィックス が含まれている場合-ref、属性の値は、トレーニングジョブにアクセスできるURIデータファイルの S3 である必要があります。例えば、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行の場合、 は からimage1.jpgファイル SageMaker を取得しs3://amzn-s3-demo-bucket/sample01/、イメージ分類"1"is-a-cat 属性の文字列表現を取得します。

ヒント

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

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

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

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

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

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

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

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

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

  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. InputModeパイプ を選択します。

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

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

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

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

    7. S3 データ型 の場合は、 を選択しますAugmentedManifestFile

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

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

    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 を作成して実行します。

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

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

以下は、 SageMaker 高レベルの 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)

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