Amazon Sage Maker ist ein vollständig verwalteter Dienst für maschinelles Lernen (ML). Mit SageMaker können Data Scientists und Entwickler schnell und einfach ML-Modelle erstellen und trainieren und diese dann direkt in einer produktionsbereiten gehosteten Umgebung bereitstellen. Sagemaker bietet eine integrierte Jupyter-Authoring-Notebook-Instance für den einfachen Zugriff auf Ihre Datenquellen zur Untersuchung und Analyse, sodass Sie keine Server verwalten müssen. Es bietet auch gängige ML-Algorithmen, die für die effiziente Ausführung extrem großer Datenmengen in einer verteilten Umgebung optimiert sind.
SageMaker erfordert, dass die Trainingsdaten für ein ML-Modell entweder in vorhanden sind Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) oder Amazon FSx for Lustre (weitere Informationen finden Sie unter Zugriff auf Trainingsdaten). Um ein Modell mit Daten zu trainieren, die außerhalb der drei unterstützten Speicherdienste gespeichert sind, müssen die Daten zuerst in einen dieser Dienste (normalerweise Amazon S3) aufgenommen werden. Dies erfordert den Aufbau einer Datenpipeline (unter Verwendung von Tools wie z Amazon SageMaker Data Wrangler), um Daten in Amazon S3 zu verschieben. Dieser Ansatz kann jedoch eine Herausforderung für die Datenverwaltung in Bezug auf die Verwaltung des Lebenszyklus dieses Datenspeichermediums, die Erstellung von Zugriffskontrollen, die Datenprüfung usw. darstellen, alles zum Zweck der Bereitstellung von Schulungsdaten für die Dauer des Schulungsauftrags. In solchen Situationen kann es wünschenswert sein, die Daten für SageMaker in den flüchtigen Speichermedien zugänglich zu machen, die an die flüchtigen Trainingsinstanzen angeschlossen sind, ohne dass Daten in Amazon S3 zwischengespeichert werden.
Dieser Beitrag zeigt eine Möglichkeit, dies zu tun Schneeflocke als Datenquelle und durch direktes Herunterladen der Daten von Snowflake in eine SageMaker Training-Auftragsinstanz.
Lösungsüberblick
Wir nutzen die Kalifornischer Wohnungsdatensatz als Trainingsdatensatz für diesen Posten und trainieren Sie ein ML-Modell, um den mittleren Hauswert für jeden Bezirk vorherzusagen. Wir fügen diese Daten als neue Tabelle zu Snowflake hinzu. Wir erstellen einen benutzerdefinierten Trainingscontainer, der Daten direkt aus der Snowflake-Tabelle in die Trainingsinstanz herunterlädt, anstatt die Daten zuerst in einen S3-Bucket herunterzuladen. Nachdem die Daten in die Trainingsinstanz heruntergeladen wurden, führt das benutzerdefinierte Trainingsskript Datenvorbereitungsaufgaben aus und trainiert dann das ML-Modell mithilfe von XGBoost-Schätzer. Der gesamte Code für diesen Beitrag ist im verfügbar GitHub Repo.
Die folgende Abbildung stellt die allgemeine Architektur der vorgeschlagenen Lösung dar, um Snowflake als Datenquelle zum Trainieren von ML-Modellen mit SageMaker zu verwenden.
Die Arbeitsschritte sind wie folgt:
- Richten Sie ein SageMaker-Notebook und eine AWS Identity and Access Management and (IAM)-Rolle mit den entsprechenden Berechtigungen, um SageMaker den Zugriff zu ermöglichen Amazon Elastic Container-Registrierung (Amazon ECR), Secrets Manager und andere Dienste in Ihrem AWS-Konto.
- Speichern Sie Ihre Snowflake-Kontoanmeldeinformationen in AWS Secrets Manager.
- Nehmen Sie die Daten in eine Tabelle in Ihrem Snowflake-Konto auf.
- Erstellen Sie ein benutzerdefiniertes Container-Image für das ML-Modelltraining und übertragen Sie es an Amazon ECR.
- Starten Sie einen SageMaker-Trainingsjob zum Trainieren des ML-Modells. Die Trainingsinstanz ruft Snowflake-Anmeldeinformationen von Secrets Manager ab und verwendet diese Anmeldeinformationen dann, um das Dataset direkt von Snowflake herunterzuladen. Dies ist der Schritt, der das vorherige Herunterladen von Daten in einen S3-Bucket überflüssig macht.
- Das trainierte ML-Modell wird in einem S3-Bucket gespeichert.
Voraussetzungen:
Um die in diesem Beitrag bereitgestellte Lösung zu implementieren, sollten Sie über eine AWS-Konto, eine Snowflake-Konto und Vertrautheit mit SageMaker.
Richten Sie ein SageMaker Notebook und eine IAM-Rolle ein
Wir verwenden AWS CloudFormation, um ein SageMaker-Notebook namens zu erstellen aws-aiml-blogpost-sagemaker-snowflake-example
und eine IAM-Rolle namens SageMakerSnowFlakeExample
. Wählen Sie Stack starten für die Region, in der Sie Ressourcen bereitstellen möchten.
Speichern Sie Snowflake-Anmeldeinformationen in Secrets Manager
Speichern Sie Ihre Snowflake-Anmeldeinformationen als Geheimnis in Secrets Manager. Anweisungen zum Erstellen eines Geheimnisses finden Sie unter Create an AWS Secrets Manager secret
.
- Nennen Sie das Geheimnis
snowflake_credentials
. Dies ist erforderlich, da der Code insnowflake-load-dataset.ipynb
erwartet, dass das Geheimnis so heißt. - Erstellen Sie das Geheimnis als Schlüssel/Wert-Paar mit zwei Schlüsseln:
- Benutzername – Ihr Snowflake-Benutzername.
- Passwort – Das mit Ihrem Snowflake-Benutzernamen verknüpfte Passwort.
Nehmen Sie die Daten in eine Tabelle in Ihrem Snowflake-Konto auf
Führen Sie die folgenden Schritte aus, um die Daten aufzunehmen:
- Wählen Sie in der SageMaker-Konsole Notizbücher im Navigationsbereich.
- Wählen Sie das Notebook aws-aiml-blogpost-sagemaker-snowflake-example aus und wählen Sie Öffnen Sie JupyterLab.
- Auswählen
snowflake-load-dataset.ipynb
um es in JupyterLab zu öffnen. Dieses Notebook nimmt die auf Kalifornischer Wohnungsdatensatz zu einem Snowflake-Tisch. - Bearbeiten Sie im Notizbuch den Inhalt der folgenden Zelle, um die Platzhalterwerte durch die Werte zu ersetzen, die Ihrem Snowflake-Konto entsprechen:
- Wählen Sie im Menü Ausführen Führen Sie alle Zellen aus um den Code in diesem Notebook auszuführen. Dadurch wird das Dataset lokal in das Notebook heruntergeladen und dann in die Snowflake-Tabelle aufgenommen.
Das folgende Code-Snippet im Notebook nimmt das Dataset in Snowflake auf. Siehe die snowflake-load-dataset.ipynb
Notizbuch für den vollständigen Code.
- Schließen Sie das Notebook, nachdem alle Zellen fehlerfrei ausgeführt wurden. Ihre Daten sind jetzt in Snowflake verfügbar. Der folgende Screenshot zeigt die
california_housing
in Snowflake erstellte Tabelle.
Führen Sie die sagemaker-snowflake-example.ipynb
Notizbuch
Dieses Notebook erstellt einen benutzerdefinierten Trainingscontainer mit einer Snowflake-Verbindung, extrahiert Daten aus Snowflake in den flüchtigen Speicher der Trainingsinstanz, ohne sie in Amazon S3 bereitzustellen, und führt ein Distributed Data Parallel (DDP) XGBoost-Modelltraining für die Daten durch. Für das Modelltraining auf einem so kleinen Datensatz ist kein DDP-Training erforderlich; es ist hier zur Veranschaulichung einer weiteren kürzlich veröffentlichten SageMaker-Funktion enthalten.
Erstellen Sie einen benutzerdefinierten Container für das Training
Wir erstellen jetzt einen benutzerdefinierten Container für den ML-Modelltrainingsjob. Beachten Sie, dass zum Erstellen eines Docker-Containers Root-Zugriff erforderlich ist. Dieses SageMaker-Notebook wurde mit aktiviertem Root-Zugriff bereitgestellt. Wenn Ihre Unternehmensrichtlinien keinen Root-Zugriff auf Cloud-Ressourcen zulassen, möchten Sie möglicherweise die folgenden Docker-Dateien und Shell-Skripts verwenden, um einen Docker-Container an anderer Stelle (z. B. Ihrem Laptop) zu erstellen und ihn dann an Amazon ECR zu übertragen. Wir verwenden den Container basierend auf dem SageMaker XGBoost-Container-Image 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
mit folgenden Ergänzungen:
- Das Snowflake-Konnektor für Python um die Daten aus der Snowflake-Tabelle in die Trainingsinstanz herunterzuladen.
- Ein Python-Skript zum Herstellen einer Verbindung mit Secrets Manager zum Abrufen von Snowflake-Anmeldeinformationen.
Die Verwendung des Snowflake-Konnektors und des Python-Skripts stellt sicher, dass Benutzer, die dieses Container-Image für das ML-Modelltraining verwenden, diesen Code nicht als Teil ihres Trainingsskripts schreiben müssen und diese bereits verfügbare Funktionalität nutzen können.
Das Folgende ist das Dockerfile für den Trainingscontainer:
Das Container-Image wird erstellt und an Amazon ECR übertragen. Dieses Bild wird zum Trainieren des ML-Modells verwendet.
Trainieren Sie das ML-Modell mit einem SageMaker-Trainingsjob
Nachdem wir das Container-Image erfolgreich erstellt und an Amazon ECR gepusht haben, können wir damit beginnen, es für das Modelltraining zu verwenden.
- Wir erstellen eine Reihe von Python-Skripts, um die Daten von Snowflake mithilfe von herunterzuladen Snowflake-Konnektor für Python, bereiten Sie die Daten vor und verwenden Sie dann die
XGBoost Regressor
um das ML-Modell zu trainieren. Es ist der Schritt, die Daten direkt in die Trainingsinstanz herunterzuladen, wodurch vermieden wird, dass Amazon S3 als Zwischenspeicher für Trainingsdaten verwendet werden muss. - Wir erleichtern verteiltes paralleles Datentraining, indem wir den Trainingscode eine zufällige Teilmenge der Daten herunterladen lassen, sodass jede Trainingsinstanz eine gleiche Datenmenge von Snowflake herunterlädt. Wenn beispielsweise zwei Trainingsknoten vorhanden sind, lädt jeder Knoten eine zufällige Stichprobe von 50 % der Zeilen in der Snowflake-Tabelle herunter. Siehe den folgenden Code:
- Anschließend stellen wir das Trainingsskript für das SageMaker SDK bereit
Estimator
zusammen mit dem Quellverzeichnis, sodass alle von uns erstellten Skripts dem Trainingscontainer bereitgestellt werden können, wenn der Trainingsjob mit ausgeführt wirdEstimator.fit
Verfahren:Weitere Informationen finden Sie unter Bereiten Sie ein Scikit-Learn-Schulungsskript vor.
- Nach Abschluss des Modelltrainings steht das trainierte Modell als
model.tar.gz
Datei im standardmäßigen SageMaker-Bucket für die Region:
Sie können jetzt das trainierte Modell einsetzen, um Rückschlüsse auf neue Daten zu ziehen! Anweisungen finden Sie unter Erstellen Sie Ihren Endpunkt und stellen Sie Ihr Modell bereit.
Aufräumen
Löschen Sie die Ressourcen, um zukünftige Gebühren zu vermeiden. Sie können dies tun, indem Sie die CloudFormation-Vorlage löschen, die zum Erstellen der IAM-Rolle und des SageMaker-Notebooks verwendet wurde.
Sie müssen die Snowflake-Ressourcen manuell aus der Snowflake-Konsole löschen.
Zusammenfassung
In diesem Beitrag haben wir gezeigt, wie Sie in einer Snowflake-Tabelle gespeicherte Daten in eine SageMaker-Trainingsauftragsinstanz herunterladen und ein XGBoost-Modell mit einem benutzerdefinierten Trainingscontainer trainieren. Dieser Ansatz ermöglicht es uns, Snowflake direkt als Datenquelle in ein SageMaker-Notebook zu integrieren, ohne dass die Daten in Amazon S3 bereitgestellt werden.
Wir empfehlen Ihnen, mehr zu erfahren, indem Sie die erkunden Amazon SageMaker Python-SDK und Erstellen einer Lösung mit der in diesem Beitrag bereitgestellten Beispielimplementierung und einem für Ihr Unternehmen relevanten Datensatz. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie einen Kommentar.
Über die Autoren
Amit Arora ist ein auf KI und ML spezialisierter Architekt bei Amazon Web Services und unterstützt Unternehmenskunden bei der Nutzung von Cloud-basierten Diensten für maschinelles Lernen, um ihre Innovationen schnell zu skalieren. Er ist außerdem außerordentlicher Dozent im MS Data Science and Analytics-Programm an der Georgetown University in Washington DC
Divya Muralidharan ist Lösungsarchitekt bei Amazon Web Services. Ihre Leidenschaft ist es, Unternehmenskunden bei der Lösung von Geschäftsproblemen mit Technologie zu unterstützen. Sie hat einen Master in Informatik vom Rochester Institute of Technology. Außerhalb des Büros verbringt sie Zeit damit, zu kochen, zu singen und Pflanzen anzubauen.
Sergej Ermolin ist Principal AIML Solutions Architect bei AWS. Zuvor war er Softwarelösungsarchitekt für Deep Learning, Analytik und Big-Data-Technologien bei Intel. Sergey, ein Veteran des Silicon Valley mit einer Leidenschaft für maschinelles Lernen und künstliche Intelligenz, interessiert sich seit Tagen vor der GPU für neuronale Netze, als er sie zur Vorhersage des Alterungsverhaltens von Quarzkristallen und Cäsium-Atomuhren bei Hewlett-Packard einsetzte. Sergey hat ein MSEE- und ein CS-Zertifikat von Stanford und einen BS-Abschluss in Physik und Maschinenbau von der California State University, Sacramento. Außerhalb der Arbeit genießt Sergey die Weinherstellung, das Skifahren, Radfahren, Segeln und Tauchen. Sergey ist auch ein freiwilliger Pilot für Engelsflug.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :Ist
- $UP
- 1
- 10
- 7
- 8
- a
- LiveBuzz
- Zugang
- zugänglich
- Konto
- Zugänge
- Nach der
- gegen
- Hautalterung
- AI
- AIML
- Algorithmen
- Alle
- erlaubt
- bereits
- Amazon
- Amazon FSx
- Amazon Sage Maker
- Amazon Web Services
- Betrag
- Analyse
- Analytik
- und
- Ein anderer
- Ansatz
- angemessen
- Architektur
- SIND
- künstlich
- künstliche Intelligenz
- AS
- damit verbundenen
- At
- Wirtschaftsprüfung
- Authoring
- verfügbar
- AWS
- AWS CloudFormation
- Base
- basierend
- BE
- weil
- Big
- Big Data
- bauen
- Building
- erbaut
- Geschäft
- by
- Kalifornien
- namens
- CAN
- Die Zellen
- Bescheinigung
- challenges
- Gebühren
- Auswählen
- Reinigung
- Uhren
- Cloud
- Code
- Kolonne
- Spalten
- Kommentar
- gemeinsam
- abschließen
- Computer
- Computerwissenschaften
- Vernetz Dich
- Verbindung
- Konsul (Console)
- Container
- enthält
- Inhalt
- Steuerung
- erstellen
- erstellt
- schafft
- Erstellen
- Referenzen
- Original
- Kunden
- technische Daten
- Datenmanagement
- Datenaufbereitung
- Datenwissenschaft
- Datenspeichervorrichtung
- datetime
- Tage
- DDP
- Entscheiden
- tief
- tiefe Lernen
- Standard
- Grad
- einsetzen
- Einsatz
- Entwickler
- Direkt
- verteilt
- Bezirk
- Docker
- Nicht
- herunterladen
- Downloads
- jeder
- leicht
- effizient
- entweder
- eliminiert
- anderswo
- freigegeben
- ermutigen
- Endpunkt
- Entwicklung
- sorgt
- Unternehmen
- Arbeitsumfeld
- Fehler
- Beispiel
- ausführen
- existiert
- erwartet
- Exploration
- Möglichkeiten sondieren
- KONZENTRAT
- äußerst
- erleichtern
- Messe
- Vertrautheit
- Merkmal
- Abbildung
- Reichen Sie das
- Finale
- Vorname
- passen
- Folgende
- folgt
- Aussichten für
- für
- voller
- voll
- Funktionalität
- Zukunft
- bekommen
- bekommen
- GitHub
- gehen
- persönlichem Wachstum
- Haben
- mit
- Unternehmen
- hier
- High-Level
- hält
- gehostet
- Gastgeber
- Häuser
- Gehäuse
- Ultraschall
- Hilfe
- aber
- HTML
- HTTPS
- Identitätsschutz
- Image
- implementieren
- Implementierung
- importieren
- in
- das
- inklusive
- Index
- Information
- Innovationen
- installieren
- Instanz
- Institut
- Anleitung
- integrieren
- integriert
- Intel
- Intelligenz
- interessiert
- IT
- Job
- Tasten
- Laptop
- grosse
- Nachname
- LERNEN
- lernen
- Verlassen
- Lebenszyklus
- ln
- örtlich
- Maschine
- Maschinelles Lernen
- verwalten
- verwaltet
- Management
- Manager
- flächendeckende Gesundheitsprogramme
- manuell
- Abstimmung
- mechanisch
- Medien
- mittlere
- MENÜ
- Methode
- ML
- Modell
- für
- mehr
- schlauer bewegen
- MS
- Name
- Menü
- Need
- Bedürfnisse
- Netzwerke
- Neuronale Netze
- Neu
- weiter
- Knoten
- Fiber Node
- Notizbuch
- Anzahl
- Objekt
- of
- Office
- on
- EINEM
- XNUMXh geöffnet
- optimiert
- Auftrag
- Organisation
- Andere
- aussen
- Paket
- Pandas
- Brot
- Parallel
- Teil
- Leidenschaft & KREATIVITÄT
- leidenschaftlich
- Passwort
- führt
- Berechtigungen
- Physik
- Pilot
- Pipeline
- Platzhalter
- Pflanzen
- Plato
- Datenintelligenz von Plato
- PlatoData
- Politik durchzulesen
- besiedelt
- Post
- vorhersagen
- Danach
- Gegenwart
- vorher
- Principal
- Probleme
- Programm
- vorgeschlage
- die
- vorausgesetzt
- bietet
- Zweck
- Push
- geschoben
- Python
- Fragen
- schnell
- zufällig
- schnell
- lieber
- Lesen Sie mehr
- kürzlich
- Aufzeichnungen
- reduziert
- Region
- freigegeben
- relevant
- ersetzen
- representiert
- falls angefordert
- erfordert
- Downloads
- Rückkehr
- Rollen
- Wurzel
- REIHE
- Führen Sie
- Sacramento
- sagemaker
- Segeln
- Speichern
- Skalieren
- Wissenschaft
- Wissenschaftler
- scikit-lernen
- Skripte
- Sdk
- Die Geheime
- Fertige Server
- Lösungen
- kompensieren
- Form
- Schale
- sollte
- Konzerte
- signifikant
- Silizium
- Silicon Valley
- Einfacher
- da
- Umstände
- klein
- So
- Software
- Lösung
- Lösungen
- LÖSEN
- Quelle
- Quellen
- Raumfahrt
- Spezialist
- Aufführung
- Anfang
- Bundesstaat
- Erklärung
- Schritt
- Shritte
- Lagerung
- gelagert
- Subnetze
- Erfolgreich
- so
- Support
- Unterstützte
- System
- Tabelle
- und Aufgaben
- Technologies
- Technologie
- Vorlage
- AGB
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Quelle
- ihr
- Sie
- Diese
- nach drei
- Durch
- Zeit
- zu
- Werkzeuge
- Gesamt
- Training
- trainiert
- Ausbildung
- schult Ehrenamtliche
- typisch
- Universität
- Aktualisierung
- us
- -
- Mitglied
- Nutzer
- Tal
- Wert
- Werte
- Veteran
- Freiwillige
- Washington
- Weg..
- Netz
- Web-Services
- welche
- WHO
- werden wir
- mit
- .
- ohne
- Arbeiten
- schreiben
- XGBoost
- Du
- Ihr
- Zephyrnet