编译模型 (Amazon Command Line Interface) - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

编译模型 (Amazon Command Line Interface)

本节介绍了如何管理亚马逊 SageMaker 使用机器学习模型的 Neo 编译作业Amazon Command Line Interface(CLI)。您可以创建、描述、停止和列出编译任务。

  1. 创建编译作业

    使用CreateCompilationJobAPI 操作,您可以指定数据输入格式、用于存储模型的 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 } }

    您也可以指定所使用的框架版本FrameworkVersion字段,如果你使用了 PyTorch 训练模型和目标设备的框架是ml_* 目标。

    { "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", # The FrameworkVersion field is only supported when compiling for PyTorch framework and ml_* targets, # excluding ml_inf. Supported values are 1.4 or 1.5 or 1.6 . Default is 1.6 "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 } }
    注意

    此 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 } }
    注意

    对于OutputConfigAPI 操作,TargetDeviceTargetPlatformAPI 操作是互斥的。你必须选择两个选项之一。

    要查找 JSON 字符串示例DataInputConfig视框架而定,请参阅Neo 期望什么样的输入数据形状.

    有关设置配置的更多信息,请参阅InputConfig,OutputConfig,以及TargetPlatform中的 API 操作 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