

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à.

# Implementazione del modello in Amazon EC2
<a name="ex1-model-deployment"></a>

Per ottenere previsioni, distribuisci il tuo modello su Amazon EC2 utilizzando SageMaker Amazon AI.

**Topics**
+ [Implementa il modello su AI Hosting Services SageMaker](#ex1-deploy-model)
+ [(Facoltativo) Usa SageMaker AI Predictor per riutilizzare l'endpoint ospitato](#ex1-deploy-model-sdk-use-endpoint)
+ [(Facoltativo) Formulazione di previsioni con la trasformazione di batch](#ex1-batch-transform)

## Implementa il modello su AI Hosting Services SageMaker
<a name="ex1-deploy-model"></a>

Per ospitare un modello tramite Amazon EC2 utilizzando Amazon SageMaker AI, distribuisci il modello su cui hai effettuato la formazione [Creazione ed esecuzione di un processo di addestramento](ex1-train-model.md#ex1-train-model-sdk) chiamando il `deploy` metodo dello estimatore. `xgb_model` Quando chiami il metodo `deploy`, devi specificare il numero e il tipo di istanze ML EC2 che vuoi utilizzare per l'hosting di un endpoint.

```
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium',
    serializer=CSVSerializer()
)
```
+ `initial_instance_count` (int): il numero di istanze per distribuire il modello.
+ `instance_type` (str): il tipo di istanze che desideri per utilizzare il modello distribuito.
+ `serializer`(int) — Serializza i dati di input di vari formati (un NumPy array, un elenco, un file o un buffer) in una stringa in formato CSV. Lo usiamo perché l' XGBoost algoritmo accetta file di input in formato CSV.

Il `deploy` metodo crea un modello implementabile, configura l'endpoint dei servizi di hosting SageMaker AI e avvia l'endpoint per ospitare il modello. Per ulteriori informazioni, consulta il [metodo della classe deploy del generico SageMaker AI Estimator nell'SDK](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable). Per recuperare il nome dell'endpoint generato dal metodo `deploy`, esegui il seguente codice:

```
xgb_predictor.endpoint_name
```

Questo dovrebbe restituire il nome dell'endpoint di `xgb_predictor`. Il formato del nome dell'endpoint è `"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. Questo endpoint rimane attivo nell'istanza ML e puoi effettuare previsioni istantanee in qualsiasi momento, a meno che non lo arresti in un secondo momento. Copia il nome di questo endpoint e salvalo per riutilizzarlo ed effettuare previsioni in tempo reale altrove nelle istanze di notebook Studio o AI. SageMaker SageMaker 

**Suggerimento**  
Per ulteriori informazioni sulla compilazione e sull'ottimizzazione del modello per la distribuzione su istanze Amazon EC2 o dispositivi edge, consulta [Compile and Deploy Models with Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html).

## (Facoltativo) Usa SageMaker AI Predictor per riutilizzare l'endpoint ospitato
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Dopo aver distribuito il modello su un endpoint, puoi configurare un nuovo predittore SageMaker AI associando l'endpoint ed effettuare continuamente previsioni in tempo reale su qualsiasi altro notebook. Il codice di esempio seguente mostra come utilizzare la classe SageMaker AI Predictor per configurare un nuovo oggetto predittore utilizzando lo stesso endpoint. Riutilizza il nome dell'endpoint che hai usato per `xgb_predictor`.

```
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
    endpoint_name="{{sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS}}",
    sagemaker_session=sagemaker.Session(),
    serializer=sagemaker.serializers.CSVSerializer()
)
```

Il predittore `xgb_predictor_reuse` si comporta esattamente come `xgb_predictor` originale. Per ulteriori informazioni, consulta la classe [SageMaker AI Predictor](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) nell'SDK [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

## (Facoltativo) Formulazione di previsioni con la trasformazione di batch
<a name="ex1-batch-transform"></a>

Invece di ospitare un endpoint in produzione, puoi eseguire un processo di inferenza in batch una tantum per fare previsioni su un set di dati di test utilizzando la trasformazione in batch AI. SageMaker [Una volta completato l'addestramento del modello, puoi estendere lo estimatore a un `transformer` oggetto, che si basa sulla classe AI Transformer. SageMaker ](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html) Il trasformatore di batch legge i dati di input da un bucket S3 specificato ed effettua previsioni.

**Per creare un processo di trasformazione di batch**

1. Esegui il seguente codice per convertire le colonne delle funzionalità del set di dati di test in un file CSV e i caricamenti nel bucket S3:

   ```
   X_test.to_csv('test.csv', index=False, header=False)
   
   boto3.Session().resource('s3').Bucket(bucket).Object(
   os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
   ```

1. Specificate il bucket S3 URIs di input e output per il processo di trasformazione in batch come illustrato di seguito:

   ```
   # The location of the test dataset
   batch_input = 's3://{}/{}/test'.format(bucket, prefix)
   
   # The location to store the results of the batch transform job
   batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
   ```

1. Crea un oggetto trasformatore specificando il numero minimo di parametri: i parametri `instance_count` e `instance_type` per eseguire il processo di trasformazione di batch e `output_path` per salvare i dati di previsione, come mostrato di seguito: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Avvia il processo di trasformazione di batch eseguendo il metodo `transform()` dell'oggetto `transformer` come mostrato di seguito:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Quando il processo di trasformazione in batch è completo, SageMaker AI crea i dati di `test.csv.out` previsione salvati nel `batch_output` percorso, che dovrebbero avere il seguente formato:. `s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction` Esegui quanto segue AWS CLI per scaricare i dati di output del processo di trasformazione in batch:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Ciò dovrebbe creare il file `test.csv.out` nella directory di lavoro corrente. Sarete in grado di visualizzare i valori float previsti in base alla regressione logistica del processo di formazione. XGBoost 