

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

# Esecuzione di previsioni in tempo reale con una pipeline di inferenza
<a name="inference-pipeline-real-time"></a>

Puoi utilizzare modelli addestrati in una pipeline di inferenza per effettuare previsioni in tempo reale direttamente senza eseguire pre-elaborazione esterna. Quando configuri la pipeline, puoi scegliere di utilizzare i trasformatori di funzionalità integrati già disponibili in Amazon AI. SageMaker In alternativa, puoi implementare la tua logica di trasformazione utilizzando poche righe di codice scikit-learn o Spark. 

[MLeap](https://combust.github.io/mleap-docs/), un formato di serializzazione e un motore di esecuzione per pipeline di apprendimento automatico, supporta Spark, scikit-learn e TensorFlow per addestrare le pipeline ed esportarle in una pipeline serializzata chiamata Bundle. MLeap Puoi deserializzare nuovamente i pacchetti in Spark per l'assegnazione del punteggio in modalità batch o in fase di esecuzione per alimentare i servizi API in tempo reale. MLeap 

I container in una pipeline restano in ascolto sulla porta specificata nella variabile di ambiente `SAGEMAKER_BIND_TO_PORT` (anziché 8080). Quando viene eseguita in una pipeline di inferenza, l'intelligenza artificiale fornisce automaticamente questa variabile di ambiente ai contenitori SageMaker . Se questa variabile di ambiente non è presente, i container utilizzano la porta 8080 per impostazione predefinita. Per indicare che il container soddisfa questo requisito, utilizza il comando seguente per aggiungere un'etichetta al dockerfile:

```
LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true
```

Se il container deve essere in ascolto su una seconda porta, scegli una porta nell'intervallo specificato dalla variabile di ambiente `SAGEMAKER_SAFE_PORT_RANGE`. Specificate il valore come intervallo inclusivo nel formato**"XXXX-YYYY"**, dove `XXXX` e `YYYY` sono numeri interi a più cifre. SageMaker L'intelligenza artificiale fornisce questo valore automaticamente quando esegui il contenitore in una pipeline multicontainer.

**Nota**  
Per utilizzare immagini Docker personalizzate in una pipeline che include [algoritmi integrati di SageMaker intelligenza artificiale](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), è necessaria una policy di Amazon [Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)). Il tuo repository Amazon ECR deve concedere all' SageMaker IA l'autorizzazione per estrarre l'immagine. Per ulteriori informazioni, consulta [Risoluzione dei problemi relativi alle autorizzazioni Amazon ECR per le pipeline di inferenza](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions).

## Creazione e distribuzione un endpoint della pipeline di inferenza
<a name="inference-pipeline-real-time-sdk"></a>

Il codice seguente crea e implementa un modello di pipeline di inferenza in tempo reale con SparkML e XGBoost modelli in serie utilizzando AI SDK. SageMaker 

```
from sagemaker.model import Model
from sagemaker.pipeline_model import PipelineModel
from sagemaker.sparkml.model import SparkMLModel

sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
sparkml_model = SparkMLModel(model_data=sparkml_data)
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

model_name = 'serial-inference-' + timestamp_prefix
endpoint_name = 'serial-inference-ep-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])
sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)
```

## Richiesta di inferenza in tempo reale da un endpoint della pipeline di inferenza
<a name="inference-pipeline-endpoint-request"></a>

L'esempio seguente mostra come eseguire previsioni in tempo reale chiamando un endpoint di inferenza e passando un payload della richiesta in formato JSON:

```
import sagemaker
from sagemaker.predictor import json_serializer, json_deserializer, Predictor

payload = {
        "input": [
            {
                "name": "Pclass",
                "type": "float",
                "val": "1.0"
            },
            {
                "name": "Embarked",
                "type": "string",
                "val": "Q"
            },
            {
                "name": "Age",
                "type": "double",
                "val": "48.0"
            },
            {
                "name": "Fare",
                "type": "double",
                "val": "100.67"
            },
            {
                "name": "SibSp",
                "type": "double",
                "val": "1.0"
            },
            {
                "name": "Sex",
                "type": "string",
                "val": "male"
            }
        ],
        "output": {
            "name": "features",
            "type": "double",
            "struct": "vector"
        }
    }

predictor = Predictor(endpoint=endpoint_name, sagemaker_session=sagemaker.Session(), serializer=json_serializer,
                                content_type='text/csv', accept='application/json')

print(predictor.predict(payload))
```

La risposta che si ottiene da `predictor.predict(payload)` è il risultato dell'inferenza del modello.

## Esempio di pipeline di inferenza in tempo reale
<a name="inference-pipeline-example"></a>

Puoi eseguire questo [notebook di esempio utilizzando il SKLearn predittore](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb) che mostra come implementare un endpoint, eseguire una richiesta di inferenza e quindi deserializzare la risposta. Trova questo taccuino e altri esempi nell'[ GitHub archivio di SageMaker esempi di Amazon](https://github.com/awslabs/amazon-sagemaker-examples).