モデルをコンパイルする (AWS Command Line Interface) - Amazon SageMaker

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

モデルをコンパイルする (AWS Command Line Interface)

このセクションでは、 AWS Command Line Interface () を使用して機械学習モデルの Amazon SageMaker Neo コンパイルジョブを管理する方法を示しますCLI。コンパイルジョブを作成、説明、停止、一覧表示できます。

  1. コンパイルジョブの作成

    CreateCompilationJob API オペレーションでは、データ入力形式、モデルを保存する S3 バケット、コンパイルされたモデルを書き込む S3 バケット、ターゲットハードウェアデバイスまたはプラットフォームを指定できます。

    次の表は、ターゲットがデバイスかプラットフォームかCreateCompilationJobAPIに基づいて を設定する方法を示しています。

    Device Example
    { "CompilationJobName": "neo-compilation-job-demo", "RoleArn": "arn:aws:iam::<your-account>:role/service-role/AmazonSageMaker-ExecutionRole-yyyymmddThhmmss", "InputConfig": { "S3Uri": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/train", "DataInputConfig": "{'data': [1,3,1024,1024]}", "Framework": "MXNET" }, "OutputConfig": { "S3OutputLocation": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/compile", # A target device specification example for a ml_c5 instance family "TargetDevice": "ml_c5" }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 } }

    オプションで、フレームワークを使用してモデルをトレーニングし、ターゲットデバイスがml_* ターゲットである場合、 FrameworkVersionフィールドで使用した PyTorch フレームワークバージョンを指定できます。

    { "CompilationJobName": "neo-compilation-job-demo", "RoleArn": "arn:aws:iam::<your-account>:role/service-role/AmazonSageMaker-ExecutionRole-yyyymmddThhmmss", "InputConfig": { "S3Uri": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/train", "DataInputConfig": "{'data': [1,3,1024,1024]}", "Framework": "PYTORCH", "FrameworkVersion": "1.6" }, "OutputConfig": { "S3OutputLocation": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/compile", # A target device specification example for a ml_c5 instance family "TargetDevice": "ml_c5", # When compiling for ml_* instances using PyTorch framework, use the "CompilerOptions" field in # OutputConfig to provide the correct data type ("dtype") of the model’s input. Default assumed is "float32" "CompilerOptions": "{'dtype': 'long'}" }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 } }
    注記:
    • PyTorch バージョン 2.0 以降を使用してモデルを保存した場合、 DataInputConfigフィールドはオプションです。 SageMaker Neo は、 で作成したモデル定義ファイルから入力設定を取得します PyTorch。定義ファイルの作成方法の詳細については、「Saving Models for SageMaker Neo PyTorch」のセクションを参照してください。

    • API このフィールドは でのみサポートされています PyTorch。

    Platform Example
    { "CompilationJobName": "neo-test-compilation-job", "RoleArn": "arn:aws:iam::<your-account>:role/service-role/AmazonSageMaker-ExecutionRole-yyyymmddThhmmss", "InputConfig": { "S3Uri": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/train", "DataInputConfig": "{'data': [1,3,1024,1024]}", "Framework": "MXNET" }, "OutputConfig": { "S3OutputLocation": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/compile", # A target platform configuration example for a p3.2xlarge instance "TargetPlatform": { "Os": "LINUX", "Arch": "X86_64", "Accelerator": "NVIDIA" }, "CompilerOptions": "{'cuda-ver': '10.0', 'trt-ver': '6.0.1', 'gpu-code': 'sm_70'}" }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 } }
    注記

    OutputConfig API オペレーションの場合、 TargetDeviceTargetPlatformAPIオペレーションは相互に排他的です。2 つのオプションのいずれかを選択する必要があります。

    フレームワークDataInputConfigに応じて のJSON文字列例を見つけるには、「Neo が を期待する入力データ形状」を参照してください。

    設定の詳細については、 リファレンスのInputConfig「、OutputConfig」、TargetPlatformAPI「」オペレーション SageMaker APIを参照してください。

  2. JSON ファイルを設定したら、次のコマンドを実行してコンパイルジョブを作成します。

    aws sagemaker create-compilation-job \ --cli-input-json file://job.json \ --region us-west-2 # You should get CompilationJobArn
  3. 次のコマンドを実行して、コンパイルジョブを記述します。

    aws sagemaker describe-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2
  4. 次のコマンドを実行して、コンパイルジョブを停止します。

    aws sagemaker stop-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2 # There is no output for compilation-job operation
  5. 次のコマンドを実行して、コンパイルジョブをリストします。

    aws sagemaker list-compilation-jobs \ --region us-west-2