

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Compilazione di un modello (AWS Command Line Interface)
<a name="neo-job-compilation-cli"></a>

Questa sezione mostra come gestire i processi di compilazione di Amazon SageMaker Neo per modelli di machine learning utilizzando AWS Command Line Interface (CLI). Puoi creare, descrivere, arrestare ed elencare i processi di compilazione. 

1. Creazione di un processo di compilazione.

   Con il funzionamento dell'[CreateCompilationJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html)API, puoi specificare il formato di input dei dati, il bucket S3 in cui archiviare il modello, il bucket S3 in cui scrivere il modello compilato e il dispositivo o la piattaforma hardware di destinazione.

   La tabella seguente mostra come configurare l'API `CreateCompilationJob` in base al fatto che la destinazione sia un dispositivo o una piattaforma.

------
#### [ 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
       }
   }
   ```

   Facoltativamente, puoi specificare la versione del framework che hai usato con il [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 hai usato il PyTorch framework per addestrare il tuo modello e il tuo dispositivo di destinazione è un bersaglio. `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
       }
   }
   ```

**Note:**  
Se hai salvato il modello utilizzando la PyTorch versione 2.0 o successiva, il `DataInputConfig` campo è facoltativo. SageMaker AI Neo ottiene la configurazione di input dal file di definizione del modello con cui crei PyTorch. Per ulteriori informazioni su come creare il file di definizione, consulta la [PyTorch](neo-compilation-preparing-model.md#how-to-save-pytorch) sezione sotto *Salvare modelli per SageMaker AI Neo*.
Questo campo API è supportato solo per 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**  
Per il funzionamento dell'API `OutputConfig`, le operazioni `TargetDevice` e `TargetPlatform` si escludono a vicenda. Devi scegliere una delle due opzioni.

   Per trovare esempi di stringhe JSON di `DataInputConfig` a seconda dei framework, vedi [Quali forme di dati di input si aspetta Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-errors-preventing).

   Per ulteriori informazioni sull'impostazione delle configurazioni, consulta la sezione [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 le operazioni [TargetPlatform](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TargetPlatform.html)API nel riferimento all' SageMaker API.

1. Dopo aver configurato il file JSON, esegui il comando seguente per creare il processo di compilazione:

   ```
   aws sagemaker create-compilation-job \
   --cli-input-json file://job.json \
   --region us-west-2 
   
   # You should get CompilationJobArn
   ```

1. Descrivi il processo di compilazione eseguendo il comando seguente:

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

1. Interrompi il processo di compilazione eseguendo il comando seguente:

   ```
   aws sagemaker stop-compilation-job \
   --compilation-job-name $JOB_NM \
   --region us-west-2
   
   # There is no output for compilation-job operation
   ```

1. Elenca il processo di compilazione eseguendo il comando seguente:

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