Multimodell-Endpunkte
Multimodell-Endpunkte bieten eine skalierbare und kostengünstige Lösung für die Bereitstellung einer großen Anzahl von Modellen. Sie verwenden dieselbe Flotte von Ressourcen und einen gemeinsamen Server-Container, um alle Ihre Modelle zu hosten. Dies reduziert Hosting-Kosten, indem die Endpunktauslastung gegenüber der Verwendung von Einzelmodell-Endpunkten verbessert wird. Reduziert werden auch die Bereitstellungskosten, da Amazon SageMaker AI das Laden von Modellen im Speicher und ihre Skalierung anhand der Datenverkehrsmuster zu Ihrem Endpunkt verwaltet.
Das folgende Diagramm zeigt, wie Multimodell-Endpunkte im Vergleich zu Einzelmodell-Endpunkten funktionieren.
Multimodell-Endpunkte eignen sich ideal zum Hosten einer großen Anzahl von Modellen, die dasselbe ML-Framework auf einem gemeinsam genutzten Serving-Container verwenden. Wenn Sie eine Mischung von Modellen haben, auf die häufig bzw. selten zugegriffen wird, kann ein Multimodell-Endpunkt diesen Datenverkehr mit weniger Ressourcen und höheren Kosteneinsparungen effizient bedienen. Ihre Anwendung sollte gelegentlich auftretende Latenzeinbußen im durch Kaltstarts tolerieren, die beim Aufrufen selten verwendeter Modelle auftreten.
Multimodell-Endpunkte unterstützen das Hosten von Modellen mit CPU- und GPU-Unterstützung. Durch die Verwendung von GPU-gestützten Modellen können Sie die Kosten für die Modellbereitstellung senken, indem Sie den Endpunkt und die zugrunde liegenden beschleunigten Cpmputing-Instances stärker auslasten.
Multimodell-Endpunkte ermöglichen darüber hinaus die zeitliche gemeinsame Nutzung von Speicherressourcen über Ihre Modelle hinweg. Dies funktioniert am besten, wenn die Modelle in Größe und Aufruflatenz recht ähnlich sind. In diesem Fall können Multimodell-Endpunkte Instances effektiv über alle Modelle hinweg verwenden. Wenn Sie Modelle mit deutlich höheren Transaktionen pro Sekunde (TPS) oder Latenzanforderungen haben, empfehlen wir Ihnen, diese auf dedizierten Endpunkten zu hosten.
Sie können Multimodell-Endpunkte mit den folgenden Features verwenden:
-
AWS PrivateLink und VPCs
-
Serielle Inference Pipelines (es kann jedoch nur ein multimodell-fähiger Container in einer Inference-Pipeline enthalten sein)
-
A/B-Tests
Einen Multimodell-Endpunkt können Sie mit dem AWS SDK für Python (Boto) oder der SageMaker-AI-Konsole erstellen. Für CPU-gestützte Multimodell-Endpunkte können Sie Ihren Endpunkt mit benutzerdefinierten Containern erstellen, indem Sie die Multimodell-Server
Themen
Unterstützte Algorithmen, Frameworks und Instances für Multimodell-Endpunkte
Instance-Empfehlungen für Bereitstellungen von Multimodell-Endpunkten
Erstellen Ihres eigenen Containers für Multimodell-Endpunkte von SageMaker AI
CloudWatch-Kennzahlen für Multimodell-Endpunkt-Bereitstellungen
Einstellen des Caching-Verhaltens von SageMaker AI für Multimodell-Endpunkte
Legen Sie Auto-Scaling-Richtlinien für die Bereitstellung von Multimodell-Endpunkten fest
Funktionsweise von Multimodell-Endpunkten
SageMaker AI verwaltet den Lebenszyklus von Modellen, die auf Multimodell-Endpunkten im Speicher des Containers gehostet werden. Anstatt alle Modelle aus einem Amazon-S3-Bucket in den Container herunterzuladen, wenn Sie den Endpunkt erstellen, lädt SageMaker AI sie dynamisch und lädt sie beim Aufrufen in den Cache. Wenn SageMaker AI eine Aufrufanfrage für ein bestimmtes Modell empfängt, führt es folgende Schritte aus:
-
Er leitet die Anforderung an eine Instance hinter dem Endpunkt weiter.
-
Er lädt das Modell aus dem S3-Bucket auf das Speicher-Volume dieser Instance herunter.
-
Lädt das Modell in den Speicher des Containers (CPU oder GPU, je nachdem, ob Sie über CPU- oder GPU-gestützte Instances verfügen) auf dieser beschleunigten Computing-Instance. Wenn das Modell bereits in den Speicher des Containers geladen wurde, erfolgt der Aufruf schneller, da SageMaker AI es nicht erst herunterladen und laden muss.
SageMaker AI leitet weiterhin Anforderungen für ein Modell an die Instance weiter, wo das Modell bereits geladen ist. Wenn das Modell allerdings viele Aufrufanfragen empfängt und es für den Multimodell-Endpunkt zusätzliche Instances gibt, leitet SageMaker AI einige der Anfragen an eine andere Instance weiter, um dem Datenverkehr gerecht zu werden. Wenn das Modell noch nicht auf die zweite Instance geladen wurde, wird das Modell auf das Speicher-Volume dieser Instance heruntergeladen und in den Speicher des Containers geladen.
Wenn die Speicherauslastung einer Instance hoch ist und SageMaker AI ein weiteres Modell in den Speicher laden muss, werden nicht verwendete Modelle aus dem Container dieser Instance entfernt, damit genügend Speicher zum Laden des Modells vorhanden ist. Entfernte Modelle verbleiben auf dem Speicher-Volume der Instance und können später in den Speicher des Containers geladen werden, ohne dass sie erneut aus dem S3-Bucket heruntergeladen werden müssen. Wenn das Speicher-Volume der Instance seine maximale Kapazität erreicht, löscht SageMaker AI alle nicht verwendeten Modelle aus dem Speicher.
Um ein Modell zu löschen, beenden Sie das Senden von Anforderungen und löschen es aus dem S3-Bucket. SageMaker AI bietet Funktionen für Multimodell-Endpunkte in einem Server-Container an. Das Hinzufügen von Modellen zu einem Multimodell-Endpunkt und ihr Löschen erfordert keine Aktualisierung des Endpunkts selbst. Um ein Modell hinzuzufügen, laden Sie es in den S3-Bucket hoch und rufen Sie es auf. Um sie verwenden zu können, sind keine Codeänderungen erforderlich.
Anmerkung
Wenn Sie einen Multimodell-Endpunkt aktualisieren, kann es bei Aufrufanfragen auf dem Endpunkt zunächst zu höheren Latenzen kommen, da sich Smart Routing auf Multimodell-Endpunkten an das Muster Ihres Datenverkehrs anpasst. Sobald es allerdings das Muster Ihres Datenverkehrs kennt, kann es bei den am häufigsten verwendeten Modellen zu niedrigen Latenzen kommen. Bei weniger häufig verwendeten Modellen kann es zu Kaltstart-Latenzen kommen, da die Modelle dynamisch in eine Instance geladen werden.
Beispiel-Notebooks für Multimodell-Endpunkte
Weitere Informationen zur Verwendung von Multimodell-Endpunkten finden Sie evtl. in den folgenden Beispiel-Notebooks:
-
Beispiele für Multimodell-Endpunkte, die CPU-gestützte Instances verwenden:
-
XGBoost-Beispiel-Notebook für Multimodell-Endpunkte
– Dieses Notebook zeigt, wie Sie mehrere XGBoost-Modelle für einen Endpunkt bereitstellen. -
Beispiel-Notebook zu Multimodell-Endpunkten BYOC
– Diese Notebook zeigt, wie der Container eines Kunden eingerichtet und bereitgestellt wird, der Multimodell-Endpunkte in SageMaker AI unterstützt.
-
-
Beispiel für Multimodell-Endpunkte, die GPU-gestützte Instances verwenden:
-
Ausführen von mehreren Deep-Learning-Modellen auf GPUs mit Multimodell-Endpunkten (MME) von Amazon SageMaker AI
– Dieses Notebook zeigt, wie Sie mit Hilfe eines NVIDIA Triton Inference-Containers ResNet-50-Modelle auf einem Multimodell-Endpunkt bereitstellen können.
-
Anweisungen dazu, wie Jupyter-Notebook-Instances erstellt werden, mit denen Sie die obigen Beispiel in SageMaker AI ausführen können, und wie der Zugriff darauf erfolgt, finden Sie unter Notebook-Instances für Amazon SageMaker. Sobald Sie eine Notebook-Instance erstellt und diese geöffnet haben, wählen Sie die Registerkarte SageMaker-AI-Beispiele aus, um eine Liste aller SageMaker-AI-Beispiele anzuzeigen. Die Notebooks für Multimodell-Endpunkte finden Sie im Abschnitt ADVANCED FUNCTIONALITY. Zum Öffnen eines Notebooks wählen Sie die Registerkarte Verwenden und dann Kopie erstellen aus.
Weitere Informationen zu Anwendungsfällen für Multimodell-Endpunkte finden Sie in den folgenden Blogs und Ressourcen: