Der Aufbau einer Machine Learning Operations (MLOps)-Plattform in der sich schnell entwickelnden Landschaft der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) für Unternehmen ist von entscheidender Bedeutung, um die Lücke zwischen datenwissenschaftlichen Experimenten und der Bereitstellung nahtlos zu schließen und gleichzeitig die Anforderungen an die Modellleistung zu erfüllen. Sicherheit und Compliance.
Um regulatorische und Compliance-Anforderungen zu erfüllen, sind die wichtigsten Anforderungen bei der Gestaltung einer solchen Plattform:
- Adressdatendrift
- Überwachen Sie die Modellleistung
- Erleichtern Sie die automatische Neuschulung von Modellen
- Stellen Sie einen Prozess zur Modellgenehmigung bereit
- Bewahren Sie Modelle in einer sicheren Umgebung auf
In diesem Beitrag zeigen wir, wie Sie ein MLOps-Framework erstellen, um diese Anforderungen zu erfüllen und dabei eine Kombination aus AWS-Diensten und Toolsets von Drittanbietern zu verwenden. Die Lösung umfasst ein Multi-Umgebungs-Setup mit automatisierter Modellumschulung, Batch-Inferenz und Überwachung mit Amazon SageMaker-Modellmonitor, Modellversionierung mit SageMaker-Modellregistrierungund eine CI/CD-Pipeline, um die umgebungsübergreifende Förderung von ML-Code und Pipelines durch die Verwendung zu erleichtern Amazon Sage Maker, Amazon EventBridge, Amazon Simple Notification Service (Amazon S3), HashiCorp Terraform, GitHub und Jenkins CI/CD. Wir erstellen ein Modell, um den Schweregrad (gutartig oder bösartig) einer mit dem trainierten mammografischen Raumforderung vorherzusagen XGBoost-Algorithmus Nutzung der öffentlich zugänglichen UCI Mammographie-Messe Datensatz erstellen und mithilfe des MLOps-Frameworks bereitstellen. Die vollständigen Anweisungen mit Code finden Sie im GitHub-Repository.
Lösungsüberblick
Das folgende Architekturdiagramm zeigt einen Überblick über das MLOps-Framework mit den folgenden Schlüsselkomponenten:
- Multi-Account-Strategie – Zwei verschiedene Umgebungen (dev und prod) werden in zwei verschiedenen AWS-Konten gemäß den Best Practices von AWS Well-Architected eingerichtet, und ein drittes Konto wird in der zentralen Modellregistrierung eingerichtet:
- Entwicklungsumgebung – Wo ein Amazon SageMaker Studio-Domäne ist so eingerichtet, dass Modellentwicklung, Modelltraining und Testen von ML-Pipelines (Training und Inferenz) möglich sind, bevor ein Modell für die Weiterleitung in höhere Umgebungen bereit ist.
- Produktionsumgebung – Wo die ML-Pipelines von dev als erster Schritt hochgestuft und im Laufe der Zeit geplant und überwacht werden.
- Zentrale Modellregistrierung - Amazon SageMaker-Modellregistrierung wird in einem separaten AWS-Konto eingerichtet, um die in den Entwicklungs- und Produktionsumgebungen generierten Modellversionen zu verfolgen.
- CI/CD und Quellcodeverwaltung – Die umgebungsübergreifende Bereitstellung von ML-Pipelines erfolgt über die mit Jenkins eingerichtete CI/CD, zusammen mit der Versionskontrolle über GitHub. Codeänderungen, die mit dem Git-Zweig der entsprechenden Umgebung zusammengeführt werden, lösen einen CI/CD-Workflow aus, um entsprechende Änderungen an der angegebenen Zielumgebung vorzunehmen.
- Chargenvorhersagen mit Modellüberwachung – Die Inferenzpipeline, die mit erstellt wurde Amazon SageMaker-Pipelines Läuft auf geplanter Basis, um Vorhersagen zu generieren, zusammen mit der Modellüberwachung mithilfe von SageMaker Model Monitor, um Datenabweichungen zu erkennen.
- Automatisierter Umschulungsmechanismus – Die mit SageMaker Pipelines erstellte Trainingspipeline wird immer dann ausgelöst, wenn eine Datendrift in der Inferenzpipeline erkannt wird. Nach dem Training wird das Modell im zentralen Modellregister registriert, um von einem Modellgenehmiger genehmigt zu werden. Nach der Genehmigung wird die aktualisierte Modellversion verwendet, um Vorhersagen über die Inferenzpipeline zu generieren.
- Infrastruktur als Code – Die Infrastruktur als Code (IaC), erstellt mit HashiCorp Terraform, unterstützt die Planung der Inferenzpipeline mit EventBridge und das Auslösen der Zugpipeline basierend auf einer EventBridge-Regel und Senden von Benachrichtigungen mit Amazon Simple Notification Service (Amazon SNS) Themen.
Der MLOps-Workflow umfasst die folgenden Schritte:
- Greifen Sie im Entwicklungskonto auf die SageMaker Studio-Domäne zu, klonen Sie das GitHub-Repository, durchlaufen Sie den Prozess der Modellentwicklung mithilfe des bereitgestellten Beispielmodells und generieren Sie die Zug- und Inferenzpipelines.
- Führen Sie die Train-Pipeline im Entwicklungskonto aus, die die Modellartefakte für die trainierte Modellversion generiert und das Modell in der SageMaker-Modellregistrierung im zentralen Modellregistrierungskonto registriert.
- Genehmigen Sie das Modell in der SageMaker-Modellregistrierung im zentralen Modellregistrierungskonto.
- Schieben Sie den Code (Train- und Inferenzpipelines sowie den Terraform-IaC-Code zum Erstellen des EventBridge-Zeitplans, der EventBridge-Regel und des SNS-Themas) in einen Feature-Branch des GitHub-Repositorys. Erstellen Sie eine Pull-Anfrage, um den Code im Hauptzweig des GitHub-Repositorys zusammenzuführen.
- Lösen Sie die Jenkins CI/CD-Pipeline aus, die mit dem GitHub-Repository eingerichtet wird. Die CI/CD-Pipeline stellt den Code im Produktkonto bereit, um die Zug- und Inferenzpipelines zusammen mit Terraform-Code zu erstellen, um den EventBridge-Zeitplan, die EventBridge-Regel und das SNS-Thema bereitzustellen.
- Die Inferenzpipeline soll täglich ausgeführt werden, während die Zugpipeline so eingerichtet ist, dass sie immer dann ausgeführt wird, wenn eine Datendrift aus der Inferenzpipeline erkannt wird.
- Benachrichtigungen werden über das SNS-Thema gesendet, wenn ein Fehler in der Zug- oder Inferenzpipeline auftritt.
Voraussetzungen:
Für diese Lösung sollten Sie die folgenden Voraussetzungen erfüllen:
- Drei AWS-Konten (Dev-, Prod- und Central Model Registry-Konten)
- Eine SageMaker Studio-Domäne, die in jedem der drei AWS-Konten eingerichtet ist (siehe Onboard zu Amazon SageMaker Studio oder schau dir das Video an Schnell an Bord von Amazon SageMaker Studio für Einrichtungsanweisungen)
- Jenkins (wir verwenden Jenkins 2.401.1) mit Administratorrechten auf AWS installiert
- Terraform Version 1.5.5 oder höher auf dem Jenkins-Server installiert
Für diesen Beitrag arbeiten wir in der us-east-1
Region, in der die Lösung bereitgestellt werden soll.
Stellen Sie KMS-Schlüssel in Entwicklungs- und Produktkonten bereit
Unser erster Schritt ist das Schaffen AWS-Schlüsselverwaltungsservice (AWS KMS)-Schlüssel in den Dev- und Prod-Konten.
Erstellen Sie einen KMS-Schlüssel im Entwicklerkonto und gewähren Sie Zugriff auf das Produktkonto
Führen Sie die folgenden Schritte aus, um einen KMS-Schlüssel im Entwicklerkonto zu erstellen:
- Wählen Sie in der AWS KMS-Konsole aus Vom Kunden verwaltete Schlüssel im Navigationsbereich.
- Auswählen Schlüssel erstellen.
- Aussichten für SchlüsselartWählen Symmetrisch.
- Aussichten für SchlüsselverwendungWählen Verschlüsseln und entschlüsseln.
- Auswählen
Weiter.
- Geben Sie die Nummer des Produktionskontos ein, um dem Produktionskonto Zugriff auf den im Entwicklungskonto bereitgestellten KMS-Schlüssel zu gewähren. Dies ist ein erforderlicher Schritt, da die Modellartefakte beim ersten Training des Modells im Entwicklungskonto mit dem KMS-Schlüssel verschlüsselt werden, bevor sie in den S3-Bucket im zentralen Modellregistrierungskonto geschrieben werden. Das Produktionskonto benötigt Zugriff auf den KMS-Schlüssel, um die Modellartefakte zu entschlüsseln und die Inferenzpipeline auszuführen.
- Auswählen
Weiter und schließen Sie die Erstellung Ihres Schlüssels ab.
Nachdem der Schlüssel bereitgestellt wurde, sollte er auf der AWS KMS-Konsole sichtbar sein.
Erstellen Sie einen KMS-Schlüssel im Produktkonto
Führen Sie die gleichen Schritte im vorherigen Abschnitt durch, um einen vom Kunden verwalteten KMS-Schlüssel im Produktkonto zu erstellen. Sie können den Schritt zum Teilen des KMS-Schlüssels mit einem anderen Konto überspringen.
Richten Sie einen S3-Bucket für Modellartefakte im zentralen Modellregistrierungskonto ein
Erstellen Sie mit der Zeichenfolge einen S3-Bucket Ihrer Wahl sagemaker
in der Namenskonvention als Teil des Bucket-Namens im zentralen Modellregistrierungskonto und aktualisieren Sie die Bucket-Richtlinie für den S3-Bucket, um Berechtigungen sowohl vom Dev- als auch vom Prod-Konto zum Lesen und Schreiben von Modellartefakten in den S3-Bucket zu erteilen.
Der folgende Code ist die Bucket-Richtlinie, die im S3-Bucket aktualisiert werden soll:
Richten Sie IAM-Rollen in Ihren AWS-Konten ein
Der nächste Schritt ist die Einrichtung AWS Identity and Access Management and (IAM)-Rollen in Ihren AWS-Konten mit Berechtigungen für AWS Lambda, SageMaker und Jenkins.
Lambda-Ausführungsrolle
Einrichten Lambda-Ausführungsrollen in den Dev- und Prod-Konten, die von der Lambda-Funktion verwendet werden, die als Teil des ausgeführt wird SageMaker Pipelines Lambda-Schritt. Dieser Schritt wird von der Inferenzpipeline ausgeführt, um das neueste genehmigte Modell abzurufen, anhand dessen Inferenzen generiert werden. Erstellen Sie IAM-Rollen in den Entwicklungs- und Produktionskonten mit der Namenskonvention arn:aws:iam::<account-id>:role/lambda-sagemaker-role
und hängen Sie die folgenden IAM-Richtlinien an:
- Richtlinie 1 – Erstellen Sie eine Inline-Richtlinie mit dem Namen
cross-account-model-registry-access
, das den Zugriff auf das Modellpaket ermöglicht, das in der Modellregistrierung im zentralen Konto eingerichtet ist: - Richtlinie 2 - Anfügen AmazonSageMakerFullAccess, das ist ein Von AWS verwaltete Richtlinie die vollen Zugriff auf SageMaker gewährt. Es bietet auch ausgewählten Zugriff auf verwandte Dienste, wie z Automatische Skalierung von AWS-Anwendungen, Amazon S3, Amazon Elastic Container-Registrierung (Amazon ECR) und Amazon CloudWatch-Protokolle.
- Richtlinie 3 - Anfügen AWSLambda_FullAccessDabei handelt es sich um eine von AWS verwaltete Richtlinie, die vollständigen Zugriff auf Lambda, Lambda-Konsolenfunktionen und andere verwandte AWS-Dienste gewährt.
- Richtlinie 4 – Verwenden Sie die folgende IAM-Vertrauensrichtlinie für die IAM-Rolle:
SageMaker-Ausführungsrolle
Den in den Dev- und Prod-Konten eingerichteten SageMaker Studio-Domänen sollte jeweils eine Ausführungsrolle zugeordnet sein, die auf der zu finden ist Domain-Einstellungen Klicken Sie auf der Seite mit den Domänendetails auf die Registerkarte, wie im folgenden Screenshot gezeigt. Diese Rolle wird zum Ausführen von Trainingsjobs, Verarbeitungsjobs und mehr innerhalb der SageMaker Studio-Domäne verwendet.
Fügen Sie der SageMaker-Ausführungsrolle in beiden Konten die folgenden Richtlinien hinzu:
- Richtlinie 1 – Erstellen Sie eine Inline-Richtlinie mit dem Namen
cross-account-model-artifacts-s3-bucket-access
, der Zugriff auf den S3-Bucket im zentralen Modellregistrierungskonto gewährt, in dem die Modellartefakte gespeichert sind: - Richtlinie 2 – Erstellen Sie eine Inline-Richtlinie mit dem Namen
cross-account-model-registry-access
, das den Zugriff auf das Modellpaket in der Modellregistrierung im zentralen Modellregistrierungskonto ermöglicht: - Richtlinie 3 – Erstellen Sie eine Inline-Richtlinie mit dem Namen
kms-key-access-policy
, der Zugriff auf den im vorherigen Schritt erstellten KMS-Schlüssel ermöglicht. Geben Sie die Konto-ID an, in der die Richtlinie erstellt wird, und die KMS-Schlüssel-ID, die in diesem Konto erstellt wurde. - Richtlinie 4 - Anfügen AmazonSageMakerFullAccess, das ist ein Von AWS verwaltete Richtlinie Dies gewährt vollständigen Zugriff auf SageMaker und ausgewählten Zugriff auf zugehörige Dienste.
- Richtlinie 5 - Anfügen AWSLambda_FullAccessDabei handelt es sich um eine von AWS verwaltete Richtlinie, die vollständigen Zugriff auf Lambda, Lambda-Konsolenfunktionen und andere verwandte AWS-Dienste gewährt.
- Richtlinie 6 - Anfügen CloudWatchEventsFullAccess, eine von AWS verwaltete Richtlinie, die vollen Zugriff auf CloudWatch Events gewährt.
- Richtlinie 7 – Fügen Sie die folgende IAM-Vertrauensrichtlinie für die SageMaker-Ausführungs-IAM-Rolle hinzu:
- Richtlinie 8 (spezifisch für die SageMaker-Ausführungsrolle im Produktkonto) – Erstellen Sie eine Inline-Richtlinie mit dem Namen
cross-account-kms-key-access-policy
, der Zugriff auf den KMS-Schlüssel ermöglicht, der im Entwicklerkonto erstellt wurde. Dies ist erforderlich, damit die Inferenzpipeline Modellartefakte lesen kann, die im zentralen Modellregistrierungskonto gespeichert sind. Dort werden die Modellartefakte mithilfe des KMS-Schlüssels aus dem Entwicklungskonto verschlüsselt, wenn die erste Version des Modells über das Entwicklungskonto erstellt wird.
Kontoübergreifende Jenkins-Rolle
Richten Sie eine IAM-Rolle mit dem Namen ein cross-account-jenkins-role
im Produktkonto, von dem Jenkins annimmt, dass es ML-Pipelines und die entsprechende Infrastruktur im Produktkonto bereitstellt.
Fügen Sie der Rolle die folgenden verwalteten IAM-Richtlinien hinzu:
CloudWatchFullAccess
AmazonS3FullAccess
AmazonSNSFullAccess
AmazonSageMakerFullAccess
AmazonEventBridgeFullAccess
AWSLambda_FullAccess
Aktualisieren Sie die Vertrauensbeziehung für die Rolle, um Berechtigungen für das AWS-Konto zu erteilen, das den Jenkins-Server hostet:
Aktualisieren Sie die Berechtigungen für die IAM-Rolle, die dem Jenkins-Server zugeordnet ist
Unter der Annahme, dass Jenkins auf AWS eingerichtet wurde, aktualisieren Sie die mit Jenkins verknüpfte IAM-Rolle, um die folgenden Richtlinien hinzuzufügen, die Jenkins Zugriff zum Bereitstellen der Ressourcen im Produktkonto gewähren:
- Richtlinie 1 – Erstellen Sie die folgende Inline-Richtlinie mit dem Namen
assume-production-role-policy
: - Richtlinie 2 - Hänge an
CloudWatchFullAccess
verwaltete IAM-Richtlinie.
Richten Sie die Modellpaketgruppe im zentralen Modellregistrierungskonto ein
Erstellen Sie in der SageMaker Studio-Domäne im zentralen Modellregistrierungskonto eine Modellpaketgruppe mit dem Namen mammo-severity-model-package
Verwenden Sie den folgenden Codeausschnitt (den Sie mit einem Jupyter-Notebook ausführen können):
Richten Sie den Zugriff auf das Modellpaket für IAM-Rollen in den Dev- und Prod-Konten ein
Gewähren Sie Zugriff auf die SageMaker-Ausführungsrollen, die in den Dev- und Prod-Konten erstellt wurden, damit Sie Modellversionen innerhalb des Modellpakets registrieren können mammo-severity-model-package
im zentralen Modellregister aus beiden Konten. Führen Sie in der SageMaker Studio-Domäne im zentralen Modellregistrierungskonto den folgenden Code in einem Jupyter-Notebook aus:
Richten Sie Jenkins ein
In diesem Abschnitt konfigurieren wir Jenkins, um die ML-Pipelines und die entsprechende Terraform-Infrastruktur im Produktkonto über die Jenkins CI/CD-Pipeline zu erstellen.
- Erstellen Sie in der CloudWatch-Konsole eine Protokollgruppe mit dem Namen
jenkins-log
innerhalb des Produktkontos, an das Jenkins Protokolle aus der CI/CD-Pipeline pusht. Die Protokollgruppe sollte in derselben Region erstellt werden, in der der Jenkins-Server eingerichtet ist. - Installieren Sie die folgenden Plugins auf Ihrem Jenkins-Server:
- Richten Sie AWS-Anmeldeinformationen in Jenkins mithilfe der kontoübergreifenden IAM-Rolle ein (
cross-account-jenkins-role
), die im Produktkonto bereitgestellt werden. - Aussichten für Systemkonfiguration, wählen AWS.
- Geben Sie die Anmeldeinformationen und die CloudWatch-Protokollgruppe an, die Sie zuvor erstellt haben.
- Richten Sie GitHub-Anmeldeinformationen in Jenkins ein.
- Erstellen Sie ein neues Projekt in Jenkins.
- Geben Sie einen Projektnamen ein und wählen Sie aus Pipeline.
- Auf dem Allgemeines Registerkarte, wählen Sie GitHub-Projekt und betreten Sie die Gabelung GitHub-Repository URL.
- Auswählen Dieses Projekt ist parametrisiert.
- Auf dem Parameter hinzufügen Menü, wählen Sie String-Parameter.
- Aussichten für Name und Vorname, eingeben
prodAccount
. - Aussichten für StandardwertGeben Sie die Produktkonto-ID ein.
- Der Erweiterte ProjektoptionenZ. DefinitionWählen Pipeline-Skript von SCM.
- Aussichten für SCM, wählen Git.
- Aussichten für Repository-URL, geben Sie die Gabelung ein GitHub-Repository URL.
- Aussichten für ReferenzenGeben Sie die in Jenkins gespeicherten GitHub-Anmeldeinformationen ein.
- Enter
main
der Filialen zum Bauen Abschnitt, auf dessen Grundlage die CI/CD-Pipeline ausgelöst wird. - Aussichten für Skriptpfad, eingeben
Jenkinsfile
. - Auswählen
Speichern.
Die Jenkins-Pipeline sollte erstellt und auf Ihrem Dashboard sichtbar sein.
Stellen Sie S3-Buckets bereit, sammeln und bereiten Sie Daten vor
Führen Sie die folgenden Schritte aus, um Ihre S3-Buckets und -Daten einzurichten:
- Erstellen Sie mit der Zeichenfolge einen S3-Bucket Ihrer Wahl
sagemaker
in der Namenskonvention als Teil des Bucket-Namens in Entwicklungs- und Produktionskonten zum Speichern von Datensätzen und Modellartefakten. - Richten Sie einen S3-Bucket ein, um den Terraform-Status im Produktkonto beizubehalten.
- Laden Sie die öffentlich verfügbare Datei herunter und speichern Sie sie UCI Mammographie-Messe Datensatz in den S3-Bucket, den Sie zuvor im Entwicklerkonto erstellt haben.
- Verzweigen und klonen Sie die GitHub-Repository innerhalb der SageMaker Studio-Domäne im Entwicklerkonto. Das Repo hat die folgende Ordnerstruktur:
- /environments – Konfigurationsskript für die Produktionsumgebung
- /mlops-infra – Code für die Bereitstellung von AWS-Diensten mithilfe von Terraform-Code
- /Pipelines – Code für SageMaker-Pipeline-Komponenten
- Jenkins-Datei – Skript zur Bereitstellung über die Jenkins CI/CD-Pipeline
- setup.py – Wird benötigt, um die erforderlichen Python-Module zu installieren und den Befehl „run-pipeline“ zu erstellen
- mammography-severity-modeling.ipynb – Ermöglicht Ihnen das Erstellen und Ausführen des ML-Workflows
- Erstellen Sie im geklonten GitHub-Repository-Ordner einen Ordner mit dem Namen „data“ und speichern Sie eine Kopie des öffentlich verfügbaren Ordners UCI Mammographie-Messe Datensatz.
- Folgen Sie dem Jupyter-Notizbuch
mammography-severity-modeling.ipynb
. - Führen Sie den folgenden Code im Notebook aus, um den Datensatz vorzuverarbeiten und ihn in den S3-Bucket im Entwicklerkonto hochzuladen:
Der Code generiert die folgenden Datensätze:
-
- data/mammo-train-dataset-part1.csv – Wird zum Trainieren der ersten Version des Modells verwendet.
- data/mammo-train-dataset-part2.csv – Wird verwendet, um die zweite Version des Modells zusammen mit dem Datensatz mammo-train-dataset-part1.csv zu trainieren.
- data/mammo-batch-dataset.csv – Wird zur Generierung von Schlussfolgerungen verwendet.
- data/mammo-batch-dataset-outliers.csv – Fügt Ausreißer in den Datensatz ein, die dazu führen, dass die Inferenzpipeline nicht funktioniert. Dadurch können wir das Muster testen, um eine automatische Neuschulung des Modells auszulösen.
- Laden Sie den Datensatz hoch
mammo-train-dataset-part1.csv
unter dem Präfixmammography-severity-model/train-dataset
, und laden Sie die Datensätze hochmammo-batch-dataset.csv
undmammo-batch-dataset-outliers.csv
zum Präfixmammography-severity-model/batch-dataset
des im Dev-Konto erstellten S3-Buckets: - Laden Sie die Datensätze hoch
mammo-train-dataset-part1.csv
undmammo-train-dataset-part2.csv
unter dem Präfixmammography-severity-model/train-dataset
in den S3-Bucket, der im Produktkonto über die Amazon S3-Konsole erstellt wurde. - Laden Sie die Datensätze hoch
mammo-batch-dataset.csv
undmammo-batch-dataset-outliers.csv
zum Präfixmammography-severity-model/batch-dataset
des S3-Buckets im Produktkonto.
Führen Sie die Zugpipeline aus
Der <project-name>/pipelines/train
können Sie die folgenden Python-Skripte sehen:
- scripts/raw_preprocess.py – Integriert sich in SageMaker Processing für Feature-Engineering
- scripts/evaluate_model.py – Ermöglicht in diesem Fall die Berechnung von Modellmetriken
auc_score
- train_pipeline.py – Enthält den Code für die Modelltrainingspipeline
Führen Sie die folgenden Schritte aus:
- Laden Sie die Skripte in Amazon S3 hoch:
- Holen Sie sich die Train-Pipeline-Instanz:
- Senden Sie die Zugpipeline und führen Sie sie aus:
Die folgende Abbildung zeigt einen erfolgreichen Lauf der Trainingspipeline. Im letzten Schritt der Pipeline wird das Modell im zentralen Modellregistrierungskonto registriert.
Genehmigen Sie das Modell im zentralen Modellregister
Melden Sie sich beim zentralen Modellregistrierungskonto an und greifen Sie auf die SageMaker-Modellregistrierung innerhalb der SageMaker Studio-Domäne zu. Ändern Sie den Modellversionsstatus in „Genehmigt“.
Nach der Genehmigung sollte der Status der Modellversion geändert werden.
Führen Sie die Inferenzpipeline aus (optional)
Dieser Schritt ist nicht erforderlich, aber Sie können die Inferenzpipeline trotzdem ausführen, um Vorhersagen im Entwicklerkonto zu generieren.
Der <project-name>/pipelines/inference
können Sie die folgenden Python-Skripte sehen:
- scripts/lambda_helper.py – Ruft mithilfe eines SageMaker Pipelines Lambda-Schritts die neueste genehmigte Modellversion aus dem zentralen Modellregistrierungskonto ab
- inference_pipeline.py – Enthält den Code für die Modellinferenzpipeline
Führen Sie die folgenden Schritte aus:
- Laden Sie das Skript in den S3-Bucket hoch:
- Rufen Sie die Inferenzpipeline-Instanz mit dem normalen Batch-Dataset ab:
- Senden Sie die Inferenzpipeline und führen Sie sie aus:
Die folgende Abbildung zeigt eine erfolgreiche Ausführung der Inferenzpipeline. Der letzte Schritt in der Pipeline generiert die Vorhersagen und speichert sie im S3-Bucket. Wir gebrauchen MonitorBatchTransformStep um die Eingaben in den Batch-Transformationsauftrag zu überwachen. Wenn es Ausreißer gibt, geht die Inferenzpipeline in einen fehlerhaften Zustand über.
Führen Sie die Jenkins-Pipeline aus
Das environment/
Der Ordner im GitHub-Repository enthält das Konfigurationsskript für das Produktkonto. Führen Sie die folgenden Schritte aus, um die Jenkins-Pipeline auszulösen:
- Aktualisieren Sie das Konfigurationsskript
prod.tfvars.json
basierend auf den in den vorherigen Schritten erstellten Ressourcen: - Schieben Sie den Code nach der Aktualisierung in das gespaltene GitHub-Repository und führen Sie den Code im Hauptzweig zusammen.
- Gehen Sie zur Jenkins-Benutzeroberfläche und wählen Sie Mit Parametern erstellenund lösen Sie die in den vorherigen Schritten erstellte CI/CD-Pipeline aus.
Wenn der Build abgeschlossen und erfolgreich ist, können Sie sich beim Produktkonto anmelden und die Trainings- und Inferenzpipelines innerhalb der SageMaker Studio-Domäne anzeigen.
Darüber hinaus werden auf der EventBridge-Konsole im Produktkonto drei EventBridge-Regeln angezeigt:
- Planen Sie die Inferenzpipeline
- Senden Sie eine Fehlerbenachrichtigung für die Zugleitung
- Wenn die Inferenzpipeline die Train-Pipeline nicht auslöst, senden Sie eine Benachrichtigung
Schließlich sehen Sie auf der Amazon SNS-Konsole ein SNS-Benachrichtigungsthema, das Benachrichtigungen per E-Mail sendet. Sie erhalten eine E-Mail, in der Sie aufgefordert werden, die Annahme dieser Benachrichtigungs-E-Mails zu bestätigen.
Testen Sie die Inferenzpipeline mithilfe eines Batch-Datensatzes ohne Ausreißer
Um zu testen, ob die Inferenzpipeline im Produktkonto wie erwartet funktioniert, können wir uns beim Produktkonto anmelden und die Inferenzpipeline mithilfe des Batch-Datensatzes ohne Ausreißer auslösen.
Führen Sie die Pipeline über die SageMaker Pipelines-Konsole in der SageMaker Studio-Domäne des Produktkontos aus, wo die transform_input
wird der S3-URI des Datensatzes ohne Ausreißer sein (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset.csv
).
Die Inferenzpipeline ist erfolgreich und schreibt die Vorhersagen zurück in den S3-Bucket.
Testen Sie die Inferenzpipeline mithilfe eines Batch-Datensatzes mit Ausreißern
Sie können die Inferenzpipeline mithilfe des Batch-Datensatzes mit Ausreißern ausführen, um zu überprüfen, ob der automatisierte Neutrainingsmechanismus wie erwartet funktioniert.
Führen Sie die Pipeline über die SageMaker Pipelines-Konsole in der SageMaker Studio-Domäne des Produktkontos aus, wo die transform_input
wird der S3-URI des Datensatzes mit Ausreißern sein (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset-outliers.csv
).
Die Inferenzpipeline schlägt wie erwartet fehl, was die EventBridge-Regel auslöst, die wiederum die Train-Pipeline auslöst.
Nach einigen Augenblicken sollten Sie auf der SageMaker Pipelines-Konsole einen neuen Lauf der Zugpipeline sehen, der die beiden unterschiedlichen Zugdatensätze aufnimmt (mammo-train-dataset-part1.csv
und mammo-train-dataset-part2.csv
) in den S3-Bucket hochgeladen, um das Modell neu zu trainieren.
Sie sehen außerdem eine Benachrichtigung an die E-Mail-Adresse, an die Sie das SNS-Thema abonniert haben.
Um die aktualisierte Modellversion zu verwenden, melden Sie sich beim zentralen Modellregistrierungskonto an und genehmigen Sie die Modellversion, die bei der nächsten Ausführung der Inferenzpipeline übernommen wird, die durch die geplante EventBridge-Regel ausgelöst wird.
Obwohl die Zug- und Inferenzpipelines eine statische Datensatz-URL verwenden, können Sie die Datensatz-URL als dynamische Variablen an die Zug- und Inferenzpipelines übergeben lassen, um aktualisierte Datensätze zum erneuten Trainieren des Modells und zum Generieren von Vorhersagen in einem realen Szenario zu verwenden.
Aufräumen
Führen Sie die folgenden Schritte aus, um zukünftige Gebühren zu vermeiden:
- Entfernen Sie die SageMaker Studio-Domäne aus allen AWS-Konten.
- Löschen Sie alle außerhalb von SageMaker erstellten Ressourcen, einschließlich der S3-Buckets, IAM-Rollen, EventBridge-Regeln und SNS-Themen, die über Terraform im Produktkonto eingerichtet wurden.
- Löschen Sie die kontenübergreifend erstellten SageMaker-Pipelines mit AWS-Befehlszeilenschnittstelle (AWS-CLI).
Zusammenfassung
Organisationen müssen sich häufig an unternehmensweiten Toolsets orientieren, um die Zusammenarbeit zwischen verschiedenen Funktionsbereichen und Teams zu ermöglichen. Diese Zusammenarbeit stellt sicher, dass sich Ihre MLOps-Plattform an sich ändernde Geschäftsanforderungen anpassen kann und beschleunigt die Einführung von ML in allen Teams. In diesem Beitrag wurde erklärt, wie man ein MLOps-Framework in einem Multi-Umgebungs-Setup erstellt, um automatisiertes Modell-Retraining, Batch-Inferenz und Überwachung mit Amazon SageMaker Model Monitor, Modellversionierung mit SageMaker Model Registry und Förderung von ML-Code und Pipelines über Umgebungen hinweg mit einem zu ermöglichen CI/CD-Pipeline. Wir haben diese Lösung mithilfe einer Kombination aus AWS-Diensten und Toolsets von Drittanbietern vorgestellt. Anweisungen zur Implementierung dieser Lösung finden Sie im GitHub-Repository. Sie können diese Lösung auch erweitern, indem Sie Ihre eigenen Datenquellen und Modellierungsframeworks einbinden.
Über die Autoren
Gayatri Ghanakota ist Senior Machine Learning Engineer bei AWS Professional Services. Ihre Leidenschaft gilt der Entwicklung, Bereitstellung und Erläuterung von KI/ML-Lösungen in verschiedenen Bereichen. Vor dieser Funktion leitete sie mehrere Initiativen als Datenwissenschaftlerin und ML-Ingenieurin bei weltweit führenden Unternehmen im Finanz- und Einzelhandelsbereich. Sie hat einen Master-Abschluss in Informatik mit Spezialisierung auf Data Science von der University of Colorado, Boulder.
Sunita Koppar ist Senior Data Lake Architect bei AWS Professional Services. Ihre Leidenschaft gilt der Lösung von Kundenproblemen bei der Verarbeitung großer Datenmengen und der Bereitstellung langfristig skalierbarer Lösungen. Vor dieser Rolle entwickelte sie Produkte in den Bereichen Internet, Telekommunikation und Automobil und war AWS-Kundin. Sie hat einen Master-Abschluss in Data Science von der University of California, Riverside.
Saswata Dash ist DevOps-Berater bei AWS Professional Services. Sie hat mit Kunden aus den Bereichen Gesundheitswesen und Biowissenschaften, Luftfahrt und Fertigung zusammengearbeitet. Sie hat eine Leidenschaft für alles, was mit Automatisierung zu tun hat, und verfügt über umfassende Erfahrung im Entwerfen und Erstellen von Kundenlösungen im Unternehmensmaßstab in AWS. Außerhalb der Arbeit geht sie ihrer Leidenschaft für das Fotografieren und das Einfangen von Sonnenaufgängen nach.
- 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. Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- PlatoHealth. Informationen zu Biotechnologie und klinischen Studien. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/promote-pipelines-in-a-multi-environment-setup-using-amazon-sagemaker-model-registry-hashicorp-terraform-github-and-jenkins-ci-cd/
- :hast
- :Ist
- :nicht
- :Wo
- $UP
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 17
- 19
- 23
- 27
- 31
- 320
- 7
- 8
- 9
- a
- LiveBuzz
- beschleunigt
- Akzeptanz
- Zugang
- Konto
- Trading Konten
- über
- Action
- automatisch
- hinzufügen
- Adresse
- administrativ
- Adoption
- Nach der
- Alter
- AI
- ausrichten
- Alle
- erlauben
- erlaubt
- entlang
- ebenfalls
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- und
- Ein anderer
- jedem
- Anwendung
- angemessen
- genehmigen
- genehmigt
- Architektur
- SIND
- Bereiche
- um
- künstlich
- künstliche Intelligenz
- Künstliche Intelligenz (AI)
- AS
- fragen
- damit verbundenen
- annehmen
- anhängen
- Auto
- Automatisiert
- automatische
- Automation
- Automobilindustrie
- verfügbar
- Luftfahrt
- vermeiden
- AWS
- AWS-Kunde
- Professionelle AWS-Services
- Zurück
- basierend
- Grundlage
- BE
- weil
- war
- Bevor
- Sein
- BESTE
- Best Practices
- zwischen
- Big
- Big Data
- beide
- Filiale
- Überbrückung
- Bringing
- bauen
- Building
- erbaut
- Geschäft
- aber
- by
- Berechnung
- Kalifornien
- namens
- CAN
- Häuser
- Hauptgeschäftsstelle
- Übernehmen
- geändert
- Änderungen
- Gebühren
- aus der Ferne überprüfen
- Wahl
- Auswählen
- Code
- Zusammenarbeit
- sammeln
- Colorados
- Kolonne
- Spalten
- COM
- Kombination
- abschließen
- Compliance
- Komponenten
- umfassend
- Computer
- Computerwissenschaften
- Zustand
- Konfiguration
- Schichtannahme
- Konsul (Console)
- Berater
- Container
- enthält
- Smartgeräte App
- Convention
- verkaufen
- Dazugehörigen
- erstellen
- erstellt
- Erstellen
- Referenzen
- Cross
- Kunde
- Kundenlösungen
- Kunden
- Unterricht
- Armaturenbrett
- technische Daten
- Datensee
- Datenwissenschaft
- Datenwissenschaftler
- Datensätze
- Entschlüsseln
- Standard
- Grad
- einsetzen
- Bereitstellen
- Einsatz
- setzt ein
- Entwerfen
- Details
- entdecken
- erkannt
- Entwickler
- entwickelt
- Entwicklung
- Entwicklung
- DICT
- anders
- Domain
- Domains
- im
- dynamisch
- jeder
- Früher
- bewirken
- entweder
- E-Mails
- ermöglichen
- verschlüsselt
- Ingenieur
- sorgt
- Enter
- Arbeitsumfeld
- Umgebungen
- essential
- Veranstaltungen
- sich entwickelnden
- Ausführung
- erwartet
- ERFAHRUNGEN
- erklärt
- Erläuterung
- erweitern
- erleichtern
- FAIL
- Gescheitert
- scheitert
- Scheitern
- Merkmal
- Eigenschaften
- wenige
- Abbildung
- Reichen Sie das
- Finale
- Revolution
- Fertig
- Firmen
- Vorname
- erstes Mal
- Folgende
- Aussichten für
- gefunden
- Unser Ansatz
- Gerüste
- für
- Erfüllen
- voller
- Funktion
- funktional
- Zukunft
- Lücke
- erzeugen
- erzeugt
- erzeugt
- bekommen
- Git
- GitHub
- ABSICHT
- gegeben
- gibt
- Global
- Go
- Goes
- für Balkonkraftwerke Reduzierung
- Gruppe an
- Haben
- Gesundheitswesen
- hier (auf dänisch)
- höher
- hält
- Hosting
- Ultraschall
- Hilfe
- HTML
- http
- HTTPS
- ID
- Identitätsschutz
- if
- Umsetzung
- importieren
- in
- Dazu gehören
- Einschließlich
- Index
- Infrastruktur
- anfänglich
- Initiativen
- Eingänge
- installieren
- installiert
- Instanz
- Anleitung
- Integriert
- Intelligenz
- Internet
- in
- einführen
- IT
- Job
- Jobs
- jpg
- JSON
- Wesentliche
- Tasten
- Label
- See
- Landschaft
- später
- neueste
- lernen
- geführt
- gehebelt
- Lebensdauer
- Biowissenschaften
- Line
- Log
- langfristig
- Maschine
- Maschinelles Lernen
- Main
- halten
- um
- verwaltet
- Management
- Herstellung
- Marge
- Masse
- Meister
- Mechanismus
- Treffen
- MENÜ
- Merge
- Metrik
- Kommt demnächst...
- ML
- MLOps
- Modell
- Modellieren
- für
- ändern
- Module
- Moments
- Überwachen
- überwacht
- Überwachung
- mehr
- mehrere
- Name
- Namens
- Benennung
- Menü
- Need
- erforderlich
- Bedürfnisse
- Neu
- weiter
- normal
- Notizbuch
- Benachrichtigung
- Benachrichtigungen
- Anzahl
- numpig
- of
- vorgenommen,
- on
- EINEM
- Einkauf & Prozesse
- or
- Auftrag
- Organisationen
- Andere
- aussen
- übrig
- Überblick
- besitzen
- Paket
- Seite
- Schmerzen
- Pandas
- Brot
- Teil
- Teile
- Bestanden
- Leidenschaft & KREATIVITÄT
- leidenschaftlich
- Schnittmuster
- Leistung
- Berechtigungen
- Fotografie
- abgeholt
- Picks
- Pipeline
- Plattform
- Plato
- Datenintelligenz von Plato
- PlatoData
- Punkte
- Politik durchzulesen
- Datenschutzrichtlinien
- Post
- Praktiken
- vorhersagen
- Prognosen
- Danach
- Voraussetzungen
- früher
- Principal
- Vor
- Privilegien
- Prozessdefinierung
- Verarbeitung
- Produktion
- Produkte
- Professionell
- Projekt
- fördern
- Gefördert
- Förderung
- die
- vorausgesetzt
- bietet
- Bereitstellung
- Bereitstellung
- öffentlich
- Pullover
- Verfolgt
- Push
- Python
- schnell
- schnell
- Roh
- Lesen Sie mehr
- bereit
- realen Welt
- Region
- Registrieren
- eingetragen
- registriert
- Registratur
- Regulierungsbehörden
- bezogene
- Beziehung
- entfernen
- Quelle
- Anforderung
- falls angefordert
- Voraussetzungen:
- Ressourcen
- Downloads
- Antwort
- Einzelhandel
- Rückkehr
- Flussufer
- Rollen
- Rollen
- Wurzel
- Regel
- Ohne eine erfahrene Medienplanung zur Festlegung von Regeln und Strategien beschleunigt der programmatische Medieneinkauf einfach die Rate der verschwenderischen Ausgaben.
- Führen Sie
- läuft
- sagemaker
- SageMaker-Pipelines
- gleich
- Speichern
- Gerettet
- skalierbaren
- Szenario
- Zeitplan
- vorgesehen
- Planung
- Wissenschaft
- WISSENSCHAFTEN
- Wissenschaftler
- Skript
- Skripte
- nahtlos
- Zweite
- Abschnitt
- Verbindung
- Sicherheitdienst
- sehen
- senden
- Sendung
- sendet
- geschickt
- getrennte
- Server
- Lösungen
- kompensieren
- Einstellungen
- Setup
- Form
- Teilen
- sie
- sollte
- erklären
- präsentiert
- gezeigt
- Konzerte
- Einfacher
- Schnipsel
- So
- Lösung
- Lösungen
- Auflösung
- Quelle
- Quellen
- Raumfahrt
- spezialisiert
- spezifisch
- gespalten
- Bundesstaat
- Erklärung
- statisch
- Status
- Schritt
- Shritte
- Immer noch
- speichern
- gelagert
- Läden
- Schnur
- Struktur
- Studio Adressen
- erfolgreich
- so
- Unterstützt
- Target
- Teams
- Telekom
- Terraform
- Test
- Testen
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Sie
- dann
- Dort.
- Diese
- Dritte
- basierte Online-to-Offline-Werbezuordnungen von anderen gab.
- fehlen uns die Worte.
- nach drei
- Durch
- Zeit
- zu
- Toolsets
- Top
- Thema
- verfolgen sind
- Training
- trainiert
- Ausbildung
- Transformieren
- auslösen
- ausgelöst
- Auslösen
- was immer dies auch sein sollte.
- Vertrauen
- WENDE
- XNUMX
- ui
- für
- Universität
- University of California
- Aktualisierung
- aktualisiert
- hochgeladen
- URL
- us
- -
- benutzt
- Verwendung von
- Nutzen
- Werte
- verschiedene
- Version
- Versionen
- Video
- sichtbar
- Ansehen
- we
- Netz
- Web-Services
- wann
- sobald
- während
- welche
- während
- werden wir
- mit
- .
- ohne
- Arbeiten
- gearbeitet
- Arbeitsablauf.
- arbeiten,
- Werk
- schreiben
- geschrieben
- Du
- Ihr
- Youtube
- Zephyrnet