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.
Crear un trabajo de compilación
Con la operación de la CreateCompilationJobAPI, puede especificar el formato de entrada de datos, el depósito de S3 en el que almacenar el modelo, el depósito de S3 en el que se 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
}
}
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 FrameworkVersion
campo.
{
"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
}
}
-
Si guardó el modelo con la PyTorch versión 2.0 o posterior, el DataInputConfig
campo es opcional. SageMaker AI Neo 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 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
}
}
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 configurar las configuraciones, consulta las operaciones de la InputConfigTargetPlatformAPI y las operaciones de la API en la referencia de la SageMaker API. OutputConfig
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
Describa el trabajo de compilación ejecutando el siguiente comando:
aws sagemaker describe-compilation-job \
--compilation-job-name $JOB_NM \
--region us-west-2
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
Enumere el trabajo de compilación ejecutando el siguiente comando:
aws sagemaker list-compilation-jobs \
--region us-west-2