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:
-
Vai alla HyperPod console.
-
Selezionare il cluster.
-
Vai alla pagina dei dettagli del HyperPod cluster che hai appena creato. Vedrai una nuova opzione per installare il componente aggiuntivo HyperPod observability.
-
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:
-
Implementa il modello con il tuo metodo preferito:
-
Interfaccia utente di Amazon SageMaker Studio
-
HyperPod Comandi CLI
-
Python SDK nei notebook
-
kubectl con configurazioni YAML
-
-
Accedi alle metriche del modello:
-
Apri Amazon SageMaker Studio
-
Vai a HyperPod Cluster e apri Grafana Dashboard
-
Seleziona Dashboard di inferenza
-
Applica i filtri per visualizzare l’implementazione del tuo modello specifico
-
-
Monitora gli indicatori chiave delle prestazioni:
-
Monitora la latenza e il throughput del modello
-
Monitora i tassi di errore e la disponibilità
-
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:
-
Esamina la dashboard Grafana per comprendere la portata e la gravità del problema relativo alle prestazioni:
-
Avviso di alta latenza attivo dalle 9:30
-
Latenza P99: 8,2 s (normale: 2,1 s)
-
Finestra di tempo interessata: 9:30-10:15 (45 minuti)
-
-
Correla più metriche per comprendere il comportamento del sistema durante l’incidente:
-
Richieste simultanee: picco di 45 (normale: 15-20)
-
Dimensionamento dei pod: KEDA ha aumentato i pod da 2 a 5 durante l’incidente
-
Utilizzo della GPU: è rimasto normale (85-90%)
-
Utilizzo della memoria: normale (24 GB/32 GB)
-
-
Esamina il comportamento del sistema distribuito, visto che le metriche dell’infrastruttura sembrano normali:
-
Visualizzazione a livello di nodo: tutti i pod sono concentrati sullo stesso nodo (distribuzione scadente)
-
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) -
-
Identifica i problemi di configurazione interconnessi:
-
Policy di dimensionamento KEDA: troppo lenta (intervallo di polling di 30 secondi)
-
Cronologia di dimensionamento: la risposta di dimensionamento è rimasta indietro rispetto al picco di traffico di oltre 45 secondi
-
-
Implementa correzioni mirate basate sull’analisi:
-
Intervallo di polling KEDA aggiornato: da 30 s a 15 s
-
maxReplicas aumentato nella configurazione di dimensionamento
-
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):
-
Porta: 8080 (porta del container del modello)
-
Percorso: /metrics
-
Documentazione: https://huggingface. co/docs/text-generation-inference/en/reference/metrics
Per le implementazioni di JumpStart modelli che utilizzano contenitori Large Model Inference (LMI):
-
Porta: 8080 (porta del container del modello)
-
Percorso: /server/metrics
-
Documentazione: djl- .md https://github.com/deepjavalibrary/ serving/blob/master/prometheus/README
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:
-
Scraping metriche: implementa lo scraping compatibile con Prometheus dagli endpoint precedenti
-
Esportazione dei dati: configura l’esportazione verso la piattaforma di osservabilità prescelta
-
Avvisi: imposta le regole di avviso in base ai tuoi requisiti operativi
-
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:
-
Verifica che l’amministratore abbia installato l’osservabilità dell’inferenza:
-
Passa a HyperPod Console > Seleziona cluster > Controlla se lo stato «Osservabilità» mostra «Abilitato»
-
Verifica che il link allo spazio di lavoro Grafana sia accessibile dalla panoramica del cluster
-
Verifica che lo spazio di lavoro Amazon Managed Prometheus sia configurato e riceva dati
-
-
Verifica che l' HyperPod osservabilità sia abilitata:
hyp observability view -
Verifica che le metriche del modello siano abilitate:
kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabledkubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled -
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 -
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 |
|
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 |