Die Aufrechterhaltung von Arbeitsabläufen für maschinelles Lernen (ML) in der Produktion ist eine herausfordernde Aufgabe, da sie die Erstellung von Pipelines für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) für ML-Code und -Modelle, Modellversionierung, Überwachung auf Daten- und Konzeptdrift, Modellumschulung und ein Handbuch erfordert Genehmigungsprozess, um sicherzustellen, dass neue Versionen des Modells sowohl Leistungs- als auch Compliance-Anforderungen erfüllen.
In diesem Beitrag beschreiben wir, wie Sie einen MLOps-Workflow für Batch-Inferenz erstellen, der die Jobplanung, Modellüberwachung, Neuschulung und Registrierung sowie Fehlerbehandlung und Benachrichtigung automatisiert Amazon Sage Maker, Amazon EventBridge, AWS Lambda, Amazon Simple Notification Service (Amazon SNS), HashiCorp Terraform und GitLab CI/CD. Der vorgestellte MLOps-Workflow bietet eine wiederverwendbare Vorlage für die Verwaltung des ML-Lebenszyklus durch Automatisierung, Überwachung, Überprüfbarkeit und Skalierbarkeit und reduziert so die Komplexität und Kosten der Aufrechterhaltung der Batch-Inferenz-Workloads in der Produktion.
Lösungsüberblick
Die folgende Abbildung zeigt die vorgeschlagene Ziel-MLOps-Architektur für Enterprise-Batch-Inferenz für Organisationen, die GitLab CI/CD und Terraform Infrastructure as Code (IaC) in Verbindung mit AWS-Tools und -Services verwenden. GitLab CI/CD fungiert als Makro-Orchestrator und orchestriert model build
und model deploy
Pipelines, die Beschaffung, Aufbau und Bereitstellung umfassen Amazon SageMaker-Pipelines und unterstützende Ressourcen mit dem SageMaker Python SDK und Terraform. Das SageMaker Python SDK wird zum Erstellen oder Aktualisieren von SageMaker-Pipelines für Training, Training mit Hyperparameteroptimierung (HPO) und Batch-Inferenz verwendet. Terraform wird verwendet, um zusätzliche Ressourcen wie EventBridge-Regeln, Lambda-Funktionen und SNS-Themen zur Überwachung von SageMaker-Pipelines und zum Senden von Benachrichtigungen zu erstellen (z. B. wenn ein Pipeline-Schritt fehlschlägt oder erfolgreich ist). SageMaker Pipelines dient als Orchestrator für ML-Modelltrainings- und Inferenz-Workflows.
Dieses Architekturdesign stellt eine Strategie mit mehreren Konten dar, bei der ML-Modelle erstellt, trainiert und in einem zentralen Modellregister innerhalb eines Data-Science-Entwicklungskontos registriert werden (das über mehr Kontrollen verfügt als ein typisches Anwendungsentwicklungskonto). Anschließend werden Inferenzpipelines mithilfe der Automatisierung von DevOps-Tools wie GitLab CI/CD für Staging- und Produktionskonten bereitgestellt. Optional kann die zentrale Modellregistrierung auch in einem Shared-Services-Konto hinterlegt werden. Beziehen auf Betriebsmodell für Best Practices bezüglich einer Multi-Account-Strategie für ML.
In den folgenden Unterabschnitten besprechen wir verschiedene Aspekte des Architekturdesigns im Detail.
Infrastruktur als Code
IaC bietet eine Möglichkeit, die IT-Infrastruktur über maschinenlesbare Dateien zu verwalten und so eine effiziente Versionskontrolle sicherzustellen. In diesem Beitrag und dem dazugehörigen Codebeispiel demonstrieren wir die Verwendung HashiCorp Terraform mit GitLab CI/CD zur effektiven Verwaltung von AWS-Ressourcen. Dieser Ansatz unterstreicht den Hauptvorteil von IaC und bietet einen transparenten und wiederholbaren Prozess im IT-Infrastrukturmanagement.
Modellausbildung und Umschulung
In diesem Design läuft die SageMaker-Schulungspipeline nach einem Zeitplan (über EventBridge) oder basierend auf einem Amazon Simple Storage-Service (Amazon S3) Ereignisauslöser (z. B. wenn eine Triggerdatei oder neue Trainingsdaten, im Falle eines einzelnen Trainingsdatenobjekts, in Amazon S3 platziert werden), um das Modell regelmäßig mit neuen Daten neu zu kalibrieren. Diese Pipeline führt keine strukturellen oder materiellen Änderungen am Modell ein, da sie feste Hyperparameter verwendet, die während des Überprüfungsprozesses des Unternehmensmodells genehmigt wurden.
Die Trainingspipeline registriert die neu trainierte Modellversion im Amazon SageMaker-Modellregistrierung wenn das Modell einen vordefinierten Modellleistungsschwellenwert überschreitet (z. B. RMSE für Regression und F1-Score für Klassifizierung). Wenn eine neue Version des Modells in der Modellregistrierung registriert wird, löst dies eine Benachrichtigung an den zuständigen Datenwissenschaftler über Amazon SNS aus. Anschließend muss der Datenwissenschaftler die neueste Version des Modells überprüfen und manuell genehmigen Amazon SageMaker-Studio UI oder über einen API-Aufruf mit dem AWS-Befehlszeilenschnittstelle (AWS CLI) oder AWS SDK für Python (Boto3), bevor die neue Version des Modells für die Inferenz verwendet werden kann.
Die SageMaker-Schulungspipeline und die unterstützenden Ressourcen werden vom GitLab erstellt model build
Pipeline, entweder über eine manuelle Ausführung der GitLab-Pipeline oder automatisch, wenn Code in die zusammengeführt wird main
Zweig der model build
Git-Repository.
Batch-Inferenz
Die SageMaker-Batch-Inferenzpipeline läuft nach einem Zeitplan (über EventBridge) oder auch basierend auf einem S3-Ereignisauslöser. Die Batch-Inferenzpipeline ruft automatisch die neueste genehmigte Version des Modells aus der Modellregistrierung ab und verwendet sie für die Inferenz. Die Batch-Inferenzpipeline umfasst Schritte zum Überprüfen der Datenqualität anhand einer von der Trainingspipeline erstellten Basislinie sowie der Modellqualität (Modellleistung), wenn Ground-Truth-Labels verfügbar sind.
Wenn die Batch-Inferenzpipeline Probleme mit der Datenqualität erkennt, benachrichtigt sie den zuständigen Datenwissenschaftler über Amazon SNS. Wenn Probleme mit der Modellqualität festgestellt werden (z. B. RMSE liegt über einem vorab festgelegten Schwellenwert), schlägt der Pipeline-Schritt für die Modellqualitätsprüfung fehl, was wiederum ein EventBridge-Ereignis auslöst, um das Training mit der HPO-Pipeline zu starten.
Die SageMaker-Batch-Inferenz-Pipeline und ihre unterstützenden Ressourcen werden vom GitLab erstellt model deploy
Pipeline, entweder über eine manuelle Ausführung der GitLab-Pipeline oder automatisch, wenn Code in die zusammengeführt wird main
Zweig der model deploy
Git-Repository.
Modelltuning und Neutuning
Das SageMaker-Training mit der HPO-Pipeline wird ausgelöst, wenn der Modellqualitätsprüfungsschritt der Batch-Inferenz-Pipeline fehlschlägt. Die Überprüfung der Modellqualität erfolgt durch den Vergleich von Modellvorhersagen mit den tatsächlichen Ground-Truth-Labels. Wenn die Modellqualitätsmetrik (z. B. RMSE für Regression und F1-Score für Klassifizierung) ein vorab festgelegtes Kriterium nicht erfüllt, wird der Modellqualitätsprüfungsschritt als fehlgeschlagen markiert. Das SageMaker-Training mit der HPO-Pipeline kann bei Bedarf auch manuell (in der SageMaker Studio-Benutzeroberfläche oder über einen API-Aufruf mit der AWS CLI oder dem SageMaker Python SDK) durch den verantwortlichen Datenwissenschaftler ausgelöst werden. Da sich die Modellhyperparameter ändern, muss der verantwortliche Datenwissenschaftler die Genehmigung des Enterprise Model Review Board einholen, bevor die neue Modellversion in der Modellregistrierung genehmigt werden kann.
Das SageMaker-Training mit der HPO-Pipeline und die unterstützenden Ressourcen werden vom GitLab erstellt model build
Pipeline, entweder über eine manuelle Ausführung der GitLab-Pipeline oder automatisch, wenn Code in die zusammengeführt wird main
Zweig der model build
Git-Repository.
Modellüberwachung
Datenstatistiken und Basislinien für Einschränkungen werden im Rahmen des Trainings und der Schulung mit HPO-Pipelines erstellt. Sie werden in Amazon S3 gespeichert und auch beim trainierten Modell in der Modellregistrierung registriert, wenn das Modell die Bewertung besteht. Die vorgeschlagene Architektur für die Batch-Inferenz-Pipeline verwendet Amazon SageMaker-Modellmonitor für Datenqualitätsprüfungen bei Verwendung von benutzerdefinierten Amazon SageMaker-Verarbeitung Schritte zur Modellqualitätsprüfung. Dieses Design entkoppelt Daten- und Modellqualitätsprüfungen, was es Ihnen wiederum ermöglicht, nur dann eine Warnmeldung zu senden, wenn eine Datendrift erkannt wird; und das Training mit der HPO-Pipeline auslösen, wenn eine Verletzung der Modellqualität erkannt wird.
Modellzulassung
Nachdem ein neu trainiertes Modell im Modellregister registriert wurde, erhält der verantwortliche Datenwissenschaftler eine Benachrichtigung. Wenn das Modell von der Trainingspipeline trainiert wurde (Neukalibrierung mit neuen Trainingsdaten bei festgelegten Hyperparametern), ist keine Genehmigung durch das Enterprise Model Review Board erforderlich. Der Datenwissenschaftler kann die neue Version des Modells selbstständig überprüfen und genehmigen. Wenn das Modell hingegen durch das Training mit der HPO-Pipeline trainiert wurde (Neuabstimmung durch Ändern von Hyperparametern), muss die neue Modellversion den Enterprise-Review-Prozess durchlaufen, bevor sie für Inferenzen in der Produktion verwendet werden kann. Wenn der Überprüfungsprozess abgeschlossen ist, kann der Datenwissenschaftler fortfahren und die neue Version des Modells in der Modellregistrierung genehmigen. Ändern des Status des Modellpakets in Approved
löst über EventBridge eine Lambda-Funktion aus, die wiederum das GitLab auslöst model deploy
Pipeline über einen API-Aufruf. Dadurch wird die SageMaker-Batch-Inferenzpipeline automatisch aktualisiert, um die neueste genehmigte Version des Modells für die Inferenz zu verwenden.
Es gibt im Wesentlichen zwei Möglichkeiten, eine neue Modellversion in der Modellregistrierung zu genehmigen oder abzulehnen: mit dem AWS SDK für Python (Boto3) oder über die SageMaker Studio-Benutzeroberfläche. Standardmäßig sind sowohl die Trainingspipeline als auch das Training mit der HPO-Pipeline festgelegt ModelApprovalStatus
zu PendingManualApproval
. Der zuständige Datenwissenschaftler kann den Genehmigungsstatus für das Modell aktualisieren, indem er die aufruft update_model_package
API von Boto3. Beziehen auf Aktualisieren Sie den Genehmigungsstatus eines Modells Weitere Informationen zum Aktualisieren des Genehmigungsstatus eines Modells über die Benutzeroberfläche von SageMaker Studio.
Daten-I/O-Design
SageMaker interagiert direkt mit Amazon S3, um Eingaben zu lesen und Ausgaben einzelner Schritte in den Trainings- und Inferenzpipelines zu speichern. Das folgende Diagramm veranschaulicht, wie verschiedene Python-Skripte, rohe und verarbeitete Trainingsdaten, rohe und verarbeitete Inferenzdaten, Inferenzergebnisse und Ground-Truth-Labels (sofern für die Modellqualitätsüberwachung verfügbar), Modellartefakte, Trainings- und Inferenzbewertungsmetriken (Modellqualitätsüberwachung) Ebenso können Datenqualitäts-Baselines und Verstoßberichte (zur Datenqualitätsüberwachung) in einem S3-Bucket organisiert werden. Die Richtung der Pfeile im Diagramm zeigt an, welche Dateien Eingaben oder Ausgaben ihrer jeweiligen Schritte in den SageMaker-Pipelines sind. Die Pfeile wurden je nach Pipeline-Schritttyp farblich gekennzeichnet, um sie leichter lesbar zu machen. Die Pipeline lädt automatisch Python-Skripte aus dem GitLab-Repository hoch und speichert Ausgabedateien oder Modellartefakte aus jedem Schritt im entsprechenden S3-Pfad.
Der Dateningenieur ist für Folgendes verantwortlich:
- Hochladen gekennzeichneter Trainingsdaten in den entsprechenden Pfad in Amazon S3. Dazu gehört das regelmäßige Hinzufügen neuer Trainingsdaten, um sicherzustellen, dass die Trainingspipeline und das Training mit der HPO-Pipeline Zugriff auf aktuelle Trainingsdaten für die Neuschulung bzw. Neuabstimmung des Modells haben.
- Hochladen von Eingabedaten zur Inferenz auf den entsprechenden Pfad im S3-Bucket vor einer geplanten Ausführung der Inferenzpipeline.
- Hochladen von Ground-Truth-Labels in den entsprechenden S3-Pfad zur Überwachung der Modellqualität.
Der Datenwissenschaftler ist für Folgendes verantwortlich:
- Vorbereiten von Ground-Truth-Labels und deren Bereitstellung für das Data-Engineering-Team zum Hochladen auf Amazon S3.
- Führen Sie die durch die Schulung mit der HPO-Pipeline trainierten Modellversionen durch den Unternehmensüberprüfungsprozess und erhalten Sie die erforderlichen Genehmigungen.
- Manuelles Genehmigen oder Ablehnen neu trainierter Modellversionen in der Modellregistrierung.
- Genehmigung des Produktionstors für die Inferenzpipeline und Unterstützung der Ressourcen, die in die Produktion befördert werden sollen.
Beispielcode
In diesem Abschnitt stellen wir einen Beispielcode für Batch-Inferenzvorgänge mit einem Einzelkonto-Setup vor, wie im folgenden Architekturdiagramm dargestellt. Den Beispielcode finden Sie im GitHub-Repositoryund kann als Ausgangspunkt für Batch-Inferenz mit Modellüberwachung und automatischer Umschulung mithilfe von Qualitätstoren dienen, die für Unternehmen häufig erforderlich sind. Der Beispielcode unterscheidet sich in folgenden Punkten von der Zielarchitektur:
- Es verwendet ein einziges AWS-Konto zum Erstellen und Bereitstellen des ML-Modells und unterstützender Ressourcen. Beziehen auf Organisieren Ihrer AWS-Umgebung mit mehreren Konten Anleitungen zur Einrichtung mehrerer Konten in AWS.
- Es verwendet eine einzige GitLab CI/CD-Pipeline zum Erstellen und Bereitstellen des ML-Modells und der unterstützenden Ressourcen.
- Wenn eine neue Version des Modells trainiert und genehmigt wird, wird die GitLab CI/CD-Pipeline nicht automatisch ausgelöst und muss vom verantwortlichen Datenwissenschaftler manuell ausgeführt werden, um die SageMaker-Batch-Inferenz-Pipeline mit der neuesten genehmigten Version des Modells zu aktualisieren.
- Es unterstützt nur ereignisbasierte S3-Trigger zum Ausführen der SageMaker-Trainings- und Inferenzpipelines.
Voraussetzungen:
Sie sollten die folgenden Voraussetzungen erfüllen, bevor Sie diese Lösung bereitstellen:
- Ein AWS-Konto
- SageMaker-Studio
- Eine SageMaker-Ausführungsrolle mit Amazon S3 Lese-/Schreibzugriff und AWS-Schlüsselverwaltungsservice (AWS KMS) Verschlüsselungs-/Entschlüsselungsberechtigungen
- Ein S3-Bucket zum Speichern von Daten, Skripten und Modellartefakten
- Terraform Version 0.13.5 oder höher
- GitLab mit einem funktionierenden Docker-Runner zum Ausführen der Pipelines
- Die AWS-CLI
- jq
- entpacken
- Python3 (Python 3.7 oder höher) und die folgenden Python-Pakete:
- boto3
- sagemaker
- Pandas
- pyyaml
Repository-Struktur
Das GitHub-Repository enthält die folgenden Verzeichnisse und Dateien:
/code/lambda_function/
– Dieses Verzeichnis enthält die Python-Datei für eine Lambda-Funktion, die Benachrichtigungsmeldungen (über Amazon SNS) über die Schrittzustandsänderungen der SageMaker-Pipelines vorbereitet und sendet/data/
– Dieses Verzeichnis enthält die Rohdatendateien (Trainings-, Inferenz- und Ground-Truth-Daten)./env_files/
– Dieses Verzeichnis enthält die Terraform-Eingabevariablendatei/pipeline_scripts/
– Dieses Verzeichnis enthält drei Python-Skripte zum Erstellen und Aktualisieren von Training, Inferenz und Training mit HPO SageMaker-Pipelines sowie Konfigurationsdateien zum Festlegen der Parameter jeder Pipeline/scripts/
– Dieses Verzeichnis enthält zusätzliche Python-Skripte (z. B. Vorverarbeitung und Auswertung), auf die beim Training, bei der Inferenz und beim Training mit HPO-Pipelines verwiesen wird.gitlab-ci.yml
– Diese Datei gibt die Konfiguration der GitLab CI/CD-Pipeline an/events.tf
– Diese Datei definiert EventBridge-Ressourcen/lambda.tf
– Diese Datei definiert die Lambda-Benachrichtigungsfunktion und die zugehörigen AWS Identity and Access Management and (IAM)-Ressourcen/main.tf
– Diese Datei definiert Terraform-Datenquellen und lokale Variablen/sns.tf
– Diese Datei definiert Amazon SNS-Ressourcen/tags.json
– Mit dieser JSON-Datei können Sie benutzerdefinierte Tag-Schlüssel-Wert-Paare deklarieren und diese mithilfe einer lokalen Variablen an Ihre Terraform-Ressourcen anhängen/variables.tf
– Diese Datei deklariert alle Terraform-Variablen
Variablen und Konfiguration
Die folgende Tabelle zeigt die Variablen, die zur Parametrisierung dieser Lösung verwendet werden. Siehe die ./env_files/dev_env.tfvars
Weitere Informationen finden Sie in der Datei.
Name und Vorname | Beschreibung |
bucket_name |
S3-Bucket, der zum Speichern von Daten, Skripten und Modellartefakten verwendet wird |
bucket_prefix |
S3-Präfix für das ML-Projekt |
bucket_train_prefix |
S3-Präfix für Trainingsdaten |
bucket_inf_prefix |
S3-Präfix für Inferenzdaten |
notification_function_name |
Name der Lambda-Funktion, die Benachrichtigungen über Schrittzustandsänderungen der SageMaker-Pipelines vorbereitet und sendet |
custom_notification_config |
Die Konfiguration zum Anpassen der Benachrichtigungsmeldung für bestimmte SageMaker-Pipeline-Schritte, wenn ein bestimmter Pipeline-Ausführungsstatus erkannt wird |
email_recipient |
Die E-Mail-Adressliste zum Empfangen von Benachrichtigungen über Schrittzustandsänderungen der SageMaker-Pipelines |
pipeline_inf |
Name der SageMaker-Inferenzpipeline |
pipeline_train |
Name der SageMaker-Schulungspipeline |
pipeline_trainwhpo |
Name der SageMaker-Schulung mit HPO-Pipeline |
recreate_pipelines |
Wenn auf true , werden die drei vorhandenen SageMaker-Pipelines (Training, Inferenz, Training mit HPO) gelöscht und neue erstellt, wenn GitLab CI/CD ausgeführt wird |
model_package_group_name |
Name der Modellpaketgruppe |
accuracy_mse_threshold |
Maximaler MSE-Wert, bevor eine Aktualisierung des Modells erforderlich ist |
role_arn |
IAM-Rollen-ARN der SageMaker-Pipeline-Ausführungsrolle |
kms_key |
KMS-Schlüssel-ARN für Amazon S3- und SageMaker-Verschlüsselung |
subnet_id |
Subnetz-ID für die SageMaker-Netzwerkkonfiguration |
sg_id |
Sicherheitsgruppen-ID für die SageMaker-Netzwerkkonfiguration |
upload_training_data |
Wenn auf true werden die Trainingsdaten auf Amazon S3 hochgeladen und dieser Upload-Vorgang löst die Ausführung der Trainingspipeline aus |
upload_inference_data |
Wenn auf true , werden Inferenzdaten auf Amazon S3 hochgeladen, und dieser Upload-Vorgang löst die Ausführung der Inferenzpipeline aus |
user_id |
Die Mitarbeiter-ID des SageMaker-Benutzers, die als Tag zu SageMaker-Ressourcen hinzugefügt wird |
Stellen Sie die Lösung bereit
Führen Sie die folgenden Schritte aus, um die Lösung in Ihrem AWS-Konto bereitzustellen:
- Klonen Sie das GitHub-Repository in Ihr Arbeitsverzeichnis.
- Überprüfen und ändern Sie die Konfiguration der GitLab CI/CD-Pipeline, um sie an Ihre Umgebung anzupassen. Die Konfiguration ist in der angegeben
./gitlab-ci.yml
Datei. - Informationen zur Aktualisierung der allgemeinen Lösungsvariablen finden Sie in der README-Datei
./env_files/dev_env.tfvars
Datei. Diese Datei enthält Variablen sowohl für Python-Skripte als auch für die Terraform-Automatisierung.- Überprüfen Sie die zusätzlichen SageMaker Pipelines-Parameter, die in den folgenden YAML-Dateien definiert sind
./batch_scoring_pipeline/pipeline_scripts/
. Überprüfen und aktualisieren Sie die Parameter bei Bedarf.
- Überprüfen Sie die zusätzlichen SageMaker Pipelines-Parameter, die in den folgenden YAML-Dateien definiert sind
- Sehen Sie sich die Skripts zur SageMaker-Pipeline-Erstellung an
./pipeline_scripts/
sowie die Skripte, auf die sie in der verweisen./scripts/
Ordner. Die im GitHub-Repo bereitgestellten Beispielskripte basieren auf Abalone-Datensatz. Wenn Sie einen anderen Datensatz verwenden möchten, stellen Sie sicher, dass Sie die Skripte entsprechend Ihrem speziellen Problem aktualisieren. - Legen Sie Ihre Datendateien in das
./data/
Ordner mithilfe der folgenden Namenskonvention. Wenn Sie den Abalone-Datensatz zusammen mit den bereitgestellten Beispielskripten verwenden, stellen Sie sicher, dass die Datendateien keine Header enthalten, dass die Trainingsdaten sowohl unabhängige als auch Zielvariablen enthalten, wobei die ursprüngliche Reihenfolge der Spalten erhalten bleibt, dass die Inferenzdaten nur unabhängige Variablen und die Grundwahrheit enthalten Die Datei enthält nur die Zielvariable.training-data.csv
inference-data.csv
ground-truth.csv
- Übertragen Sie den Code und übertragen Sie ihn in das Repository, um die Ausführung der GitLab CI/CD-Pipeline auszulösen (erste Ausführung). Beachten Sie, dass die erste Pipelineausführung auf dem fehlschlägt
pipeline
Phase, da es noch keine genehmigte Modellversion für die Verwendung durch das Inferenz-Pipeline-Skript gibt. Überprüfen Sie das Schrittprotokoll und verifizieren Sie eine neue SageMaker-Pipeline mit dem NamenTrainingPipeline
wurde erfolgreich erstellt.
-
- Öffnen Sie die SageMaker Studio-Benutzeroberfläche, überprüfen Sie dann die Trainingspipeline und führen Sie sie aus.
- Genehmigen Sie nach der erfolgreichen Ausführung der Trainingspipeline die registrierte Modellversion in der Modellregistrierung und führen Sie dann die gesamte GitLab CI/CD-Pipeline erneut aus.
- Überprüfen Sie die Ausgabe des Terraform-Plans im
build
Bühne. Genehmigen Sie das Handbuchapply
Stage in der GitLab CI/CD-Pipeline, um den Pipeline-Lauf fortzusetzen und Terraform zu autorisieren, die Überwachungs- und Benachrichtigungsressourcen in Ihrem AWS-Konto zu erstellen. - Überprüfen Sie abschließend den Ausführungsstatus und die Ausgabe der SageMaker-Pipelines in der SageMaker Studio-Benutzeroberfläche und überprüfen Sie Ihre E-Mails auf Benachrichtigungen, wie im folgenden Screenshot gezeigt. Der Standardnachrichtentext liegt im JSON-Format vor.
SageMaker-Pipelines
In diesem Abschnitt beschreiben wir die drei SageMaker-Pipelines innerhalb des MLOps-Workflows.
Trainingspipeline
Die Trainingspipeline besteht aus den folgenden Schritten:
- Vorverarbeitungsschritt, einschließlich Merkmalstransformation und Kodierung
- Datenqualitätsprüfungsschritt zum Generieren von Datenstatistiken und Basiseinschränkungen unter Verwendung der Trainingsdaten
- Trainingsschritt
- Schritt zur Trainingsbewertung
- Bedingungsschritt, um zu überprüfen, ob das trainierte Modell einen vorab festgelegten Leistungsschwellenwert erreicht
- Modellregistrierungsschritt zur Registrierung des neu trainierten Modells in der Modellregistrierung, wenn das trainierte Modell den erforderlichen Leistungsschwellenwert erreicht
Beide skip_check_data_quality
und register_new_baseline_data_quality
Parameter eingestellt sind True
in der Ausbildungspipeline. Diese Parameter weisen die Pipeline an, die Datenqualitätsprüfung zu überspringen und einfach neue Datenstatistiken oder Einschränkungsbasislinien mithilfe der Trainingsdaten zu erstellen und zu registrieren. Die folgende Abbildung zeigt einen erfolgreichen Lauf der Trainingspipeline.
Batch-Inferenz-Pipeline
Die Batch-Inferenzpipeline besteht aus den folgenden Schritten:
- Erstellen eines Modells aus der neuesten genehmigten Modellversion in der Modellregistrierung
- Vorverarbeitungsschritt, einschließlich Merkmalstransformation und Kodierung
- Batch-Inferenzschritt
- Vorverarbeitungsschritt zur Datenqualitätsprüfung, der eine neue CSV-Datei erstellt, die sowohl Eingabedaten als auch Modellvorhersagen enthält, die für die Datenqualitätsprüfung verwendet werden sollen
- Datenqualitätsprüfungsschritt, der die Eingabedaten anhand der Basisstatistiken und Einschränkungen im Zusammenhang mit dem registrierten Modell prüft
- Bedingungsschritt zur Prüfung, ob Ground-Truth-Daten verfügbar sind. Wenn Ground-Truth-Daten verfügbar sind, wird der Schritt der Modellqualitätsprüfung durchgeführt
- Schritt zur Berechnung der Modellqualität, der die Modellleistung basierend auf Ground-Truth-Labels berechnet
Beide skip_check_data_quality
und register_new_baseline_data_quality
Parameter eingestellt sind False
in der Inferenzpipeline. Diese Parameter weisen die Pipeline an, eine Datenqualitätsprüfung anhand der Datenstatistiken oder Einschränkungsbasislinien durchzuführen, die dem registrierten Modell zugeordnet sind (supplied_baseline_statistics_data_quality
und supplied_baseline_constraints_data_quality
) und überspringen Sie das Erstellen oder Registrieren neuer Datenstatistiken und Einschränkungsbasislinien während der Inferenz. Die folgende Abbildung zeigt einen Lauf der Batch-Inferenzpipeline, bei dem der Datenqualitätsprüfungsschritt aufgrund einer schlechten Leistung des Modells bei den Inferenzdaten fehlgeschlagen ist. In diesem speziellen Fall wird das Training mit der HPO-Pipeline automatisch ausgelöst, um das Modell zu optimieren.
Schulung mit HPO-Pipeline
Das Training mit HPO-Pipeline besteht aus folgenden Schritten:
- Vorverarbeitungsschritt (Merkmalstransformation und Kodierung)
- Datenqualitätsprüfungsschritt zum Generieren von Datenstatistiken und Basiseinschränkungen unter Verwendung der Trainingsdaten
- Hyperparameter-Tuning-Schritt
- Schritt zur Trainingsbewertung
- Bedingungsschritt, um zu überprüfen, ob das trainierte Modell einen vorab festgelegten Genauigkeitsschwellenwert erreicht
- Modellregistrierungsschritt, wenn das am besten trainierte Modell den erforderlichen Genauigkeitsschwellenwert erreicht
Beide skip_check_data_quality
und register_new_baseline_data_quality
Parameter eingestellt sind True
in der Ausbildung mit HPO-Pipeline. Die folgende Abbildung zeigt einen erfolgreichen Trainingsdurchlauf mit der HPO-Pipeline.
Aufräumen
Führen Sie die folgenden Schritte aus, um Ihre Ressourcen zu bereinigen:
- Beschäftige die
destroy
Phase in der GitLab CI/CD-Pipeline, um alle von Terraform bereitgestellten Ressourcen zu eliminieren. - Verwenden Sie dazu die AWS CLI Liste und entfernen alle verbleibenden Pipelines, die von den Python-Skripten erstellt werden.
- Löschen Sie optional andere AWS-Ressourcen wie den S3-Bucket oder die IAM-Rolle, die außerhalb der CI/CD-Pipeline erstellt wurden.
Zusammenfassung
In diesem Beitrag haben wir gezeigt, wie Unternehmen mit Amazon SageMaker, Amazon EventBridge, AWS Lambda, Amazon SNS, HashiCorp Terraform und GitLab CI/CD MLOps-Workflows für ihre Batch-Inferenzjobs erstellen können. Der vorgestellte Workflow automatisiert die Daten- und Modellüberwachung, die Neuschulung von Modellen sowie Batch-Job-Ausführungen, Code-Versionierung und Infrastrukturbereitstellung. Dies kann zu einer erheblichen Reduzierung der Komplexität und der Kosten bei der Aufrechterhaltung von Batch-Inferenzaufträgen in der Produktion führen. Weitere Informationen zu Implementierungsdetails finden Sie im GitHub Repo.
Über die Autoren
Hasan Shojaei ist Senior Data Scientist bei AWS Professional Services, wo er Kunden aus verschiedenen Branchen wie Sport, Versicherungen und Finanzdienstleistungen bei der Lösung ihrer geschäftlichen Herausforderungen durch den Einsatz von Big Data, maschinellem Lernen und Cloud-Technologien unterstützt. Vor dieser Rolle leitete Hasan mehrere Initiativen zur Entwicklung neuartiger physikbasierter und datengesteuerter Modellierungstechniken für führende Energieunternehmen. Außerhalb der Arbeit interessiert sich Hasan leidenschaftlich für Bücher, Wandern, Fotografie und Geschichte.
Wenxin Liu ist Senior Cloud Infrastructure Architect. Wenxin berät Unternehmen bei der Beschleunigung der Cloud-Einführung und unterstützt ihre Innovationen in der Cloud. Er ist ein Tierliebhaber und liebt Snowboarden und Reisen.
Vivek Lakshmanan ist Machine Learning Engineer bei Amazon. Er verfügt über einen Master-Abschluss in Software Engineering mit Spezialisierung auf Data Science und mehrjährige Erfahrung als MLE. Vivek ist begeistert von der Anwendung modernster Technologien und der Entwicklung von KI/ML-Lösungen für Kunden in der Cloud. Seine Leidenschaft gilt Statistik, NLP und Modellerklärbarkeit in KI/ML. In seiner Freizeit spielt er gerne Cricket und unternimmt Ausflüge.
Andy Cracchiolo ist ein Cloud-Infrastrukturarchitekt. Mit mehr als 15 Jahren Erfahrung in der IT-Infrastruktur ist Andy ein versierter und ergebnisorientierter IT-Experte. Neben der Optimierung der IT-Infrastruktur, des Betriebs und der Automatisierung verfügt Andy über eine nachgewiesene Erfolgsbilanz bei der Analyse von IT-Abläufen, der Identifizierung von Inkonsistenzen und der Implementierung von Prozessverbesserungen, die die Effizienz steigern, Kosten senken und Gewinne steigern.
- 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/mlops-for-batch-inference-with-model-monitoring-and-retraining-using-amazon-sagemaker-hashicorp-terraform-and-gitlab-ci-cd/
- :hast
- :Ist
- :nicht
- :Wo
- $UP
- 100
- 125
- 13
- 15 Jahre
- 15%
- 26%
- 29
- 500
- 7
- a
- LiveBuzz
- beschleunigen
- Zugang
- erreicht
- Konto
- Trading Konten
- Genauigkeit
- über
- präsentieren
- hinzugefügt
- Hinzufügen
- Zusatz
- Zusätzliche
- Adresse
- Adoption
- gegen
- AI / ML
- Alle
- erlaubt
- entlang
- ebenfalls
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- Analyse
- und
- und Infrastruktur
- jedem
- Bienen
- Anwendung
- Anwendungsentwicklung
- Anwendung
- Ansatz
- angemessen
- Genehmigung
- Zulassungen
- genehmigen
- genehmigt
- Architektur
- SIND
- AS
- Aspekte
- damit verbundenen
- At
- Überprüfbarkeit
- autorisieren
- Auto
- Automatisches Erfassen:
- automatische
- Im Prinzip so, wie Sie es von Google Maps kennen.
- Automation
- verfügbar
- AWS
- AWS Lambda
- Professionelle AWS-Services
- basierend
- Baseline
- BE
- weil
- war
- Bevor
- Nutzen
- BESTE
- Best Practices
- Big
- Big Data
- Tafel
- Körper
- Bücher
- beide
- Filiale
- Building
- erbaut
- Geschäft
- by
- berechnet
- Berechnung
- rufen Sie uns an!
- Aufruf
- CAN
- Häuser
- Hauptgeschäftsstelle
- Herausforderungen
- herausfordernd
- Übernehmen
- Änderungen
- Ändern
- aus der Ferne überprüfen
- Überprüfung
- Schecks
- Einstufung
- Cloud
- Cloud-Einführung
- Cloud-Infrastruktur
- Code
- Spalten
- Unternehmen
- Vergleich
- abschließen
- Komplexität
- Compliance
- zusammengesetzt
- konzept
- Konfiguration
- Verbindung
- Einschränkungen
- enthält
- kontinuierlich
- Smartgeräte App
- Steuerung
- Convention
- Kosten
- könnte
- erstellen
- erstellt
- schafft
- Erstellen
- Schaffung
- Kricket
- Original
- Kunden
- innovativ, auf dem neuesten Stand
- technische Daten
- Datenwissenschaft
- Datenwissenschaftler
- datengesteuerte
- erklärt
- Standard
- definiert
- Definiert
- Grad
- Lieferanten
- zeigen
- Synergie
- einsetzen
- Einsatz
- Bereitstellen
- beschreiben
- Design
- Detail
- Details
- erkannt
- entwickeln
- Entwicklung
- anders
- Richtung
- Direkt
- Verzeichnisse
- Entdeckt
- diskutieren
- Docker
- die
- Tut nicht
- zwei
- im
- jeder
- einfacher
- effektiv
- Effizienz
- effizient
- entweder
- beseitigen
- Mitarbeiter
- Energie
- Ingenieur
- Entwicklung
- Verbesserungen
- gewährleisten
- Gewährleistung
- Unternehmen
- Unternehmen
- Ganz
- Arbeitsumfeld
- Fehler
- Auswertung
- Event
- Beispiel
- übersteigt
- aufgeregt
- Ausführung
- vorhandenen
- ERFAHRUNGEN
- f1
- FAIL
- Gescheitert
- scheitert
- Merkmal
- Abbildung
- Reichen Sie das
- Mappen
- Revolution
- Finanzdienstleistungen
- Vorname
- fixiert
- Folgende
- Aussichten für
- Format
- gefunden
- für
- Funktion
- Funktionen
- Gates
- Allgemeines
- erzeugt
- Erzeugung
- Git
- GitHub
- Go
- gehen
- mehr
- Boden
- Gruppe an
- die Vermittlung von Kompetenzen,
- Pflege
- Handling
- Haben
- he
- hilft
- seine
- Geschichte
- Ultraschall
- Hilfe
- HTML
- http
- HTTPS
- Hyperparameteroptimierung
- ID
- Identifizierung
- Identitätsschutz
- if
- zeigt
- Implementierung
- Umsetzung
- in
- das
- Dazu gehören
- Einschließlich
- Erhöhung
- unabhängig
- unabhängig
- zeigt
- Krankengymnastik
- Branchen
- Information
- Infrastruktur
- Initiativen
- Innovationen
- Varianten des Eingangssignals:
- Eingänge
- Versicherung
- Integration
- interagiert
- in
- einführen
- Probleme
- IT
- SEINE
- Job
- Jobs
- jpg
- JSON
- nur
- Wesentliche
- Etiketten
- neueste
- führen
- lernen
- geführt
- Lebenszyklus
- Line
- Liste
- aus einer regionalen
- Log
- Maschine
- Maschinelles Lernen
- Main
- Aufrechterhaltung
- um
- verwalten
- Management
- flächendeckende Gesundheitsprogramme
- manuell
- manuell
- markiert
- Meister
- Ihres Materials
- Triff
- Trifft
- Nachricht
- Nachrichten
- Metrisch
- Metrik
- ML
- MLOps
- Modell
- Modellieren
- für
- ändern
- Überwachung
- mehr
- mehrere
- Namens
- Benennung
- notwendig,
- Need
- erforderlich
- Bedürfnisse
- Vernetzung
- Neu
- neu
- Nlp
- nicht
- Benachrichtigung
- Benachrichtigungen
- Roman
- Objekt
- erhalten
- beschaffen
- of
- bieten
- Angebote
- vorgenommen,
- on
- Einsen
- einzige
- Betrieb
- Einkauf & Prozesse
- Optimierung
- Optimierung
- or
- Auftrag
- Organisationen
- Organisiert
- Original
- Andere
- Möglichkeiten für das Ausgangssignal:
- aussen
- Paket
- Pakete
- Paare
- Parameter
- Teil
- besondere
- leitet
- leidenschaftlich
- Weg
- Ausführen
- Leistung
- durchgeführt
- Fotografie
- Pipeline
- Plan
- geplant
- Plato
- Datenintelligenz von Plato
- PlatoData
- spielend
- Points
- Arm
- Post
- Praktiken
- Prognosen
- Bereitet sich vor
- Voraussetzungen
- Gegenwart
- vorgeführt
- Vor
- Aufgabenstellung:
- vorgehen
- Prozessdefinierung
- Verarbeitet
- Produktion
- Professionell
- profite
- Gefördert
- vorgeschlage
- zuverlässig
- vorausgesetzt
- bietet
- Bereitstellung
- Pullover
- Push
- Python
- Qualität
- Roh
- Lesen Sie mehr
- Lesebrillen
- erhält
- Empfang
- kürzlich
- Rekord
- Veteran
- Reduzierung
- in Bezug auf
- Registrieren
- eingetragen
- Registrieren
- registriert
- Registrierung:
- Registratur
- regelmäßig
- verbleibenden
- wiederholbar
- Meldungen
- Quelle
- representiert
- falls angefordert
- Voraussetzungen:
- erfordert
- Downloads
- diejenigen
- beziehungsweise
- für ihren Verlust verantwortlich.
- Die Ergebnisse
- fortsetzen
- wiederverwendbar
- Überprüfen
- Straße
- Rollen
- Ohne eine erfahrene Medienplanung zur Festlegung von Regeln und Strategien beschleunigt der programmatische Medieneinkauf einfach die Rate der verschwenderischen Ausgaben.
- Führen Sie
- Läufer
- Laufen
- läuft
- sagemaker
- SageMaker-Inferenz
- SageMaker-Pipelines
- Skalierbarkeit
- Zeitplan
- Planung
- Wissenschaft
- Wissenschaftler
- Ergebnis
- Skripte
- Sdk
- Abschnitt
- senden
- Sendung
- sendet
- brauchen
- dient
- Lösungen
- kompensieren
- Setup
- mehrere
- von Locals geführtes
- sollte
- gezeigt
- Konzerte
- signifikant
- Einfacher
- Single
- Software
- Softwareentwicklung
- Lösung
- Lösungen
- LÖSEN
- Quellen
- Sourcing
- spezifisch
- angegeben
- Sports
- Stufe
- Aufführung
- Anfang
- Beginnen Sie
- Bundesstaat
- Statistiken
- Status
- Schritt
- Shritte
- Lagerung
- speichern
- Speicherung
- Strategie
- strukturell
- Studio Adressen
- erfolgreich
- Erfolgreich
- so
- Anzug
- Unterstützung
- Unterstützt
- Tabelle
- TAG
- Einnahme
- Target
- Aufgabe
- Team
- Techniken
- Technologies
- Vorlage
- Terraform
- als
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- ihr
- Sie
- dann
- Dort.
- damit
- Diese
- vom Nutzer definierten
- fehlen uns die Worte.
- nach drei
- Schwelle
- Durch
- Zeit
- zu
- Werkzeuge
- Top
- Themen
- verfolgen sind
- Streckenrekord
- trainiert
- Ausbildung
- Transformation
- transparent
- Reise
- auslösen
- ausgelöst
- Wahrheit
- WENDE
- XNUMX
- tippe
- typisch
- ui
- für
- Unterstrichen
- Aktualisierung
- Aktualisierung
- hochgeladen
- Uploading
- -
- benutzt
- Mitglied
- verwendet
- Verwendung von
- Nutzen
- seit
- Wert
- Variable
- überprüfen
- Version
- Versionen
- VERSTOSS
- Warnung
- Weg..
- Wege
- we
- Netz
- Web-Services
- GUT
- wann
- ob
- welche
- während
- WHO
- werden wir
- mit
- .
- Arbeiten
- Arbeitsablauf.
- Workflows
- arbeiten,
- YAML
- Jahr
- noch
- Du
- Ihr
- Zephyrnet