Entraînement d'un modèle dans Amazon SageMaker - Amazon SageMaker

Entraînement d'un modèle dans Amazon SageMaker

Le diagramme suivant illustre l'entraînement et le déploiement d'un modèle avec Amazon SageMaker :

La zone désignée SageMaker met en évidence les deux composantes de SageMaker : l'entraînement et le déploiement du modèle.

Pour entraîner un modèle dans SageMaker, vous créez une tâche d'entraînement. La tâche d'entraînement comprend les informations suivantes :

  • L'URL du compartiment Amazon Simple Storage Service (Amazon S3) dans lequel vous avez stocké les données d'entraînement.

  • Les ressources de calcul que SageMaker doit utiliser pour entraîner le modèle. Les ressources de calcul sont des instances de calcul ML gérées par SageMaker.

  • L'URL du compartiment S3 où vous souhaitez stocker la sortie de la tâche.

  • Le chemin d'accès Amazon Elastic Container Registry dans lequel le code d'entraînement est stocké. Pour de plus amples informations, veuillez consulter Chemins de registre Docker et exemple de code.

Pour l'algorithme d'entraînement, vous disposez des options suivantes :

  • Utiliser un algorithme fourni par SageMaker : SageMaker fournit des algorithmes d'entraînement. Si l'un d'entre eux répond à vos besoins, il constitue une excellente solution prête à l'emploi pour entraîner rapidement un modèle. Pour obtenir une liste des algorithmes fournis par SageMaker, veuillez consulter Utiliser les algorithmes intégrés Amazon SageMaker. Pour tester un exercice qui utilise un algorithme fourni par SageMaker, veuillez consulter Mise en route avec Amazon SageMaker.

  • Utiliser SageMaker Debugger : pour inspecter les paramètres et les données d'entraînement tout au long du processus d'entraînement lorsque vous travaillez avec les cadres d'apprentissage TensorFlow, PyTorch et Apache MXNet ou l'algorithme XGBoost. Le Debugger détecte et alerte automatiquement les utilisateurs en cas d'erreurs courantes telles que les valeurs de paramètres devenant trop grandes ou trop petites. Pour de plus amples informations sur l'utilisation du Debugger, veuillez consulter Amazon SageMaker Debugger. Des exemples de blocs-notes de debugger sont disponibles sur Exemples pour Amazon SageMaker Debugger.

  • Utiliser Apache Spark avec SageMaker : SageMaker fournit une bibliothèque que vous pouvez utiliser dans Apache Spark pour entraîner des modèles avec SageMaker. L'utilisation de la bibliothèque fournie par SageMaker est similaire à l'utilisation d'Apache Spark MLLib. Pour de plus amples informations, veuillez consulter Utilisation d'Apache Spark avec Amazon SageMaker.

  • Envoyer du code personnalisé pour l'entraînement avec des cadres de deep learning : vous pouvez envoyer du code Python personnalisé qui utilise TensorFlow, PyTorch ou Apache MXNet pour l'entraînement du modèle. Pour plus d'informations, consultez Utilisation de TensorFlow avec Amazon SageMaker, Utilisation de PyTorch avec Amazon SageMaker et Utilisation d'Apache MXNet avec Amazon SageMaker.

  • Utiliser vos propres algorithmes personnalisés : rassemblez votre code sous forme d'image Docker et spécifiez le chemin de registre de l'image dans un appel d'API SageMaker CreateTrainingJob. Pour de plus amples informations, veuillez consulter Utilisation de conteneurs Docker avec SageMaker .

  • Utiliser un algorithme auquel vous vous abonnez sur AWS Marketplace : pour de plus amples informations, veuillez consulter Recherchez et abonnez-vous aux algorithmes et aux packages de modèles sur AWS Marketplace.

Une fois que vous avez créé la tâche d'entraînement, SageMaker lance les instances de calcul ML et utilise le code d'entraînement et le jeu de données d'entraînement pour entraîner le modèle. Il enregistre les artefacts de modèle résultants et d'autres sorties dans le compartiment S3 que vous avez spécifié à cet effet.

Vous pouvez créer une tâche d'entraînement avec la console ou l'API SageMaker. Pour de plus amples informations sur la création d'une tâche d'entraînement avec l'API, veuillez consulter l'API CreateTrainingJob.

Lorsque vous créez une tâche d'entraînement avec l'API, SageMaker réplique le jeu de données dans son intégralité sur les instances de calcul ML par défaut. Pour que SageMaker réplique un sous-ensemble des données sur chaque instance de calcul ML, vous devez définir le champ S3DataDistributionType sur ShardedByS3Key. Vous pouvez définir ce champ à l'aide du kit SDK de bas niveau. Pour plus d'informations, consultez S3DataDistributionType dans S3DataSource.

Important

Pour empêcher que votre conteneur d'algorithme ne lutte pour de la mémoire, nous en réservons pour les processus système critiques SageMaker sur vos instances de calcul ML. Il se peut donc que vous ne voyiez pas toute la mémoire pour ce type d'instance.