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

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser les SageMaker modèles de projet fournis

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) des modèles de machine learning. Utilisez ces modèles pour traiter les données, extraire des fonctionnalités, entraîner et tester des modèles, enregistrer les modèles dans le registre des SageMaker modèles et déployer les modèles à des fins d'inférence. Vous pouvez personnaliser le code d'amorçage et les fichiers de configuration en fonction de vos besoins.

Important

À compter du 25 juillet 2022, nous avons besoin de rôles supplémentaires pour utiliser les modèles de projet. Pour obtenir la liste complète des rôles requis et les instructions permettant de les créer, consultez SageMaker Autorisations de studio requises pour utiliser les projets. Si vous n'avez pas les nouveaux rôles, le message d'erreur « n'CodePipeline est pas autorisé à s'exécuter AssumeRole sur le rôle arn:aws:iam : AmazonSageMakerServiceCatalogProductsCode PipelineRole :xxx:role/service-role/ » s'affichera lorsque vous essayez de créer un nouveau projet et que vous ne pouvez pas continuer.

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

  • Référentiel de code : AWS CodeCommit ou référentiels Git tiers tels que GitHub 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

La discussion suivante fournit une vue d'ensemble de chaque modèle que vous pouvez choisir lors de la création de votre SageMaker projet. Vous pouvez également consulter les modèles disponibles dans Studio Classic en suivant l'étape 1 : Création du projet ou procédure pas à pas.

Pour step-by-step obtenir des instructions sur la création d'un véritable projet, vous pouvez suivre l'une des procédures détaillées du projet :

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, extrait des fonctionnalités, entraîne et teste des modèles, et enregistre les modèles dans le registre des SageMaker modèles.

Ce modèle fournit les ressources suivantes :

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

  • Un pipeline AWS CodePipeline qui a des étapes source et de création. L'étape source pointe vers le CodeCommit référentiel. L'étape de construction extrait le code de ce référentiel, crée et met à jour le SageMaker pipeline, lance une exécution de pipeline et attend que l'exécution du pipeline soit terminée.

  • Un compartiment Amazon S3 pour stocker les artefacts, y compris CodePipeline les CodeBuild artefacts, et tous les artefacts générés par le SageMaker pipeline s'exécute.

Le schéma suivant illustre le flux de travail et les ressources AWS utilisées par ce modèle pour vous aider à créer et à former vos modèles.

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

Utilisez ce modèle pour automatiser le déploiement des modèles du registre de SageMaker modèles sur les SageMaker points de terminaison 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 fournit un CodeCommit référentiel contenant des fichiers de configuration pour spécifier les étapes de déploiement du modèle, des AWS CloudFormation modèles pour définir les points de terminaison en tant qu'infrastructure et un code de départ 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 AWS CodePipeline pipeline qui comprend la source, la construction et deploy-to-production les étapes. deploy-to-staging L'étape source pointe vers le CodeCommit référentiel, et l'étape de génération extrait le code de ce référentiel et génère des CloudFormation piles à déployer. Les deploy-to-production étapes deploy-to-staging et déploient les CloudFormation piles 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 par espace réservé dans l'exemple de code du CodeCommit référentiel. 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 CodePipeline les CodeBuild artefacts, et tous les artefacts générés par le SageMaker pipeline s'exécute.

  • Un CloudWatch événement destiné à lancer le pipeline lorsqu'une version de package de modèle est approuvée ou rejetée.

Le schéma suivant illustre le flux de travail et les ressources AWS utilisées par ce modèle pour vous aider à déployer vos modèles.

Comme mentionné précédemment, consultez Démonstration du projet pour obtenir une démonstration qui utilise ce modèle pour créer un vrai projet.

Modèle MLops pour la création de modèles, la formation, 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, de formation et de déploiement du modèle, ainsi qu'un SageMaker modèle Amazon Model Monitor supplémentaire qui fournit les types de surveillance suivants :

  • Référentiels de code : AWS CodeCommit

  • Automatisation des flux CI/CD : AWS CodePipeline

Modèle MLops pour Amazon Model Monitor SageMaker

Vous pouvez utiliser ce modèle pour une solution MLOps afin de déployer un ou plusieurs moniteurs de la qualité des SageMaker données, de la qualité du modèle, du biais du modèle et de l'explicabilité du modèle Amazon afin de surveiller un modèle déployé sur un point de terminaison d'inférence. SageMaker

Ce modèle fournit les ressources suivantes :

  • Un AWS CodeCommit référentiel contenant un exemple de code Python qui extrait les lignes de base utilisées par les moniteurs à partir du SageMaker Model Registry et met à jour les paramètres du modèle pour les environnements de préparation et de production. Il contient également un AWS CloudFormation modèle pour créer les Amazon SageMaker Model Monitors.

  • Un AWS CodePipeline pipeline comportant des étapes de source, de création et de déploiement. L'étape source pointe vers le CodePipeline référentiel. 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'DeployStagingétape, vous oblige à vérifier que le SageMaker point final de production se trouve InService bien avant d'approuver et de passer à l'DeployProdétape.

  • 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 Amazon EventBridge Events lancent Amazon SageMaker Model Monitor AWS CodePipeline chaque fois que le point de SageMaker terminaison intermédiaire est mis à jour ou qu'une modification de code est validée dans le CodePipeline référentiel.

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 SageMaker image

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

  • A CodePipeline qui est initié par des modifications apportées au CodePipeline référentiel

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

  • EventBridge Règle qui CodePipeline initie le

Lorsque le CodePipeline est lancé, il crée un nouveau conteneur Docker et l'enregistre dans un référentiel Amazon ECR. Lorsqu'un nouveau conteneur est enregistré dans le référentiel Amazon ECR, un nouveau conteneur ImageVersion est ajouté à l' SageMaker image. 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 de modèles, la formation et le déploiement avec des référentiels Git tiers à l'aide de CodePipeline

  • Référentiel de code : Git tiers Établissez la AWS CodeStar connexion entre votre AWS compte et votre GitHub utilisateur ou votre organisation. Ajoutez une balise avec la clé sagemaker et la valeur true à cette connexion AWS CodeStar.

  • 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 AWS CodePipeline pipeline qui comprend la source, la construction et deploy-to-production les étapes. deploy-to-staging L'étape source pointe vers le référentiel Git tiers et l'étape de compilation extrait le code de ce référentiel et génère des CloudFormation piles à déployer. Les deploy-to-production étapes deploy-to-staging et déploient les CloudFormation piles 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 CodePipeline les CodeBuild artefacts, et tous les artefacts générés par le SageMaker pipeline s'exécute.

Comme mentionné précédemment, consultez Démonstration du projet utilisant des dépôts Git tiers (Français non garanti) pour obtenir une démonstration qui utilise ce modèle pour créer un vrai projet.

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

  • Référentiel de code : Git tiers Établissez la AWS CodeStar connexion entre votre AWS compte et votre GitHub utilisateur ou votre organisation. Ajoutez une balise avec la clé sagemaker et la valeur true à cette connexion AWS CodeStar.

  • 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 départ pour générer des pipelines Jenkins contenant la source, la version et deploy-to-production les étapes. deploy-to-staging L'étape source pointe vers le référentiel Git spécifié par le client. L'étape de construction extrait le code de ce référentiel et génère deux CloudFormation piles. Les étapes de déploiement déploient les CloudFormation piles 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 SageMaker projet et du SageMaker pipeline.

Le modèle crée l'association entre votre projet et les référentiels de contrôle des sources, mais vous devez effectuer des étapes manuelles supplémentaires pour établir la communication entre votre compte AWS et Jenkins. Pour les étapes détaillées, consultez Créer des SageMaker projets Amazon à l'aide d'un contrôle de source tiers et de Jenkins.

Les instructions vous aident à créer l'architecture illustrée dans le schéma suivant, avec GitHub comme référentiel de contrôle de source dans cet exemple. Comme indiqué, vous attachez votre référentiel Git au projet pour enregistrer et gérer les versions du code. Jenkins initie le pipeline de création de modèle lorsqu'il détecte des modifications du code de création de modèle dans le référentiel Git. Vous connectez également le projet à Jenkins pour orchestrer les étapes de déploiement de vos modèles, qui démarrent lorsque vous approuvez le modèle enregistré dans le registre des modèles, ou lorsque Jenkins détecte des modifications du code de déploiement du modèle.

En résumé, les étapes vous guident à travers les tâches suivantes :

  1. Établissez le lien entre votre GitHub compte AWS et votre compte.

  2. Créer le compte Jenkins et importer les plugins nécessaires.

  3. Créer la politique IAM de Jenkins pour les utilisateurs et les autorisations.

  4. Définir les informations d'identification AWS de l'utilisateur IAM de Jenkins sur votre serveur Jenkins.

  5. Créer un jeton API pour la communication avec votre serveur Jenkins.

  6. Utilisez un CloudFormation modèle pour définir une EventBridge règle afin de surveiller les modèles récemment approuvés dans le registre des modèles.

  7. Créez le SageMaker projet, qui introduit dans vos GitHub référentiels le code de construction et de déploiement du modèle.

  8. Créer votre pipeline de création de modèle Jenkins avec le code initial de création de modèle.

  9. Créer votre pipeline de déploiement de modèle Jenkins avec le code initial de déploiement de modèle.

Déploiement de modèles pour Salesforce

  • Référentiels de code : AWS CodeCommit

  • Automatisation des flux CI/CD : AWS CodePipeline

Ce modèle fournit les ressources suivantes :

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

  • Un pipeline AWS CodePipeline qui a des étapes source et de création. L'étape source pointe vers le CodeCommit référentiel. L'étape de génération extrait le code du référentiel, crée et met à jour le SageMaker pipeline, lance une exécution de pipeline et attend que l'exécution du pipeline soit terminée.

  • Un compartiment Amazon S3 pour stocker les artefacts, y compris CodePipeline les CodeBuild artefacts, et tous les artefacts générés par le SageMaker pipeline s'exécute.

Votre administrateur devra peut-être effectuer une configuration supplémentaire pour permettre l'accès aux données depuis Salesforce Data Cloud vers SageMaker Studio afin de créer des modèles d'IA/ML. Consultez la présentation de la solution dans le billet de blog Utilisez l'intégration Amazon SageMaker et Salesforce Data Cloud pour alimenter vos applications Salesforce avec l'IA/ML pour obtenir des informations et des instructions détaillées.

Le diagramme suivant illustre le flux de travail de haut niveau utilisé par ce modèle pour vous aider à créer et à entraîner vos modèles. Après avoir établi une connexion entre Salesforce Data Cloud et Data Wrangler et prétraité vos données, utilisez le modèle de projet Déploiement de modèles pour Salesforce pour automatiser l'entraînement et le déploiement des modèles. Le modèle fournit un code de déploiement de modèle personnalisable et un exemple de carnet de notes AWS CodePipeline pour entraîner votre modèle et l'enregistrer dans le registre des SageMaker modèles. Une fois le modèle approuvé, le point de terminaison est exposé à Salesforce sous forme d'API via API Gateway, et les clients peuvent commencer à faire des prédictions avec le modèle déployé depuis Salesforce.

Note

Ce modèle autorise les versions 1.0 et 1.1 de politique TLS (Transport Layer Security) pour la configuration d'API Gateway. Vous pouvez renforcer la sécurité de cette configuration avec des noms de domaine personnalisés. Pour plus d'informations, consultez Configuration des noms de domaine personnalisés pour les API REST.


            Diagramme simplifié des étapes utilisées par le modèle de projet Salesforce.

Le billet de blog Utiliser l'intégration Amazon SageMaker et Salesforce Data Cloud pour alimenter vos applications Salesforce avec l'IA/ML fournit des instructions détaillées pour vous guider dans les étapes suivantes :

  1. Sélectionnez le modèle de projet Déploiement de modèles pour Salesforce et indiquez le nom du gestionnaire de secrets.

  2. Clonez le référentiel pour utiliser le SageMaker bloc-notes personnalisable fourni et le code de déploiement du modèle.

  3. Prétraitez vos données avec Data Wrangler.

    1. Créez une connexion à Salesforce Data Cloud et importez les données dans Data Wrangler.

    2. Utilisez Data Wrangler pour préparer les données à l'aide de quelques exemples de transformations.

    3. Lancez une tâche de traitement pour traiter les données à l'aide de votre configuration de Data Wrangler.

  4. Entraînez le modèle.

  5. Enregistrez votre modèle dans le registre des modèles.

  6. Approuvez votre modèle dans le registre des modèles.

  7. Affichez votre point de terminaison dans la SageMaker console.

  8. Invoquez l'URL de l'API depuis Salesforce Einstein Studio pour enregistrer et utiliser les inférences de modèle dans Einstein Studio.

Le schéma suivant montre plus en détail le flux de travail et les AWS ressources utilisés par le modèle de SageMaker projet avec Salesforce Data Cloud Integration.


            Diagramme des étapes et des ressources utilisées par le modèle de projet Salesforce.

Mettre à jour SageMaker les projets 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 intègrent Amazon SageMaker Studio Classic après cette date et activent 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 activer les paramètres de Studio Classic

    1. Dans la console IAM, supprimez AmazonSageMakerServiceCatalogProductsUseRole.

    2. Dans le panneau de configuration de Studio Classic, choisissez 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-*" ] }