Utilisation de conteneurs Docker pour créer des modèles - 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.

Utilisation de conteneurs Docker pour créer des modèles

Amazon SageMaker utilise largement les conteneurs Docker pour les tâches de création et d'exécution. SageMaker fournit des images Docker prédéfinies pour ses algorithmes intégrés et les frameworks d'apprentissage profond pris en charge utilisés pour la formation et l'inférence. L'utilisation de conteneurs vous permet d'entraîner des algorithmes de machine learning et de déployer des modèles de manière rapide et fiable à n'importe quelle échelle. Les rubriques de cette section montrent comment déployer ces conteneurs pour vos propres cas d'utilisation. Pour plus d'informations sur la façon d'apporter vos propres conteneurs pour les utiliser avec Amazon SageMaker Studio Classic, consultezApportez votre propre SageMaker image.

Scénarios d'exécution de scripts, d'apprentissage d'algorithmes ou de déploiement de modèles avec SageMaker

Amazon utilise SageMaker toujours des conteneurs Docker pour exécuter des scripts, entraîner des algorithmes et déployer des modèles. Votre niveau d'engagement avec les conteneurs dépend de votre cas d'utilisation.

Cas d'utilisation de conteneurs Docker prédéfinis avec SageMaker

Tenez compte des cas d'utilisation suivants lorsque vous utilisez des conteneurs avec SageMaker :

  • SageMaker Algorithme prédéfini : utilisez l'image fournie avec l'algorithme intégré. Consultez Utiliser les algorithmes SageMaker intégrés ou les modèles préentraînés d'Amazon pour plus d'informations.

  • Modèle personnalisé avec SageMaker conteneur prédéfini : si vous entraînez ou déployez un modèle personnalisé, mais que vous utilisez un framework doté d'un SageMaker conteneur prédéfini incluant TensorFlow et PyTorch, choisissez l'une des options suivantes :

    • Si vous n'avez pas besoin d'un package personnalisé et que le conteneur inclut déjà tous les packages requis : utilisez l'image Docker prédéfinie associée à votre framework. Pour plus d’informations, consultez Utiliser des images SageMaker Docker prédéfinies.

    • Si vous avez besoin d'installer un package personnalisé dans l'un des conteneurs préconçus : confirmez que l'image Docker prédéfinie autorise un fichier requirements.txt ou étendez le conteneur préconçu en fonction des cas d'utilisation suivants.

Cas d'utilisation pour étendre un conteneur Docker préconçu

Voici des cas d'utilisation pour étendre un conteneur Docker préconçu :

  • Vous ne pouvez pas importer les dépendances : étendez l'image Docker prédéfinie associée à votre framework. Pour plus d’informations, consultez Extension d'un conteneur préconçu.

  • Vous ne pouvez pas importer les dépendances dans le conteneur préconçu et celui-ci prend en charge le fichier requirements.txt : ajoutez toutes les dépendances requises dans le fichier requirements.txt. Les frameworks suivants prennent en charge l'utilisation de requirements.txt.

Cas d'utilisation pour créer votre propre conteneur

Si vous créez ou entraînez un modèle personnalisé et que vous avez besoin d'un framework personnalisé ne comportant pas d'image prédéfinie, créez un conteneur personnalisé.

L'arbre de décision suivant illustre les informations contenues dans les trois listes précédentes : Cas d'utilisation pour l'utilisation de conteneurs Docker prédéfinis avec SageMaker ; Cas d'utilisation pour étendre un conteneur Docker prédéfini ; Cas d'utilisation pour créer votre propre conteneur.


                    Arbre de décision pour choisir de créer un conteneur personnalisé, d'étendre un conteneur ou d'utiliser un conteneur préconçu.

À titre d'exemple d'utilisation par un client, pour former et déployer un TensorFlow modèle, reportez-vous aux sections précédentes de Cas d'utilisation pour déterminer le conteneur dont vous avez besoin. Voici quelques considérations que vous pouvez prendre en compte pour choisir votre conteneur :

Après avoir déterminé le type de conteneur dont vous avez besoin, les informations suivantes fournissent des détails sur les options précédemment répertoriées.

  • Utilisez un SageMaker algorithme ou un framework intégré. Dans la plupart des cas d'utilisation, vous pouvez utiliser les algorithmes et les cadres intégrés sans vous soucier des conteneurs. Vous pouvez entraîner et déployer ces algorithmes depuis la SageMaker console, le AWS Command Line Interface (AWS CLI), un bloc-notes Python ou le SDK Amazon SageMaker Python. Vous pouvez le faire en spécifiant l'algorithme ou la version du framework lors de la création de votre estimateur. Les algorithmes intégrés disponibles sont détaillés et décrits dans la rubrique Utilisez les algorithmes SageMaker intégrés d'Amazon ou des modèles pré-entraînés. Pour plus d'informations sur les frameworks disponibles, consultez Frameworks et langages de ML. Pour un exemple de formation et de déploiement d'un algorithme intégré à l'aide d'un bloc-notes Jupyter exécuté dans une instance de SageMaker bloc-notes, consultez la Mise en route rubrique.

  • Utilisez des images de SageMaker conteneur prédéfinies. Vous pouvez également utiliser les algorithmes et les frameworks intégrés à l'aide de conteneurs Docker. SageMaker fournit des conteneurs pour ses algorithmes intégrés et des images Docker prédéfinies pour certains des frameworks d'apprentissage automatique les plus courants, tels qu'Apache MXnet, TensorFlow, PyTorch et Chainer. Pour une liste complète des SageMaker images disponibles, consultez Available Deep Learning Containers Images. Il prend également en charge les bibliothèques de machine learning telles que scikit-learn et Spark ML. Si vous utilisez le SDK Amazon SageMaker Python, vous pouvez déployer les conteneurs en transmettant l'URI complet du conteneur à leur classe de SageMaker SDK Estimator respective. Pour la liste complète des frameworks d'apprentissage profond actuellement pris en charge par SageMaker, voirImages SageMaker Docker préconçues pour le deep learning. Pour obtenir des informations sur les images de conteneur préconçues scikit-learn et SparkML, consultez Images Docker Amazon SageMaker préconçues pour scikit-learn et Spark ML. Pour plus d'informations sur l'utilisation des frameworks avec le SDK Amazon SageMaker Python, consultez leurs rubriques respectives dansFrameworks et langages de machine learning.

  • Étendez une image de SageMaker conteneur prédéfinie. Si vous souhaitez étendre un SageMaker algorithme prédéfini ou modéliser une image Docker, vous pouvez modifier l' SageMaker image pour répondre à vos besoins. Pour un exemple, voir Extension de nos PyTorch conteneurs.

  • Adapter une image de conteneur existante : si vous souhaitez adapter une image de conteneur préexistante pour qu'elle fonctionne SageMaker, vous devez modifier le conteneur Docker pour activer le kit d' SageMaker apprentissage ou d'inférence. Pour obtenir un exemple sur la façon de générer vos propres conteneurs pour entraîner et héberger un algorithme, veuillez consulter Bring Your Own R Algorithm (Importer son propre algorithme R).