Qu'est-ce qu'un projet SageMaker ? - Amazon SageMaker

Qu'est-ce qu'un projet SageMaker ?

SageMaker Projects aide les organisations à mettre en place et à standardiser des environnements de développement pour les scientifiques des données, et des systèmes CI/CD pour les ingénieurs MLOps. Les projets permettent également aux organisations de configurer la gestion des dépendances, la gestion du référentiel de code, la reproductibilité de la génération et le partage d'artefacts.

Vous pouvez approvisionner SageMaker Projects à partir du catalogue de services AWS en utilisant des modèles personnalisés ou fournis par SageMaker. Pour obtenir des informations sur le catalogue de services AWS, consultez What Is AWS Service Catalog. Avec SageMaker Projects, les ingénieurs MLOps et les administrateurs de l'organisation peuvent définir leurs propres modèles ou utiliser des modèles fournis par SageMaker. Les modèles fournis par SageMaker amorcent le flux ML avec un contrôle de version source, des pipelines ML automatisés et un ensemble de code permettant de lancer rapidement l'itération sur des cas d'utilisation ML.

Quand faut-il utiliser un projet SageMaker ?

Bien que les blocs-notes soient utiles pour la création et l'expérimentation de modèles, une équipe de scientifiques des données et d'ingénieurs de ML partageant du code ont besoin d'un moyen plus évolutif de maintenir la cohérence du code et un contrôle de version strict.

Chaque organisation possède son propre ensemble de normes et de pratiques qui assurent la sécurité et la gouvernance de son environnement AWS. SageMaker fournit un ensemble de modèles propriétaires pour les organisations qui souhaitent démarrer rapidement avec les flux ML et CI/CD. Les modèles incluent des projets qui utilisent des services AWS natifs pour CI/CD, tels que AWS CodeBuild, AWS CodePipeline et AWS CodeCommit. Les modèles offrent également la possibilité de créer des projets utilisant des outils tiers, tels que Jenkins et GitHub. Pour obtenir la liste des modèles de projet fournis par SageMaker, veuillez consulter Utiliser les modèles de projet fournis par SageMaker.

Les organisations ont souvent besoin d'appliquer un contrôle strict sur les ressources MLOps qu'elles approvisionnent et gèrent. Cette responsabilité implique certaines tâches, notamment la configuration des rôles et des politiques IAM, l'application de balises de ressources, l'application du chiffrement et le découplage des ressources sur plusieurs comptes. SageMaker Projects peut prendre en charge toutes ces tâches grâce à des offres de modèles personnalisés avec lesquelles les organisations utilisent des modèles AWS CloudFormation pour définir les ressources nécessaires à un flux ML. Les scientifiques des données peuvent choisir un modèle pour amorcer et préconfigurer leur flux ML. Ces modèles personnalisés sont créés en tant que produits AWS Service Catalog et vous pouvez les approvisionner dans l'interface utilisateur Studio sous Organization Templates (Modèles d'organisation). AWS Service Catalog est un service qui permet aux organisations de créer et gérer des catalogues de produits qui sont approuvés pour être utilisés sur AWS. Pour plus d'informations sur la création de modèles personnalisés, consultez Build Custom SageMaker Project Templates – Best Practices.

Les projets SageMaker peuvent vous aider à gérer vos référentiels Git afin de collaborer plus efficacement entre les équipes, d'assurer la cohérence du code et de prendre en charge CI/CD. Les projets SageMaker peuvent vous aider dans les tâches suivantes :

  • Organiser toutes les entités du cycle de vie ML dans un seul projet.

  • Établir une approche en un seul clic pour configurer une infrastructure ML standard pour l'entraînement et le déploiement des modèles, qui intègre les bonnes pratiques.

  • Créer et partager des modèles pour l'infrastructure ML afin de répondre à plusieurs cas d'utilisation.

  • Tirer parti des modèles prédéfinis fournis par SageMaker pour commencer rapidement à vous concentrer sur la création de modèles, ou à créer des modèles personnalisés avec des ressources et des directives spécifiques à l'organisation.

  • S'intégrer aux outils de votre choix en étendant les modèles de projet. Pour obtenir un exemple, consultez Create a SageMaker Project to integrate with GitLab and GitLab Pipelines.

  • Organiser toutes les entités du cycle de vie ML dans un seul projet.

Que contient un projet SageMaker ?

Les clients ont la possibilité de configurer leurs projets avec les ressources qui répondent le mieux à leur cas d'utilisation. L'exemple ci-dessous présente la configuration MLOps pour un flux ML, y compris l'entraînement et le déploiement des modèles.

Un projet type avec un modèle fourni par SageMaker peut inclure les éléments suivants :

  • Un ou plusieurs référentiels avec un exemple de code pour créer et déployer des solutions de ML. Ce sont des exemples pratiques que vous pouvez cloner localement et modifier en fonction de vos besoins. Vous possédez ce code et vous pouvez tirer parti des référentiels contrôlés par version pour vos tâches.

  • Pipeline SageMaker qui définit les étapes de préparation des données, d'entraînement, d'évaluation de modèles et de déploiement de modèles, comme illustré dans le diagramme suivant.

  • Pipeline CodePipeline ou Jenkins qui exécute votre pipeline SageMaker chaque fois que vous archivez une nouvelle version du code. Pour obtenir des informations sur CodePipeline, veuillez consulter What is AWS CodePipeline. Pour obtenir des informations sur Jenkins, veuillez consulter la section Documentation utilisateur Jenkins.

  • Groupe de modèles contenant des versions de modèle. Chaque fois que vous approuvez la version du modèle résultante à partir d'une exécution de pipeline SageMaker, vous pouvez la déployer sur un point de terminaison SageMaker.

Chaque projet SageMaker possède un nom et un ID uniques qui sont appliqués en tant que balises à toutes les ressources SageMaker et AWS créées dans le projet. Avec le nom et l'ID, vous pouvez afficher toutes les entités associées à votre projet. Il s'agit des licences suivantes :

  • Pipelines

  • Modèles enregistrés

  • Modèles déployés (points de terminaison)

  • Ensembles de données

  • Produits AWS Service Catalog

  • Pipelines CodePipeline et Jenkins

  • CodeCommit et référentiels Git tiers

Dois-je créer un projet pour utiliser des pipelines SageMaker ?

Non. Les pipelines SageMaker sont des entités autonomes, tout comme les tâches d'entraînement, les tâches de traitement et les autres tâches SageMaker. Vous pouvez créer, mettre à jour et exécuter des pipelines directement dans un bloc-notes à l'aide du kit SDK Python SageMaker sans utiliser de projet SageMaker.

Les projets fournissent une couche supplémentaire pour vous aider à organiser votre code et à adopter les bonnes pratiques opérationnelles dont vous avez besoin pour un système de qualité de la production.