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
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. SageMaker In alternativa, puoi implementare la tua logica di trasformazione utilizzando poche righe di codice scikit-learn o Spark.
MLeap
I container in una pipeline restano in ascolto sulla porta specificata nella variabile di ambiente SAGEMAKER_BIND_TO_PORT
(anziché 8080). Quando viene eseguito in una pipeline di inferenza, 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 fornisce questo valore automaticamente quando si esegue il contenitore in una pipeline multicontainer.
Nota
Per utilizzare immagini Docker personalizzate in una pipeline che include algoritmi SageMaker integrati, è necessaria una policy Amazon Elastic Container Registry (AmazonECR). Il tuo ECR repository Amazon deve concedere SageMaker l'autorizzazione per estrarre l'immagine. Per ulteriori informazioni, consulta Risolvi i problemi relativi alle ECR autorizzazioni Amazon per Inference Pipelines.
Creazione e distribuzione un endpoint della pipeline di inferenza
Il codice seguente crea e distribuisce un modello di pipeline di inferenza in tempo reale con SparkML e XGBoost modelli in serie utilizzando il. SageMaker SDK
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
L'esempio seguente mostra come effettuare previsioni in tempo reale chiamando un endpoint di inferenza e passando un payload di 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
È possibile eseguire questo notebook di esempio utilizzando il SKLearn predittore