Wie behebe ich Latenzprobleme mit meinem Amazon SageMaker-Endpunkt?

Lesedauer: 3 Minute
0

Wenn ich meinen Amazon SageMaker-Endpunkt aufrufe, tritt eine hohe Latenz auf.

Kurzbeschreibung

Verwenden Sie Amazon CloudWatch, um die Latenzmetriken Model-Latenz und Overhead-Latenz für einen SageMaker-Endpunkt zu überwachen, der ein einzelnes Modell bedient.

  • Model-Latenz ist die Zeit, die ein Modell aus Sicht von SageMaker benötigt, um auf eine Inferenzanfrage zu antworten. Diese Dauer beinhaltet die lokale Kommunikationszeit, in der das Modell die Anfrage sendet und die Antwort abruft. Es beinhaltet auch die Abschlusszeit der Inferenz innerhalb des Modellcontainers.
  • Overhead-Latenz ist die Zeit, die SageMaker benötigt, um auf eine Aufrufanforderung mit Overhead zu antworten. Diese Messung dauert vom Empfang einer Anfrage an SageMaker bis zur Rückgabe einer Antwort, abzüglich der Model-Latenz.

Wenn Sie einen SageMaker Multimodell-Endpunkt verwenden, sind die folgenden zusätzlichen Metriken in CloudWatch verfügbar:

  • ModelLoadingWaitTime: Die Zeitspanne, die eine Aufrufanforderung auf das Herunterladen oder Laden des Zielmodells wartet, bevor die Inferenz durchgeführt wird.
  • ModelDownloadingTime: Die Zeitspanne, die zum Herunterladen des Modells von Amazon Simple Storage Service (Amazon S3) benötigt wird.
  • ModelLoadingTime: Die Zeitspanne, die benötigt wird, um das Modell aus dem Container zu laden.
  • ModelCacheHit: Die Anzahl der InvokeEndpoint-Anfragen, die an den Endpunkt gesendet werden, auf dem das Modell zuvor geladen wurde.

Multimodell-Endpunkt laden und entladen Modelle während ihrer gesamten Lebensdauer. Sie können die CloudWatch-Metrik LoadedModelCount verwenden, um die Anzahl der geladenen Modelle für einen Endpunkt anzuzeigen.

Lösung

Hohe Modell-Latenz

Um diese Latenz zu reduzieren, ergreifen Sie eine der folgenden Maßnahmen:

  • Führen Sie einen Benchmark des Modells außerhalb eines SageMaker-Endpoints durch, um die Leistung zu testen.
  • Wenn SageMaker Neo Ihr Modell unterstützt, können Sie das Modell anlegen. SageMaker Neo optimiert Modelle so, dass sie mit weniger als einem Zehntel des Speicherbedarfs bis zu doppelt so schnell laufen, ohne dass die Genauigkeit darunter leidet.
  • Wenn AWS Inferentia Ihr Modell unterstützt, können Sie das Modell für Inferentia anlegen. Dies bietet einen bis zu dreimal höheren Durchsatz und bis zu 45 % geringere Kosten pro Inferenz im Vergleich zu den GPU-basierten AWS-Instances.
  • Wenn Sie eine CPU-Instance verwenden und das Modell die GPU-Beschleunigung unterstützt, verwenden Sie eine GPU-Instance, um einer Instance GPU-Beschleunigung hinzuzufügen.
    Hinweis: Der Inferenzcode kann die Modelllatenz beeinflussen, je nachdem, wie der Code mit der Inferenz umgeht. Jede Verzögerung im Code erhöht die Latenz.
  • Ein übermäßig beanspruchter Endpunkt kann zu einer höheren Modelllatenz führen. Um die Anzahl der Instances, die für einen Endpunkt verfügbar sind, dynamisch zu erhöhen und zu verringern, fügen Sie einem Endpunkt Auto Scaling hinzu.

Hohe Overhead-Latenz

Mehrere Faktoren können zur Overhead-Latenz beitragen. Zu diesen Faktoren gehören die Nutzlastgröße für Anfragen und Antworten, die Anforderungshäufigkeit und die Authentifizierung oder Autorisierung der Anfrage.

Beim ersten Aufruf für einen Endpunkt kann es aufgrund eines Kaltstarts zu einer erhöhten Latenz kommen. Dies wird bei den ersten Aufrufanfragen erwartet. Um dieses Problem zu vermeiden, senden Sie Testanfragen an den Endpunkt, um ihn vorzuwärmen. Beachten Sie, dass seltene Anfragen auch zu einer Erhöhung der Overhead-Latenz führen können.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr