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

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 gestionar los trabajos de compilación de Amazon SageMaker Neo para modelos de aprendizaje automático mediante 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 esta CreateCompilationJobAPIoperación, puede especificar el formato de entrada de datos, el depósito S3 en el que almacenar el modelo, el depósito 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 realizar la configuración en CreateCompilationJob API 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 } }

    Si lo ha utilizado para entrenar su modelo y su dispositivo de destino es un ml_* objetivo, también puede especificar la versión del PyTorch marco que utilizó con el FrameworkVersioncampo.

    { "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 la PyTorch versión 2.0 o posterior, el DataInputConfig campo es opcional. SageMakerNeo obtiene la configuración de entrada del archivo de definición del modelo con el que se crea PyTorch. Para obtener más información sobre cómo crear el archivo de definición, consulte la PyTorch sección sobre cómo guardar modelos para SageMaker Neo.

    • Este API campo 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

    En el caso de la OutputConfig API operación, las TargetPlatform API operaciones TargetDevice y se excluyen mutuamente. Debe elegir una de las dos opciones.

    Para ver ejemplos de JSON cadenas que indican la DataInputConfig dependencia de los marcos, consulte Qué formas de datos de entrada espera Neo.

    Para obtener más información sobre cómo configurar las configuraciones, consulte las InputConfigTargetPlatformAPIoperaciones OutputConfig, y en la SageMaker API referencia.

  2. Tras configurar el JSON archivo, 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