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 per impostazione predefinita, la piattaforma acquisisce i dati essenziali sulle prestazioni del modello, tra cui latenza di invocazione, 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 una panoramica più generale, consulta Osservabilità di cluster e attività.

Questa guida fornisce step-by-step istruzioni per implementare e utilizzare l'osservabilità inferenziale sui cluster. HyperPod Scoprirai come configurare le metriche nei file YAML di implementazione, accedere alle 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 per l’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 dell’invocazione 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: latenza del tempo al primo byte (Time To First Byte, TTFB) del modello in millisecondi

Metriche del container del modello

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

Dimensioni metrica

Tutte le metriche di inferenza includono etichette complete che consentono di filtrare e analizzare in dettaglio tutte le implementazioni:

  • Identità del cluster:

    • cluster_id- L'ID univoco del cluster HyperPod

    • 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 A/B test e rollback

    • 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)

Configurazione delle metriche nel file YAML di implementazione

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 delle metriche modificando la configurazione YAML di implementazione per abilitare o disabilitare la raccolta delle metriche 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/v1 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 delle metriche dettagliate utilizzando il file YAML seguente:

apiVersion: inference.sagemaker.aws.amazon.com/v1 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/v1 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 implementazioni specifiche, imposta metrics.enabled: false nella configurazione YAML.

Monitoraggio e risoluzione dei problemi relativi ai 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 indicazioni seguenti in base al tuo ruolo e ai requisiti di monitoraggio.

HyperPod amministratore

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 metriche dell’infrastruttura per tutti i carichi di lavoro

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

  • 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, una volta completate tutte le fasi, vedrai la dashboard di Grafana e i dettagli dello spazio di lavoro di Prometheus.

Questa singola azione implementa automaticamente il componente aggiuntivo EKS, configura gli operatori di osservabilità e alloca dashboard predefinite in Grafana.

Data Scientist

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

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

  • Puoi filtrare le dashboard per concentrarti sulle tue implementazioni specifiche

Cosa devi fare:

  1. Implementa il modello con 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 modello:

    1. Apri Amazon SageMaker Studio

    2. Vai a HyperPod Cluster e apri Grafana Dashboard

    3. Seleziona Dashboard di inferenza

    4. Applica i filtri per visualizzare l’implementazione del tuo modello specifico

  3. Monitora gli indicatori chiave delle prestazioni:

    1. Monitora la latenza e il throughput del modello

    2. Monitora i tassi di errore e la disponibilità

    3. Esamina le tendenze di utilizzo delle risorse

Al termine, avrai una visibilità immediata sulle prestazioni del modello senza configurazioni aggiuntive, che ti consente di identificare rapidamente i problemi di implementazione o le modifiche alle prestazioni.

Ingegnere di machine learning engineer

Responsabilità: mantieni le prestazioni del modello di produzione e risolvi i problemi di prestazioni complessi.

Cosa devi sapere:

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

  • L’analisi di correlazione tra più tipi di metriche rivela le cause principali

  • Le configurazioni con dimensionamento automatico influiscono direttamente sulle prestazioni durante i picchi di traffico

Scenario ipotetico: il modello di chat di un cliente dà risposte lente e intermittenti. Gli utenti lamentano ritardi di 5-10 secondi. 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 relativo alle prestazioni:

    1. Avviso di alta latenza attivo dalle 9:30

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

    3. Finestra di tempo interessata: 9:30-10:15 (45 minuti)

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

    1. Richieste simultanee: picco di 45 (normale: 15-20)

    2. Dimensionamento dei pod: KEDA ha aumentato i pod da 2 a 5 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, visto che le metriche dell’infrastruttura sembrano normali:

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

    2. Metriche del container 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. Policy di dimensionamento KEDA: troppo lenta (intervallo di polling di 30 secondi)

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

  5. Implementa correzioni mirate basate sull’analisi:

    1. Intervallo di polling KEDA aggiornato: da 30 s a 15 s

    2. maxReplicas aumentato nella configurazione di dimensionamento

    3. Soglie di dimensionamento regolate per anticipare il dimensionamento (15 richieste simultanee invece di 20)

Puoi diagnosticare sistematicamente problemi complessi relativi alle prestazioni utilizzando metriche complete, implementare correzioni mirate e stabilire misure preventive per garantire prestazioni costanti del modello di produzione.

Implementazione della tua integrazione dell’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 integrare piattaforme di osservabilità di terze parti invece di utilizzare lo stack Grafana e Prometheus integrato.

Accesso 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 procedure di scraping standard di Prometheus

Configurazione degli endpoint per le 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: latenza del tempo al primo byte (Time To First Byte, TTFB) del modello in millisecondi

Accesso alle metriche del container del modello

Cosa devi sapere:

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

  • Queste metriche forniscono informazioni interne sui container, come l’elaborazione dei token e la profondità della coda

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

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

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

Per gli endpoint di inferenza personalizzati (BYOD):

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

  • Percorso: configurato dal cliente (default/metrics)

Implementazione dell’integrazione personalizzata dell’osservabilità

Con un’integrazione dell’osservabilità personalizzata, sei responsabile di:

  1. Scraping metriche: implementa lo scraping compatibile con Prometheus dagli endpoint precedenti

  2. Esportazione dei 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

Risoluzione dei problemi di osservabilità dell’inferenza

La dashboard non mostra dati

Se la dashboard Grafana è vuota e tutti i pannelli mostrano il messaggio “Nessun dato”, procedi come segue per indagare:

  1. Verifica che l’amministratore abbia installato l’osservabilità dell’inferenza:

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

    2. Verifica che il link allo spazio di lavoro Grafana sia accessibile dalla panoramica del cluster

    3. Verifica che lo spazio di lavoro Amazon Managed Prometheus sia configurato e riceva dati

  2. Verifica che l' HyperPod osservabilità sia abilitata:

    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 dalla 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 all’origine dati

Verifica l’ID dello spazio di lavoro AMP nelle origini dati Grafana

La connettività di rete

Controlla i gruppi di sicurezza/ NACLs

Assicurati che i pod possano raggiungere gli endpoint AMP