Utilisation de Hugging Face avec Amazon SageMaker - Amazon SageMaker

Utilisation de Hugging Face avec Amazon SageMaker

Amazon SageMaker permet aux clients d'entraîner, d'affiner et d'exécuter des inférences en utilisant des modèles Hugging Face pour un traitement du langage naturel (NLP) sur SageMaker. Vous pouvez utiliser Hugging Face tant pour l'entraînement que pour l'inférence. Cette fonctionnalité est disponible via le développement de AWSDeep Learning Containers Hugging Face. Ces conteneurs incluent les transformateurs Hugging Face, les tokéniseurs et la bibliothèque de jeux de données, qui vous permet d'utiliser ces ressources pour vos tâches d'entraînement et d'inférence. Pour obtenir la liste des images Deep Learning Containers disponibles, veuillez consulter Available Deep Learning Containers Images (Images Deep Learning Containers disponibles). Ces images Deep Learning Containers sont conservées et régulièrement mises à jour avec des correctifs de sécurité.

Pour utiliser les Deep Learning Containers Hugging Face avec le kit SDK SageMaker Python pour l'entraînement, veuillez consulter Hugging Face SageMaker Estimator (Estimateur Hugging Face SageMaker). Avec l'estimateur Hugging Face, vous pouvez utiliser les modèles Hugging Face comme avec n'importe quel autre estimateur SageMaker. Toutefois, l'utilisation du kit SDK SageMaker Python est facultative. Vous pouvez également orchestrer votre utilisation des Deep Learning Containers Hugging Face avec la AWS CLI et AWS SDK for Python (Boto3).

Pour de plus amples informations sur Hugging Face et les modèles disponibles, veuillez consulter la Documentation Hugging Face.

Training

Pour exécuter un entraînement, vous pouvez utiliser l'un des milliers de modèles disponibles dans Hugging Face et l'affiner avec un entraînement supplémentaire en fonction de votre cas d'utilisation spécifique. Avec SageMaker, vous pouvez utiliser un entraînement standard ou profiter d'un entraînement de données distribuées et de parallélisme des modèles SageMaker. Comme avec les autres tâches d'entraînement SageMaker utilisant du code personnalisé, vous pouvez capturer vos propres métriques en transmettant une définition de métriques au kit SDK SageMaker Python, comme indiqué dans Defining Training Metrics (SageMaker Python SDK) (Définition de métriques d'entraînement (kit SDK SageMaker Python)). Les métriques capturées sont ensuite accessibles via CloudWatch et en tant que Pandas DataFrame selon la méthode TrainingJobAnalytics. Une fois votre modèle entraîné et affiné, vous pouvez l'utiliser comme n'importe quel autre modèle pour exécuter des tâches d'inférence.

Exécution d'un entraînement avec l'estimateur Hugging Face

Vous pouvez mettre en œuvre l'estimateur Hugging Face pour les tâches d'entraînement à l'aide du kit SDK SageMaker Python. Le kit SDK SageMaker Python est une bibliothèque open source pour l'entraînement et le déploiement de modèles de machine learning sur SageMaker. Pour de plus amples informations sur l'estimateur Hugging Face, veuillez consulter la Documentation sur le kit SDK SageMaker Python.

Avec le kit SDK SageMaker Python, vous pouvez exécuter des tâches d'entraînement à l'aide de l'estimateur Hugging Face dans les environnements suivants :

  • SageMaker Studio : Amazon SageMaker Studio est le premier environnement de développement entièrement intégré (IDE) pour le machine learning (ML). SageMaker Studio fournit une interface visuelle Web unique où vous pouvez effectuer toutes les étapes de développement ML requises pour préparer, créer, entraîner et affiner, déployer et gérer des modèles. Pour obtenir des informations sur l'utilisation de blocs-notes Jupyter dans Studio, veuillez consulter Use Amazon SageMaker Studio Notebooks (Utilisation de blocs-notes Amazon SageMaker Studio).

  • Instances de bloc-notes SageMaker : une instance de bloc-notes Amazon SageMaker est une instance de calcul de machine learning (ML) sur laquelle s'exécute l'appli Jupyter Notebook. Cette appli vous permet d'exécuter Jupyter Notebook dans votre instance de bloc-notes afin de préparer et traiter des données, écrire du code pour entraîner des modèles, déployer des modèles dans les services d'hébergement SageMaker, et tester ou valider vos modèles sans fonctions SageMaker Studio telles que Debugger, Model Monitoring et un IDE basé sur le Web.

  • Localement : si vous disposez d'une connectivité à AWS et des autorisations SageMaker appropriées, vous pouvez utiliser le kit SDK SageMaker Python localement pour lancer des tâches d'entraînement et d'inférence à distance pour Hugging Face dans SageMaker sur AWS. Le fonctionnement sur votre machine locale est identique à celui d'autres services AWS disposant d'un kit SDK SageMaker Python connecté et des autorisations appropriées.

Inference

Pour l'inférence, vous pouvez utiliser votre modèle Hugging Face entraîné ou l'un des modèles pré-entraînés Hugging Face pour déployer une tâche d'inférence avec SageMaker. Grâce à cette collaboration, une seule ligne de code suffit pour déployer vos modèles entraînés et pré-entraînés avec SageMaker. Vous pouvez également exécuter des tâches d'inférence sans écrire aucun code d'inférence personnalisé. Avec un code d'inférence personnalisé, vous pouvez personnaliser la logique d'inférence en fournissant votre propre script Python.

Déploiement d'une tâche d'inférence à l'aide des Deep Learning Containers Hugging Face

Deux options s'offrent à vous pour exécuter l'inférence avec SageMaker. Vous pouvez exécuter l'inférence à l'aide d'un modèle que vous avez entraîné ou déployer un modèle Hugging Face pré-entraîné.

  • Exécution de l'inférence avec votre modèle entraîné :deux options s'offrent à vous pour exécuter l'inférence avec votre propre modèle entraîné. Vous pouvez exécuter l'inférence avec un modèle que vous avez entraîné à l'aide d'un modèle Hugging Face existant avec les Deep Learning Containers SageMaker Hugging Face, ou vous pouvez utiliser votre propre modèle Hugging Face existant et le déployer à l'aide de SageMaker. Lorsque vous exécutez l'inférence avec un modèle que vous avez entraîné avec l'estimateur SageMaker Hugging Face, vous pouvez déployer le modèle immédiatement après la fin de l'entraînement ou télécharger le modèle entraîné dans un compartiment Amazon S3 et l'intégrer lors d'une prochaine exécution de l'inférence. Si vous importez votre propre modèle Hugging Face existant, vous devez télécharger le modèle entraîné dans un compartiment Amazon S3 et l'intégrer lors d'une prochaine exécution de l'inférence, comme indiqué dans l'exemple Déploiement de vos transformateurs Hugging Face pour l'inférence.

  • Exécution de l'inférence avec un modèle Hugging Face pré-entraîné :vous pouvez utiliser l'un des milliers de modèles Hugging Face pré-entraînés pour exécuter vos tâches d'inférence sans entraînement supplémentaire. Pour exécuter l'inférence, vous sélectionnez le modèle pré-entraîné dans la liste des modèles Hugging Face, comme indiqué dans l'exemple Déploiement de transformateurs Hugging Face pré-entraînés pour l'inférence).

Que souhaitez-vous faire ?

Les blocs-notes Jupyter suivants figurant dans le référentiel de blocs-notes Hugging Face illustrent l'utilisation des Deep Learning Containers Hugging Face avec SageMaker dans divers cas d'utilisation.

Je souhaite entraîner et déployer un modèle de classification de texte en utilisant Hugging Face dans SageMaker avec PyTorch.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter la démo Mise en route avec PyTorch.

Je souhaite entraîner et déployer un modèle de classification de texte en utilisant Hugging Face dans SageMaker avec TensorFlow.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter la démo Mise en route avec TensorFlow.

Je souhaite exécuter un entraînement distribué avec parallélisme des données en utilisant Hugging Face et SageMaker Distributed.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Entraînement distribué.

Je souhaite exécuter un entraînement distribué avec parallélisme de modèles en utilisant Hugging Face et SageMaker Distributed.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Parallélisme de modèles.

Je souhaite utiliser une instance Spot pour entraîner et déployer un modèle en utilisant Hugging Face dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Instances Spot.

Je souhaite capturer des métriques personnalisées et utiliser SageMaker Checkpointing lors de l'entraînement d'un modèle de classification de texte en utilisant Hugging Face dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Entraînement avec des métriques personnalisées.

Je souhaite entraîner un modèle TensorFlow distribué répondant aux questions en utilisant Hugging Face dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Entraînement distribué TensorFlow.

Je souhaite entraîner un modèle de synthèse distribuée en utilisant Hugging Face dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Entraînement avec synthèse distribuée.

Je souhaite entraîner un modèle de classification d'image en utilisant Hugging Face dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Entraînement avec Vision Transformer.

Je souhaite déployer mon modèle Hugging Face entraîné dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Déploiement de vos transformateurs Hugging Face pour l'inférence.

Je souhaite déployer un modèle Hugging Face pré-entraîné dans SageMaker.

Pour obtenir un exemple de bloc-notes Jupyter, veuillez consulter l'exemple Déploiement de transformateurs Hugging Face pré-entraînés pour l'inférence.