Utiliser les modèles de projet fournis par SageMaker - Amazon SageMaker

Utiliser les modèles de projet fournis par SageMaker

Amazon SageMaker fournit des modèles de projet qui créent l'infrastructure dont vous avez besoin pour créer une solution MLOps pour l'intégration continue et le déploiement continu (CI/CD) de modèles de ML. Utilisez ces modèles pour traiter des données, extraire des fonctions, entraîner et tester des modèles, enregistrer les modèles dans le registre de modèles SageMaker et déployer les modèles pour inférence. Vous pouvez personnaliser le code d'amorçage et les fichiers de configuration en fonction de vos besoins.

Important

Depuis le 27 juillet 2021, les projets SageMaker peuvent utiliser des référentiels Git tiers. Pour de plus amples informations, veuillez consulter . Mettre à jour les projets SageMaker pour utiliser des référentiels Git tiers.

Les modèles de projet SageMaker vous offrent le choix suivant de référentiels de code, d'outils d'automatisation de flux de travail et d'étapes de pipeline :

  • Référentiel de code : référentiels Git AWS CodeCommit ou tiers tels que GitHub et Bitbucket

  • Automatisation des flux CI/CD : AWS CodePipeline ou Jenkins

  • Étapes de pipelines : création et entraînement de modèles, déploiement de modèles, ou les deux

Modèle MLOps pour la création, l'entraînement et le déploiement de modèles

Ce modèle est une combinaison des deux modèles suivants, chacun pouvant être utilisé indépendamment, et contient toutes les ressources fournies dans ces modèles.

  • Référentiels de code: AWS CodeCommit

  • Automatisation des flux CI/CD: AWS CodePipeline

Modèle MLOps pour la création et l'entraînement de modèles

Utilisez ce modèle lorsque vous souhaitez qu'une solution MLOps traite des données, extraie des fonctions, entraîne et teste des modèles, puis enregistre les modèles dans le registre de modèles SageMaker.

Ce modèle fournit les ressources suivantes :

  • Un référentiel AWS CodeCommit qui contient un exemple de code qui crée un pipeline Amazon SageMaker Model Building Pipelines en code Python et montre comment créer et mettre à jour le pipeline SageMaker. Ce référentiel dispose également d'un bloc-notes Jupyter Python que vous pouvez ouvrir et exécuter dans Studio.

  • Un pipeline AWS CodePipeline qui a des étapes source et de création. L'étape source pointe vers le référentiel CodeCommit. L'étape de création récupère le code de ce référentiel, crée et met à jour le pipeline SageMaker, lance l'exécution d'un pipeline et attend la fin de l'exécution du pipeline.

  • Un compartiment Amazon S3 pour stocker les artefacts, y compris les artefacts CodePipeline et CodeBuild, ainsi que tous les artefacts générés à partir des exécutions de pipeline SageMaker.

Modèle MLOps pour le déploiement de modèle

Utilisez ce modèle pour automatiser le déploiement des modèles dans le registre de modèles SageMaker vers des points de terminaison SageMaker pour une inférence en temps réel. Ce modèle reconnaît les modifications apportées au registre de modèles. Lorsqu'une nouvelle version de modèle est enregistrée et approuvée, elle déclenche automatiquement un déploiement.

Le modèle alloue un référentiel CodeCommit avec des fichiers de configuration pour spécifier les étapes de déploiement du modèle, des modèles AWS CloudFormation pour définir les points de terminaison en tant qu'infrastructure, ainsi que le code de configuration pour tester le point de terminaison.

Ce modèle fournit les ressources suivantes :

  • Un référentiel AWS CodeCommit qui contient un exemple de code qui déploie des modèles sur des points de terminaison dans des environnements intermédiaire et de production.

  • Un pipeline AWS CodePipeline qui dispose des étapes source, créer, déployer dans l'environnement intermédiaire et déployer dans l'environnement de production. L'étape source pointe vers le référentiel CodeCommit, et l'étape de création obtient le code de ce référentiel et génère des piles CloudFormation à déployer. Les étapes de déploiement dans l'environnement intermédiaire et de production déploient les piles CloudFormation dans leurs environnements respectifs. Il existe une étape d'approbation manuelle entre les étapes de création intermédiaire et de production, de sorte qu'un ingénieur MLOps doit approuver le modèle avant qu'il ne soit déployé en production.

    Il existe également une étape d'approbation programmatique avec des tests d'espace réservé dans l'exemple de code du référentiel CodeCommit. Vous pouvez ajouter des tests supplémentaires pour remplacer les tests d'espaces réservés.

  • Un compartiment Amazon S3 pour stocker les artefacts, y compris les artefacts CodePipeline et CodeBuild, ainsi que tous les artefacts générés à partir des exécutions de pipeline SageMaker.

  • Événement CloudWatch pour déclencher le pipeline lorsqu'une version de package de modèle est approuvée ou rejetée.

Modèle MLOps pour la création de modèles, l'entraînement, le déploiement et Amazon SageMaker Model Monitor

Ce modèle est une extension du modèle MLOps pour la création de modèles, l'entraînement et le déploiement. Il inclut à la fois les composants de création de modèles, d'entraînement et de déploiement, ainsi qu'un modèle Amazon SageMaker Model Monitor supplémentaire qui assure les types de surveillance suivants :

  • Référentiels de code : AWS CodeCommit

  • Automation du flux de travail CI/CD : AWS CodePipeline

Modèle MLOps pour Amazon SageMaker Model Monitor

Vous pouvez utiliser ce modèle qu'une solution MLOps déploie un ou plusieurs des contrôleurs Amazon SageMaker de qualité des données, de qualité du modèle, de biais de modèle et d'explicabilité des modèles afin de contrôler un modèle déployé sur un point de terminaison d'inférence SageMaker.

Ce modèle fournit les ressources suivantes :

  • Référentiel AWS CodeCommit qui contient un exemple de code Python obtenant les références utilisées par les contrôleurs de SageMaker Model Registry, et qui met à jour les paramètres du modèle pour les environnements intermédiaires et de production. Il contient également un modèle AWS CloudFormation pour créer les contrôleurs Amazon SageMaker Model Monitor.

  • Un pipeline AWS CodePipeline qui a des étapes source, de création et de déploiement. L'étape source pointe vers le référentiel CodePipeline. L'étape de création récupère le code de ce référentiel, obtient la références du registre Model Registry et met à jour les paramètres du modèle pour les environnements intermédiaires et de production. Les étapes de déploiement déploient les contrôleurs configurés dans les environnements intermédiaires et de production. L'étape d'approbation manuelle, au sein de l'étape DeployStaging, exige que vous vérifiiez que le point de terminaison SageMaker de production est InService avant d'approuver et de passer à l'étape DeployProd.

  • Le modèle utilise le compartiment S3 créé par le modèle MLOps pour la création de modèles, l'entraînement et le déploiement afin de stocker les sorties des contrôleurs.

  • Deux règles d'événements Amazon EventBridge déclenchent Amazon SageMaker Model Monitor AWS CodePipeline chaque fois que le point de terminaison SageMaker intermédiaire est mis à jour ou qu'une modification de code est validée dans le référentiel CodePipeline.

Modèle MLOps pour la création d'images, la création de modèles et le déploiement de modèles

Ce modèle est une extension de Modèle MLOps pour la création, l'entraînement et le déploiement de modèles. Il inclut à la fois les composants de création du modèle, d'entraînement et de déploiement de ce modèle, ainsi que les options suivantes :

  • Inclure le traitement d'un pipeline de création d'image

  • Inclure l'entraînement d'une pipeline de création d'image

  • Inclure l'inférence d'une pipeline de création d'image

Pour chacun des composants sélectionnés lors de la création du projet, les éléments suivants sont créés à l'aide du modèle :

  • Un référentiel Amazon ECR

  • Une image SageMaker

  • Un référentiel CodeCommit contenant un Dockerfile que vous pouvez personnaliser

  • Un CodePipeline déclenché par des modifications apportées au référentiel CodePipeline

  • Un projet CodeBuild qui crée une image Docker et l'enregistre dans le référentiel Amazon ECR

  • Une règle EventBridge qui déclenche le CodePipeline selon un planificateur

Lorsque le CodePipeline est déclenché, il crée un nouveau conteneur Docker et l'enregistre auprès d'un référentiel Amazon ECR. Lorsqu'un nouveau conteneur est enregistré auprès du référentiel Amazon ECR, une nouvelle ImageVersion est ajoutée à l'image SageMaker. Cela déclenche le pipeline de création de modèle, qui à son tour initie le pipeline de déploiement.

L'image nouvellement créée est utilisée dans les parties de création de modèle, d'entraînement et de déploiement du flux de travail, le cas échéant.

Modèle MLOps pour la création, l'entraînement et le déploiement de modèles avec des référentiels Git tiers à l'aide de CodePipeline

  • Référentiel de code : Git tiers

  • Automatisation des flux CI/CD: AWS CodePipeline

Ce modèle fournit les ressources suivantes :

  • Associations avec un ou plusieurs référentiels Git spécifiés par le client.

  • Un pipeline AWS CodePipeline qui dispose des étapes source, créer, déployer dans l'environnement intermédiaire et déployer dans l'environnement de production. L'étape source pointe vers le référentiel Git tiers et l'étape de création obtient le code de ce référentiel et génère des piles CloudFormation à déployer. Les étapes de déploiement dans l'environnement intermédiaire et de production déploient les piles CloudFormation dans leurs environnements respectifs. Il existe une étape d'approbation manuelle entre les étapes de création intermédiaire et de production, de sorte qu'un ingénieur MLOps doit approuver le modèle avant qu'il ne soit déployé en production.

  • Un projet AWS CodeBuild pour remplir les référentiels Git avec les informations de code de base. Cela nécessite une connexion AWS CodeStar à partir de votre compte AWS vers votre compte sur l'hôte du référentiel Git.

  • Un compartiment Amazon S3 pour stocker les artefacts, y compris les artefacts CodePipeline et CodeBuild, ainsi que tous les artefacts générés à partir des exécutions de pipeline SageMaker.

Modèle MLOps pour la création, l'entraînement et le déploiement de modèles avec des référentiels Git tiers à l'aide de Jenkins

Attachez votre propre référentiel Git au projet pour l'archivage et la gestion des versions de code. Connectez le projet à Jenkins pour orchestrer les étapes de déploiement de votre modèle. Démarrez le flux de déploiement de modèle en approuvant le modèle enregistré dans le registre de modèles pour le déploiement manuellement ou automatiquement.

  • Référentiel de code : Git tiers

  • Automatisation des flux CI/CD : Jenkins

Ce modèle fournit les ressources suivantes :

  • Associations avec un ou plusieurs référentiels Git spécifiés par le client.

  • Code de base pour générer des pipelines Jenkins qui disposent des étapes source, créer, déployer dans l'environnement intermédiaire et déployer dans l'environnement de production. L'étape source pointe vers le référentiel Git spécifié par le client. L'étape de création récupère le code de ce référentiel et génère deux piles CloudFormation. Les étapes de déploiement déploient les piles CloudFormation dans leurs environnements respectifs. Il existe une étape d'approbation entre l'étape intermédiaire et l'étape de production.

  • Un projet AWS CodeBuild pour remplir les référentiels Git avec les informations de code de base. Cela nécessite une connexion AWS CodeStar à partir de votre compte AWS vers votre compte sur l'hôte du référentiel Git.

  • Un compartiment Amazon S3 pour stocker les artefacts du projet SageMaker et du pipeline SageMaker.

Mettre à jour les projets SageMaker pour utiliser des référentiels Git tiers

La politique gérée attachée au rôle AmazonSageMakerServiceCatalogProductsUseRole a été mise à jour le 27 juillet 2021 en vue d'une utilisation avec les modèles Git tiers. Les utilisateurs qui ont intégré Amazon SageMaker Studio après cette date et qui ont activé les modèles de projet utilisent la nouvelle politique. Les utilisateurs qui ont effectué l'onboarding avant cette date doivent mettre à jour la politique pour utiliser ces modèles. Utilisez l'une des options suivantes pour mettre à jour la politique :

  • Supprimer le rôle et basculer les paramètres Studio

    1. Dans la console IAM, supprimez AmazonSageMakerServiceCatalogProductsUseRole.

    2. Dans le panneau de configuration de Studio, choisissez Edit Settings (Modifier les paramètres).

    3. Basculez les deux paramètres, puis choisissez Submit (Envoyer).

  • Dans la console IAM, ajoutez les autorisations suivantes à . 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-*" ] }