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

Qu'est-ce qu'un projet SageMaker ?

En utilisant un projet SageMaker, les équipes de scientifiques des données et de développeurs peuvent travailler sur les problèmes métier de machine learning en créant un projet SageMaker avec un modèle MLOps fourni par SageMaker qui automatise la création de modèles et les pipelines de déploiement à l'aide de l'intégration continue et de la livraison continue (CI/CD). Un modèle fourni par SageMaker alloue la configuration initiale requise pour un système MLOps complet de bout en bout, y compris la création, l'entraînement et le déploiement de modèles, selon le modèle que vous choisissez. Vous pouvez également fournir votre propre modèle personnalisé pour allouer les ressources dont vous avez besoin pour votre système MLOps.

Un projet SageMaker est un produit alloué par AWS Service Catalog qui vous permet de créer facilement une solution de ML de bout en bout. Pour obtenir des informations sur AWS Service Catalog, veuillez consulter Présentation de AWS Service Catalog.

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

  • Exécutions de pipeline

  • Modèles enregistrés

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

  • Ensembles de données

  • Produits AWS Service Catalog

  • AWS CodePipelinePipelines et pipelines Jenkins

  • AWS CodeCommitRéférentiels et référentiels Git tiers

Un projet SageMaker typique 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 la création et le déploiement de solutions de ML. Ce sont des exemples pratiques que vous pouvez cloner localement pour explorer le code fourni par SageMaker et le modifier en fonction de vos besoins. Vous possédez ce code et vous pouvez utiliser les référentiels comme contrôle de version pour votre travail.

  • 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.

  • Pipeline CodePipeline ou pipeline 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 Présentation de 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 le pipeline SageMaker s'exécute et que la version de modèle résultante est acceptée à l'étape de validation conditionnelle, une nouvelle version de modèle est déployée sur un point de terminaison SageMaker.

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, lorsque vous avez une équipe de scientifiques des données et d'ingénieurs de ML travaillant sur un problème de ML, vous avez besoin d'un moyen plus évolutif de maintenir la cohérence du code et d'avoir un contrôle de version plus strict. Le fait d'avoir le code uniquement dans les fichiers de bloc-notes complique la collaboration et risque de perdre du code ou des artefacts de modèle si le bloc-notes est accidentellement supprimé ou modifié. En utilisant les projets SageMaker, vous pouvez gérer les versions de vos référentiels Git afin de collaborer plus efficacement entre les équipes, d'assurer la cohérence du code et de permettre le CI/CD.

Outre la gestion du code, les projets SageMaker autorisent des MLOps pour la création de modèles, le déploiement de modèles et les flux de ML de bout en bout. Vous pouvez exécuter des tâches d'entraînement ou des pipelines SageMaker pour créer des modèles dans Amazon SageMaker Studio. Toutefois, si vous souhaitez créer un système de CI/CD qui génère des modèles basés sur des déclencheurs, par exemple lorsque quelqu'un archive une modification de code, envisagez alors de créer un projet SageMaker et d'utiliser un modèle fourni par SageMaker. Pour obtenir la liste des modèles de projet fournis par SageMaker, veuillez consulter Utiliser les modèles de projet fournis par SageMaker.

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 au sein de 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.