Compilation d'un modèle (AWS Command Line Interface) - Amazon SageMaker

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.

  1. 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", # 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 } }
    Note

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

    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, veuillez consulter What input data shapes Neo expects (De quelles formes de données d'entrée Neo a-t-il besoin ?).

    Pour de plus amples informations sur le paramétrage des configurations, veuillez consulter les opérations d'API InputConfig, OutputConfig et TargetPlatform dans la référence d'API SageMaker.

  2. 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
  3. 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
  4. 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
  5. Répertoriez la tâche de compilation en exécutant la commande suivante :

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