Come posso risolvere i problemi di latenza con il mio endpoint Amazon SageMaker?

3 minuti di lettura
0

Quando richiamo il mio endpoint Amazon SageMaker, riscontro un'elevata latenza.

Breve descrizione

Usa Amazon CloudWatch per monitorare le metriche di latenza ModelLatency e OverheadLatency per un endpoint SageMaker che serve un singolo modello.

  • ModelLatency è la quantità di tempo impiegata da un modello per rispondere a una richiesta di inferenza, visualizzata da SageMaker. Questa durata include il tempo di comunicazione locale necessario al modello per inviare la richiesta e recuperare la risposta. Include anche il tempo di completamento dell'inferenza all'interno del container del modello.
  • L'OverheadLatency è la quantità di tempo impiegata da SageMaker per rispondere a una richiesta di chiamata con costi aggiuntivi. Questa misurazione dura da quando SageMaker riceve una richiesta fino a quando non restituisce una risposta, meno ModelLatency.

Quando si utilizza un endpoint multimodello SageMaker, in CloudWatch sono disponibili le seguenti metriche aggiuntive:

  • ModelLoadingWaitTime: La quantità di tempo in cui una richiesta di chiamata attende il download o il caricamento del modello di destinazione prima di eseguire l'inferenza.
  • **ModelDownloadingTime:**Il tempo necessario per scaricare il modello da Amazon Simple Storage Service (Amazon S3).
  • ModelLoadingTime: La quantità di tempo necessaria per caricare il modello dal container.
  • ModelCacheHit: Il numero di richieste InvokeEndpoint inviate all'endpoint in cui il modello è stato precedentemente caricato.

Gli endpoint multi-modello caricano e scaricano i modelli per tutta la loro durata. Puoi utilizzare la metrica LoadedModelCount CloudWatch per visualizzare il numero di modelli caricati per un endpoint.

Soluzione

High ModelLatency

Per ridurre questa latenza, esegui una delle seguenti azioni:

  • Esegui un benchmark del modello all'esterno di un endpoint SageMaker per testare le prestazioni.
  • Se SageMaker Neo supporta il tuo modello, puoi compilarlo. SageMaker Neo ottimizza i modelli per funzionare fino a due volte più velocemente con meno di un decimo dell'ingombro di memoria e senza compromettere l'accuratezza.
  • Se AWS Inferentia supporta il tuo modello, puoi compilarlo. Ciò offre una velocità di trasmissione effettiva fino a tre volte superiore e un costo per inferenza fino al 45% inferiore rispetto alle istanze basate su GPU AWS.
  • Se utilizzi un'istanza CPU e il modello supporta l'accelerazione GPU, utilizza un'istanza GPU per aggiungere l'accelerazione GPU a un'istanza.
    Nota: il codice di inferenza potrebbe influire sulla latenza del modello a seconda di come il codice gestisce l'inferenza. Eventuali ritardi nel codice aumentano la latenza.
  • Un endpoint sovraccarico potrebbe causare una maggiore latenza del modello. Per aumentare e diminuire dinamicamente il numero di istanze disponibili per un endpoint, aggiungi il dimensionamento automatico a un endpoint.

High OverheadLatency

Diversi fattori possono contribuire a OverheadLatency. Questi fattori includono la dimensione del payload per la richiesta e le risposte, la frequenza delle richieste e l'autenticazione o l'autorizzazione della richiesta.

La prima chiamata per un endpoint potrebbe avere un aumento della latenza a causa di un avvio a freddo. Questo passaggio è previsto con le prime richieste di chiamata. Per evitare questo problema, invia richieste di test all'endpoint per preriscaldarlo. Tieni presente che le richieste poco frequenti possono anche portare a un aumento di OverheadLatency.

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa