

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejecutar predicciones en tiempo real con una canalización de inferencia
<a name="inference-pipeline-real-time"></a>

Puede utilizar modelos entrenados en una canalización de inferencia para realizar predicciones en tiempo real directamente sin realizar preprocesamiento externo. Al configurar la canalización, puede optar por utilizar los transformadores de funciones integrados que ya están disponibles en Amazon SageMaker AI. O bien, puede implementar su propia lógica de transformación con solo unas pocas líneas de código de scikit-learn o Spark. 

[MLeap](https://combust.github.io/mleap-docs/), un formato de serialización y motor de ejecución para canalizaciones de aprendizaje automático, es compatible con Spark, scikit-learn y TensorFlow para entrenar canalizaciones y exportarlas a una canalización serializada denominada Bundle. MLeap Puedes volver a deserializar los paquetes para convertirlos en Spark para obtener una puntuación por lotes o en tiempo de ejecución para potenciar los servicios de API en tiempo real. MLeap 

Los contenedores de una canalización escuchan en el puerto especificado en la variable de entorno `SAGEMAKER_BIND_TO_PORT` (en lugar de 8080). Cuando se ejecuta en una canalización de inferencias, la SageMaker IA proporciona automáticamente esta variable de entorno a los contenedores. Si esta variable de entorno no está presente, los contenedores de manera predeterminada asignan el uso del puerto 8080. Para indicar que el contenedor cumple con este requisito, ejecute el siguiente comando para añadir una etiqueta a su Dockerfile:

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

Si su contenedor necesita escuchar en otro puerto, elija un puerto que esté en el intervalo especificado por la variable de entorno `SAGEMAKER_SAFE_PORT_RANGE`. Especifique el valor como un rango inclusivo en el formato**"XXXX-YYYY"**, donde `XXXX` y `YYYY` son números enteros de varios dígitos. SageMaker La IA proporciona este valor automáticamente cuando se ejecuta el contenedor en una canalización de varios contenedores.

**nota**  
Para utilizar imágenes de Docker personalizadas en una canalización que incluye [algoritmos integrados de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), necesitas una política de [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Su repositorio de Amazon ECR debe conceder permiso a la SageMaker IA para extraer la imagen. Para obtener más información, consulte [Solución de problemas de permisos de Amazon ECR para canalizaciones de inferencia](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions).

## Creación e implementación de un punto de conexión de canalización de inferencia
<a name="inference-pipeline-real-time-sdk"></a>

El siguiente código crea e implementa un modelo de canalización de inferencias en tiempo real con SparkML y XGBoost modelos en serie con el SDK de IA. 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)
```

## Solicitar inferencia en tiempo real desde un punto de conexión de canalización de inferencia
<a name="inference-pipeline-endpoint-request"></a>

El ejemplo siguiente muestra cómo realizar predicciones en tiempo real llamando a un punto de conexión de inferencia y trasladando una carga de solicitud en 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 respuesta que obtiene de `predictor.predict(payload)` es el resultado de la inferencia del modelo.

## Ejemplo de canalización de inferencia en tiempo real
<a name="inference-pipeline-example"></a>

Puedes ejecutar este [cuaderno de ejemplo con el SKLearn predictor](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb) que muestra cómo implementar un punto final, ejecutar una solicitud de inferencia y, a continuación, deserializar la respuesta. Encuentra este cuaderno y otros ejemplos en el [ GitHub repositorio de SageMaker ejemplos de Amazon](https://github.com/awslabs/amazon-sagemaker-examples).