Modelle des maschinellen Lernens (ML) funktionieren nicht isoliert. Um einen Mehrwert zu liefern, müssen sie in bestehende Produktionssysteme und Infrastruktur integriert werden, was die Berücksichtigung des gesamten ML-Lebenszyklus bei Design und Entwicklung erfordert. ML-Operationen, bekannt als MLOps, konzentrieren sich auf die Rationalisierung, Automatisierung und Überwachung von ML-Modellen während ihres gesamten Lebenszyklus. Der Aufbau einer robusten MLOps-Pipeline erfordert eine funktionsübergreifende Zusammenarbeit. Datenwissenschaftler, ML-Ingenieure, IT-Mitarbeiter und DevOps-Teams müssen zusammenarbeiten, um Modelle von der Forschung bis zur Bereitstellung und Wartung zu operationalisieren. Mit den richtigen Prozessen und Tools ermöglicht MLOps Unternehmen, ML zuverlässig und effizient in ihren Teams einzuführen.
Obwohl die Anforderungen an Pipelines für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) unterschiedlich sein können und die Anforderungen jedes Unternehmens widerspiegeln, kann die Skalierung von MLOps-Praktiken über Teams hinweg vereinfacht werden, indem verwaltete Orchestrierungen und Tools verwendet werden, die den Entwicklungsprozess beschleunigen und die undifferenzierte Schwerarbeit beseitigen können .
Amazon SageMaker MLOps ist eine Suite von Funktionen, die Folgendes umfasst: Amazon SageMaker-Projekte (CI/CD), Amazon SageMaker-Pipelines und Amazon SageMaker-Modellregistrierung.
SageMaker-Pipelines ermöglicht die einfache Erstellung und Verwaltung von ML-Workflows und bietet gleichzeitig Speicher- und Wiederverwendungsfunktionen für Workflow-Schritte. Der SageMaker-Modellregistrierung zentralisiert die Modellverfolgung und vereinfacht die Modellbereitstellung. SageMaker-Projekte führt CI/CD-Praktiken in ML ein, einschließlich Umgebungsparität, Versionskontrolle, Tests und Automatisierung. Dies ermöglicht eine schnelle Einrichtung von CI/CD in Ihrer ML-Umgebung und erleichtert so eine effektive Skalierbarkeit im gesamten Unternehmen.
Die integrierte Projektvorlagen Zur Verfügung gestellt von Amazon Sage Maker umfassen die Integration mit einigen Tools von Drittanbietern, wie z. B. Jenkins für die Orchestrierung und GitHub für die Quellcodeverwaltung, und einige nutzen native AWS-CI/CD-Tools wie z AWS-CodeCommit, AWS CodePipeline und AWS CodeBuild. In vielen Szenarien möchten Kunden jedoch SageMaker Pipelines mit anderen vorhandenen CI/CD-Tools integrieren und daher ihre eigenen Projektvorlagen erstellen.
In diesem Beitrag zeigen wir Ihnen eine schrittweise Implementierung, um Folgendes zu erreichen:
- Erstellen Sie eine benutzerdefinierte SageMaker MLOps-Projektvorlage, die sich in GitHub und GitHub Actions integrieren lässt
- Machen Sie Ihre benutzerdefinierten Projektvorlagen verfügbar in Amazon SageMaker-Studio für Ihr Data-Science-Team mit Ein-Klick-Bereitstellung
Lösungsüberblick
In diesem Beitrag konstruieren wir die folgende Architektur. Wir erstellen eine automatisierte Modellerstellungspipeline, die Schritte zur Datenvorbereitung, Modellschulung, Modellbewertung und Registrierung des trainierten Modells in der SageMaker-Modellregistrierung umfasst. Das resultierende trainierte ML-Modell wird dann nach manueller Genehmigung aus der SageMaker Model Registry in Staging- und Produktionsumgebungen bereitgestellt.
Lassen Sie uns in die Elemente dieser Architektur eintauchen, um die vollständige Konfiguration zu verstehen.
GitHub und GitHub-Aktionen
GitHub ist eine webbasierte Plattform, die Versionskontrolle und Quellcodeverwaltung mithilfe von Git ermöglicht. Es ermöglicht Teams, an Softwareentwicklungsprojekten zusammenzuarbeiten, Änderungen zu verfolgen und Code-Repositorys zu verwalten. GitHub dient als zentraler Ort zum Speichern, Versionieren und Verwalten Ihrer ML-Codebasis. Dadurch wird sichergestellt, dass Ihre ML-Codebasis und Pipelines versioniert, dokumentiert und für Teammitglieder zugänglich sind.
GitHub-Aktionen ist ein leistungsstarkes Automatisierungstool innerhalb des GitHub-Ökosystems. Sie können damit benutzerdefinierte Workflows erstellen, die Ihre Prozesse im Softwareentwicklungslebenszyklus automatisieren, z. B. das Erstellen, Testen und Bereitstellen von Code. Sie können ereignisgesteuerte Workflows erstellen, die durch bestimmte Ereignisse ausgelöst werden, beispielsweise wenn Code in ein Repository übertragen oder eine Pull-Anfrage erstellt wird. Bei der Implementierung von MLOps können Sie GitHub Actions verwenden, um verschiedene Phasen der ML-Pipeline zu automatisieren, wie zum Beispiel:
- Datenvalidierung und Vorverarbeitung
- Modelltraining und Evaluation
- Modellbereitstellung und -überwachung
- CI/CD für ML-Modelle
Mit GitHub Actions können Sie Ihre ML-Workflows optimieren und sicherstellen, dass Ihre Modelle konsistent erstellt, getestet und bereitgestellt werden, was zu effizienteren und zuverlässigeren ML-Bereitstellungen führt.
In den folgenden Abschnitten beginnen wir mit der Einrichtung der Voraussetzungen für einige der Komponenten, die wir als Teil dieser Architektur verwenden:
- AWS CloudFormation - AWS CloudFormation initiiert die Modellbereitstellung und richtet die SageMaker-Endpunkte ein, nachdem die Modellbereitstellungspipeline durch die Genehmigung des trainierten Modells aktiviert wurde.
- AWS CodeStar-Verbindung - Wir gebrauchen AWS CodeStar um eine Verbindung mit dem GitHub-Repository herzustellen und es als Code-Repo-Integration mit AWS-Ressourcen wie SageMaker Studio zu nutzen.
- Amazon EventBridge - Amazon EventBridge Verfolgt alle Änderungen an der Modellregistrierung. Außerdem wird eine Regel verwaltet, die die Lambda-Funktion auffordert, die Modellpipeline bereitzustellen, wenn sich der Status der Modellpaketversion ändert
PendingManualApproval
zuApproved
innerhalb des Modellregisters. - AWS Lambda – Wir verwenden ein AWS Lambda Funktion zum Initiieren des Modellbereitstellungsworkflows in GitHub Actions, nachdem ein neues Modell in der Modellregistrierung registriert wurde.
- Amazon Sage Maker – Wir konfigurieren die folgenden SageMaker-Komponenten:
- Pipeline – Diese Komponente besteht aus einem gerichteten azyklischen Graphen (DAG), der uns beim Aufbau des automatisierten ML-Workflows für die Phasen Datenvorbereitung, Modelltraining und Modellbewertung hilft. Die Modellregistrierung verwaltet Aufzeichnungen über Modellversionen, die damit verbundenen Artefakte, Abstammung und Metadaten. Es wird eine Modellpaketgruppe eingerichtet, die alle zugehörigen Modellversionen enthält. Die Modellregistrierung ist auch für die Verwaltung des Genehmigungsstatus der Modellversion für die spätere Bereitstellung verantwortlich.
- Endpunkt – Diese Komponente richtet zwei HTTPS-Echtzeitendpunkte für die Inferenz ein. Die Hosting-Konfiguration kann beispielsweise für Batch-Transformation oder asynchrone Inferenz angepasst werden. Der Staging-Endpunkt wird generiert, wenn die Modellbereitstellungspipeline durch die Genehmigung des trainierten Modells aus der SageMaker-Modellregistrierung aktiviert wird. Dieser Endpunkt wird zur Validierung des bereitgestellten Modells verwendet, indem sichergestellt wird, dass es Vorhersagen liefert, die unseren Genauigkeitsstandards entsprechen. Wenn das Modell für die Produktionsbereitstellung vorbereitet wird, wird ein Produktionsendpunkt durch eine manuelle Genehmigungsphase im GitHub Actions-Workflow bereitgestellt.
- Code-Repository – Dadurch wird ein Git-Repository als Ressource in Ihrem SageMaker-Konto erstellt. Mithilfe der vorhandenen Daten aus dem GitHub-Code-Repository, die Sie während der Erstellung Ihres SageMaker-Projekts eingegeben haben, wird in SageMaker eine Verknüpfung mit demselben Repository hergestellt, wenn Sie das Projekt starten. Dies stellt im Wesentlichen eine Verbindung zu einem GitHub-Repository in SageMaker her und ermöglicht interaktive Aktionen (Pull/Push) mit Ihrem Repository.
- Modellregistrierung – Dies überwacht die verschiedenen Versionen des Modells und die entsprechenden Artefakte, einschließlich Abstammung und Metadaten. Eine Sammlung, bekannt als a Modellpaketgruppe Es entstehen gehäusebezogene Versionen des Modells. Darüber hinaus überwacht die Modellregistrierung den Genehmigungsstatus der Modellversion und stellt so sicher, dass sie für den späteren Einsatz bereit ist.
- AWS Secrets Manager – Um Ihr persönliches GitHub-Zugriffstoken sicher aufzubewahren, muss ein Geheimnis eingerichtet werden AWS Secrets Manager und beherbergen Sie Ihr Zugriffstoken darin.
- AWS-Servicekatalog - Wir benutzen das AWS-Servicekatalog für die Implementierung von SageMaker-Projekten, die Komponenten wie ein SageMaker-Code-Repository, eine Lambda-Funktion, eine EventBridge-Regel, einen Artefakt-S3-Bucket usw. umfassen, die alle über CloudFormation implementiert werden. Dadurch kann Ihre Organisation Projektvorlagen wiederholt verwenden, jedem Benutzer Projekte zuweisen und Abläufe optimieren.
- Amazon S3 – Wir verwenden ein Amazon Simple Storage-Service (Amazon S3)-Bucket, um die von der Pipeline erzeugten Modellartefakte aufzubewahren.
Voraussetzungen:
Folgende Voraussetzungen sollten Sie mitbringen:
Sie müssen außerdem zusätzliche Einrichtungsschritte durchführen, bevor Sie die Lösung implementieren.
Richten Sie eine AWS CodeStar-Verbindung ein
Wenn Sie noch keine AWS CodeStar-Verbindung zu Ihrem GitHub-Konto haben, finden Sie weitere Informationen unter Stellen Sie eine Verbindung zu GitHub her Anweisungen zum Erstellen eines solchen finden Sie hier. Ihr AWS CodeStar-Verbindungs-ARN sieht folgendermaßen aus:
In diesem Beispiel aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f
ist die eindeutige ID für diese Verbindung. Wir verwenden diese ID, wenn wir später in diesem Beispiel unser SageMaker-Projekt erstellen.
Richten Sie geheime Zugriffsschlüssel für Ihr GitHub-Token ein
Um Ihr persönliches GitHub-Zugriffstoken sicher zu speichern, müssen Sie im Secrets Manager ein Geheimnis erstellen. Wenn Sie kein persönliches Zugriffstoken für GitHub haben, lesen Sie hier Verwalten Sie Ihre persönlichen Zugriffstoken für Anweisungen zum Erstellen eines solchen.
Sie können entweder ein klassisches oder ein differenziertes Zugriffstoken erstellen. Stellen Sie jedoch sicher, dass das Token Zugriff auf die Inhalte und Aktionen des Repositorys (Workflows, Ausführungen und Artefakte) hat.
Führen Sie die folgenden Schritte aus, um Ihr Token im Secrets Manager zu speichern:
- Wählen Sie in der Secrets Manager-Konsole aus Speichern Sie ein neues Geheimnis.
- Auswählen Andere Art von Geheimnis für Wählen Sie den Geheimtyp.
- Geben Sie einen Namen für Ihr Geheimnis ein Wesentliche Feld und fügen Sie Ihr persönliches Zugriffstoken zum entsprechenden hinzu Wert Feld.
- Auswählen Weiter, geben Sie einen Namen für Ihr Geheimnis ein und wählen Sie Weiter erneut.
- Auswählen Geschäft um dein Geheimnis zu bewahren.
Durch die Speicherung Ihres persönlichen GitHub-Zugriffstokens im Secrets Manager können Sie innerhalb Ihrer MLOps-Pipeline sicher darauf zugreifen und gleichzeitig seine Vertraulichkeit gewährleisten.
Erstellen Sie einen IAM-Benutzer für GitHub Actions
Damit GitHub Actions SageMaker-Endpunkte in Ihrer AWS-Umgebung bereitstellen kann, müssen Sie eine erstellen AWS Identity and Access Management and (IAM)-Benutzer und erteilen Sie ihm die erforderlichen Berechtigungen. Anweisungen finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto. Benutze die iam/GithubActionsMLOpsExecutionPolicy.json
Datei (bereitgestellt in der Codebeispiel), um diesem Benutzer ausreichende Berechtigungen zum Bereitstellen Ihrer Endpunkte zu erteilen.
Nachdem Sie den IAM-Benutzer erstellt haben, einen Zugangsschlüssel generieren. Sie verwenden diesen Schlüssel, der sowohl aus einer Zugriffsschlüssel-ID als auch einem geheimen Zugriffsschlüssel besteht, im nächsten Schritt bei der Konfiguration Ihrer GitHub-Geheimnisse.
Richten Sie Ihr GitHub-Konto ein
Im Folgenden finden Sie die Schritte zur Vorbereitung Ihres GitHub-Kontos für die Ausführung dieses Beispiels.
Klonen Sie das GitHub-Repository
Sie können für dieses Beispiel ein vorhandenes GitHub-Repository wiederverwenden. Es ist jedoch einfacher, wenn Sie ein neues Repository erstellen. Dieses Repository enthält den gesamten Quellcode für die Builds und Bereitstellungen der SageMaker-Pipeline.
Kopieren Sie den Inhalt des Seed-Code-Verzeichnisses in das Stammverzeichnis Ihres GitHub-Repositorys. Zum Beispiel die .github
Das Verzeichnis sollte sich im Stammverzeichnis Ihres GitHub-Repositorys befinden.
Erstellen Sie ein GitHub-Geheimnis, das Ihren IAM-Benutzerzugriffsschlüssel enthält
In diesem Schritt speichern wir die Zugangsschlüsseldetails des neu erstellten Benutzers in unserem GitHub-Geheimnis.
- Navigieren Sie auf der GitHub-Website zu Ihrem Repository und wählen Sie Einstellungen .
- Wählen Sie im Abschnitt „Sicherheit“ aus Geheimnisse und Variablen und wählen Sie Aktionen.
- Auswählen Neues Repository-Geheimnis.
- Aussichten für Name und Vorname, eingeben
AWS_ACCESS_KEY_ID
- Aussichten für Die GeheimeGeben Sie die Zugriffsschlüssel-ID ein, die dem IAM-Benutzer zugeordnet ist, den Sie zuvor erstellt haben.
- Auswählen Geheimnis hinzufügen.
- Wiederholen Sie den gleichen Vorgang für
AWS_SECRET_ACCESS_KEY
Konfigurieren Sie Ihre GitHub-Umgebungen
Um einen manuellen Genehmigungsschritt in unseren Bereitstellungspipelines zu erstellen, verwenden wir a GitHub-Umgebung. Führen Sie die folgenden Schritte aus:
- Navigieren Sie zu der Einstellungen , Environments Menü Ihres GitHub-Repositorys und erstellen Sie eine neue Umgebung namens Produktion.
- Aussichten für UmweltschutzregelnWählen Erforderliche Gutachter.
- Fügen Sie die gewünschten GitHub-Benutzernamen als Prüfer hinzu. Für dieses Beispiel können Sie Ihren eigenen Benutzernamen wählen.
Beachten Sie, dass die Umgebungsfunktion in einigen Arten von GitHub-Plänen nicht verfügbar ist. Weitere Informationen finden Sie unter Verwendung von Umgebungen für die Bereitstellung.
Stellen Sie die Lambda-Funktion bereit
In den folgenden Schritten komprimieren wir lambda_function.py
in eine ZIP-Datei, die dann in einen S3-Bucket hochgeladen wird.
Das entsprechende Codebeispiel hierfür finden Sie im Folgenden GitHub Repo. Insbesondere die lambda_function.py
befindet sich im lambda_functions/lambda_github_workflow_trigger Verzeichnis.
Es wird empfohlen, einen Fork des Codebeispiels zu erstellen und diesen stattdessen zu klonen. Dies gibt Ihnen die Freiheit, den Code zu ändern und mit verschiedenen Aspekten des Beispiels zu experimentieren.
- Nachdem Sie eine Kopie des Codes erhalten haben, navigieren Sie zum entsprechenden Verzeichnis und verwenden Sie die
zip
Befehl zum Komprimierenlambda_function.py
. Sowohl Windows- als auch MacOS-Benutzer können ihr natives Dateiverwaltungssystem, den Datei-Explorer bzw. den Finder, verwenden, um eine ZIP-Datei zu erstellen.
- Laden Sie die
lambda-github-workflow-trigger.zip
zu einem S3-Bucket.
Auf diesen Bucket wird später von Service Catalog zugegriffen. Sie können einen beliebigen Bucket auswählen, auf den Sie Zugriff haben, sofern Service Catalog in den nachfolgenden Schritten Daten daraus abrufen kann.
Ab diesem Schritt muss die AWS CLI v2 installiert und konfiguriert sein. Eine Alternative wäre die Verwendung von AWS CloudShell, bei dem alle erforderlichen Tools vorinstalliert sind, sodass keine zusätzlichen Konfigurationen erforderlich sind.
- Um die Datei in den S3-Bucket hochzuladen, verwenden Sie den folgenden Befehl:
Jetzt erstellen wir eine Lambda-Ebene für die damit verbundenen Abhängigkeiten lambda_function
wir haben es gerade hochgeladen.
- Richten Sie eine virtuelle Python-Umgebung ein und installieren Sie die Abhängigkeiten:
- Generieren Sie die ZIP-Datei mit den folgenden Befehlen:
- Veröffentlichen Sie die Ebene in AWS:
Nachdem diese Ebene veröffentlicht wurde, können nun alle Ihre Lambda-Funktionen darauf verweisen, um ihre Abhängigkeiten zu erfüllen. Ein detaillierteres Verständnis der Lambda-Schichten finden Sie unter Arbeiten mit Lambda-Ebenen.
Erstellen Sie eine benutzerdefinierte Projektvorlage in SageMaker
Nach Abschluss aller oben genannten Schritte verfügen wir über alle Ressourcen und Komponenten der CI/CD-Pipeline. Als Nächstes zeigen wir, wie wir diese Ressourcen als benutzerdefiniertes Projekt innerhalb des SageMaker Studios verfügbar machen können, auf das über eine Ein-Klick-Bereitstellung zugegriffen werden kann.
Wie bereits erwähnt, wenn die von SageMaker bereitgestellten Vorlagen Ihren Anforderungen nicht entsprechen (z. B. wenn Sie eine komplexere Orchestrierung in CodePipeline mit mehreren Phasen, benutzerdefinierten Genehmigungsschritten oder die Integration mit einem Drittanbieter-Tool wie GitHub und GitHub-Aktionen wünschen). Wie in diesem Beitrag gezeigt), können Sie Ihre eigenen Vorlagen erstellen. Wir empfehlen, mit den von SageMaker bereitgestellten Vorlagen zu beginnen, um zu verstehen, wie Sie Ihren Code und Ihre Ressourcen organisieren und darauf aufbauen. Weitere Einzelheiten finden Sie unter Erstellen Sie benutzerdefinierte Projektvorlagen.
Beachten Sie, dass Sie diesen Schritt auch automatisieren und stattdessen CloudFormation verwenden können, um das Service Catalog-Portfolio und das Produkt per Code bereitzustellen. Für ein besseres Lernerlebnis zeigen wir Ihnen in diesem Beitrag jedoch die Konsolenbereitstellung.
In dieser Phase verwenden wir die bereitgestellte CloudFormation-Vorlage, um ein Servicekatalog-Portfolio zu erstellen, das uns bei der Erstellung benutzerdefinierter Projekte in SageMaker hilft.
Sie können eine neue Domäne erstellen oder Ihre SageMaker-Domäne für die folgenden Schritte wiederverwenden. Wenn Sie keine Domain haben, lesen Sie bitte Onboarding zur Amazon SageMaker-Domäne mithilfe der Schnelleinrichtung Anweisungen zur Einrichtung.
Nachdem Sie den Administratorzugriff auf die SageMaker-Vorlagen aktiviert haben, führen Sie die folgenden Schritte aus:
- Auf der Service Catalog-Konsole unter Verwaltung Wählen Sie im Navigationsbereich Portfolios.
- Auswählen Erstellen Sie ein neues Portfolio.
- Nennen Sie das Portfolio „SageMaker Organization Templates“.
- Laden Sie die template.yml Datei auf Ihren Computer.
Diese Cloud Formation-Vorlage stellt alle CI/CD-Ressourcen bereit, die wir als Konfiguration und Infrastruktur als Code benötigen. Sie können die Vorlage genauer studieren, um zu sehen, welche Ressourcen als Teil davon bereitgestellt werden. Diese Vorlage wurde für die Integration mit GitHub und GitHub Actions angepasst.
- Im
template.yml
Datei, ändern Sie dieS3Bucket
value in Ihren Bucket, in den Sie die Lambda-ZIP-Datei hochgeladen haben:
- Wählen Sie das neue Portfolio.
- Auswählen Laden Sie ein neues Produkt hoch.
- Aussichten für Produktname¸ Geben Sie einen Namen für Ihre Vorlage ein. Wir verwenden den Namen
build-deploy-github
. - Aussichten für Beschreibung, geben Sie eine Beschreibung ein.
- Aussichten für Eigentümer, gib deinen Namen ein.
- Der VersionsdetailsZ. Versandart, wählen Verwenden Sie eine Vorlagendatei.
- Auswählen Laden Sie eine Vorlage hoch.
- Laden Sie die heruntergeladene Vorlage hoch.
- Aussichten für Versions-Titel, wählen 1.0.
- Auswählen Bewertung.
- Überprüfen Sie Ihre Einstellungen und wählen Sie Produkt erstellen.
- Auswählen Inspiration um das neue Produkt aufzulisten.
- Wählen Sie das Produkt, das Sie gerade erstellt haben.
- Auf dem Schlüsselwörter Fügen Sie dem Produkt auf der Registerkarte das folgende Tag hinzu:
- Wesentliche =
sagemaker:studio-visibility
- Wert =
true
- Wesentliche =
Zurück in den Portfoliodetails sollten Sie etwas Ähnliches wie den folgenden Screenshot sehen (mit unterschiedlichen IDs).
- Auf dem Einschränkungen Tab, wählen Sie Einschränkung erstellen.
- Aussichten für Produkt, wählen
build-deploy-github
(das Produkt, das Sie gerade erstellt haben). - Aussichten für Zwang Typ, wählen Einführung.
- Der StartbeschränkungZ. Versandart, wählen Wählen Sie die IAM-Rolle.
- Auswählen
AmazonSageMakerServiceCatalogProductsLaunchRole
. - Auswählen Erstellen.
- Auf dem Gruppen, Rollen und Benutzer Tab, wählen Sie Fügen Sie Gruppen, Rollen und Benutzer hinzu.
- Auf dem Rollen Wählen Sie auf der Registerkarte die Rolle aus, die Sie beim Konfigurieren Ihrer SageMaker Studio-Domäne verwendet haben. Hier finden Sie die SageMaker-Domänenrolle.
- Auswählen Zugriff hinzufügen.
Stellen Sie das Projekt über SageMaker Studio bereit
In den vorherigen Abschnitten haben Sie die benutzerdefinierte MLOps-Projektumgebung vorbereitet. Erstellen wir nun ein Projekt mit dieser Vorlage:
- Navigieren Sie in der SageMaker-Konsole zu der Domäne, in der Sie dieses Projekt erstellen möchten.
- Auf dem Einführung Menü, wählen Sie Studio.
Sie werden zur SageMaker Studio-Umgebung weitergeleitet.
- In SageMaker Studio im Navigationsbereich unter Deployments, wählen Projekte.
- Auswählen Projekt anlegen.
- Wählen Sie oben in der Liste der Vorlagen die Option aus Organisationsvorlagen.
Wenn Sie alle vorherigen Schritte erfolgreich durchgeführt haben, sollte eine neue benutzerdefinierte Projektvorlage mit dem Namen angezeigt werden Build-Deploy-GitHub
.
- Wählen Sie diese Vorlage aus und wählen Sie Wählen Sie Projektvorlage aus.
- Geben Sie eine optionale Beschreibung ein.
- Aussichten für Name des Besitzers des GitHub-RepositorysGeben Sie den Besitzer Ihres GitHub-Repositorys ein. Wenn sich Ihr Repository beispielsweise unter befindet
https://github.com/pooyavahidi/my-repo
, wäre der Besitzerpooyavahidi
. - Aussichten für GitHub-Repository-NameGeben Sie den Namen des Repositorys ein, in das Sie den Seed-Code kopiert haben. Es wäre nur der Name des Repos. Zum Beispiel in
https://github.com/pooyavahidi/my-repo
, das Repo istmy-repo
. - Aussichten für Eindeutige Codestar-Verbindungs-IDGeben Sie die eindeutige ID der von Ihnen erstellten AWS CodeStar-Verbindung ein.
- Aussichten für Name des Secrets im Secrets Manager, der das GitHub-Token speichertGeben Sie den Namen des Geheimnisses im Secrets Manager ein, in dem Sie das GitHub-Token erstellt und gespeichert haben.
- Aussichten für GitHub-Workflow-Datei für die Bereitstellung, geben Sie den Namen der GitHub-Workflow-Datei ein (at
.github/workflows/deploy.yml
), wo Sie die Bereitstellungsanweisungen haben. Für dieses Beispiel können Sie es als Standard beibehaltendeploy.yml
. - Auswählen Projekt anlegen.
- Stellen Sie nach dem Erstellen Ihres Projekts sicher, dass Sie es aktualisieren
AWS_REGION
undSAGEMAKER_PROJECT_NAME
Umgebungsvariablen in Ihren GitHub-Workflowdateien entsprechend anpassen. Workflow-Dateien befinden sich in Ihrem GitHub-Repo (aus dem Seed-Code kopiert) im.github/workflows
Verzeichnis. Stellen Sie sicher, dass Sie beide aktualisierenbuild.yml
unddeploy.yml
Dateien.
Jetzt ist Ihre Umgebung einsatzbereit! Sie können die Pipelines direkt ausführen, Änderungen vornehmen und diese Änderungen in Ihr GitHub-Repository übertragen, um die automatisierte Build-Pipeline auszulösen und zu sehen, wie alle Schritte des Builds und der Bereitstellung automatisiert werden.
Aufräumen
Führen Sie die folgenden Schritte aus, um die Ressourcen zu bereinigen:
- Löschen Sie die CloudFormation-Stacks, die für das SageMaker-Projekt und die SageMaker-Endpunkte verwendet werden.
- Löschen Sie die SageMaker-Domäne.
- Löschen Sie die Service Catalog-Ressourcen.
- Löschen Sie den AWS CodeStar-Verbindungslink mit dem GitHub-Repository.
- Löschen Sie den IAM-Benutzer, den Sie für GitHub Actions erstellt haben.
- Löschen Sie das Geheimnis im Secrets Manager, in dem die persönlichen GitHub-Zugangsdaten gespeichert sind.
Zusammenfassung
In diesem Beitrag haben wir den Prozess der Verwendung einer benutzerdefinierten SageMaker MLOps-Projektvorlage zum automatischen Erstellen und Organisieren einer CI/CD-Pipeline beschrieben. Diese Pipeline integriert Ihre vorhandenen CI/CD-Mechanismen effektiv mit SageMaker-Funktionen für Datenmanipulation, Modellschulung, Modellgenehmigung und Modellbereitstellung. In unserem Szenario haben wir uns auf die Integration von GitHub-Aktionen in SageMaker-Projekte und -Pipelines konzentriert. Für ein umfassendes Verständnis der Implementierungsdetails besuchen Sie die GitHub-Repository. Experimentieren Sie ruhig damit und zögern Sie nicht, Ihre Fragen im Kommentarbereich zu hinterlassen.
Über die Autoren
Romina Sharifpour ist Senior Architect für maschinelles Lernen und künstliche Intelligenz bei Amazon Web Services (AWS). Sie hat über 10 Jahre damit verbracht, den Entwurf und die Implementierung innovativer End-to-End-Lösungen zu leiten, die durch Fortschritte in ML und KI ermöglicht werden. Rominas Interessengebiete sind die Verarbeitung natürlicher Sprache, große Sprachmodelle und MLOps.
Pooya Vahidi ist Senior Solutions Architect bei AWS und begeistert sich für Informatik, künstliche Intelligenz und Cloud Computing. Als KI-Experte ist er aktives Mitglied des AWS AI/ML Area-of-Depth-Teams. Mit einem Hintergrund von mehr als zwei Jahrzehnten Erfahrung in der Leitung der Architektur und Entwicklung groß angelegter Lösungen unterstützt er Kunden auf ihrer transformativen Reise durch Cloud- und KI/ML-Technologien.
- 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/build-an-end-to-end-mlops-pipeline-using-amazon-sagemaker-pipelines-github-and-github-actions/
- :hast
- :Ist
- :nicht
- :Wo
- $UP
- 10
- 100
- 114
- 14
- 20
- 28
- 7
- 8
- 9
- a
- Fähig
- Über Uns
- oben
- beschleunigen
- Zugang
- Zugriff
- zugänglich
- entsprechend
- Konto
- Genauigkeit
- Erreichen
- über
- Aktionen
- aktiv
- azyklisch
- hinzufügen
- Zusätzliche
- Bereinigt
- adoptieren
- Fortschritte
- Nach der
- aufs Neue
- AI
- AI / ML
- Alle
- zuordnen
- erlauben
- erlaubt
- bereits
- ebenfalls
- Alternative
- Amazon
- Amazon Sage Maker
- Amazon SageMaker-Pipelines
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- und
- und Infrastruktur
- jedem
- angemessen
- Genehmigung
- Architektur
- SIND
- Bereiche
- künstlich
- künstliche Intelligenz
- AS
- Aspekte
- damit verbundenen
- Verein
- At
- automatisieren
- Automatisiert
- Im Prinzip so, wie Sie es von Google Maps kennen.
- automatisieren
- Automation
- verfügbar
- AWS
- Hintergrund
- Base
- BE
- war
- Bevor
- beide
- bauen
- Building
- baut
- erbaut
- eingebaut
- by
- namens
- CAN
- Fähigkeiten
- Katalog
- CD
- zentralisierte
- Übernehmen
- Änderungen
- Auswählen
- klassisch
- reinigen
- klicken Sie auf
- Cloud
- Cloud Computing
- Code
- Codebasis
- zusammenarbeiten
- Zusammenarbeit
- Sammlung
- kommt
- Bemerkungen
- abschließen
- Abschluss
- Komplex
- Komponente
- Komponenten
- umfassend
- Computer
- Computerwissenschaften
- Computing
- Vertraulichkeit
- Konfiguration
- konfiguriert
- konfigurieren
- Verbindung
- Berücksichtigung
- konsequent
- besteht
- Konsul (Console)
- konstruieren
- enthalten
- Inhalt
- kontinuierlich
- Smartgeräte App
- Dazugehörigen
- erstellen
- erstellt
- schafft
- Erstellen
- Schaffung
- Original
- Kunden
- maßgeschneiderte
- TAG
- technische Daten
- Datenaufbereitung
- Datenwissenschaft
- Jahrzehnte
- Standard
- Übergeben
- Lieferanten
- vertiefen
- Anforderungen
- zeigen
- Synergie
- Abhängigkeiten
- einsetzen
- Einsatz
- Bereitstellen
- Einsatz
- Implementierungen
- Beschreibung
- Design
- erwünscht
- Detail
- detailliert
- Details
- Entwicklung
- anders
- gerichtet
- Direkt
- diskutiert
- do
- Domain
- Nicht
- im
- jeder
- Früher
- einfacher
- Ökosystem
- Effektiv
- effektiv
- effizient
- effizient
- entweder
- Elemente
- eliminieren
- ermöglichen
- freigegeben
- ermöglicht
- ermöglichen
- End-to-End
- Endpunkt
- Entwicklung
- Ingenieure
- gewährleisten
- sorgt
- Gewährleistung
- Enter
- Unternehmen
- Ganz
- Arbeitsumfeld
- Umgebungen
- im Wesentlichen
- etablieren
- etablierten
- etabliert
- Gründung
- etc
- Auswertung
- Veranstaltungen
- Beispiel
- vorhandenen
- ERFAHRUNGEN
- Experiment
- Expertise
- Forscher
- erleichtern
- Merkmal
- Eigenschaften
- fühlen
- Feld
- Reichen Sie das
- Mappen
- Finder
- Setzen Sie mit Achtsamkeit
- konzentriert
- Folgende
- Aussichten für
- Gabel
- Ausbildung
- Formen
- gefunden
- Frei
- Freiheit
- für
- Funktion
- Funktionen
- erzeugen
- erzeugt
- bekommen
- Git
- GitHub
- ABSICHT
- gehen
- weg
- gewähren
- Graph
- mehr
- Gruppe an
- Gruppen
- Haben
- he
- schwer
- schweres Heben
- hilft
- Hosting
- Häuser
- Houses
- Gehäuse
- Ultraschall
- Hilfe
- aber
- HTML
- http
- HTTPS
- ID
- Identitätsschutz
- ids
- if
- Implementierung
- umgesetzt
- Umsetzung
- in
- das
- Dazu gehören
- Einschließlich
- Information
- Infrastruktur
- initiieren
- Initiiert
- innovativ
- Varianten des Eingangssignals:
- innerhalb
- installieren
- installiert
- Instanz
- beantragen müssen
- Anleitung
- integrieren
- Integriert
- Integration
- Integration
- Intelligenz
- interaktive
- Interesse
- in
- Stellt vor
- Isolierung
- IT
- SEINE
- Reisen
- jpg
- JSON
- nur
- Behalten
- hält
- Wesentliche
- Tasten
- bekannt
- Sprache
- grosse
- großflächig
- später
- starten
- Schicht
- Lagen
- führenden
- lernen
- Verlassen
- Lebenszyklus
- Facelift
- Gefällt mir
- Abstammung
- LINK
- Liste
- located
- Standorte
- Lang
- aussehen
- aussehen wie
- Maschine
- Maschinelles Lernen
- MacOS
- unterhält
- Wartung
- um
- verwalten
- verwaltet
- Management
- Manager
- flächendeckende Gesundheitsprogramme
- Manipulation
- manuell
- viele
- Mechanismen
- Triff
- Mitglied
- Mitglieder
- MENÜ
- Metadaten
- könnte
- MIT
- ML
- MLOps
- Modell
- für
- Änderungen
- ändern
- Überwachung
- Monitore
- mehr
- effizienter
- Zudem zeigt
- mehrere
- sollen
- Name
- Namens
- Namen
- nativen
- Natürliche
- Verarbeitung natürlicher Sprache
- Navigieren
- Menü
- notwendig,
- erfordert
- Need
- Bedürfnisse
- Neu
- neue Produkt
- neu
- weiter
- jetzt an
- erhalten
- of
- bieten
- on
- EINEM
- weiter
- betreiben
- Einkauf & Prozesse
- or
- Orchesterbearbeitung
- Organisation
- Organisationen
- Andere
- UNSERE
- übrig
- Überblick
- besitzen
- Eigentümer
- Paket
- Brot
- Parität
- Teil
- Party
- leidenschaftlich
- Berechtigungen
- persönliche
- Pipeline
- Pläne
- Plattform
- Plato
- Datenintelligenz von Plato
- PlatoData
- Mappe
- Post
- größte treibende
- Praktiken
- Prognosen
- Vorbereitung
- Danach
- bereit
- Voraussetzungen
- früher
- Verfahren
- Prozessdefinierung
- anpassen
- Verarbeitung
- Produziert
- Produkt
- Produktion
- Professionell
- Projekt
- Projekte
- Eingabeaufforderungen
- Sicherheit
- die
- vorausgesetzt
- bietet
- veröffentlicht
- Push
- geschoben
- Python
- Abfragen
- Direkt
- Bereitschaft
- bereit
- Echtzeit
- empfehlen
- empfohlen
- Aufzeichnungen
- siehe
- Referenz
- reflektieren
- eingetragen
- Registrierung:
- Registratur
- bezogene
- relevant
- zuverlässig
- entfernen
- WIEDERHOLT
- Quelle
- Anforderung
- erfordern
- Voraussetzungen:
- Forschungsprojekte
- Ressourcen
- Downloads
- beziehungsweise
- für ihren Verlust verantwortlich.
- was zu
- Wiederverwendung
- Recht
- robust
- Rollen
- Rollen
- Wurzel
- Regel
- Führen Sie
- läuft
- sagemaker
- SageMaker-Pipelines
- gleich
- Speichern
- Skalierbarkeit
- Skalierung
- Szenario
- Szenarien
- Wissenschaft
- Wissenschaftler
- Die Geheime
- Abschnitt
- Abschnitte
- sicher
- Sicherheitdienst
- sehen
- Samen
- wählen
- Senior
- dient
- Lösungen
- Sets
- Einstellung
- Einstellungen
- Setup
- mehrere
- sie
- sollte
- erklären
- ähnlich
- Einfacher
- vereinfachte
- Vereinfachung
- Software
- Software-Entwicklung
- Lösung
- Lösungen
- einige
- etwas
- Quelle
- Quellcode
- überspannend
- spezifisch
- speziell
- verbrachte
- Stacks
- Unser Team
- Stufe
- Stufen
- Aufführung
- Normen
- Anfang
- Beginnen Sie
- Status
- Schritt
- Shritte
- Lagerung
- speichern
- gelagert
- Läden
- Speicherung
- einfach
- rationalisieren
- Rationalisierung
- Studio Adressen
- Studie
- Folge
- Erfolgreich
- so
- ausreichend
- Suite
- sicher
- System
- Systeme und Techniken
- TAG
- Team
- Teammitglieder
- Teams
- Technologies
- Vorlage
- Vorlagen
- getestet
- Testen
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Quelle
- ihr
- dann
- deswegen
- Diese
- vom Nutzer definierten
- Dritte
- basierte Online-to-Offline-Werbezuordnungen von anderen gab.
- fehlen uns die Worte.
- diejenigen
- Durch
- während
- zu
- gemeinsam
- Zeichen
- Werkzeug
- Werkzeuge
- Top
- verfolgen sind
- Tracking
- trainiert
- Ausbildung
- Transformieren
- Transformativ
- auslösen
- ausgelöst
- XNUMX
- tippe
- Typen
- für
- verstehen
- Verständnis
- einzigartiges
- Aktualisierung
- hochgeladen
- auf
- us
- -
- benutzt
- Mitglied
- Nutzer
- Verwendung von
- Nutzen
- seit
- BESTÄTIGEN
- Bestätigung
- Wert
- verschiedene
- Version
- Versionen
- Assistent
- Besuchen Sie
- ging
- wollen
- we
- Netz
- Web-Services
- Webbasiert
- Webseite
- Was
- wann
- welche
- während
- werden wir
- Fenster
- mit
- .
- Arbeiten
- zusammenarbeiten
- Arbeitsablauf.
- Workflows
- würde
- Jahr
- Du
- Ihr
- Zephyrnet
- PLZ