Amazon SageMaker-Pipelines ist ein vollständig verwalteter AWS-Service zum Erstellen und Orchestrieren von Arbeitsabläufen für maschinelles Lernen (ML). SageMaker Pipelines bietet ML-Anwendungsentwicklern die Möglichkeit, verschiedene Schritte des ML-Workflows zu orchestrieren, einschließlich Datenladen, Datentransformation, Schulung, Optimierung und Bereitstellung. Sie können SageMaker Pipelines verwenden, um ML-Jobs in SageMaker zu orchestrieren Integration in das größere AWS-Ökosystem ermöglicht Ihnen auch die Verwendung von Ressourcen wie AWS Lambda Funktionen, Amazon EMR Arbeitsplätze und mehr. Dadurch können Sie eine individuelle und reproduzierbare Pipeline für spezifische Anforderungen in Ihren ML-Workflows aufbauen.
In diesem Beitrag stellen wir einige Best Practices vor, um den Wert von SageMaker Pipelines zu maximieren und die Entwicklungserfahrung nahtlos zu gestalten. Wir diskutieren auch einige gängige Entwurfsszenarien und -muster beim Aufbau von SageMaker-Pipelines und stellen Beispiele für deren Bewältigung bereit.
Best Practices für SageMaker Pipelines
In diesem Abschnitt besprechen wir einige Best Practices, die beim Entwerfen von Workflows mit SageMaker Pipelines befolgt werden können. Ihre Einführung kann den Entwicklungsprozess verbessern und das Betriebsmanagement von SageMaker Pipelines rationalisieren.
Verwenden Sie Pipeline Session zum verzögerten Laden der Pipeline
Pipeline-Sitzung ermöglicht die verzögerte Initialisierung von Pipeline-Ressourcen (die Jobs werden erst zur Pipeline-Laufzeit gestartet). Der PipelineSession
Kontext erbt die SageMaker-Sitzung und implementiert praktische Methoden für die Interaktion mit anderen SageMaker-Entitäten und -Ressourcen, z. B. Trainingsjobs, Endpunkten und Eingabedatensätzen Amazon Simple Storage-Service (Amazon S3) und so weiter. Beim Definieren von SageMaker-Pipelines sollten Sie verwenden PipelineSession
über die reguläre SageMaker-Sitzung:
Führen Sie Pipelines im lokalen Modus aus, um kostengünstige und schnelle Iterationen während der Entwicklung zu ermöglichen
Sie können eine ausführen Pipeline im lokalen Modus Verwendung der LocalPipelineSession
Kontext. In diesem Modus werden die Pipeline und die Jobs lokal unter Verwendung von Ressourcen auf dem lokalen Computer ausgeführt, statt der von SageMaker verwalteten Ressourcen. Der lokale Modus bietet eine kostengünstige Möglichkeit, den Pipeline-Code mit einer kleineren Teilmenge von Daten zu iterieren. Nachdem die Pipeline lokal getestet wurde, kann sie für die Ausführung skaliert werden Pipeline-Sitzung Kontext.
Verwalten Sie eine SageMaker-Pipeline durch Versionierung
Die Versionierung von Artefakten und Pipelinedefinitionen ist eine häufige Anforderung im Entwicklungslebenszyklus. Sie können mehrere Versionen der Pipeline erstellen, indem Sie Pipeline-Objekte mit einem eindeutigen Präfix oder Suffix benennen. Am häufigsten wird ein Zeitstempel verwendet, wie im folgenden Code gezeigt:
Organisieren und verfolgen Sie SageMaker-Pipeline-Läufe durch die Integration mit SageMaker Experiments
SageMaker Pipelines können problemlos integriert werden SageMaker-Experimente zum Organisieren u Verfolgung von Pipeline-Ausführungen. Dies wird durch Spezifizierung erreicht PipelineExperimentConfig zum Zeitpunkt der Erstellung eines Pipeline-Objekt. Mit diesem Konfigurationsobjekt können Sie einen Experimentnamen und einen Testnamen angeben. Die Ausführungsdetails einer SageMaker-Pipeline werden unter dem angegebenen Experiment und Test organisiert. Wenn Sie keinen Experimentnamen explizit angeben, wird ein Pipelinename als Experimentname verwendet. Wenn Sie nicht explizit einen Testnamen angeben, wird entsprechend eine Pipeline-Ausführungs-ID für den Test- oder Ausführungsgruppennamen verwendet. Siehe den folgenden Code:
Führen Sie SageMaker-Pipelines sicher in einer privaten VPC aus
Um die ML-Workloads zu sichern, empfiehlt es sich, die von SageMaker Pipelines orchestrierten Jobs in einer sicheren Netzwerkkonfiguration innerhalb einer privaten VPC, privaten Subnetzen und Sicherheitsgruppen bereitzustellen. Um die Nutzung dieser sicheren Umgebung sicherzustellen und durchzusetzen, können Sie Folgendes implementieren AWS Identity and Access Management and (IAM)-Richtlinie für die SageMaker-Ausführungsrolle (Dies ist die Rolle, die die Pipeline während ihres Laufs übernimmt). Sie können auch die Richtlinie hinzufügen, um die von SageMaker Pipelines orchestrierten Jobs im Netzwerkisolationsmodus auszuführen.
Ein Beispiel für die Pipeline-Implementierung mit diesen Sicherheitskontrollen finden Sie unter Orchestrieren Sie Jobs, Modellregistrierung und kontinuierliche Bereitstellung mit Amazon SageMaker in einer sicheren Umgebung.
Überwachen Sie die Kosten von Pipelineläufen mithilfe von Tags
Die Nutzung der SageMaker-Pipelines allein ist kostenlos; Sie zahlen für die Rechen- und Speicherressourcen, die Sie im Rahmen der einzelnen Pipeline-Schritte wie Verarbeitung, Training und Batch-Inferenz bereitstellen. Um die Kosten pro Pipeline-Durchlauf zu aggregieren, können Sie Folgendes einbeziehen: Tags in jedem Pipelineschritt, der eine Ressource erstellt. Auf diese Tags kann dann im Kosten-Explorer verwiesen werden, um die gesamten Pipeline-Laufkosten zu filtern und zu aggregieren, wie im folgenden Beispiel gezeigt:
Im Kosten-Explorer können Sie nun die Kosten gefiltert nach folgendem Tag abrufen:
Entwurfsmuster für einige gängige Szenarien
In diesem Abschnitt besprechen wir Entwurfsmuster für einige häufige Anwendungsfälle mit SageMaker Pipelines.
Führen Sie eine einfache Python-Funktion mit einem Lambda-Schritt aus
Python-Funktionen sind in ML-Workflows allgegenwärtig; Sie werden in der Vorverarbeitung, Nachverarbeitung, Auswertung und mehr verwendet. Lambda ist ein serverloser Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitzustellen oder zu verwalten. Mit Lambda können Sie Code in Ihrer bevorzugten Sprache ausführen, die Python enthält. Damit können Sie benutzerdefinierten Python-Code als Teil Ihrer Pipeline ausführen. Ein Lambda-Schritt ermöglicht Ihnen die Ausführung von Lambda-Funktionen als Teil Ihrer SageMaker-Pipeline. Beginnen Sie mit dem folgenden Code:
Erstellen Sie die Lambda-Funktion mit der Der Lambda-Helfer des SageMaker Python SDK:
Rufen Sie den Lambda-Schritt auf:
Übergeben Sie Daten zwischen Schritten
Eingabedaten für einen Pipeline-Schritt sind entweder ein zugänglicher Datenspeicherort oder Daten, die von einem der vorherigen Schritte in der Pipeline generiert wurden. Sie können diese Informationen als angeben ProcessingInput
Parameter. Schauen wir uns einige Szenarien an, wie Sie ProcessingInput verwenden können.
Szenario 1: Übergeben Sie die Ausgabe (primitive Datentypen) eines Lambda-Schritts an einen Verarbeitungsschritt
Primitive Datentypen beziehen sich auf skalare Datentypen wie String, Integer, Boolean und Float.
Der folgende Codeausschnitt definiert eine Lambda-Funktion, die ein Wörterbuch von Variablen mit primitiven Datentypen zurückgibt. Ihr Lambda-Funktionscode gibt einen JSON-Code mit Schlüssel-Wert-Paaren zurück, wenn er vom Lambda-Schritt innerhalb der SageMaker-Pipeline aufgerufen wird.
In der Pipeline-Definition können Sie dann SageMaker-Pipeline-Parameter definieren, die einen bestimmten Datentyp haben, und die Variable auf die Ausgabe der Lambda-Funktion festlegen:
Szenario 2: Übergeben Sie die Ausgabe (nicht-primitive Datentypen) eines Lambda-Schritts an einen Verarbeitungsschritt
Nicht-primitive Datentypen beziehen sich auf nicht-skalare Datentypen (z. B. NamedTuple
). Es kann vorkommen, dass Sie einen nicht-primitiven Datentyp von einer Lambda-Funktion zurückgeben müssen. Dazu müssen Sie Ihren nicht-primitiven Datentyp in einen String konvertieren:
Anschließend können Sie diese Zeichenfolge als Eingabe für einen nachfolgenden Schritt in der Pipeline verwenden. Um das benannte Tupel im Code zu verwenden, verwenden Sie eval()
So analysieren Sie den Python-Ausdruck in der Zeichenfolge:
Szenario 3: Übergeben Sie die Ausgabe eines Schritts über eine Eigenschaftendatei
Sie können die Ausgabe eines Verarbeitungsschritts auch in einem speichern Eigenschaft JSON-Datei für den nachgelagerten Verbrauch in a ConditionStep
oder ein anderes ProcessingStep
. Sie können die JSONGet-Funktion a abfragen Eigenschaftsdatei. Siehe folgenden Code:
Nehmen wir an, der Inhalt der Eigenschaftendatei sei wie folgt:
In diesem Fall kann er mit der JsonGet-Funktion nach einem bestimmten Wert abgefragt und in nachfolgenden Schritten verwendet werden:
Parametrisieren Sie eine Variable in der Pipeline-Definition
Oft ist es wünschenswert, Variablen so zu parametrisieren, dass sie zur Laufzeit verwendet werden können, beispielsweise um einen S3-URI zu erstellen. Sie können einen String so parametrisieren, dass er zur Laufzeit ausgewertet wird Join
Funktion. Der folgende Codeausschnitt zeigt, wie die Variable mithilfe von definiert wird Join
Funktion und verwenden Sie diese, um den Ausgabeort in einem Verarbeitungsschritt festzulegen:
Führen Sie parallelen Code über eine Iterable aus
Einige ML-Workflows führen Code in parallelen for-Schleifen über einen statischen Satz von Elementen aus (eine wiederholbar). Dabei kann es sich entweder um denselben Code handeln, der für unterschiedliche Daten ausgeführt wird, oder um einen anderen Codeabschnitt, der für jedes Element ausgeführt werden muss. Wenn Sie beispielsweise eine sehr große Anzahl von Zeilen in einer Datei haben und die Verarbeitungszeit beschleunigen möchten, können Sie auf das erstere Muster zurückgreifen. Wenn Sie unterschiedliche Transformationen für bestimmte Untergruppen in den Daten durchführen möchten, müssen Sie möglicherweise für jede Untergruppe in den Daten einen anderen Code ausführen. Die folgenden zwei Szenarien veranschaulichen, wie Sie SageMaker-Pipelines für diesen Zweck entwerfen können.
Szenario 1: Implementieren Sie eine Verarbeitungslogik für verschiedene Datenteile
Sie können einen Verarbeitungsjob mit mehreren Instanzen ausführen (durch Einstellung). instance_count
auf einen Wert größer als 1). Dadurch werden die Eingabedaten von Amazon S3 auf alle Verarbeitungsinstanzen verteilt. Sie können dann ein Skript (process.py) verwenden, um einen bestimmten Teil der Daten basierend auf der Instanznummer und dem entsprechenden Element in der Liste der Elemente zu bearbeiten. Die Programmierlogik in „process.py“ kann so geschrieben werden, dass abhängig von der Liste der verarbeiteten Elemente ein anderes Modul oder ein anderer Code ausgeführt wird. Das folgende Beispiel definiert einen Prozessor, der in einem ProcessingStep verwendet werden kann:
Szenario 2: Führen Sie eine Folge von Schritten aus
Wenn Sie eine Abfolge von Schritten haben, die parallel ausgeführt werden müssen, können Sie jede Abfolge als unabhängige SageMaker-Pipeline definieren. Die Ausführung dieser SageMaker-Pipelines kann dann von einer Lambda-Funktion ausgelöst werden, die Teil einer ist LambdaStep
in der übergeordneten Pipeline. Der folgende Codeabschnitt veranschaulicht das Szenario, in dem zwei verschiedene SageMaker-Pipeline-Ausführungen ausgelöst werden:
Zusammenfassung
In diesem Beitrag haben wir einige Best Practices für die effiziente Nutzung und Wartung von SageMaker-Pipelines besprochen. Wir haben auch bestimmte Muster bereitgestellt, die Sie beim Entwerfen von Workflows mit SageMaker Pipelines übernehmen können, unabhängig davon, ob Sie neue Pipelines erstellen oder ML-Workflows von anderen Orchestrierungstools migrieren. Informationen zu den ersten Schritten mit SageMaker Pipelines für die ML-Workflow-Orchestrierung finden Sie im Codebeispiele auf GitHub und Amazon SageMaker-Modellerstellungspipelines.
Über die Autoren
Pinak Panigrahi arbeitet mit Kunden zusammen, um auf maschinellem Lernen basierende Lösungen zu entwickeln, um strategische Geschäftsprobleme auf AWS zu lösen. Wenn er sich nicht gerade mit maschinellem Lernen beschäftigt, kann man ihn beim Wandern, beim Lesen eines Buches oder beim Sportschauen antreffen.
Meenakshisundaram Thandavarayan arbeitet für AWS als AI/ML-Spezialist. Er hat eine Leidenschaft dafür, menschenzentrierte Daten- und Analyseerlebnisse zu entwerfen, zu erstellen und zu fördern. Meena konzentriert sich auf die Entwicklung nachhaltiger Systeme, die messbare Wettbewerbsvorteile für strategische Kunden von AWS bieten. Meena ist eine Konnektorin, Design-Denkerin und bestrebt, Unternehmen durch Innovation, Inkubation und Demokratisierung zu neuen Arbeitsweisen zu führen.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Automobil / Elektrofahrzeuge, Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- PlatoHealth. Informationen zu Biotechnologie und klinischen Studien. Hier zugreifen.
- ChartPrime. Verbessern Sie Ihr Handelsspiel mit ChartPrime. Hier zugreifen.
- BlockOffsets. Modernisierung des Eigentums an Umweltkompensationen. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/best-practices-and-design-patterns-for-building-machine-learning-workflows-with-amazon-sagemaker-pipelines/
- :hast
- :Ist
- :nicht
- :Wo
- $UP
- 1
- 100
- 11
- 13
- 15%
- 150
- 16
- 17
- 19
- 20
- 22
- 28
- 7
- 8
- 9
- a
- Fähigkeit
- Zugang
- zugänglich
- erreicht
- Action
- hinzufügen
- Adressierung
- adoptieren
- Die Annahme
- Vorteilen
- Nach der
- Aggregat
- Alle
- erlaubt
- ebenfalls
- Amazon
- Amazon Sage Maker
- Amazon SageMaker-Pipelines
- Amazon Web Services
- an
- Analytik
- und
- Ein anderer
- Bienen
- Anwendung
- angemessen
- SIND
- AS
- annehmen
- angenommen
- At
- Authoring
- verfügbar
- AWS
- basierend
- BE
- Sein
- BESTE
- Best Practices
- zwischen
- buchen
- bauen
- Building
- Geschäft
- by
- CAN
- Häuser
- Fälle
- sicher
- Auftraggeber
- Code
- Produktauswahl
- gemeinsam
- wettbewerbsfähig
- Berechnen
- Zustand
- Konfiguration
- konstruieren
- Verbrauch
- Inhalt
- Kontext
- kontinuierlich
- Steuerung
- Praktische
- verkaufen
- Dazugehörigen
- Kosten
- kostengünstiger
- Kosten
- erstellen
- schafft
- Erstellen
- Original
- Kunden
- maßgeschneiderte
- technische Daten
- Datensätze
- Entziffern
- definieren
- Definiert
- Definition
- Definition
- Definitionen
- Übergeben
- Demokratisierung
- Abhängig
- einsetzen
- Einsatz
- Design
- Designmuster
- Entwerfen
- Details
- Entwickler
- Entwicklung
- Entwicklung
- anders
- Größe
- diskutieren
- diskutiert
- do
- Nicht
- Antrieb
- angetrieben
- im
- jeder
- leicht
- bewirken
- effizient
- entweder
- Element
- ermöglicht
- Ende
- erzwingen
- gewährleisten
- Entitäten
- Arbeitsumfeld
- Bewerten
- Auswertung
- Event
- Jedes
- Beispiel
- Beispiele
- Ausführung
- ERFAHRUNGEN
- Erfahrungen
- Experiment
- Forscher
- Ausdruck
- Extrakt
- wenige
- Reichen Sie das
- Filter
- Schwimmer
- gefolgt
- Folgende
- Aussichten für
- Früher
- gefunden
- Frei
- für
- voll
- Funktion
- Funktionen
- erzeugt
- bekommen
- mehr
- Gruppe an
- Gruppen
- Haben
- he
- Wandern
- Ultraschall
- Hilfe
- HTML
- http
- HTTPS
- ID
- Identitätsschutz
- if
- zeigt
- implementieren
- Implementierung
- implementiert
- importieren
- zu unterstützen,
- in
- das
- Dazu gehören
- Einschließlich
- Inkubation
- unabhängig
- Krankengymnastik
- Information
- Innovation
- Varianten des Eingangssignals:
- Instanz
- beantragen müssen
- integriert
- Integration
- Interaktion
- in
- aufgerufen
- Isolierung
- IT
- Artikel
- Iterationen
- SEINE
- selbst
- Job
- Jobs
- JSON
- Wesentliche
- Sprache
- grosse
- größer
- lernen
- Lasst uns
- Lebenszyklus
- leicht
- Gefällt mir
- Liste
- Laden
- aus einer regionalen
- örtlich
- Standorte
- Logik
- aussehen
- Maschine
- Maschinelles Lernen
- Wartung
- um
- verwaltet
- Management
- flächendeckende Gesundheitsprogramme
- Maximieren
- Kann..
- Methoden
- könnte
- Migration
- ML
- Model
- Modell
- Modul
- monatlich
- mehr
- vor allem warme
- mehrere
- Name
- Namens
- Benennung
- Need
- Bedürfnisse
- Netzwerk
- Neu
- jetzt an
- Anzahl
- Objekt
- Objekte
- erhalten
- of
- Angebote
- vorgenommen,
- on
- EINEM
- Betriebs-
- or
- orchestriert
- Orchesterbearbeitung
- Organisiert
- Organisieren
- Andere
- Möglichkeiten für das Ausgangssignal:
- übrig
- Paare
- Parallel
- Parameter
- Parameter
- Teil
- passieren
- Leidenschaft & KREATIVITÄT
- Schnittmuster
- Muster
- AUFMERKSAMKEIT
- für
- Ausführen
- Stück
- Pipeline
- Ort
- Plato
- Datenintelligenz von Plato
- PlatoData
- Datenschutzrichtlinien
- Teil
- Post
- Praxis
- Praktiken
- bevorzugt
- früher
- Primitive
- privat
- Probleme
- Prozessdefinierung
- anpassen
- Verarbeitung
- Prozessor
- Programmierung
- fördern
- immobilien
- Resorts
- die
- vorausgesetzt
- bietet
- Zweck
- Python
- Direkt
- Lesebrillen
- siehe
- Registrierung:
- regulär
- verlassen
- Anforderung
- Voraussetzungen:
- Ressourcen
- Downloads
- Antwort
- Rückkehr
- Rückkehr
- Rückgabe
- Rollen
- Führen Sie
- läuft
- s
- sagemaker
- SageMaker-Pipelines
- gleich
- Szenario
- Szenarien
- Skript
- nahtlos
- Abschnitt
- Verbindung
- Sicherheitdienst
- sehen
- Reihenfolge
- Serverlos
- Fertige Server
- Lösungen
- Sitzung
- kompensieren
- Einstellung
- sollte
- gezeigt
- Konzerte
- Ähnlich
- Einfacher
- kleinere
- Schnipsel
- So
- Lösungen
- LÖSEN
- einige
- Spezialist
- spezifisch
- angegeben
- Geschwindigkeit
- Wirbelsäule ... zu unterstützen.
- Sports
- Anfang
- begonnen
- Erklärung
- Schritt
- Shritte
- Lagerung
- speichern
- Strategisch
- strategisches Geschäft
- rationalisieren
- Schnur
- strebt
- Struktur
- Subnetze
- Folge
- so
- nachhaltiger
- Systeme und Techniken
- TAG
- Einnahme
- getestet
- als
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Sie
- dann
- Dort.
- Diese
- vom Nutzer definierten
- Denker
- fehlen uns die Worte.
- Durch
- Zeit
- Zeitstempel
- zu
- Werkzeuge
- Gesamt
- verfolgen sind
- Training
- Ausbildung
- Transformation
- Transformationen
- Versuch
- auslösen
- ausgelöst
- was immer dies auch sein sollte.
- XNUMX
- tippe
- Typen
- für
- einzigartiges
- bis
- Anwendungsbereich
- -
- benutzt
- verwendet
- Verwendung von
- Wert
- Werte
- Variable
- Version
- Versionen
- sehr
- wollen
- beobachten
- Weg..
- Wege
- we
- Netz
- Web-Services
- waren
- wann
- ob
- während
- werden wir
- mit
- .
- ohne
- Arbeiten
- Arbeitsablauf.
- Workflows
- arbeiten,
- Werk
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- geschrieben
- Du
- Ihr
- Zephyrnet