Compilación de un modelo (AWS Command Line Interface) - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Compilación de un modelo (AWS Command Line Interface)

En esta sección se muestra cómo administrar trabajos de compilación de Amazon SageMaker Neo para modelos de machine learning utilizando AWS Command Line Interface (CLI). Puede crear, describir, detener y generar una lista de los trabajos de compilación.

  1. Crear un trabajo de compilación

    Con la operación de API CreateCompilationJob, puede especificar el formato de entrada de datos, el bucket de S3 en el que almacenar el modelo, el bucket de S3 en el que escribir el modelo compilado y el dispositivo o plataforma de hardware de destino.

    En la siguiente tabla se muestra cómo configurar la API CreateCompilationJob en función de si el objetivo es un dispositivo o una plataforma.

    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 } }

    Opcionalmente, puede especificar la versión del marco que utilizó con el campo FrameworkVersion si utilizó el marco PyTorch para formar a su modelo y su dispositivo de destino es un objetivo 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", "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 } }
    Notas:
    • Si guardó el modelo con PyTorch versión 2.0 o posterior, el campo DataInputConfig es opcional. SageMaker AI Neo obtiene la configuración de entrada del archivo de definición del modelo que cree con PyTorch. Para obtener más información sobre cómo crear el archivo de definición, consulte la sección PyTorch en Guardar modelos para SageMaker AI Neo.

    • Este campo de API solo es compatible con 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 } }
    nota

    Para el funcionamiento de la API OutputConfig, las operaciones de la API TargetDevice y TargetPlatform se excluyen mutuamente. Debe elegir una de las dos opciones.

    Para ver ejemplos de cadenas JSON de DataInputConfig que dependen de marcos, consulte Qué formas de datos de entrada espera Neo.

    Para obtener más información sobre cómo establecer las configuraciones, consulte las operaciones de API InputConfig, OutputConfig y TargetPlatform en la referencia de la API de Sagemaker.

  2. Tras configurar el archivo JSON, ejecute el siguiente comando para crear el trabajo de compilación:

    aws sagemaker create-compilation-job \ --cli-input-json file://job.json \ --region us-west-2 # You should get CompilationJobArn
  3. Describa el trabajo de compilación ejecutando el siguiente comando:

    aws sagemaker describe-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2
  4. Detenga el trabajo de compilación ejecutando el siguiente comando:

    aws sagemaker stop-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2 # There is no output for compilation-job operation
  5. Enumere el trabajo de compilación ejecutando el siguiente comando:

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