Affiner un modèle - 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.

Affiner un modèle

L'affinage entraîne un modèle pré-entraîné sur un nouveau jeu de données sans entraînement et à partir de zéro. Ce processus, également connu sous le nom d'apprentissage par transfert, peut produire des modèles précis avec des jeux de données plus petits et moins de temps d'entraînement. Vous pouvez affiner un modèle si l'attribut Fine-tunable (Réglable) est défini sur Yes (Oui) sur sa carte.

JumpStart fine-tunable Image Classification - TensorFlow model

Important

Depuis le 30 novembre 2023, l'expérience Amazon SageMaker Studio précédente s'appelle désormais Amazon SageMaker Studio Classic. La section suivante est spécifique à l'utilisation de l'application Studio Classic. Pour plus d'informations sur l'utilisation de l'expérience Studio mise à jour, consultezAmazon SageMaker Studio.

Note

Pour plus d'informations sur le réglage précis des JumpStart modèles dans Studio, voir Ajustez les modèles de base dans Studio

Affinage de la source de données

Lorsque vous affinez un modèle, vous pouvez utiliser le jeu de données par défaut ou choisir vos propres données, situées dans un compartiment Amazon S3.

Pour parcourir les compartiments à votre disposition, choisissez Find S3 bucket (Rechercher un compartiment S3). Ces compartiments sont limités par les autorisations utilisées pour configurer votre compte Studio Classic. Vous pouvez également spécifier un URI Amazon S3 en choisissant Enter Amazon S3 bucket location (Entrer l'emplacement du compartiment Amazon S3).

JumpStart data source settings with default dataset selected.

Astuce

Pour savoir comment formater les données dans votre compartiment, choisissez Learn more (En savoir plus). La section de description du modèle contient des informations détaillées sur les entrées et les sorties. 

Pour les modèles de texte :

  • Le compartiment doit comporter un fichier data.csv.

  • La première colonne doit correspondre à un nombre entier unique pour l'étiquette de classe. Par exemple : 1, 2, 3, 4, n

  • La seconde colonne doit être une chaîne.

  • La seconde colonne doit contenir le texte correspondant qui correspond au type et à la langue du modèle. 

Pour les modèles de vision :

  • Le compartiment doit contenir autant de sous-répertoires que le nombre de classes.

  • Chaque sous-répertoire doit contenir des images appartenant à cette classe au format .jpg.

Note

Le compartiment Amazon S3 doit se trouver dans le même emplacement que celui dans Région AWS lequel vous exécutez SageMaker Studio Classic, car il SageMaker n'autorise pas les requêtes interrégionales.

Affiner la configuration du déploiement

La famille p3 est recommandée, car elle est considérée comme la plus rapide pour l'entraînement en deep learning, ce qui est recommandé pour affiner un modèle. Le graphique suivant indique le nombre de GPU dans chaque type d'instance. Il existe d'autres options disponibles que vous pouvez choisir, y compris les types d'instance p2 et g4.

Type d’instance GPU
p3.2xlarge 1
p3.8xlarge 4
p3.16xlarge 8
p3dn.24xlarge 8

Hyperparamètres

Vous pouvez personnaliser les hyperparamètres de la tâche d'entraînement utilisés pour affiner le modèle. Les hyperparamètres disponibles pour chaque modèle réglable varient en fonction du modèle. Pour plus d'informations sur chaque hyperparamètre disponible, consultez la documentation relative aux hyperparamètres du modèle de votre choix dans Utilisez les algorithmes SageMaker intégrés d'Amazon ou des modèles préentraînés. Par exemple, voir Classification des images - TensorFlow Hyperparamètres pour plus de détails sur la classification des images réglable avec précision - TensorFlow hyperparamètres.

Si vous utilisez le jeu de données par défaut pour les modèles de texte sans modifier les hyperparamètres, vous obtenez un modèle presque identique. Pour les modèles de vision, le jeu de données par défaut est différent du jeu de données utilisé pour entraîner les modèles pré-entraînés. Par conséquent, votre modèle est différent.

Les hyperparamètres suivants sont courants parmi les modèles :

  • Epochs (Époques) – Une époque est un cycle dans l'ensemble du jeu de données. Plusieurs intervalles complètent un lot, et plusieurs lots finissent par compléter une époque. Plusieurs époques sont exécutées jusqu'à ce que la précision du modèle atteigne un niveau acceptable ou lorsque le taux d'erreur descend en dessous d'un niveau acceptable.

  • Learning rate (Taux d'apprentissage) – Quantité de modifications que doivent subir les valeurs d'une époque à l'autre. Au fur et à mesure que le modèle est affiné, ses pondérations internes sont modifiées et les taux d'erreur sont vérifiés pour voir si le modèle s'améliore. Un taux d'apprentissage typique est de 0,1 ou 0,01, où 0,01 est un ajustement beaucoup plus petit et peut faire en sorte que l'entraînement prenne beaucoup de temps pour converger, alors que 0,1 est beaucoup plus grand et peut faire en sorte que l'entraînement dépasse les limites. Il s'agit de l'un des principaux hyperparamètres que vous pouvez ajuster pour l'entraînement de votre modèle. Notez que pour les modèles de texte, un taux d'apprentissage beaucoup plus faible (5e-5 pour BERT) peut donner lieu à un modèle plus précis.

  • Batch size (Taille de lot) - Nombre d'enregistrements du jeu de données à sélectionner pour chaque intervalle à envoyer aux GPU pour l'entraînement.

    Dans un exemple d'image, vous pouvez envoyer 32 images par GPU,. 32 est donc votre taille de lot. Si vous choisissez un type d'instance avec plusieurs GPU, le lot est divisé par le nombre de GPU. La taille du lot suggérée varie en fonction des données et du modèle que vous utilisez. Par exemple, la façon dont vous optimisez les données d'image diffère de la façon dont vous traitez les données de langue.

    Dans le graphique de type d'instance de la section sur la configuration du déploiement, vous pouvez voir le nombre de GPU par type d'instance. Commencez par une taille de lot standard recommandée (par exemple, 32 pour un modèle de vision). Ensuite, multipliez cela par le nombre de GPU dans le type d'instance que vous avez sélectionné. Par exemple, si vous utilisez un p3.8xlarge, cela correspond à 32 (taille du lot) multiplié par quatre (GPU), soit un total de 128, car la taille du lot s'adapte au nombre de GPU. Pour un modèle de texte comme BERT, essayez de commencer par une taille de lot de 64, puis réduisez-la au besoin.

Sortie de l'entraînement

Lorsque le processus de réglage est terminé, JumpStart fournit des informations sur le modèle : modèle parent, nom de la tâche de formation, ARN de la tâche de formation, durée de formation et chemin de sortie. Le chemin de sortie est l'endroit où vous pouvez trouver votre nouveau modèle dans un compartiment Amazon S3. La structure de dossier utilise le nom de modèle que vous avez fourni et le fichier de modèle se trouve dans un sous-dossier /output. Il est toujours nommé model.tar.gz

Exemple : s3://bucket/model-name/output/model.tar.gz

Configuration des valeurs par défaut pour l'entraînement de modèles

Vous pouvez configurer des valeurs par défaut pour des paramètres tels que les rôles IAM, les VPC et les clés KMS à prérenseigner pour le déploiement et la formation des JumpStart modèles. Pour plus d'informations, veuillez consulter Configuration des valeurs par défaut pour les JumpStart modèles.