Amazon FSx for Lustre を使用するようにデータ入力チャネルを設定する - Amazon SageMaker AI

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

Amazon FSx for Lustre を使用するようにデータ入力チャネルを設定する

Amazon FSx for Lustre をデータソースとして使用して、データロードにかかる時間を短縮することで、スループットを向上させ、トレーニングを高速化する方法を説明します。

注記

P4d や P3dn などの EFA 対応インスタンスを使用するときは、セキュリティグループに適切なインバウンドルールと出力ルールを設定します。特に、SageMaker AI がトレーニングジョブで Amazon FSx ファイルシステムにアクセスするには、これらのポートを開く必要があります。詳細については、「Amazon VPC を使用したファイルシステムアクセスコントロール」を参照してください。

Amazon S3 と Amazon FSx for Lustre を同期する

Amazon S3 を Amazon FSx for Lustre にリンクし、トレーニングデータセットをアップロードするには、次の操作を行います。

  1. データセットを準備して Amazon S3 バケットにアップロードします。例えば、トレーニングデータセットとテストデータセットの Amazon S3 パスが次の形式であると仮定します。

    s3://amzn-s3-demo-bucket/data/train s3://amzn-s3-demo-bucket/data/test
  2. トレーニングデータを含む Amazon S3 バケットにリンクされた FSx for Lustre ファイルシステムを作成するには、「Amazon FSx for Lustre ユーザーガイド」の「Amazon S3 バケットにファイルシステムをリンクする」の手順に従います。Amazon S3 アクセスを許可するエンドポイントを VPC に追加していることを確認します。詳細については、「Amazon S3 VPC エンドポイントを作成する」を参照してください。データリポジトリパスを指定するときは、データセットを含むフォルダの Amazon S3 バケット URI を指定します。例えば、ステップ 1 の S3 パスの例に基づくと、データリポジトリのパスは次のようになります。

    s3://amzn-s3-demo-bucket/data
  3. FSx for Lustre ファイルシステムを作成したら、次のコマンドを実行して構成情報を確認します。

    aws fsx describe-file-systems && \ aws fsx describe-data-repository-association

    これらのコマンドは FileSystemIdMountNameFileSystemPath、および DataRepositoryPath を返します。例えば、出力は以下のようになるはずです。

    # Output of aws fsx describe-file-systems "FileSystemId": "fs-0123456789abcdef0" "MountName": "1234abcd" # Output of aws fsx describe-data-repository-association "FileSystemPath": "/ns1", "DataRepositoryPath": "s3://amzn-s3-demo-bucket/data/"

    Amazon S3 と Amazon FSx 間の同期が完了すると、データセットは Amazon FSx の以下のディレクトリに保存されます。

    /ns1/train # synced with s3://amzn-s3-demo-bucket/data/train /ns1/test # synced with s3://amzn-s3-demo-bucket/data/test

Amazon FSx ファイルシステムパスを SageMaker トレーニングのデータ入力チャネルとして設定する

以下の手順では、Amazon FSx ファイルシステムを SageMaker トレーニングジョブのデータソースとして設定する手順を説明します。

Using the SageMaker Python SDK

Amazon FSx ファイルシステムをデータソースとして適切に設定するには、以下の手順に従って、SageMaker AI 推定器クラスと FileSystemInput を設定します。

  1. FileSystemInput クラスオブジェクトを設定します。

    from sagemaker.inputs import FileSystemInput train_fs = FileSystemInput( file_system_id="fs-0123456789abcdef0", file_system_type="FSxLustre", directory_path="/1234abcd/ns1/", file_system_access_mode="ro", )
    ヒント

    directory_path を指定するときは、MountName で始まる Amazon FSx ファイルシステムのパスを必ず指定します。

  2. Amazon FSx ファイルシステムに使用されている VPC 設定を使用して SageMaker AI 推定器を設定します。

    from sagemaker.estimator import Estimator estimator = Estimator( ... role="your-iam-role-with-access-to-your-fsx", subnets=["subnet-id"], # Should be the same as the subnet used for Amazon FSx security_group_ids="security-group-id" )

    SageMaker トレーニングジョブの IAM ロールに、Amazon FSx にアクセスして読み取りするアクセス許可が付与されていることを確認します。

  3. Amazon FSx ファイルシステムで estimator.fit メソッドを実行して、トレーニングジョブを起動します。

    estimator.fit(train_fs)

その他のコード例については、「SageMaker Python SDK ドキュメント」の「Use File Systems as Training Inputs」を参照してください。

Using the SageMaker AI CreateTrainingJob API

CreateTrainingJob リクエスト JSON の一部として、InputDataConfig を以下のように設定します。

"InputDataConfig": [ { "ChannelName": "string", "DataSource": { "FileSystemDataSource": { "DirectoryPath": "/1234abcd/ns1/", "FileSystemAccessMode": "ro", "FileSystemId": "fs-0123456789abcdef0", "FileSystemType": "FSxLustre" } } } ],
ヒント

DirectoryPath を指定するときは、MountName で始まる Amazon FSx ファイルシステムのパスを必ず指定します。