Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Compilation d'un modèle (AWS Command Line Interface)
Cette section explique comment gérer des tâches de compilation Amazon SageMaker Neo pour des modèles de machine learning à l'aide de la AWS Command Line Interface (CLI). Vous pouvez créer, décrire, arrêter et répertorier les tâches de compilation.
Créez une tâche de compilation
Avec l'opération d'API CreateCompilationJob, vous pouvez spécifier le format d'entrée de données, le compartiment S3 dans lequel stocker votre modèle, le compartiment S3 dans lequel écrire le modèle compilé et le périphérique matériel ou la plateforme cible.
Le tableau suivant montre comment configurer l'API CreateCompilationJob selon que votre cible est un périphérique ou une plateforme.
- 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
}
}
Vous pouvez éventuellement spécifier la version de cadre que vous avez utilisée avec le champ FrameworkVersion, si vous avez utilisé le cadre PyTorch pour entraîner votre modèle et que votre périphérique cible est une cible 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
}
}
-
Si vous avez enregistré votre modèle à l'aide de PyTorch version 2.0 ou ultérieure, le champ DataInputConfig est facultatif. SageMaker AI Neo obtient la configuration d’entrée à partir du fichier de définition du modèle que vous créez avec PyTorch. Pour plus d’informations sur la création du fichier de définition, consultez la section PyTorch dans Enregistrement de modèles pour SageMaker AI Neo.
-
Ce champ d'API n'est pris en charge que pour 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
}
}
Pour l'opération d'API OutputConfig, les opérations d'API TargetDevice et TargetPlatform s'excluent mutuellement. Vous devez choisir l'une de ces deux options.
Pour trouver les exemples de chaînes JSON de DataInputConfig en fonction des cadres, consultez De quelles formes de données d’entrée Neo a-t-il besoin ?.
Pour plus d’informations sur le paramétrage des configurations, consultez les opérations d’API InputConfig, OutputConfig et TargetPlatform dans la Référence des API SageMaker.
Après avoir configuré le fichier JSON, exécutez la commande suivante pour créer la tâche de compilation :
aws sagemaker create-compilation-job \
--cli-input-json file://job.json \
--region us-west-2
# You should get CompilationJobArn
Décrivez la tâche de compilation en exécutant la commande suivante :
aws sagemaker describe-compilation-job \
--compilation-job-name $JOB_NM \
--region us-west-2
Arrêtez la tâche de compilation en exécutant la commande suivante :
aws sagemaker stop-compilation-job \
--compilation-job-name $JOB_NM \
--region us-west-2
# There is no output for compilation-job operation
Répertoriez la tâche de compilation en exécutant la commande suivante :
aws sagemaker list-compilation-jobs \
--region us-west-2