Implementazione dell'osservabilità inferenziale sui cluster HyperPod - Amazon SageMaker AI

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

Implementazione dell'osservabilità inferenziale sui cluster HyperPod

Amazon SageMaker HyperPod offre funzionalità complete di osservabilità dell'inferenza che consentono ai data scientist e agli ingegneri di machine learning di monitorare e ottimizzare i modelli distribuiti. Questa soluzione è abilitata tramite SageMaker HyperPod Observability e raccoglie automaticamente le metriche delle prestazioni per i carichi di lavoro di inferenza, offrendo un monitoraggio pronto per la produzione tramite dashboard Prometheus e Grafana integrati.

Con le metriche abilitate di default, la piattaforma acquisisce i dati essenziali sulle prestazioni del modello, tra cui latenza di chiamata, richieste simultanee, tassi di errore e metriche a livello di token, fornendo al contempo endpoint Prometheus standard per i clienti che preferiscono implementare soluzioni di osservabilità personalizzate.

Nota

Questo argomento contiene un'analisi approfondita dell'implementazione dell'osservabilità inferenziale sui cluster. HyperPod Per un riferimento più generale, vedere. Osservabilità dei cluster e delle attività

Questa guida fornisce step-by-step istruzioni per implementare e utilizzare l'osservabilità inferenziale sui HyperPod cluster. Imparerai come configurare le metriche nei file YAML della tua implementazione, accedere ai dashboard di monitoraggio in base al tuo ruolo (amministratore, data scientist o ingegnere di machine learning), integrarti con soluzioni di osservabilità personalizzate che utilizzano gli endpoint Prometheus e risolvere i problemi di monitoraggio più comuni.

Metriche di inferenza supportate

Parametri di invocazione

Queste metriche acquisiscono i dati di richiesta e risposta di inferenza del modello, fornendo una visibilità universale indipendentemente dal tipo di modello o dal framework di servizio. Quando le metriche di inferenza sono abilitate, queste metriche vengono calcolate al momento della chiamata ed esportate nell'infrastruttura di monitoraggio.

  • model_invocations_total- Numero totale di richieste di invocazione al modello

  • model_errors_total- Numero totale di errori durante l'invocazione del modello

  • model_concurrent_requests- Richieste di modelli simultanee attive

  • model_latency_milliseconds- Latenza di invocazione del modello in millisecondi

  • model_ttfb_milliseconds- Modella il tempo di latenza rispetto al primo byte in millisecondi

Metriche del contenitore del modello

Queste metriche forniscono informazioni dettagliate sulle operazioni interne dei contenitori modello, tra cui l'elaborazione dei token, la gestione delle code e gli indicatori di performance specifici del framework. Le metriche disponibili dipendono dal framework di servizio del modello:

Dimensioni metriche

Tutte le metriche di inferenza includono etichette complete che consentono il filtraggio e l'analisi dettagliati in tutte le implementazioni:

  • Identità del cluster:

    • cluster_id- L'ID univoco del HyperPod cluster

    • cluster_name- Il nome del HyperPod cluster

  • Identità della risorsa:

    • resource_name- Nome della distribuzione (ad esempio, "jumpstart-model-deployment«)

    • resource_type- Tipo di implementazione (jumpstart, inference-endpoint)

    • namespace- Namespace Kubernetes per multi-tenancy

  • Caratteristiche del modello:

    • model_name- Identificatore specifico del modello (ad esempio, «llama-2-7b-chat»)

    • model_version- Versione del modello per test e rollback A/B

    • model_container_type- Framework di servizio (TGI, LMI, -)

  • Contesto dell'infrastruttura:

    • pod_name- Identificatore di pod individuale per il debug

    • node_name- Nodo Kubernetes per la correlazione delle risorse

    • instance_type- tipo di EC2 istanza per l'analisi dei costi

  • Contesto operativo:

    • metric_source- Punto di raccolta (reverse-proxy, model-container)

    • task_type- Classificazione del carico di lavoro (inferenza)

Configura le metriche nella distribuzione YAML

Amazon SageMaker HyperPod abilita le metriche di inferenza per impostazione predefinita per tutte le implementazioni di modelli, fornendo un'osservabilità immediata senza configurazioni aggiuntive. Puoi personalizzare il comportamento dei parametri modificando la configurazione YAML di distribuzione per abilitare o disabilitare la raccolta dei parametri in base ai tuoi requisiti specifici.

Implementa un modello da JumpStart

Utilizza la seguente configurazione YAML per distribuire un JuJumpStartmpStart modello con le metriche abilitate:

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/

Distribuisci modelli personalizzati e ottimizzati da Amazon S3 o Amazon FSx

Configura endpoint di inferenza personalizzati con impostazioni dettagliate delle metriche utilizzando il seguente 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

Per disabilitare le metriche per distribuzioni specifiche, impostale nella configurazione YAML. metrics.enabled: false

Monitora e risolvi i carichi di lavoro di inferenza per ruolo

Amazon SageMaker HyperPod offre funzionalità di osservabilità complete che supportano diversi flussi di lavoro degli utenti, dalla configurazione iniziale del cluster alla risoluzione avanzata dei problemi delle prestazioni. Utilizza le seguenti linee guida in base al tuo ruolo e ai requisiti di monitoraggio.

HyperPod amministratore

La tua responsabilità: abilita l'infrastruttura di osservabilità e garantisci l'integrità del sistema nell'intero cluster.

Cosa devi sapere:

  • L'osservabilità a livello di cluster fornisce parametri dell'infrastruttura per tutti i carichi di lavoro

  • La configurazione con un solo clic implementa lo stack di monitoraggio con dashboard preconfigurati

  • Le metriche dell'infrastruttura sono separate dalle metriche di inferenza specifiche del modello

Cosa devi fare:

  1. Vai alla HyperPod console.

  2. Selezionare il cluster.

  3. Vai alla pagina dei dettagli del HyperPod cluster che hai appena creato. Vedrai una nuova opzione per installare il componente aggiuntivo HyperPod observability.

  4. Fai clic sull'opzione Installazione rapida. Dopo 1-2 minuti tutti i passaggi saranno completati e vedrai la dashboard di Grafana e i dettagli dell'area di lavoro di Prometheus.

Questa singola azione implementa automaticamente il componente aggiuntivo EKS, configura gli operatori di osservabilità e fornisce dashboard predefiniti a Grafana.

Scienziato dei dati

La tua responsabilità: implementa i modelli in modo efficiente e monitora le loro prestazioni di base.

Cosa devi sapere:

  • Le metriche vengono abilitate automaticamente quando si distribuiscono i modelli

  • I dashboard Grafana offrono una visibilità immediata sulle prestazioni del modello

  • Puoi filtrare i dashboard per concentrarti sulle tue implementazioni specifiche

Cosa devi fare:

  1. Implementa il tuo modello utilizzando il tuo metodo preferito:

    1. Interfaccia utente di Amazon SageMaker Studio

    2. HyperPod Comandi CLI

    3. Python SDK nei notebook

    4. kubectl con configurazioni YAML

  2. Accedi alle metriche del tuo modello:

    1. Apri Amazon SageMaker Studio

    2. Vai a HyperPod Cluster e apri Grafana Dashboard

    3. Seleziona Inference Dashboard

    4. Applica i filtri per visualizzare la distribuzione del tuo modello specifico

  3. Monitora gli indicatori chiave di prestazione:

    1. Tieni traccia della latenza e del throughput del modello

    2. Monitora i tassi di errore e la disponibilità

    3. Rivedi le tendenze di utilizzo delle risorse

Al termine, avrai una visibilità immediata sulle prestazioni del modello senza configurazioni aggiuntive, consentendo una rapida identificazione dei problemi di implementazione o delle modifiche alle prestazioni.

Ingegnere dell'apprendimento automatico (MLE)

La tua responsabilità: mantenere le prestazioni del modello di produzione e risolvere problemi di prestazioni complessi.

Cosa devi sapere:

  • Le metriche avanzate includono dettagli sul contenitore del modello come la profondità della coda e le metriche dei token

  • L'analisi della correlazione tra più tipi di metriche rivela le cause profonde

  • Le configurazioni con scalabilità automatica influiscono direttamente sulle prestazioni durante i picchi di traffico

Scenario ipotetico: il modello di chat di un cliente presenta risposte lente e intermittenti. Gli utenti lamentano ritardi di 5-10 secondi. Il MLE può sfruttare l'osservabilità dell'inferenza per un'indagine sistematica delle prestazioni.

Cosa devi fare:

  1. Esamina la dashboard Grafana per comprendere la portata e la gravità del problema di prestazioni:

    1. Avviso ad alta latenza attivo dalle 09:30

    2. Latenza P99:8,2 s (normale: 2,1 s)

    3. Intervallo orario interessato: 09:30-10:15 (45 minuti)

  2. Correla più metriche per comprendere il comportamento del sistema durante l'incidente:

    1. Richieste simultanee: aumento a 45 (normale: 15-20)

    2. Ridimensionamento dei pod: KEDA ha ridimensionato 2→5 pod durante l'incidente

    3. Utilizzo della GPU: è rimasto normale (85-90%)

    4. Utilizzo della memoria: normale (24 GB/32 GB)

  3. Esamina il comportamento del sistema distribuito poiché i parametri dell'infrastruttura sembrano normali:

    1. Visualizzazione a livello di nodo: tutti i pod sono concentrati sullo stesso nodo (distribuzione scadente)

    2. Metriche del contenitore del modello: la profondità della coda TGI mostra 127 richieste (normale: 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. Identifica i problemi di configurazione interconnessi:

    1. Politica di scalabilità KEDA: troppo lenta (intervallo di polling di 30 secondi)

    2. Cronologia di scalabilità: la risposta alla scalabilità è rimasta indietro rispetto al picco di traffico di oltre 45 secondi

  5. Implementa correzioni mirate basate sull'analisi:

    1. Intervallo di polling KEDA aggiornato: 30 s → 15 s

    2. MaxReplicas aumentato nella configurazione di scalabilità

    3. Soglie di scalabilità adeguate per una scalabilità precedente (15 contro 20 richieste simultanee)

È possibile diagnosticare sistematicamente problemi di prestazioni complessi utilizzando metriche complete, implementare correzioni mirate e stabilire misure preventive per mantenere prestazioni costanti del modello di produzione.

Implementa la tua integrazione di osservabilità

Amazon SageMaker HyperPod espone i parametri di inferenza tramite endpoint Prometheus standard del settore, abilitando l'integrazione con l'infrastruttura di osservabilità esistente. Utilizza questo approccio quando preferisci implementare soluzioni di monitoraggio personalizzate o integrarle con piattaforme di osservabilità di terze parti invece di utilizzare lo stack Grafana e Prometheus integrato.

Accedi agli endpoint delle metriche di inferenza

Cosa devi sapere:

  • Le metriche di inferenza vengono esposte automaticamente su endpoint Prometheus standardizzati

  • Le metriche sono disponibili indipendentemente dal tipo di modello o dal framework di servizio

  • Per la raccolta dei dati si applicano le pratiche di scraping standard di Prometheus

Configurazione degli endpoint delle metriche di inferenza:

  • Porta: 9113

  • Percorso: /metrics

  • Endpoint completo: http://pod-ip:9113/metrics

Metriche di inferenza disponibili:

  • model_invocations_total- Numero totale di richieste di invocazione al modello

  • model_errors_total- Numero totale di errori durante l'invocazione del modello

  • model_concurrent_requests- Richieste simultanee attive per modello

  • model_latency_milliseconds- Latenza di invocazione del modello in millisecondi

  • model_ttfb_milliseconds- Modella il tempo di latenza rispetto al primo byte in millisecondi

Accedi alle metriche del contenitore del modello

Cosa devi sapere:

  • I container modello espongono metriche aggiuntive specifiche per il loro framework di servizio

  • Queste metriche forniscono informazioni interne sui container, come l'elaborazione dei token e la profondità delle code

  • La configurazione degli endpoint varia in base al tipo di contenitore del modello

Per le implementazioni di JumpStart modelli che utilizzano contenitori Text Generation Inference (TGI):

Per le implementazioni di JumpStart modelli che utilizzano contenitori Large Model Inference (LMI):

Per endpoint di inferenza personalizzati (BYOD):

  • Porta: configurata dal cliente (impostazione predefinita: 8080). WorkerConfig ModelInvocationPort. ContainerPort all'interno delle InferenceEndpointConfig specifiche.)

  • Percorso: configurato dal cliente (default /metrics)

Implementa l'integrazione personalizzata dell'osservabilità

Con un'integrazione di osservabilità personalizzata, sei responsabile di:

  1. Metrics Scraping: implementa lo scraping compatibile con Prometheus dagli endpoint di cui sopra

  2. Esportazione dati: configura l'esportazione verso la piattaforma di osservabilità prescelta

  3. Avvisi: imposta le regole di avviso in base ai tuoi requisiti operativi

  4. Dashboard: crea dashboard di visualizzazione per le tue esigenze di monitoraggio

Risolvi i problemi di osservabilità dell'inferenza

La dashboard non mostra dati

Se la dashboard Grafana è vuota e tutti i pannelli mostrano «Nessun dato», esegui i seguenti passaggi per indagare:

  1. Verify Administrator abbia installato l'osservabilità dell'inferenza:

    1. Passa a HyperPod Console > Seleziona cluster > Controlla se lo stato «Osservabilità» mostra «Abilitato»

    2. Verifica che il collegamento all'area di lavoro Grafana sia accessibile dalla panoramica del cluster

    3. Verifica che l'area di lavoro Amazon Managed Prometheus sia configurata e che riceva dati

  2. Verify Observability HyperPod è abilitato:

    hyp observability view
  3. Verifica che le metriche del modello siano abilitate:

    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. Controlla l'endpoint delle metriche:

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

    # 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

Altri problemi comuni

Problema Soluzione Azione

L'osservabilità dell'inferenza non è installata

Installa l'osservabilità dell'inferenza tramite la console

«Abilita l'osservabilità» nella console HyperPod

Metriche disabilitate nel modello

Aggiorna la configurazione del modello

Aggiungi metrics: {enabled: true} alle specifiche del modello

Spazio di lavoro AMP non configurato

Correggi la connessione alla fonte di dati

Verifica l'ID dell'area di lavoro AMP nelle sorgenti dati Grafana

Connettività di rete

Controlla i gruppi di sicurezza/ NACLs

Assicurati che i pod possano raggiungere gli endpoint AMP