Verwenden von SageMaker AI bereitgestellten Projektvorlagen - Amazon SageMaker AI

Verwenden von SageMaker AI bereitgestellten Projektvorlagen

Wichtig

Ab dem 28. Oktober 2024 wurden die AWS CodeCommit Vorlagen entfernt. Wählen Sie für neue Projekte aus den verfügbaren Projektvorlagen aus, die Git-Repositorys von Drittanbietern verwenden.

Amazon SageMaker AI bietet Projektvorlagen, die die Infrastruktur erstellen, die Sie für die Erstellung einer MLOps-Lösung für die kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) von ML-Modellen benötigen. Verwenden Sie diese Vorlagen, um Daten zu verarbeiten, Features zu extrahieren, Modelle zu trainieren und zu testen, die Modelle in der SageMaker-Modellregistrierung zu registrieren und die Modelle für Inferenz bereitzustellen. Sie können den Seed-Code und die Konfigurationsdateien an Ihre Anforderungen anpassen.

Anmerkung

Für die Verwendung von Projektvorlagen sind zusätzliche Rollen erforderlich. Eine vollständige Liste der erforderlichen Rollen und Anweisungen zu ihrer Erstellung finden Sie unter Gewährung der für die Nutzung von Projekten erforderlichen Berechtigungen für SageMaker Studio. Wenn Sie die neuen Rollen nicht haben, erhalten Sie die Fehlermeldung CodePipeline ist nicht autorisiert AssumeRole auf der Rolle arn:aws:iam: :xxx:role/service-role/amazonSageMakerServiceCatalogProductsCodePipelineRole durchzuführen, wenn Sie versuchen, ein neues Projekt zu erstellen und nicht fortfahren können.

SageMaker-AI-Projektvorlagen bieten Ihnen die folgende Auswahl an Code-Repositorys, Tools zur Workflow-Automatisierung und Pipeline-Phasen:

  • Code-Repository: Git-Repositorys von Drittanbietern wie GitHub und Bitbucket

  • CI/CD-Workflow-Automatisierung: AWS CodePipeline oder Jenkins

  • Phasen der Pipeline: Modellerstellung und Training, Modellbereitstellung oder beides

Die folgende Diskussion bietet einen Überblick über die einzelnen Vorlagen, die Sie bei der Erstellung Ihres SageMaker-AI-Projekts auswählen können. Sie können die verfügbaren Vorlagen auch in Studio (oder Studio Classic) anzeigen, indem Sie den Anweisungen unter Projekt erstellen der Projektanleitung folgen.

Eine schrittweise Anleitung zum Erstellen eines echten Projekts finden Sie in einer der Vorgehensweisen für das Projekt:

Themen
    • Code-Repository: Git eines Drittanbieters.

      Anmerkung

      Stellen Sie die AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem GitHub-Benutzer oder Ihrer Organisation her. Fügen Sie dieser AWS CodeStar Verbindung ein Tag mit dem Schlüssel sagemaker und dem Wert true hinzu.

    • Automatisierung des CI/CD-Workflows: AWS CodePipeline

    Modellbau und Training

    Diese Vorlage enthält die folgenden Ressourcen:

    • Verknüpfungen mit einem kundenspezifischen Git-Repository. Ein Repository, das Beispielcode enthält, der eine Pipeline von Amazon SageMaker AI in Python-Code erstellt und zeigt, wie die SageMaker-AI-Pipeline erstellt und aktualisiert wird. Dieses Repository enthält auch ein Python-Beispiel-Notebook, das Sie in Studio (oder Studio Classic) öffnen und ausführen können.

    • Eine AWS CodePipeline Pipeline mit Quell- und Build-Schritten. Der Quellschritt verweist auf das Git-Repository eines Drittanbieters. Der Build-Schritt ruft den Code aus diesem Repository ab, erstellt und aktualisiert die SageMaker-AI-Pipeline, startet eine Pipeline-Ausführung und wartet, bis die Pipeline-Ausführung abgeschlossen ist.

    • Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar-Verbindung von Ihrem Konto zu Ihrem Konto auf dem Git-Repository-Host.

    • Ein Amazon-S3-Bucket zum Speichern von Artefakten, einschließlich CodePipeline- und CodeBuild-Artefakten, und aller Artefakte, die aus der SageMaker-AI-Pipeline generiert wurden, wird ausgeführt.

    Modellbereitstellung

    Diese Vorlage enthält die folgenden Ressourcen:

    • Verknüpfungen mit einem kundenspezifischen Git-Repository. Das Repository enthält Beispielcode, der Modelle auf Endpunkten in Staging- und Produktionsumgebungen bereitstellt.

    • Eine AWS CodePipeline Pipeline, die die Schritte Source, Build, Deployment bis Staging und Deployment to Production umfasst. Der Quellschritt verweist auf das Git-Repository eines Drittanbieters, und im Build-Schritt wird der Code aus diesem Repository abgerufen und CloudFormation-Stacks für die Bereitstellung generiert. In den Schritten Deploy-to-Staging und Deploy-to-Production werden die CloudFormation-Stacks in ihren jeweiligen Umgebungen bereitgestellt. Zwischen der Staging- und der Produktionsphase findet ein manueller Genehmigungsschritt statt, sodass ein MLOps-Techniker das Modell genehmigen muss, bevor es in der Produktion eingesetzt wird.

    • Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar-Verbindung von Ihrem Konto zu Ihrem Konto auf dem Git-Repository-Host.

    • Ein Amazon-S3-Bucket zum Speichern von Artefakten, einschließlich CodePipeline- und CodeBuild-Artefakten, und aller Artefakte, die aus der SageMaker-AI-Pipeline generiert wurden, wird ausgeführt.

    Modellerstellung, Training und Bereitstellung

    Diese Vorlage enthält die folgenden Ressourcen:

    • Verknüpfungen mit einem oder mehreren kundenspezifischen Git-Repositorys.

    • Eine AWS CodePipeline Pipeline, die die Schritte Source, Build, Deployment bis Staging und Deployment to Production umfasst. Der Quellschritt verweist auf das Git-Repository eines Drittanbieters, und im Build-Schritt wird der Code aus diesem Repository abgerufen und CloudFormation-Stacks für die Bereitstellung generiert. In den Schritten Deploy-to-Staging und Deploy-to-Production werden die CloudFormation-Stacks in ihren jeweiligen Umgebungen bereitgestellt. Zwischen der Staging- und der Produktionsphase findet ein manueller Genehmigungsschritt statt, sodass ein MLOps-Techniker das Modell genehmigen muss, bevor es in der Produktion eingesetzt wird.

    • Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem Konto auf dem Git-Repository-Host.

    • Ein Amazon-S3-Bucket zum Speichern von Artefakten, einschließlich CodePipeline- und CodeBuild-Artefakten, und aller Artefakte, die aus der SageMaker-AI-Pipeline generiert wurden, wird ausgeführt.

    Wie bereits erwähnt, finden Sie unter Project Walkthrough Using Git Repos von Drittanbietern eine Demonstration, wie diese Vorlage verwendet wird, um ein echtes Projekt zu erstellen.

    • Code-Repository: Git eines Drittanbieters.

      Anmerkung

      Stellen Sie die AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem GitHub-Benutzer oder Ihrer Organisation her. Fügen Sie dieser AWS CodeStar Verbindung ein Tag mit dem Schlüssel sagemaker und dem Wert true hinzu.

    • Automatisierung des CI/CD-Workflows: AWS CodePipeline

    Die folgenden Vorlagen enthalten eine zusätzliche Amazon SageMaker Model Monitor-Vorlage, die die folgenden Arten der Überwachung bietet:

    Modellerstellung, Training, Bereitstellung und Amazon SageMaker Model Monitor

    Diese Vorlage ist eine Erweiterung der MLOps-Vorlage für Modellerstellung, Training und Bereitstellung mit Git-Repositorys unter Verwendung von CodePipeline. Sie umfasst sowohl die Modellerstellungs-, Trainings- und Bereitstellungskomponenten der Vorlage als auch eine zusätzliche Amazon SageMaker Model Monitor-Vorlage, die die folgenden Arten der Überwachung bietet:

    Überwachen eines bereitgestellten Modells

    Sie können diese Vorlage für eine MLOps-Lösung verwenden, um einen oder mehrere der Monitore von Amazon SageMaker AI für Datenqualität, Modellqualität, Modellverzerrung und Modellerklärbarkeit bereitzustellen, um ein bereitgestelltes Modell auf einem SageMaker-AI-Inferenzendpunkt zu überwachen. Diese Vorlage enthält die folgenden Ressourcen:

    • Verknüpfungen mit einem oder mehreren kundenspezifischen Git-Repositorys. Ein Repository enthält Python-Beispielcode, der die von den Monitoren verwendeten Baselines aus dem Amazon SageMaker Model Registry abruft und die Parameter der Vorlage für die Staging- und Produktionsumgebungen aktualisiert. Es enthält auch eine CloudFormation Vorlage zur Erstellung der Amazon SageMaker-Modellmonitore.

    • Eine AWS CodePipeline-Pipeline mit Quell-, Build- und Bereitstellungsschritten. Der Quellschritt verweist auf das CodePipeline-Repository. Im Build-Schritt wird der Code aus diesem Repository abgerufen, die Baseline aus der Model Registry abgerufen und die Vorlagenparameter für die Staging- und Produktionsumgebung aktualisiert. In den Bereitstellungsschritten werden die konfigurierten Monitore in der Staging- und Produktionsumgebung bereitgestellt. Für den manuellen Genehmigungsschritt innerhalb der DeployStaging-Phase müssen Sie überprüfen, ob sich der SageMaker-AI-Produktionsendpunkt InService ist, bevor Sie die Genehmigung genehmigen und zur DeployProd-Phase übergehen.

    • Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar-Verbindung von Ihrem Konto zu Ihrem Konto auf dem Git-Repository-Host.

    • Die Vorlage verwendet denselben Amazon-S3-Bucket, der von der MLOps-Vorlage für Modellbildung, Training und Bereitstellung erstellt wurde, um die Ausgaben der Monitore zu speichern.

    • Zwei Amazon-EventBridge-Ereignisregeln initiieren den Amazon SageMaker Model Monitor AWS CodePipeline jedes Mal, wenn der Staging-Endpunkt von SageMaker AI aktualisiert wird.

    • Code-Repository: Git eines Drittanbieters.

      Anmerkung

      Stellen Sie die AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem GitHub-Benutzer oder Ihrer Organisation her. Fügen Sie dieser AWS CodeStar Verbindung ein Tag mit dem Schlüssel sagemaker und dem Wert true hinzu.

    • CI/CD-Workflow-Automatisierung: Jenkins

    Modellerstellung, Training und Bereitstellung

    Diese Vorlage enthält die folgenden Ressourcen:

    • Verknüpfungen mit einem oder mehreren kundenspezifischen Git-Repositorys.

    • Startcode zur Generierung von Jenkins-Pipelines mit den Schritten Source, Build, Deployment bis Staging und Deployment to Production. Der Quellschritt verweist auf das vom Kunden angegebene Git-Repository. Der Build-Schritt ruft den Code aus diesem Repository ab und generiert zwei CloudFormation-Stacks. Mit den Bereitstellungsschritten werden die CloudFormation-Stacks in ihren jeweiligen Umgebungen bereitgestellt. Zwischen dem Staging-Schritt und dem Produktionsschritt gibt es einen Genehmigungsschritt.

    • Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem Konto auf dem Git-Repository-Host.

    • Ein Amazon-S3-Bucket zum Speichern von Artefakten des SageMaker-AI-Projekts und der SageMaker-AI-Pipeline.

    Die Vorlage stellt die Verknüpfung zwischen Ihrem Projekt und den Quellcodeverwaltungs-Repositorys her. Sie müssen jedoch zusätzliche manuelle Schritte ausführen, um die Kommunikation zwischen Ihrem AWS Konto und Jenkins herzustellen. Die detaillierten Schritte finden Sie unter Erstellen von Amazon-SageMaker-Projekten mithilfe von Drittanbieter-Quellcodeverwaltung und Jenkins.

    Die Anweisungen helfen Ihnen dabei, die im folgenden Diagramm gezeigte Architektur zu erstellen, wobei GitHub in diesem Beispiel das Quellcodeverwaltungs-Repository ist. Wie gezeigt, hängen Sie Ihr Git-Repository an das Projekt an, um Codeversionen einzuchecken und zu verwalten. Jenkins initiiert die Model-Build-Pipeline, wenn es Änderungen am Model-Build-Code im Git-Repository erkennt. Sie verbinden das Projekt auch mit Jenkins, um Ihre Schritte zur Modellbereitstellung zu orchestrieren. Diese beginnen, wenn Sie das in der Modellregistrierung registrierte Modell genehmigen oder wenn Jenkins Änderungen am Modellbereitstellungscode feststellt.

    Der Workflow der Pipeline, der mithilfe der Projektvorlage erstellt wurde.

    Zusammenfassend führen Sie die folgenden Schritte durch die folgenden Aufgaben:

    1. Stellen Sie die Verbindung zwischen Ihren AWS und GitHub-Konten her.

    2. Erstellen Sie das Jenkins-Konto und importieren Sie die benötigten Plugins.

    3. Erstellen Sie die Jenkins IAM-Benutzer- und Berechtigungsrichtlinie.

    4. Legen Sie die AWS Anmeldeinformationen für den Jenkins IAM-Benutzer auf Ihrem Jenkins-Server fest.

    5. Erstellen Sie ein API-Token für die Kommunikation mit Ihrem Jenkins-Server.

    6. Verwenden Sie eine CloudFormation-Vorlage, um eine EventBridge-Regel einzurichten, um die Modellregistrierung auf neu genehmigte Modelle zu überwachen.

    7. Erstellen Sie das SageMaker-AI-Projekt, das Ihre GitHub-Repositorys mit Modellerstellungs- und Bereitstellungscode versorgt.

    8. Erstellen Sie Ihre Jenkins-Modellbau-Pipeline mit dem Model-Build-Seedcode.

    9. Erstellen Sie Ihre Jenkins-Modell-Deploy-Pipeline mit dem Modell-Deploy-Seedcode.

    Diese Vorlage ist eine Erweiterung von MLOps-Vorlagen für Modellerstellung, Training und Bereitstellung mit Git von Drittanbietern mithilfe von CodePipeline. Sie umfasst sowohl die Modellerstellungs-, Trainings- und Bereitstellungskomponenten dieser Vorlage als auch die folgenden Optionen:

    • Schließen Sie die Pipeline zur Erstellung von Verarbeitungsabbildern ein

    • Pipeline zur Erstellung von Trainings-Images einbeziehen

    • Pipeline zur Erstellung von Inferenz-Images einbeziehen

    Für jede der Komponenten, die bei der Projekterstellung ausgewählt wurden, werden die folgenden Komponenten mithilfe der Vorlage erstellt:

    • Ein Amazon-ECR-Repository

    • Ein SageMaker Image

    • Ein CodeCommit-Repository, das eine Dockerfile enthält, die Sie anpassen können

    • Eine CodePipeline, die durch Änderungen am CodePipeline-Repository initiiert wird

    • Ein CodeBuild-Projekt, das ein Docker-Image erstellt und es im Amazon ECR-Repository registriert

    • Eine EventBridge-Regel, die die CodePipeline nach einem Zeitplan initiiert

    Wenn die CodePipeline initiiert wird, erstellt sie einen neuen Docker-Container und registriert ihn bei einem Amazon ECR-Repository. Wenn ein neuer Container im Amazon ECR-Repository registriert wird, wird dem SageMaker-Image ein neuer ImageVersion hinzugefügt. Dadurch wird die Modellerstellungspipeline initiiert, die wiederum die Bereitstellungspipeline initiiert.

    Das neu erstellte Image wird gegebenenfalls bei der Modellerstellung, beim Schulen und bei der Bereitstellung des Workflows verwendet.

    Die der AmazonSageMakerServiceCatalogProductsUseRole Rolle zugeordnete verwaltete Richtlinie wurde am 27. Juli 2021 für die Verwendung mit den Git-Vorlagen von Drittanbietern aktualisiert. Benutzer, die nach diesem Datum Amazon SageMaker Studio (oder Studio Classic) nutzen und Projektvorlagen aktivieren, verwenden die neue Richtlinie. Benutzer, die sich vor diesem Datum angemeldet haben, müssen die Richtlinie aktualisieren, um diese Vorlagen verwenden zu können. Zum Aktualisieren der Richtlinie können Sie einen der folgenden Optionen verwenden:

    • Löschen der Rolle und Umschalten zwischen den Studio-Einstellungen (oder Studio-Classic-Einstellungen)

      1. Löschen Sie AmazonSageMakerServiceCatalogProductsUseRole in der IAM-Konsole.

      2. Wählen Sie in der Systemsteuerung von Studio (oder Studio Classic) die Option Einstellungen bearbeiten aus.

      3. Schalten Sie beide Einstellungen um und wählen Sie dann Übermitteln.

    • Fügen Sie in der IAM-Konsole die folgenden Berechtigungen hinzu: AmazonSageMakerServiceCatalogProductsUseRole

      { "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/sagemaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::sagemaker-*" ] }