Amazon SageMaker-Autopilot erstellt, trainiert und optimiert automatisch die besten Modelle für maschinelles Lernen (ML) basierend auf Ihren Daten, während Sie die volle Kontrolle und Transparenz behalten. Autopilot kann auch trainierte Modelle automatisch an Echtzeit-Inferenzendpunkten bereitstellen.
Wenn Sie Workloads mit spitzen oder unvorhersehbaren Datenverkehrsmustern haben, die Kaltstarts tolerieren können, wäre die Bereitstellung des Modells auf einem serverlosen Inferenzendpunkt kosteneffizienter.
Serverlose Amazon SageMaker-Inferenz ist eine speziell entwickelte Inferenzoption, die sich ideal für Workloads mit unvorhersehbaren Datenverkehrsmustern eignet und Kaltstarts tolerieren kann. Im Gegensatz zu einem Echtzeit-Inferenz-Endpunkt, der von einer langlebigen Recheninstanz unterstützt wird, stellen serverlose Endpunkte Ressourcen nach Bedarf mit integrierter automatischer Skalierung bereit. Serverlose Endpunkte skalieren automatisch basierend auf der Anzahl eingehender Anfragen und skalieren Ressourcen auf null herunter, wenn keine eingehenden Anfragen vorhanden sind, was Ihnen hilft, Ihre Kosten zu minimieren.
In diesem Beitrag zeigen wir, wie Sie mit Autopilot trainierte Modelle mithilfe von für serverlose Inferenzendpunkte bereitstellen Boto3-Bibliotheken für Amazon Sage Maker.
Autopilot-Trainingsmodi
Bevor Sie ein Autopilot-Experiment erstellen, können Sie entweder Autopilot den Trainingsmodus automatisch auswählen lassen oder den Trainingsmodus manuell auswählen.
Autopilot unterstützt derzeit drei Trainingsmodi:
- Auto – Basierend auf der Datensatzgröße wählt Autopilot automatisch entweder den Ensembling- oder den HPO-Modus. Für Datensätze größer als 100 MB wählt Autopilot HPO; andernfalls wählt es Ensembling.
- Ensemble – Autopilot verwendet die AutoGluon ensembling-Technik unter Verwendung von Model Stacking und erzeugt ein optimales Vorhersagemodell.
- Hyperparameter-Optimierung (HPO) – Autopilot findet die beste Version eines Modells, indem er Hyperparameter mithilfe von Bayes'scher Optimierung oder Multi-Fidelity-Optimierung optimiert, während er Trainingsjobs auf Ihrem Datensatz ausführt. Der HPO-Modus wählt die Algorithmen aus, die für Ihren Datensatz am relevantesten sind, und wählt den besten Bereich von Hyperparametern aus, um Ihre Modelle zu optimieren.
Weitere Informationen zu den Autopilot-Trainingsmodi finden Sie unter Trainingsmodi.
Lösungsüberblick
In diesem Beitrag verwenden wir die UCI Bankmarketing Datensatz, um vorherzusagen, ob ein Kunde eine von der Bank angebotene Termineinlage abonnieren wird. Dies ist ein Problemtyp für die binäre Klassifizierung.
Wir starten zwei Autopilot-Jobs mit der Boto3-Bibliotheken für SageMaker. Der erste Job verwendet Ensembling als gewählten Trainingsmodus. Anschließend stellen wir das generierte einzelne Ensemble-Modell auf einem serverlosen Endpunkt bereit und senden Rückschlussanforderungen an diesen gehosteten Endpunkt.
Der zweite Job verwendet den HPO-Trainingsmodus. Für Klassifizierungsproblemtypen generiert Autopilot drei Inferenzcontainer. Wir extrahieren diese drei Inferenzcontainer und stellen sie auf separaten serverlosen Endpunkten bereit. Dann senden wir Inferenzanfragen an diese gehosteten Endpunkte.
Weitere Informationen zu Regressions- und Klassifizierungsproblemtypen finden Sie unter Inferenzcontainerdefinitionen für Regressions- und Klassifizierungsproblemtypen.
Wir können Autopilot-Jobs auch von starten Amazon SageMaker-Studio Benutzeroberfläche. Wenn Sie Jobs über die Benutzeroberfläche starten, stellen Sie sicher, dass Sie das deaktivieren Automatische Bereitstellung Option in der Bereitstellung und erweiterte Einstellungen Sektion. Andernfalls stellt Autopilot den besten Kandidaten auf einem Echtzeit-Endpunkt bereit.
Voraussetzungen:
Stellen Sie sicher, dass Sie die neueste Version von Boto3 und die SageMaker-Python-Pakete installiert haben:
pip install -U boto3 sagemaker
Wir benötigen die SageMaker-Paketversion >= 2.110.0
und Boto3-Version >= boto3-1.24.84.
Starten Sie einen Autopilot-Job mit dem Ensembling-Modus
Um einen Autopilot-Job mit den SageMaker Boto3-Bibliotheken zu starten, verwenden wir die create_auto_ml_job API. Wir gehen dann hinein AutoMLJobConfig
, InputDataConfig
und AutoMLJobObjective
als Eingaben für die create_auto_ml_job
. Siehe folgenden Code:
Der Autopilot gibt die zurück BestCandidate
Modellobjekt, das die hat InferenceContainers
erforderlich, um die Modelle auf Inferenzendpunkten bereitzustellen. Um das zu bekommen BestCandidate
für den vorherigen Job verwenden wir die describe_automl_job
Funktion:
Stellen Sie das trainierte Modell bereit
Wir stellen jetzt den vorherigen Inferenzcontainer auf einem serverlosen Endpunkt bereit. Der erste Schritt besteht darin, ein Modell aus dem Inferenzcontainer zu erstellen und dann eine Endpunktkonfiguration zu erstellen, in der wir die angeben MemorySizeInMB
und MaxConcurrency
-Werte für den serverlosen Endpunkt zusammen mit dem Modellnamen. Abschließend erstellen wir einen Endpunkt mit der oben erstellten Endpunktkonfiguration.
Wir empfehlen Ihnen, Ihre zu wählen Speichergröße des Endpunkts entsprechend Ihrer Modellgröße. Die Speichergröße sollte mindestens so groß sein wie Ihre Modellgröße. Ihr serverloser Endpunkt hat eine RAM-Mindestgröße von 1024 MB (1 GB), und die maximal wählbare RAM-Größe beträgt 6144 MB (6 GB).
Die Speichergrößen, die Sie wählen können, sind 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB oder 6144 MB.
Um festzustellen, ob ein serverloser Endpunkt aus Kosten- und Leistungssicht die richtige Bereitstellungsoption ist, empfehlen wir Ihnen, sich auf die zu beziehen SageMaker Serverless Inference Benchmarking Toolkit, das verschiedene Endpunktkonfigurationen testet und die optimalste mit einer vergleichbaren Echtzeit-Hosting-Instanz vergleicht.
Beachten Sie, dass serverlose Endpunkte nur akzeptieren SingleModel
für Inferenzcontainer. Autopilot im Ensembling-Modus generiert ein einzelnes Modell, sodass wir diesen Modellcontainer unverändert auf dem Endpunkt bereitstellen können. Siehe folgenden Code:
Wenn der serverlose Inferenzendpunkt ist InService
, können wir den Endpunkt testen, indem wir eine Inferenzanforderung senden und die Vorhersagen beobachten. Das folgende Diagramm veranschaulicht die Architektur dieses Setups.
Beachten Sie, dass wir Rohdaten als Nutzlast an den Endpunkt senden können. Das von Autopilot generierte Ensemble-Modell integriert automatisch alle erforderlichen Feature-Transformations- und Inverse-Label-Transformationsschritte zusammen mit dem Algorithmusmodell und den Paketen in einem einzigen Modell.
Senden Sie eine Inferenzanfrage an das trainierte Modell
Verwenden Sie den folgenden Code, um Rückschlüsse auf Ihr Modell zu senden, das im Ensembling-Modus trainiert wurde:
Starten Sie einen Autopilot-Job im HPO-Modus
Im HPO-Modus, z CompletionCriteria
, Außerdem MaxRuntimePerTrainingJobInSeconds
und MaxAutoMLJobRuntimeInSeconds,
wir könnten auch die angeben MaxCandidates
um die Anzahl der Kandidaten zu begrenzen, die ein Autopilot-Job generiert. Beachten Sie, dass es sich hierbei um optionale Parameter handelt, die nur zur Begrenzung der Joblaufzeit zu Demonstrationszwecken festgelegt werden. Siehe folgenden Code:
Um die BestCandidate
für den vorherigen Job können wir wieder die verwenden describe_automl_job
Funktion:
Stellen Sie das trainierte Modell bereit
Autopilot im HPO-Modus für den Klassifizierungsproblemtyp generiert drei Inferenzcontainer.
Der erste Container behandelt die Schritte zur Merkmalstransformation. Als nächstes generiert der Algorithmus-Container die predicted_label
mit der höchsten Wahrscheinlichkeit. Schließlich führt der Nachverarbeitungs-Inferenzcontainer eine inverse Transformation an dem vorhergesagten Etikett durch und bildet es auf das ursprüngliche Etikett ab. Weitere Informationen finden Sie unter Inferenzcontainerdefinitionen für Regressions- und Klassifizierungsproblemtypen.
Wir extrahieren diese drei Inferenzcontainer und stellen sie auf separaten serverlosen Endpunkten bereit. Für die Inferenz rufen wir die Endpunkte nacheinander auf, indem wir die Nutzlast zuerst an den Feature-Transform-Container senden, dann die Ausgabe von diesem Container an den Algorithmus-Container übergeben und schließlich die Ausgabe des vorherigen Inferenz-Containers an den Post-Processing-Container übergeben. die das vorhergesagte Etikett ausgibt.
Das folgende Diagramm veranschaulicht die Architektur dieses Setups.
Wir extrahieren die drei Inferenzcontainer aus der BestCandidate
mit folgendem Code:
Senden Sie eine Inferenzanfrage an das trainierte Modell
Für die Schlussfolgerung senden wir die Nutzlast der Reihe nach: zuerst an den Feature-Transform-Container, dann an den Model-Container und schließlich an den Inverse-Label-Transformations-Container.
Siehe folgenden Code:
Die vollständige Implementierung dieses Beispiels ist im folgenden jupyter verfügbar Notizbuch.
Aufräumen
Um Ressourcen zu bereinigen, können Sie die erstellten serverlosen Endpunkte, Endpunktkonfigurationen und Modelle löschen:
Zusammenfassung
In diesem Beitrag haben wir gezeigt, wie wir von Autopilot generierte Modelle sowohl im Ensemble- als auch im HPO-Modus für serverlose Inferenzendpunkte bereitstellen können. Diese Lösung kann Ihre Fähigkeit beschleunigen, kosteneffiziente und vollständig verwaltete ML-Dienste wie Autopilot zu verwenden und zu nutzen, um Modelle schnell aus Rohdaten zu generieren und sie dann auf vollständig verwalteten serverlosen Inferenzendpunkten mit integrierter automatischer Skalierung bereitzustellen, um Kosten zu senken .
Wir empfehlen Ihnen, diese Lösung mit einem Datensatz auszuprobieren, der für Ihre Geschäfts-KPIs relevant ist. Sie können auf die in einem Jupyter-Notebook implementierte Lösung in der verweisen GitHub Repo.
Zusätzliche Referenzen
Über den Autor
Praveen Chamarthi ist Senior AI/ML Specialist bei Amazon Web Services. Er hat eine Leidenschaft für KI/ML und alles rund um AWS. Er hilft Kunden in ganz Amerika, ML-Workloads effizient auf AWS zu skalieren, zu innovieren und zu betreiben. In seiner Freizeit liest Praveen gerne und mag Science-Fiction-Filme.
- Fortgeschritten (300)
- AI
- Kunst
- KI-Kunstgenerator
- KI-Roboter
- Amazon Sage Maker
- Amazon SageMaker-Autopilot
- künstliche Intelligenz
- Zertifizierung für künstliche Intelligenz
- Künstliche Intelligenz im Bankwesen
- Roboter mit künstlicher Intelligenz
- Roboter mit künstlicher Intelligenz
- Software für künstliche Intelligenz
- AWS Maschinelles Lernen
- Blockchain
- Blockchain-Konferenz ai
- Einfallsreichtum
- dialogorientierte künstliche Intelligenz
- Krypto-Konferenz ai
- Dalls
- tiefe Lernen
- Google Ai
- Maschinelles Lernen
- Plato
- platon ai
- Datenintelligenz von Plato
- Plato-Spiel
- PlatoData
- Platogaming
- Skala ai
- Syntax
- Technische Anleitung
- Zephyrnet