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

Ultimo aggiornamento: 14/10/2022

Sto riscontrando un'elevata latenza quando richiamo il mio endpoint Amazon SageMaker.

Breve descrizione

Puoi usare Amazon CloudWatch per monitorare i parametri di latenza ModelLatency e OverheadLatency per un endpoint SageMaker che serve un singolo modello.

  • ModelLatency è il tempo impiegato da un modello per rispondere a una richiesta di inferenza visualizzata da SageMaker. Questa durata include il tempo di comunicazione locale per inviare la richiesta e recuperare la risposta, nonché il tempo impiegato per completare l'inferenza all'interno del container del modello.
  • OverheadLatency è il tempo impiegato per rispondere a una richiesta di richiamo con i costi di gestione di SageMaker. Il tempo viene misurato dal momento in cui SageMaker riceve una richiesta fino a quando non restituisce una risposta, meno ModelLatency.

Quando si utilizza un endpoint multimodello SageMaker, in CloudWatch sono disponibili i seguenti parametri aggiuntivi:

  • ModelLoadingWaitTime è il tempo che una richiesta di chiamata ha atteso per 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 è il tempo impiegato per caricare il modello dal container.
  • ModelCacheHit è il numero di richieste InvokeEndpoint inviate all'endpoint in cui il modello è già stato caricato.

Gli endpoint multimodello caricano e scaricano i modelli per tutta la loro durata. Puoi visualizzare il numero di modelli caricati per un endpoint utilizzando il parametro LoadedModelCount pubblicato in CloudWatch.

Risoluzione

ModelLatency elevato

ModelLatency è il tempo impiegato da SageMaker per inviare una richiesta di richiamo al container del modello e ricevere quindi il risultato. Ciò significa che per ridurre questa latenza puoi completare le seguenti operazioni:

  • Esegui il benchmark del modello all'esterno di un endpoint SageMaker per testare le prestazioni.
  • Se il modello è supportato da SageMaker Neo, lo puoi compilare. SageMaker Neo ottimizza i modelli per eseguirli fino a due volte più rapidamente, con meno di un decimo di impatto sulla memoria e senza perdita di accuratezza.
  • Se il tuo modello è supportato da AWS Inferentia, puoi compilarlo per Inferentia che offre un throughput 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, puoi usare un'istanza GPU o Amazon Elastic Inference per aggiungere l'accelerazione GPU a un'istanza.
    Nota: il codice di inferenza può influire sulla latenza del modello a seconda di come il codice gestisce l'inferenza. Eventuali ritardi nel codice aumentano la latenza.
  • Se un endpoint viene utilizzato in modo eccessivo, potrebbe causare una maggiore latenza del modello. Puoi aggiungere il dimensionamento automatico a un endpoint per aumentare e ridurre dinamicamente il numero di istanze disponibili per un'istanza.

OverheadLatency elevato

OverheadLatency è il tempo impiegato da SageMaker per rispondere a una richiesta senza includere ModelLatency. Diversi fattori potrebbero contribuire a OverheadLatency. Questi fattori includono la dimensione del payload per la richiesta e le risposte, la frequenza della richiesta 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 è un comportamento previsto con le prime richieste di invocazione. Per evitare questo problema, puoi inviare richieste di test all'endpoint per preriscaldarlo. Tieni presente che le richieste poco frequenti possono portare anche a un aumento di OverheadLatency.


Questo articolo è stato utile?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?