

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)
<a name="neo-job-compilation-cli"></a>

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 [CreateCompilationJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html)API, 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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InputConfig.html#sagemaker-Type-InputConfig-FrameworkVersion](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InputConfig.html#sagemaker-Type-InputConfig-FrameworkVersion)campo 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](neo-compilation-preparing-model.md#how-to-save-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](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-errors-preventing).

   Para obter mais informações sobre como definir as configurações, consulte as operações [InputConfig[OutputConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html)](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InputConfig.html), e [TargetPlatform](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TargetPlatform.html)da API na referência da SageMaker API.

1. 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
   ```

1. Descreva o trabalho de compilação executando o seguinte comando:

   ```
   aws sagemaker describe-compilation-job \
   --compilation-job-name $JOB_NM \
   --region us-west-2
   ```

1. 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
   ```

1. Liste o trabalho de compilação executando o seguinte comando:

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