

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.

# Canalizaciones de inferencia en Amazon AI SageMaker
<a name="inference-pipelines"></a>

Una *canalización de inferencias* es un modelo de Amazon SageMaker AI que se compone de una secuencia lineal de dos a quince contenedores que procesan las solicitudes de inferencias sobre los datos. Utiliza una canalización de inferencias para definir e implementar cualquier combinación de algoritmos integrados de SageMaker IA previamente entrenados y sus propios algoritmos personalizados empaquetados en contenedores de Docker. Puede utilizar una canalización de inferencia para combinar tareas de ciencia de datos de preprocesamiento, predicciones y posprocesamiento. Las canalizaciones de inferencia se administran completamente.

Puedes añadir contenedores SageMaker AI Spark ML Serving y scikit-learn que reutilizan los transformadores de datos desarrollados para los modelos de entrenamiento. Todo el proceso de inferencias ensamblado puede considerarse un modelo de SageMaker IA que se puede utilizar para hacer predicciones en tiempo real o para procesar transformaciones por lotes directamente sin ningún preprocesamiento externo. 

Dentro de un modelo de canalización de inferencias, la SageMaker IA gestiona las invocaciones como una secuencia de solicitudes HTTP. El primer contenedor de la canalización gestiona la solicitud inicial, luego la respuesta intermedia se envía como una solicitud al segundo contenedor y así sucesivamente, para cada contenedor de la canalización. SageMaker La IA devuelve la respuesta final al cliente. 

Al implementar el modelo de canalización, la SageMaker IA instala y ejecuta todos los contenedores de cada instancia de Amazon Elastic Compute Cloud (Amazon EC2) del punto final o del trabajo de transformación. El procesamiento de características y las inferencias se ejecutan con baja latencia, ya que los contenedores están ubicados en las misma instancias de EC2. Puede definir los contenedores para un modelo de canalización mediante la operación [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) o desde la consola. En lugar de configurar un `PrimaryContainer`, utilice el parámetro `Containers` para configurar los contenedores que componen la canalización. También se especifica el orden en el que se ejecutan los contenedores. 

Un modelo de canalización es inmutable, pero puede actualizar una canalización de inferencia implementando una nueva con la operación [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html). Esta modularidad admite una mayor flexibilidad durante la experimentación. 

Para obtener información sobre cómo crear una canalización de inferencias con el registro de SageMaker modelos, consulte. [Implementación del registro de modelos con el registro de modelos](model-registry.md)

El uso de esta característica no tiene costos adicionales. Solo tiene que pagar por las instancias que se ejecutan en un punto de conexión.

**Topics**
+ [

## Cuadernos de ejemplo para canalizaciones de inferencia
](#inference-pipeline-sample-notebooks)
+ [

# Procesamiento de características con Spark ML y Scikit-learn
](inference-pipeline-mleap-scikit-learn-containers.md)
+ [

# Creación de un modelo de canalización
](inference-pipeline-create-console.md)
+ [

# Ejecutar predicciones en tiempo real con una canalización de inferencia
](inference-pipeline-real-time.md)
+ [

# Transformaciones por lotes con canalizaciones de inferencia
](inference-pipeline-batch.md)
+ [

# Registros y métricas de canalización de inferencias
](inference-pipeline-logs-metrics.md)
+ [

# Solución de problemas de canalizaciones de inferencia
](inference-pipeline-troubleshoot.md)

## Cuadernos de ejemplo para canalizaciones de inferencia
<a name="inference-pipeline-sample-notebooks"></a>

Para ver un ejemplo que muestra cómo crear e implementar canalizaciones de inferencia, consulte el cuaderno de muestra [Inference Pipeline with Scikit-learn and Linear Learner](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-python-sdk/scikit_learn_inference_pipeline). Para obtener instrucciones sobre cómo crear instancias de Jupyter Notebook y acceder a ellas, que puede utilizar para ejecutar el ejemplo en SageMaker IA, consulte. [Instancias de Amazon SageMaker Notebook](nbi.md) 

Para ver una lista de todos los ejemplos de SageMaker IA, después de crear y abrir una instancia de bloc de notas, selecciona la pestaña **Ejemplos de SageMaker IA**. Existen tres blocs de notas de canalización de inferencias. Los dos primeros blocs de notas de canalización de inferencias que acabamos de describir se encuentran en la carpeta `advanced_functionality` y el tercer bloc de notas está en la carpeta `sagemaker-python-sdk`. Para abrir un bloc de notas, elija su pestaña **Usar** y, a continuación, elija **Crear copia**.

# Procesamiento de características con Spark ML y Scikit-learn
<a name="inference-pipeline-mleap-scikit-learn-containers"></a>

Antes de entrenar un modelo con algoritmos integrados o personalizados de Amazon SageMaker AI, puedes usar los preprocesadores Spark y scikit-learn para transformar tus datos y diseñar funciones. 

## Procesamiento de características con Spark ML
<a name="feature-processing-spark"></a>

Puedes ejecutar trabajos de Spark ML con [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html), un servicio ETL (extraer, transformar, cargar) sin servidor, desde tu cuaderno de SageMaker IA. También puede conectarse a clústeres de EMR existentes para ejecutar trabajos de Spark ML con [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). Para ello, necesitas un rol AWS Identity and Access Management (de IAM) que te permita realizar llamadas desde tu bloc de notas de SageMaker IA a. AWS Glue

**nota**  
Para ver qué versiones de Python y Spark son AWS Glue compatibles, consulta las [notas de la versión de AWS Glue](/glue/latest/dg/release-notes.html).

Después de diseñar las funciones, empaquetas y serializas los trabajos de Spark ML MLeap en MLeap contenedores que puedes añadir a un proceso de inferencia. No es necesario utilizar clústeres de Spark administrados externamente. Con este enfoque, puede escalar sin problemas a partir de una muestra de filas a terabytes de datos. Los mismos transformadores trabajar tanto para entrenamiento como para inferencia, por lo que no es necesario duplicar el preprocesamiento y la lógica de ingeniería de características o desarrollar una solución puntual para que persistan los modelos. Con las canalizaciones de inferencia, no es necesario mantenerse fuera de la infraestructura, y puede realizar predicciones directamente a partir de las entradas de datos.

Cuando ejecutas un trabajo de Spark ML AWS Glue, una canalización de Spark ML se serializa en formato. [MLeap](https://github.com/combust/mleap) Luego, puede usar el trabajo con el [contenedor de servicio de modelos SparkML](https://github.com/aws/sagemaker-sparkml-serving-container) en una canalización de inferencias de SageMaker IA. *MLeap*es un formato de serialización y un motor de ejecución para procesos de aprendizaje automático. Es compatible con Spark, Scikit-learn y TensorFlow para entrenar canalizaciones y exportarlas a una canalización serializada llamada Bundle. MLeap Puedes volver a deserializar los paquetes para convertirlos en Spark para puntuarlos en modo lote o en tiempo de ejecución para potenciar los servicios de API en tiempo real. MLeap 

Para ver un ejemplo que muestra cómo utilizar el proceso con Spark ML, consulte el cuaderno de muestra [Entrenar un modelo de aprendizaje automático con Apache Spark en Amazon EMR e implementarlo en SageMaker IA](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-python-sdk/sparkml_serving_emr_mleap_abalone).

## Procesamiento de características con Scikit-Learn
<a name="feature-processing-with-scikit"></a>

Puede ejecutar y empaquetar trabajos de scikit-learn en contenedores directamente en Amazon AI. SageMaker Para consultar un ejemplo de código de Python para crear un modelo caracterizador de scikit-learn que se entrena en [conjuntos de datos de la flor Iris de Fisher](http://archive.ics.uci.edu/ml/datasets/Iris) y predice la especie de iris en función de medidas morfológicas, consulte la página de [entrenamiento y predicción de IRIS con SageMaker Scikit-learn](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/scikit_learn_iris). 

# Creación de un modelo de canalización
<a name="inference-pipeline-create-console"></a>

Para crear un modelo de canalización que pueda implementarse en un punto final o usarse para un trabajo de transformación por lotes, utilice la consola Amazon SageMaker AI o la `CreateModel` operación. 

**Para crear una canalización de inferencia (consola)**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Elija **Modelos** y, a continuación, seleccione **Crear modelos** en el grupo **Inferencia**. 

1. En la página **Crear modelo**, proporcione un nombre de modelo, elija un rol de IAM y, si desea utilizar una VPC privada, especifique los valores de la VPC.   
![\[La página para crear un modelo para una canalización de inferencia.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/create-pipeline-model.png)

1. Para añadir información sobre los contenedores en la canalización de inferencia, seleccione **Agregar contenedor** y luego haga clic en **Siguiente**.

1. Complete los campos para cada contenedor en el orden en el que desee ejecutarlos, hasta un máximo de quince. Complete los campos **Opciones de entrada del contenedor**, **Ubicación de la imagen de código de inferencia** y, opcionalmente, **Ubicación de artefactos de modelos**, **Nombre de host de contenedor** y **Variables de entorno**.  
![\[Creación de un modelo de canalización con contenedores.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/create-pipeline-model-containers.png)

   La **MyInferencePipelineModel**página resume la configuración de los contenedores que proporcionan información para el modelo. Si has proporcionado las variables de entorno en la definición de contenedor correspondiente, SageMaker AI las muestra en el campo **Variables de entorno**.  
![\[El resumen de configuración de contenedor para el modelo de canalización.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/pipeline-MyInferencePipelinesModel-recap.png)

# 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).

# Transformaciones por lotes con canalizaciones de inferencia
<a name="inference-pipeline-batch"></a>

Para obtener inferencias sobre un conjunto de datos completo, ejecute una transformación por lotes en un modelo entrenado. Para ejecutar inferencias en un conjunto de datos completo, puede utilizar el mismo modelo de canalización de inferencias que se creó e implementó en un punto de conexión con el procesamiento en tiempo real de trabajos de transformación por lotes. Para ejecutar un trabajo de transformación por lotes en una canalización, descargue los datos de entrada desde Amazon S3 y envíelos en una o varias solicitudes HTTP al modelo de canalización de inferencia. Para ver un ejemplo que muestra cómo preparar los datos para una transformación por lotes, consulte la «Sección 2: Preprocesar los datos de alojamiento sin procesar con Scikit Learn» del cuaderno de muestra [Amazon SageMaker Multi-Model Endpoints con Linear Learner](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/multi_model_linear_learner_home_value). Para obtener información sobre las transformaciones por lotes de Amazon SageMaker AI, consulte[Transformación por lotes para inferencias con Amazon AI SageMaker](batch-transform.md). 

**nota**  
Para usar imágenes de Docker personalizadas en una canalización que incluye los [algoritmos integrados de Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), necesita una política de [Amazon Elastic Container Registry (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).

El siguiente ejemplo muestra cómo ejecutar un trabajo de transformación con el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable). En este ejemplo, `model_name` es la canalización de inferencia que combina SparkML XGBoost y modelos (creados en ejemplos anteriores). La ubicación de Amazon S3 especificada por `input_data_path` contiene los datos de entrada, en formato CSV, que se van a descargar y envíar al modelo de Spark ML. Una vez finalizado el trabajo de transformación, la ubicación de Amazon S3 especificada por `output_data_path` contiene los datos de salida devueltos por el XGBoost modelo en formato CSV.

```
import sagemaker
input_data_path = 's3://{}/{}/{}'.format(default_bucket, 'key', 'file_name')
output_data_path = 's3://{}/{}'.format(default_bucket, 'key')
transform_job = sagemaker.transformer.Transformer(
    model_name = model_name,
    instance_count = 1,
    instance_type = 'ml.m4.xlarge',
    strategy = 'SingleRecord',
    assemble_with = 'Line',
    output_path = output_data_path,
    base_transform_job_name='inference-pipelines-batch',
    sagemaker_session=sagemaker.Session(),
    accept = CONTENT_TYPE_CSV)
transform_job.transform(data = input_data_path, 
                        content_type = CONTENT_TYPE_CSV, 
                        split_type = 'Line')
```

# Registros y métricas de canalización de inferencias
<a name="inference-pipeline-logs-metrics"></a>

La supervisión es importante para mantener la fiabilidad, la disponibilidad y el rendimiento de los recursos de SageMaker IA de Amazon. Para supervisar y solucionar problemas de rendimiento de la canalización de inferencias, utiliza CloudWatch los registros y mensajes de error de Amazon. Para obtener información sobre las herramientas de monitoreo que proporciona la SageMaker IA, consulte. [Supervisión de AWS los recursos en Amazon SageMaker AI](monitoring-overview.md)

## Uso de métricas para monitorizar modelos de varios contenedores
<a name="inference-pipeline-metrics"></a>

Para supervisar los modelos de varios contenedores en Inference Pipelines, utilice Amazon. CloudWatch CloudWatchrecopila datos sin procesar y los procesa para convertirlos en métricas legibles y prácticamente en tiempo real. SageMaker Los puntos finales y los trabajos de formación en IA escriben CloudWatch métricas y registros en el `AWS/SageMaker` espacio de nombres. 

Las siguientes tablas muestran las métricas y dimensiones de los siguientes:
+ Invocaciones de punto de conexión
+ Trabajos de entrenamiento, trabajos de transformación por lotes e instancias de punto de conexión

Una *dimensión* es un name/value par que identifica de forma única una métrica. Puede asignar hasta 10 dimensiones a una métrica. Para obtener más información sobre la supervisión con CloudWatch, consulte[Métricas de Amazon SageMaker AI en Amazon CloudWatch](monitoring-cloudwatch.md). 

**Métricas de invocación de puntos de conexión**

El espacio de nombres `AWS/SageMaker` incluye las siguientes métricas de respuesta desde llamadas en [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html) .

Las métricas se notifican a intervalos de 1 minuto.


| Métrica | Description (Descripción) | 
| --- | --- | 
| Invocation4XXErrors |  El número de solicitudes `InvokeEndpoint` para el que el modelo devolvió un código de respuesta HTTP `4xx`. Para cada `4xx` respuesta, la SageMaker IA envía un`1`. Unidades: ninguna Estadísticas válidas: `Average`, `Sum`  | 
| Invocation5XXErrors |  El número de solicitudes `InvokeEndpoint` para el que el modelo devolvió un código de respuesta HTTP `5xx`. Para cada `5xx` respuesta, la SageMaker IA envía un`1`. Unidades: ninguna Estadísticas válidas: `Average`, `Sum`  | 
| Invocations |  Las solicitudes de `number of InvokeEndpoint` enviadas a un punto de conexión del modelo.  Para obtener el número total de solicitudes enviadas a un punto de conexión del modelo, utilice la estadística `Sum`. Unidades: ninguna Estadísticas válidas: `Sum`, `Sample Count`  | 
| InvocationsPerInstance |  El número de invocaciones de puntos finales enviadas a un modelo, normalizado `InstanceCount` en cada una. `ProductionVariant` SageMaker La IA envía 1/ `numberOfInstances` como valor para cada solicitud, que `numberOfInstances` es el número de instancias activas ProductionVariant en el punto final en el momento de la solicitud. Unidades: ninguna Estadísticas válidas: `Sum`  | 
| ModelLatency | El tiempo que el modelo o modelos tardan en responder. Esto incluye el tiempo necesario para enviar la solicitud, para obtener la respuesta del contenedor de modelos y para completar la inferencia en el contenedor. ModelLatency es el tiempo total que tardan todos los contenedores en una canalización de inferencia.Unidades: microsegundosEstadísticas válidas: `Average`, `Sum`, `Min`, `Max`, Sample Count | 
| OverheadLatency |  El tiempo que se suma al tiempo necesario para responder a una solicitud de un cliente por parte de SageMaker AI en concepto de gastos generales. `OverheadLatency`se mide desde el momento en que SageMaker AI recibe la solicitud hasta que devuelve una respuesta al cliente, menos el`ModelLatency`. La latencia de sobrecargas puede variar en función de los tamaños de carga de solicitud y respuesta, la frecuencia de solicitud y la autenticación o la autorización de la solicitud, entre otros factores. Unidades: microsegundos Estadísticas válidas: `Average`, `Sum`, `Min`, `Max`, `Sample Count`  | 
| ContainerLatency | El tiempo que tardó un contenedor de Inference Pipelines en responder, visto desde SageMaker AI. ContainerLatencyincluye el tiempo que se tardó en enviar la solicitud, obtener la respuesta del contenedor del modelo y completar la inferencia en el contenedor.Unidades: microsegundosEstadísticas válidas: `Average`, `Sum`, `Min`, `Max`, `Sample Count` | 

**Dimensiones de las métricas de invocación de puntos de conexión**


| Dimensión | Description (Descripción) | 
| --- | --- | 
| EndpointName, VariantName, ContainerName |  Filtra las métricas de invocación de punto de conexión para `ProductionVariant` en el punto de conexión especificado y para la variante especificada.  | 

En el caso de un punto final de proceso de inferencia, CloudWatch enumera las métricas de latencia por contenedor de su cuenta como métricas de **contenedores de terminales y métricas** **de variantes** de puntos finales en el espacio de nombres de **SageMaker AI, de la siguiente manera**. La métrica `ContainerLatency` solo aparece para canalizaciones de inferencias.

![\[El CloudWatch panel de control de una canalización de inferencias.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/pipeline-endpoint-metrics.png)


Para cada punto de conexión y cada contenedor, las métricas de latencia muestran los nombres del contenedor, punto de conexión, variante y métrica.

![\[Las métricas de latencia de un punto de conexión.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/pipeline-endpoint-metrics-details.png)


**Métricas de instancias de punto de conexión, trabajo de transformación por lotes y trabajo de entrenamiento**

Los espacios de nombres `/aws/sagemaker/TrainingJobs`, `/aws/sagemaker/TransformJobs` y `/aws/sagemaker/Endpoints` incluyen las siguientes métricas para los trabajos de entrenamiento y las instancias de punto de conexión.

Las métricas se notifican a intervalos de 1 minuto.


| Métrica | Description (Descripción) | 
| --- | --- | 
| CPUUtilization |  El porcentaje de unidades de CPU usadas por los contenedores que se ejecutan en una instancia. El valor oscila entre el 0% y el 100% y se multiplica por el número de CPUs. Por ejemplo, si hay cuatro CPUs, `CPUUtilization` puede oscilar entre el 0% y el 400%. Para los trabajos de entrenamiento, `CPUUtilization` es la utilización de la CPU del contenedor de algoritmos que se ejecutan en la instancia. Para los trabajos de transformación por lotes, `CPUUtilization` es la utilización de la CPU del contenedor de transformación que se ejecuta en la instancia. Para modelos de varios contenedores, `CPUUtilization` es la suma de la utilización de CPU por parte de todos los contenedores que se ejecutan en la instancia. Para variantes de punto de conexión, `CPUUtilization` es la suma de la utilización de CPU por parte de todos los contenedores que se ejecutan en la instancia. Unidad: porcentaje  | 
| MemoryUtilization | El porcentaje de memoria que utilizan los contenedores que se ejecutan en una instancia. Este valor oscila entre 0 % y 100 %.Para trabajos de entrenamiento, `MemoryUtilization` es la memoria utilizada por el contenedor de algoritmos que se ejecuta en la instancia.Para trabajos de transformación por lotes, `MemoryUtilization` es la memoria utilizada por el contenedor de transformación que se ejecuta en la instancia.Para modelos de varios contenedores, MemoryUtilization es la suma de memoria utilizada por todos los contenedores que se ejecutan en la instancia.Para variantes de punto de conexión, `MemoryUtilization` es la suma de memoria utilizada por todos los contenedores que se ejecutan en la instancia.Unidad: porcentaje | 
| GPUUtilization |  El porcentaje de unidades de GPU que utilizan los contenedores que se ejecutan en una instancia. `GPUUtilization`oscila entre el 0% y el 100% y se multiplica por el número de GPUs. Por ejemplo, si hay cuatro GPUs, `GPUUtilization` puede oscilar entre el 0% y el 400%. Para trabajos de entrenamiento, `GPUUtilization` es la GPU que utiliza el contenedor de algoritmo que se ejecuta en la instancia. Para trabajos de transformación por lotes, `GPUUtilization` es la GPU utilizada por el contenedor de transformación que se ejecuta en la instancia. Para modelos de varios contenedores, `GPUUtilization` es la suma de GPU utilizada por todos los contenedores que se ejecutan en la instancia. Para variantes de punto de conexión, `GPUUtilization` es la suma de GPU utilizada por todos los contenedores que se ejecutan en la instancia. Unidad: porcentaje  | 
| GPUMemoryUtilization |  El porcentaje de memoria de la GPU que utilizan los contenedores que se ejecutan en una instancia. GPUMemoryEl uso oscila entre el 0% y el 100% y se multiplica por el número de GPUs. Por ejemplo, si hay cuatro GPUs, `GPUMemoryUtilization` puede oscilar entre el 0% y el 400%. Para trabajos de entrenamiento, `GPUMemoryUtilization` es la memoria de GPU utilizada por el contenedor de algoritmos que se ejecuta en la instancia. Para trabajos de transformación por lotes, `GPUMemoryUtilization` es la memoria de GPU utilizada por el contenedor de transformación que se ejecuta en la instancia. Para modelos de varios contenedores, `GPUMemoryUtilization` es la suma de GPU utilizados por todos los contenedores que se ejecutan en la instancia. Para variantes de punto de conexión, `GPUMemoryUtilization` es la suma de la memoria de GPU utilizada por todos los contenedores que se ejecutan en la instancia. Unidad: porcentaje  | 
| DiskUtilization |  El porcentaje de espacio en disco que utilizan los contenedores que se ejecutan en una instancia. DiskUtilization oscila entre el 0% y el 100%. Esta métrica no es compatible con los trabajos de transformación por lotes. Para trabajos de entrenamiento, `DiskUtilization` es el espacio en disco utilizado por el contenedor de algoritmos que se ejecuta en la instancia. Para variantes de punto de conexión, `DiskUtilization` es la suma de espacio en disco utilizado por todos los contenedores proporcionados que se ejecutan en la instancia. Unidad: porcentaje  | 

**Dimensiones de métricas de instancias de punto de conexión, trabajo de transformación por lotes y trabajo de entrenamiento**


| Dimensión | Description (Descripción) | 
| --- | --- | 
| Host |  Para trabajos de entrenamiento, `Host` tiene el formato `[training-job-name]/algo-[instance-number-in-cluster]`. Utilice esta dimensión para filtrar métricas de instancias para la instancia y el trabajo de entrenamiento especificados. Este formato de dimensión está solo presente en el espacio de nombres `/aws/sagemaker/TrainingJobs`. Para trabajos de transformación por lotes, `Host` tiene el formato `[transform-job-name]/[instance-id]`. Utilice esta dimensión para filtrar métricas de instancias para la instancia y el trabajo de transformación por lotes especificados. Este formato de dimensión está solo presente en el espacio de nombres `/aws/sagemaker/TransformJobs`. Para los puntos de conexión, `Host` tiene el formato `[endpoint-name]/[ production-variant-name ]/[instance-id]`. Utilice esta dimensión para filtrar métricas de instancias para la instancia, la variante y el punto de conexión especificados. Este formato de dimensión está solo presente en el espacio de nombres `/aws/sagemaker/Endpoints`.  | 

Para ayudarte a depurar tus tareas de formación, los puntos finales y las configuraciones del ciclo de vida de las instancias de cuadernos, la SageMaker IA también envía todo lo que un contenedor de algoritmos, un contenedor de modelos o una configuración del ciclo de vida de una instancia de cuaderno envíe a Amazon Logs `stdout` o a `stderr` Amazon CloudWatch Logs. Puede utilizar esta información para depuración y para analizar el progreso.

## Uso de registros para monitorizar una canalización de inferencia
<a name="inference-pipeline-logs"></a>

En la siguiente tabla se enumeran los grupos de registros y los flujos de registros que la SageMaker IA envía a Amazon. CloudWatch 

Un *flujo de registro* es una secuencia de eventos de registro que comparten la misma fuente. Cada fuente independiente de registros forma CloudWatch un flujo de registro independiente. Un *grupo de registro* es un grupo de flujos de registro que comparten la misma configuración de retención, monitorización y control de acceso.

**Registros**

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/inference-pipeline-logs-metrics.html)

**nota**  
SageMaker La IA crea el grupo de `/aws/sagemaker/NotebookInstances` registros al crear una instancia de bloc de notas con una configuración de ciclo de vida. Para obtener más información, consulte [Personalización de una instancia de SageMaker bloc de notas mediante un script LCC](notebook-lifecycle-config.md).

Para obtener más información sobre el registro de SageMaker IA, consulte[CloudWatch Registros para Amazon SageMaker AI](logging-cloudwatch.md). 

# Solución de problemas de canalizaciones de inferencia
<a name="inference-pipeline-troubleshoot"></a>

Para solucionar los problemas de la canalización de inferencias, utilice los CloudWatch registros y los mensajes de error. Si utilizas imágenes de Docker personalizadas en una canalización que incluye los algoritmos integrados de Amazon SageMaker AI, es posible que también tengas problemas con los permisos. Para conceder los permisos necesarios, cree una política de Amazon Elastic Container Registry (Amazon ECR).

**Topics**
+ [

## Solución de problemas de permisos de Amazon ECR para canalizaciones de inferencia
](#inference-pipeline-troubleshoot-permissions)
+ [

## Utilice CloudWatch los registros para solucionar problemas de los canales de inferencia de SageMaker IA
](#inference-pipeline-troubleshoot-logs)
+ [

## Utilizar mensajes de error para solucionar problemas de canalizaciones de inferencia
](#inference-pipeline-troubleshoot-errors)

## Solución de problemas de permisos de Amazon ECR para canalizaciones de inferencia
<a name="inference-pipeline-troubleshoot-permissions"></a>

Cuando utilizas 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 ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) La política permite que tu repositorio de Amazon ECR conceda permiso para que SageMaker AI extraiga la imagen. La política debe agregar los permisos siguientes:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "allowSageMakerToPull",
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": [
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Utilice CloudWatch los registros para solucionar problemas de los canales de inferencia de SageMaker IA
<a name="inference-pipeline-troubleshoot-logs"></a>

SageMaker La IA publica los registros de los contenedores para los puntos finales que despliegan una canalización de inferencias hacia Amazon CloudWatch en la siguiente ruta para cada contenedor.

```
/aws/sagemaker/Endpoints/{EndpointName}/{Variant}/{InstanceId}/{ContainerHostname}
```

Por ejemplo, los registros para este punto de conexión se publican en los siguientes grupos de registros y secuencias:

```
EndpointName: MyInferencePipelinesEndpoint
Variant: MyInferencePipelinesVariant
InstanceId: i-0179208609ff7e488
ContainerHostname: MyContainerName1 and MyContainerName2
```

```
logGroup: /aws/sagemaker/Endpoints/MyInferencePipelinesEndpoint
logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName1
logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName2
```

Un *flujo de registro* es una secuencia de eventos de registro que comparten la misma fuente. Cada fuente independiente de registros forma un CloudWatch flujo de registros independiente. Un *grupo de registro* es un grupo de flujos de registro que comparten la misma configuración de retención, monitorización y control de acceso.

**Para ver los grupos de registro y secuencias**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Registros**.

1. En **Grupos de registro**, filtre en **MyInferencePipelinesEndpoint**:   
![\[Los grupos de CloudWatch registros filtrados para el punto final de la canalización de inferencia.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/pipeline-log-group-filter.png)

1. Para ver los flujos de registros, en la página **Grupos de CloudWatch registros**, elija y**MyInferencePipelinesEndpoint**, a continuación, **Buscar grupo de registros**.  
![\[El flujo de CloudWatch registro de la canalización de inferencias.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/pipeline-log-streams-2.png)

Para obtener una lista de los registros que publica SageMaker AI, consulte[Registros y métricas de canalización de inferencias](inference-pipeline-logs-metrics.md).

## Utilizar mensajes de error para solucionar problemas de canalizaciones de inferencia
<a name="inference-pipeline-troubleshoot-errors"></a>

Los mensajes de error de canalización de inferencia indican que los contenedores presentan errores. 

Si se produce un error mientras la SageMaker IA invoca un punto final, el servicio devuelve un `ModelError` (código de error 424), que indica qué contenedor ha fallado. Si la carga útil de la solicitud (la respuesta del contenedor anterior) supera el límite de 5 MB, SageMaker AI proporciona un mensaje de error detallado, como: 

Recibió una respuesta de MyContainerName 1 con el código de estado 200. Sin embargo, la carga útil de la solicitud de MyContainerName 1 a MyContainerName 2 es de 6000000 bytes, lo que ha superado el límite máximo de 5 MB.

``

Si un contenedor no supera la comprobación de estado del ping mientras la SageMaker IA está creando un punto final, devuelve un valor `ClientError` e indica todos los contenedores que no pasaron la comprobación de ping en la última comprobación de estado.