Implementación de la observabilidad de inferencias en clústeres HyperPod - Amazon SageMaker AI

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.

Implementación de la observabilidad de inferencias en clústeres HyperPod

Amazon SageMaker HyperPod ofrece capacidades integrales de observabilidad de inferencias que permiten a los científicos de datos y a los ingenieros de aprendizaje automático monitorear y optimizar sus modelos implementados. Esta solución se habilita a través de SageMaker HyperPod Observability y recopila automáticamente métricas de rendimiento para las cargas de trabajo de inferencia, lo que ofrece una supervisión lista para la producción a través de los paneles integrados de Prometheus y Grafana.

Con las métricas habilitadas de forma predeterminada, la plataforma captura datos esenciales de rendimiento del modelo, como la latencia de invocación, las solicitudes simultáneas, las tasas de error y las métricas a nivel de token, al tiempo que proporciona puntos finales de Prometheus estándar para los clientes que prefieren implementar soluciones de observabilidad personalizadas.

nota

Este tema contiene información detallada sobre la implementación de la observabilidad de inferencias en los clústeres. HyperPod Para obtener una referencia más general, consulte. Observabilidad de clústeres y tareas

Esta guía proporciona step-by-step instrucciones para implementar y usar la observabilidad de inferencias en sus HyperPod clústeres. Aprenderá a configurar las métricas en los archivos YAML de su implementación, a acceder a los paneles de supervisión en función de su función (administrador, científico de datos o ingeniero de aprendizaje automático), a integrarse con soluciones de observabilidad personalizadas mediante puntos de conexión de Prometheus y a solucionar problemas de supervisión comunes.

Métricas de inferencia compatibles

Métricas de invocación

Estas métricas capturan los datos de solicitud y respuesta de inferencia del modelo, lo que proporciona una visibilidad universal independientemente del tipo de modelo o del marco de servicio. Cuando las métricas de inferencia están habilitadas, estas métricas se calculan en el momento de la invocación y se exportan a su infraestructura de monitoreo.

  • model_invocations_total- Número total de solicitudes de invocación al modelo

  • model_errors_total- Número total de errores durante la invocación del modelo

  • model_concurrent_requests- Solicitudes de modelos simultáneas activas

  • model_latency_milliseconds- Modele la latencia de invocación en milisegundos

  • model_ttfb_milliseconds- Modele el tiempo de latencia hasta el primer byte en milisegundos

Modele las métricas de los contenedores

Estas métricas proporcionan información sobre las operaciones internas de los contenedores modelo, incluidos el procesamiento de los tokens, la gestión de colas y los indicadores de rendimiento específicos del marco. Las métricas disponibles dependen del marco de servicio de modelos:

Dimensiones métricas

Todas las métricas de inferencia incluyen etiquetas completas que permiten filtrar y analizar detalladamente todas las implementaciones:

  • Identidad del clúster:

    • cluster_id- El identificador único del HyperPod clúster

    • cluster_name- El nombre del HyperPod clúster

  • Identidad del recurso:

    • resource_name- Nombre de la implementación (por ejemplo, "jumpstart-model-deployment«)

    • resource_type- Tipo de despliegue (inicio rápido, inferencia-punto final)

    • namespace- Espacio de nombres de Kubernetes para tenencia múltiple

  • Características del modelo:

    • model_name- Identificador de modelo específico (por ejemplo, «llama-2-7b-chat»)

    • model_version- Versión modelo para pruebas y versiones anteriores A/B

    • model_container_type- Marco de servicio (TGI, LMI, -)

  • Contexto de infraestructura:

    • pod_name- Identificador de pod individual para la depuración

    • node_name- Nodo de Kubernetes para la correlación de recursos

    • instance_type- tipo de EC2 instancia para el análisis de costes

  • Contexto operativo:

    • metric_source- Punto de recogida (proxy inverso, modelo-contenedor)

    • task_type- Clasificación de la carga de trabajo (inferencia)

Configure las métricas en el YAML de despliegue

Amazon SageMaker HyperPod habilita las métricas de inferencia de forma predeterminada para todas las implementaciones de modelos, lo que proporciona una observabilidad inmediata sin necesidad de configuración adicional. Puede personalizar el comportamiento de las métricas modificando la configuración de YAML de la implementación para habilitar o deshabilitar la recopilación de métricas en función de sus requisitos específicos.

Implemente un modelo desde JumpStart

Usa la siguiente configuración de YAML para implementar un JuJumpStartmpStart modelo con las métricas habilitadas:

apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: JumpStartModel metadata: name:mistral-model namespace: ns-team-a spec: model: modelId: "huggingface-llm-mistral-7b-instruct" modelVersion: "3.19.0" metrics: enabled:true # Default: true (can be set to false to disable) replicas: 2 sageMakerEndpoint: name: "mistral-model-sm-endpoint" server: instanceType: "ml.g5.12xlarge" executionRole: "arn:aws:iam::123456789:role/SagemakerRole" tlsConfig: tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/

Implemente modelos personalizados y ajustados desde Amazon S3 o Amazon FSx

Configure puntos finales de inferencia personalizados con parámetros de métricas detallados mediante el siguiente YAML:

apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: JumpStartModel metadata: name:mistral-model namespace: ns-team-a spec: model: modelId: "huggingface-llm-mistral-7b-instruct" modelVersion: "3.19.0" metrics: enabled:true # Default: true (can be set to false to disable) replicas: 2 sageMakerEndpoint: name: "mistral-model-sm-endpoint" server: instanceType: "ml.g5.12xlarge" executionRole: "arn:aws:iam::123456789:role/SagemakerRole" tlsConfig: tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/ Deploy a custom inference endpoint Configure custom inference endpoints with detailed metrics settings using the following YAML: apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: InferenceEndpointConfig metadata: name: inferenceendpoint-deepseeks namespace: ns-team-a spec: modelName: deepseeks modelVersion: 1.0.1 metrics: enabled: true # Default: true (can be set to false to disable) metricsScrapeIntervalSeconds: 30 # Optional: if overriding the default 15s modelMetricsConfig: port: 8000 # Optional: if overriding, it defaults to the WorkerConfig.ModelInvocationPort.ContainerPort within the InferenceEndpointConfig spec 8080 path: "/custom-metrics" # Optional: if overriding the default "/metrics" endpointName: deepseek-sm-endpoint instanceType: ml.g5.12xlarge modelSourceConfig: modelSourceType: s3 s3Storage: bucketName: model-weights region: us-west-2 modelLocation: deepseek prefetchEnabled: true invocationEndpoint: invocations worker: resources: limits: nvidia.com/gpu: 1 requests: nvidia.com/gpu: 1 cpu: 25600m memory: 102Gi image: 763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:0.32.0-lmi14.0.0-cu124 modelInvocationPort: containerPort: 8080 name: http modelVolumeMount: name: model-weights mountPath: /opt/ml/model environmentVariables: ... tlsConfig: tlsCertificateOutputS3Uri: s3://hyperpod/inferenceendpoint-deepseeks4/certs/
nota

Para deshabilitar las métricas para implementaciones específicas, configúrelas metrics.enabled: false en su configuración de YAML.

Supervise y solucione los problemas de las cargas de trabajo de inferencia por función

Amazon SageMaker HyperPod proporciona capacidades de observabilidad integrales que admiten diferentes flujos de trabajo de usuario, desde la configuración inicial del clúster hasta la solución avanzada de problemas de rendimiento. Utilice la siguiente guía en función de su función y sus requisitos de supervisión.

HyperPod administrador

Su responsabilidad: habilite la infraestructura de observabilidad y garantice el estado del sistema en todo el clúster.

Lo que necesita saber:

  • La observabilidad en todo el clúster proporciona métricas de infraestructura para todas las cargas de trabajo

  • La configuración con un solo clic despliega una pila de monitoreo con paneles preconfigurados

  • Las métricas de infraestructura son independientes de las métricas de inferencia específicas del modelo

Qué debe hacer:

  1. Navega hasta la HyperPod consola.

  2. Seleccione el clúster.

  3. Ve a la página de detalles del HyperPod clúster que acabas de crear. Verás una nueva opción para instalar el complemento de HyperPod observabilidad.

  4. Haz clic en la opción de instalación rápida. Después de 1 o 2 minutos, se completarán todos los pasos y verás el panel de control de Grafana y los detalles del espacio de trabajo de Prometheus.

Esta única acción despliega automáticamente el complemento EKS, configura los operadores de observabilidad y aprovisiona paneles prediseñados en Grafana.

Científico de datos

Su responsabilidad: Implemente modelos de manera eficiente y supervise su rendimiento básico.

Lo que necesita saber:

  • Las métricas se activan automáticamente al implementar modelos

  • Los paneles de Grafana proporcionan una visibilidad inmediata del rendimiento del modelo

  • Puede filtrar los paneles para centrarse en sus despliegues específicos

Qué debe hacer:

  1. Implemente su modelo con el método que prefiera:

    1. Interfaz de usuario de Amazon SageMaker Studio

    2. HyperPod Comandos CLI

    3. SDK de Python en cuadernos

    4. kubectl con configuraciones YAML

  2. Acceda a las métricas de su modelo:

    1. Abre Amazon SageMaker Studio

    2. Ve al HyperPod clúster y abre el panel de control de Grafana

    3. Seleccione Panel de inferencias

    4. Aplique filtros para ver la implementación de su modelo específico

  3. Supervise los indicadores clave de rendimiento:

    1. Realice un seguimiento de la latencia y el rendimiento del modelo

    2. Supervise las tasas de error y la disponibilidad

    3. Revise las tendencias de utilización de los recursos

Una vez completado este proceso, tendrá una visibilidad inmediata del rendimiento de su modelo sin necesidad de realizar ninguna configuración adicional, lo que le permitirá identificar rápidamente los problemas de implementación o los cambios en el rendimiento.

Ingeniero de aprendizaje automático (MLE)

Su responsabilidad: mantener el rendimiento del modelo de producción y resolver problemas de rendimiento complejos.

Lo que necesita saber:

  • Las métricas avanzadas incluyen detalles del contenedor del modelo, como la profundidad de las colas y las métricas simbólicas

  • El análisis de correlación entre varios tipos de métricas revela las causas fundamentales

  • Las configuraciones de escalado automático afectan directamente al rendimiento durante los picos de tráfico

Escenario hipotético: el modelo de chat de un cliente experimenta respuestas lentas e intermitentes. Los usuarios se quejan de retrasos de 5 a 10 segundos. El MLE puede aprovechar la observabilidad de la inferencia para una investigación sistemática del rendimiento.

Qué debe hacer:

  1. Examine el panel de control de Grafana para comprender el alcance y la gravedad del problema de rendimiento:

    1. Alerta de alta latencia activa desde las 09:30

    2. Latencia P99:8,2 s (normal: 2,1 s)

    3. Periodo de tiempo afectado: 09:30-10:15 (45 minutos)

  2. Correlaciona varias métricas para comprender el comportamiento del sistema durante el incidente:

    1. Solicitudes simultáneas: se incrementaron a 45 (lo normal es de 15 a 20)

    2. Escalado de cápsulas: KEDA escaló de 2 a 5 cápsulas durante el incidente

    3. Utilización de la GPU: se mantuvo normal (entre un 85 y un 90%)

    4. Uso de memoria: normal (24 GB/32 GB)

  3. Examine el comportamiento del sistema distribuido, ya que las métricas de la infraestructura parecen normales:

    1. Vista a nivel de nodo: todos los pods se concentraron en el mismo nodo (distribución deficiente)

    2. Métricas del contenedor modelo: la profundidad de la cola TGI muestra 127 solicitudes (normal: 5-10)

    Available in Grafana dashboard under "Model Container Metrics" panel Metric: tgi_queue_size{resource_name="customer-chat-llama"} Current value: 127 requests queued (indicates backlog)
  4. Identifique los problemas de configuración interconectados:

    1. Política de escalado de KEDA: demasiado lenta (intervalo de sondeo de 30 segundos)

    2. Plazo de escalado: la respuesta de escalado se retrasó más de 45 segundos con respecto al pico de tráfico

  5. Implemente correcciones específicas basadas en el análisis:

    1. Intervalo de sondeo KEDA actualizado: 30 s → 15 s

    2. Aumento del número máximo de réplicas en la configuración de escalado

    3. Se ajustaron los umbrales de escalado para escalarlos antes (15 frente a 20 solicitudes simultáneas)

Puede diagnosticar sistemáticamente problemas de rendimiento complejos mediante métricas integrales, implementar correcciones específicas y establecer medidas preventivas para mantener un rendimiento uniforme del modelo de producción.

Implemente su propia integración de observabilidad

Amazon SageMaker HyperPod expone las métricas de inferencia a través de puntos de enlace Prometheus estándares del sector, lo que permite la integración con su infraestructura de observabilidad existente. Utilice este enfoque cuando prefiera implementar soluciones de monitoreo personalizadas o integrarlas con plataformas de observabilidad de terceros en lugar de utilizar la pila integrada de Grafana y Prometheus.

Acceda a los puntos finales de las métricas de inferencia

Lo que necesita saber:

  • Las métricas de inferencia se exponen automáticamente en los puntos finales estandarizados de Prometheus

  • Las métricas están disponibles independientemente del tipo de modelo o del marco de servicio

  • Se aplican las prácticas estándar de raspado de Prometheus para la recopilación de datos

Configuración del punto final de las métricas de inferencia:

  • Puerto: 9113

  • Ruta: /metrics

  • Punto final completo: http://pod-ip:9113/metrics

Métricas de inferencia disponibles:

  • model_invocations_total- Número total de solicitudes de invocación al modelo

  • model_errors_total- Número total de errores durante la invocación del modelo

  • model_concurrent_requests- Solicitudes simultáneas activas por modelo

  • model_latency_milliseconds- Latencia de invocación del modelo en milisegundos

  • model_ttfb_milliseconds- Modele el tiempo de latencia hasta el primer byte en milisegundos

Acceda a las métricas del contenedor del modelo

Lo que necesita saber:

  • Los contenedores modelo exponen métricas adicionales específicas de su marco de servicio

  • Estas métricas proporcionan información interna sobre los contenedores, como el procesamiento de los tokens y la profundidad de las colas

  • La configuración del punto final varía según el modelo y tipo de contenedor

Para implementaciones de JumpStart modelos que utilizan contenedores de inferencia de generación de texto (TGI):

Para despliegues de JumpStart modelos que utilizan contenedores de inferencia de modelos grandes (LMI):

Para puntos finales de inferencia personalizados (BYOD):

  • Puerto: configurado por el cliente (predeterminado): el 8080 es el. WorkerConfig ModelInvocationPort. ContainerPort dentro de las InferenceEndpointConfig especificaciones.)

  • Ruta: configurada por el cliente (/metrics por defecto)

Implemente una integración de observabilidad personalizada

Con una integración de observabilidad personalizada, usted es responsable de:

  1. Extracción de métricas: Implemente la extracción compatible con Prometheus desde los puntos finales anteriores

  2. Exportación de datos: configure la exportación a la plataforma de observabilidad que elija

  3. Alertas: configure reglas de alerta en función de sus requisitos operativos

  4. Paneles de control: cree paneles de visualización para sus necesidades de monitoreo

Solucione problemas de observabilidad de inferencias

El panel de control no muestra ningún dato

Si el panel de Grafana está vacío y todos los paneles muestran «Sin datos», lleve a cabo los siguientes pasos para investigar:

  1. Compruebe que el administrador tenga instalada la capacidad de observación de inferencias:

    1. Vaya a la HyperPod consola > Seleccione el clúster > Compruebe si el estado de «Observabilidad» muestra «Habilitada»

    2. Verifique que se pueda acceder al enlace del espacio de trabajo de Grafana desde la descripción general del clúster

    3. Confirma que el espacio de trabajo de Prometheus gestionado por Amazon esté configurado y reciba datos

  2. Verifica que la HyperPod observabilidad esté habilitada:

    hyp observability view
  3. Compruebe que las métricas del modelo estén habilitadas:

    kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled
    kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled
  4. Compruebe el punto final de las métricas:

    kubectl port-forward pod/customer-chat-llama-xxx 9113:9113 curl localhost:9113/metrics | grep model_invocations_total# Expected: model_invocations_total{...} metrics
  5. Comprueba los registros:

    # Model Container kubectl logs customer-chat-llama-xxx -c customer-chat-llama# Look for: OOM errors, CUDA errors, model loading failures # Proxy/SideCar kubectl logs customer-chat-llama-xxx -c sidecar-reverse-proxy# Look for: DNS resolution issues, upstream connection failures # Metrics Exporter Sidecar kubectl logs customer-chat-llama-xxx -c otel-collector# Look for: Metrics collection issues, export failures

Otros problemas comunes

Problema Solución Acción

La observabilidad de inferencias no está instalada

Instale la observabilidad de inferencias a través de la consola

«Habilitar la observabilidad» en la consola HyperPod

Métricas deshabilitadas en el modelo

Actualizar la configuración del modelo

Añadir metrics: {enabled: true} a las especificaciones del modelo

El espacio de trabajo AMP no está configurado

Corrija la conexión de la fuente de datos

Verificar el ID del espacio de trabajo de AMP en las fuentes de datos de Grafana

La conectividad de red

Compruebe los grupos de seguridad/ NACLs

Asegúrese de que los pods puedan llegar a los puntos finales de AMP