Compilar um modelo (AWS Command Line Interface) - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Compilar um modelo (AWS Command Line Interface)

Esta seção mostra como gerenciar trabalhos de compilação do Amazon SageMaker Neo para modelos de aprendizado de máquina usando AWS Command Line Interface (CLI). Você pode criar, descrever, parar e listar os trabalhos de compilação.

  1. Crie um trabalho de compilação

    Com a operação da CreateCompilationJobAPI, você pode especificar o formato de entrada de dados, o bucket S3 no qual armazenar seu modelo, o bucket S3 no qual gravar o modelo compilado e o dispositivo ou plataforma de hardware de destino.

    A tabela a seguir demonstra como configurar a API CreateCompilationJob com base no fato de seu destino ser um dispositivo ou uma 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, você pode especificar a versão da estrutura usada com o FrameworkVersioncampo se tiver usado a PyTorch estrutura para treinar seu modelo e seu dispositivo de destino for um ml_* alvo.

    { "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 } }
    Observações:
    • Se você salvou seu modelo usando a PyTorch versão 2.0 ou posterior, o DataInputConfig campo é opcional. SageMaker O AI Neo obtém a configuração de entrada do arquivo de definição do modelo com o qual você cria PyTorch. Para obter mais informações sobre como criar o arquivo de definição, consulte a PyTorch seção Salvando modelos para o SageMaker AI Neo.

    • Esse campo de API só é compatível com 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 a operação da API OutputConfig, as operações de API TargetDevice e TargetPlatform são mutuamente exclusivas. Você precisa escolher uma das duas opções.

    Para encontrar exemplos de strings JSON de DataInputConfig dependência de estruturas, consulte Quais são as formas de dados de entrada que o Neo espera.

    Para obter mais informações sobre como definir as configurações, consulte as operações InputConfigOutputConfig, e TargetPlatformda API na referência da SageMaker API.

  2. Depois de configurar o arquivo JSON, execute o seguinte comando para criar a tarefa de compilação:

    aws sagemaker create-compilation-job \ --cli-input-json file://job.json \ --region us-west-2 # You should get CompilationJobArn
  3. Descreva o trabalho de compilação executando o seguinte comando:

    aws sagemaker describe-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2
  4. Pare o trabalho de compilação executando o seguinte comando:

    aws sagemaker stop-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2 # There is no output for compilation-job operation
  5. Liste o trabalho de compilação executando o seguinte comando:

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