Amazon SageMaker-Autopilot ermöglicht es Unternehmen, schnell ein End-to-End-Modell für maschinelles Lernen (ML) und eine Inferenzpipeline mit nur wenigen Codezeilen oder sogar zu erstellen und bereitzustellen ohne Code überhaupt mit Amazon SageMaker-Studio. Autopilot entlastet die schwere Arbeit beim Konfigurieren der Infrastruktur und die Zeit, die zum Erstellen einer gesamten Pipeline benötigt wird, einschließlich Feature-Engineering, Modellauswahl und Hyperparameter-Tuning.
In diesem Beitrag zeigen wir, wie Sie mit Autopilot von Rohdaten zu einer robusten und vollständig bereitgestellten Inferenzpipeline gelangen.
Lösungsüberblick
Wir verwenden Lyfts öffentlicher Datensatz zum Bikesharing damit diese Simulation vorhersagen kann, ob ein Benutzer an der teilnimmt oder nicht Bike Share for All-Programm. Dies ist ein einfaches binäres Klassifizierungsproblem.
Wir möchten zeigen, wie einfach es ist, eine automatisierte Echtzeit-Inferenzpipeline zu erstellen, um Benutzer basierend auf ihrer Teilnahme am Programm „Bike Share for All“ zu klassifizieren. Zu diesem Zweck simulieren wir eine End-to-End-Datenaufnahme- und Inferenzpipeline für ein imaginäres Fahrradverleihunternehmen, das in der San Francisco Bay Area tätig ist.
Die Architektur ist in zwei Teile unterteilt: die Aufnahmepipeline und die Inferenzpipeline.
Wir konzentrieren uns im ersten Abschnitt dieses Beitrags hauptsächlich auf die ML-Pipeline und sehen uns im zweiten Teil die Datenaufnahme-Pipeline an.
Voraussetzungen:
Um diesem Beispiel zu folgen, erfüllen Sie die folgenden Voraussetzungen:
- Erstellen Sie eine neue SageMaker-Notebookinstanz.
- Erstellen Sie ein Amazon Kinesis Data Firehose Lieferstrom mit einem AWS Lambda Funktion transformieren. Anweisungen finden Sie unter Amazon Kinesis Firehose-Datentransformation mit AWS Lambda. Dieser Schritt ist optional und wird nur benötigt, um das Datenstreaming zu simulieren.
Datenexploration
Lassen Sie uns den Datensatz herunterladen und visualisieren, der sich in einer öffentlichen Umgebung befindet Amazon Simple Storage-Service (Amazon S3) Bucket und statische Website:
Der folgende Screenshot zeigt eine Teilmenge der Daten vor der Transformation.
Die letzte Spalte der Daten enthält das Ziel, das wir vorhersagen möchten. Dabei handelt es sich um eine binäre Variable, die entweder einen Ja- oder einen Nein-Wert annimmt und angibt, ob der Benutzer am Bike Share for All-Programm teilnimmt.
Werfen wir einen Blick auf die Verteilung unserer Zielvariablen für ein beliebiges Datenungleichgewicht.
Wie in der obigen Grafik dargestellt, sind die Daten unausgewogen, da weniger Personen an dem Programm teilnehmen.
Wir müssen die Daten ausbalancieren, um eine Verzerrung durch Überrepräsentation zu vermeiden. Dieser Schritt ist optional, da Autopilot auch einen internen Ansatz zum automatischen Umgang mit Klassenungleichgewichten bietet, der standardmäßig eine F1-Score-Validierungsmetrik verwendet. Wenn Sie sich entscheiden, die Daten selbst auszugleichen, können Sie außerdem fortgeschrittenere Techniken zum Umgang mit Klassenungleichgewichten verwenden, z SMOTEN or GAN.
Für diesen Beitrag sampeln wir die Mehrheitsklasse (Nein) als Datenausgleichstechnik herunter:
Der folgende Code reichert die Daten an und unterabtastet die überrepräsentierte Klasse:
Wir haben unsere kategorialen Merkmale bewusst nicht codiert gelassen, einschließlich unseres binären Zielwerts. Dies liegt daran, dass Autopilot im Rahmen des automatischen Feature-Engineerings und der Pipeline-Bereitstellung die Codierung und Decodierung der Daten für uns übernimmt, wie wir im nächsten Abschnitt sehen werden.
Der folgende Screenshot zeigt ein Beispiel unserer Daten.
Die Daten in den folgenden Diagrammen sehen ansonsten normal aus, wobei eine bimodale Verteilung die beiden Spitzen für die Morgenstunden und die Stoßzeiten am Nachmittag darstellt, wie Sie es erwarten würden. Wir beobachten auch geringe Aktivitäten an Wochenenden und in der Nacht.
Im nächsten Abschnitt geben wir die Daten an Autopilot weiter, damit dieser ein Experiment für uns durchführen kann.
Erstellen Sie ein binäres Klassifizierungsmodell
Autopilot erfordert, dass wir die Eingabe- und Ausgabeziel-Buckets angeben. Es verwendet den Eingabe-Bucket zum Laden der Daten und den Ausgabe-Bucket zum Speichern der Artefakte, z. B. Feature-Engineering und die generierten Jupyter-Notebooks. Wir behalten 5 % des Datensatzes, um die Leistung des Modells nach Abschluss des Trainings zu bewerten und zu validieren, und laden 95 % des Datensatzes in den S3-Eingabe-Bucket hoch. Siehe folgenden Code:
Nachdem wir die Daten in das Eingabeziel hochgeladen haben, ist es an der Zeit, Autopilot zu starten:
Alles, was wir brauchen, um mit dem Experimentieren zu beginnen, ist, die Methode fit() aufzurufen. Autopilot benötigt als erforderliche Parameter den Ein- und Ausgabe-S3-Standort und die Zielattributspalte. Nach der Funktionsverarbeitung ruft Autopilot auf Automatische Modellabstimmung von SageMaker um die beste Version eines Modells zu finden, indem Sie viele Trainingsjobs auf Ihrem Dataset ausführen. Wir haben den optionalen Parameter max_candidates hinzugefügt, um die Anzahl der Kandidaten auf 30 zu begrenzen, was der Anzahl der Trainingsjobs entspricht, die Autopilot mit verschiedenen Kombinationen von Algorithmen und Hyperparametern startet, um das beste Modell zu finden. Wenn Sie diesen Parameter nicht angeben, wird er standardmäßig auf 250 gesetzt.
Wir können den Fortschritt des Autopiloten mit dem folgenden Code beobachten:
Die Ausbildung nimmt einige Zeit in Anspruch. Sehen wir uns während der Ausführung den Autopilot-Workflow an.
Verwenden Sie den folgenden Code, um den besten Kandidaten zu finden:
Der folgende Screenshot zeigt unsere Ausgabe.
Unser Modell hat eine Validierungsgenauigkeit von 96 % erreicht, also werden wir es einsetzen. Wir könnten eine Bedingung hinzufügen, sodass wir das Modell nur verwenden, wenn die Genauigkeit über einem bestimmten Niveau liegt.
Inferenzpipeline
Bevor wir unser Modell einsetzen, sehen wir uns unseren besten Kandidaten an und was in unserer Pipeline vor sich geht. Siehe folgenden Code:
Das folgende Diagramm zeigt unsere Ausgabe.
Autopilot hat das Modell erstellt und in drei verschiedene Container gepackt, die jeweils nacheinander eine bestimmte Aufgabe ausführen: Transformieren, Vorhersagen und Rücktransformation. Diese mehrstufige Inferenz ist mit a möglich SageMaker-Inferenzpipeline.
Eine mehrstufige Inferenz kann auch mehrere Inferenzmodelle verketten. Beispielsweise kann ein Container ausgeführt werden Hauptkomponentenanalyse bevor die Daten an den XGBoost-Container übergeben werden.
Stellen Sie die Inferenzpipeline auf einem Endpunkt bereit
Der Bereitstellungsprozess umfasst nur wenige Codezeilen:
Lassen Sie uns unseren Endpunkt für die Vorhersage mit einem Prädiktor konfigurieren:
Nachdem wir nun unseren Endpunkt und Prädiktor bereit haben, ist es an der Zeit, die Testdaten zu verwenden, die wir beiseite gelegt haben, und die Genauigkeit unseres Modells zu testen. Wir beginnen mit der Definition einer Hilfsfunktion, die die Daten zeilenweise an unseren Inferenzendpunkt sendet und im Gegenzug eine Vorhersage erhält. Denn wir haben eine XGBoost -Modell löschen wir die Zielvariable, bevor wir die CSV-Zeile an den Endpunkt senden. Außerdem haben wir den Header aus der Test-CSV entfernt, bevor wir die Datei durchlaufen, was auch eine weitere Voraussetzung für XGBoost auf SageMaker ist. Siehe folgenden Code:
Der folgende Screenshot zeigt unsere Ausgabe.
Lassen Sie uns nun die Genauigkeit unseres Modells berechnen.
Siehe folgenden Code:
Wir erhalten eine Genauigkeit von 92 %. Dies ist etwas niedriger als die 96 %, die während des Validierungsschritts erhalten wurden, aber immer noch hoch genug. Wir erwarten nicht, dass die Genauigkeit genau gleich ist, da der Test mit einem neuen Datensatz durchgeführt wird.
Datenaufnahme
Wir haben die Daten direkt heruntergeladen und für das Training konfiguriert. Im wirklichen Leben müssen Sie die Daten möglicherweise direkt vom Edge-Gerät in den Data Lake senden und von SageMaker direkt aus dem Data Lake in das Notebook laden lassen.
Kinesis Data Firehose ist eine gute Option und die einfachste Möglichkeit, Streaming-Daten zuverlässig in Data Lakes, Datenspeicher und Analysetools zu laden. Es kann Streaming-Daten erfassen, transformieren und in Amazon S3 und andere AWS-Datenspeicher laden.
Für unseren Anwendungsfall erstellen wir einen Kinesis Data Firehose-Bereitstellungsstream mit einer Lambda-Transformationsfunktion, um beim Durchlaufen des Streams eine einfache Datenbereinigung durchzuführen. Siehe folgenden Code:
Diese Lambda-Funktion führt eine leichte Transformation der Daten durch, die von den Geräten auf den Data Lake gestreamt werden. Es erwartet eine CSV-formatierte Datendatei.
Für den Aufnahmeschritt laden wir die Daten herunter und simulieren einen Datenstrom zu Kinesis Data Firehose mit einer Lambda-Transformationsfunktion und in unseren S3 Data Lake.
Lassen Sie uns das Streaming einiger Zeilen simulieren:
Aufräumen
Es ist wichtig, alle in dieser Übung verwendeten Ressourcen zu löschen, um die Kosten zu minimieren. Der folgende Code löscht den von uns erstellten SageMaker-Inferenzendpunkt sowie die von uns hochgeladenen Trainings- und Testdaten:
Zusammenfassung
ML-Ingenieure, Data Scientists und Softwareentwickler können Autopilot verwenden, um eine Inferenzpipeline mit wenig bis gar keiner ML-Programmiererfahrung zu erstellen und bereitzustellen. Autopilot spart Zeit und Ressourcen durch den Einsatz von Best Practices für Data Science und ML. Große Unternehmen können jetzt Engineering-Ressourcen von der Infrastrukturkonfiguration auf die Verbesserung von Modellen und die Lösung von Geschäftsanwendungsfällen verlagern. Startups und kleinere Organisationen können mit wenig bis gar keinem ML-Know-how in maschinelles Lernen einsteigen.
Informationen zu den ersten Schritten mit SageMaker Autopilot finden Sie unter zur Produktseite oder greifen Sie in SageMaker Studio auf SageMaker Autopilot zu.
Wir empfehlen auch, mehr über andere wichtige Funktionen zu erfahren, die SageMaker zu bieten hat, wie z Amazon SageMaker Feature Store, die integriert mit Amazon SageMaker-Pipelines um automatisierte ML-Workflows zu erstellen, Feature-Suche und -Erkennung hinzuzufügen und wiederzuverwenden. Sie können mehrere Autopilot-Simulationen mit unterschiedlichen Feature- oder Zielvarianten in Ihrem Dataset ausführen. Sie können dies auch als dynamisches Fahrzeugzuweisungsproblem angehen, bei dem Ihr Modell versucht, die Fahrzeugnachfrage basierend auf der Zeit (z. B. Tageszeit oder Wochentag) oder dem Standort oder einer Kombination aus beidem vorherzusagen.
Über die Autoren
Doug Mbaya ist Senior Solution Architect mit Schwerpunkt Daten und Analytik. Doug arbeitet eng mit AWS-Partnern zusammen und hilft ihnen bei der Integration von Daten- und Analyselösungen in die Cloud. Zu Dougs früheren Erfahrungen gehört die Unterstützung von AWS-Kunden im Segment Mitfahrgelegenheiten und Essenslieferungen.
Valerio Perrone ist ein Applied Science Manager, der an Amazon SageMaker Automatic Model Tuning und Autopilot arbeitet.
- Coinsmart. Europas beste Bitcoin- und Krypto-Börse.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. DEN FREIEN ZUGANG.
- CryptoHawk. Altcoin-Radar. Kostenlose Testphase.
- Quelle: https://aws.amazon.com/blogs/machine-learning/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- Über uns
- Zugang
- erreicht
- Aktivitäten
- advanced
- Algorithmen
- Alle
- Zuteilung
- Amazon
- Analytik
- Ein anderer
- Bienen
- Ansatz
- Architektur
- Bereich
- Argumente
- Automatisiert
- AWS
- Bucht
- BESTE
- Best Practices
- bauen
- Geschäft
- rufen Sie uns an!
- Kann bekommen
- österreichische Unternehmen
- Fälle
- Übernehmen
- Entscheidungen
- Einstufung
- Reinigung
- Cloud
- Code
- Kolonne
- Kombination
- Kombinationen
- Unternehmen
- Komponente
- Zustand
- Konfiguration
- Container
- Behälter
- enthält
- könnte
- Kunden
- technische Daten
- Datenverarbeitung
- Datenwissenschaft
- Tag
- Lieferanten
- Demand
- einsetzen
- Einsatz
- Entwickler
- Gerät
- Geräte
- anders
- Entdeckung
- Display
- Verteilung
- nach unten
- Drop
- dynamisch
- Edge
- Verschlüsselung
- Endpunkt
- Entwicklung
- Ingenieure
- Event
- Beispiel
- Außer
- Training
- erwartet
- ERFAHRUNGEN
- Experiment
- Expertise
- Merkmal
- Eigenschaften
- Vorname
- Setzen Sie mit Achtsamkeit
- folgen
- Folgende
- Nahrung,
- Francisco cisco~~POS=HEADCOMP
- Funktion
- bekommen
- gehen
- gut
- Handling
- hier
- High
- Ultraschall
- Hilfe
- HTTPS
- wichtig
- Einschließlich
- Infrastruktur
- integrieren
- IT
- Job
- Jobs
- grosse
- startet
- lernen
- Niveau
- Bibliothek
- !
- leicht
- Line
- wenig
- Belastung
- örtlich
- Standorte
- Maschine
- Maschinelles Lernen
- Mehrheit
- Making
- Manager
- ML
- Modell
- für
- vor allem warme
- Notizbuch
- bieten
- Angebote
- die
- Option
- Auftrag
- Organisationen
- Andere
- Andernfalls
- Frage der Teilnhabe
- Personen
- Leistung
- möglich
- Prognose
- Aufgabenstellung:
- Prozessdefinierung
- Programm
- Programmierung
- die
- Öffentlichkeit
- schnell
- Roh
- Echtzeit
- empfehlen
- Rekord
- Aufzeichnungen
- falls angefordert
- Downloads
- Rückgabe
- Überprüfen
- Ohne eine erfahrene Medienplanung zur Festlegung von Regeln und Strategien beschleunigt der programmatische Medieneinkauf einfach die Rate der verschwenderischen Ausgaben.
- Führen Sie
- Laufen
- überstürzen
- San
- San Francisco
- Einsparung
- Wissenschaft
- Wissenschaftler
- Suche
- ausgewählt
- Modellreihe
- kompensieren
- Teilen
- von Locals geführtes
- verschieben
- Einfacher
- Simulation
- Größe
- schlafen
- So
- Software
- gespalten
- Anfang
- begonnen
- Startups
- Lagerung
- Läden
- Strom
- gestreamt
- Streaming
- Studio Adressen
- Target
- Techniken
- Test
- Testen
- Durch
- Zeit
- heute
- Werkzeuge
- Ausbildung
- Transformieren
- Transformation
- us
- -
- Nutzer
- Nutzen
- Wert
- Fahrzeug
- Webseite
- Woche
- ob
- Wikipedia
- .
- arbeiten,
- Werk