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.
Création d’une tâche AutoML pour optimiser les modèles de génération de texte à l’aide de l’API
Les grands modèles linguistiques (LLMs) excellent dans de nombreuses tâches génératives, notamment la génération de texte, la synthèse, la complétion, la réponse aux questions, etc. Leur performance peut être attribuée à leur taille importante et à leur entraînement approfondi sur divers jeux de données et différentes tâches. Cependant, des domaines spécifiques, tels que les soins de santé et les services financiers, peuvent nécessiter un peaufinage personnalisé pour s’adapter à des données et à des cas d’utilisation uniques. En adaptant leur formation à leur domaine particulier, ils LLMs peuvent améliorer leurs performances et fournir des résultats plus précis pour des applications ciblées.
Autopilot permet d’optimiser une sélection de modèles de texte génératifs pré-entraînés. En particulier, Autopilot prend en charge le réglage fin basé sur des instructions d'une sélection de grands modèles de langage à usage général () alimentés par. LLMs JumpStart
Note
Les modèles de génération de texte qui permettent un réglage précis dans Autopilot sont actuellement accessibles exclusivement dans les régions prises en charge par Canvas. SageMaker Consultez la documentation de SageMaker Canvas pour obtenir la liste complète des régions prises en charge.
Le peaufinage d’un modèle pré-entraîné nécessite un jeu de données spécifique contenant des instructions claires qui indiquent au modèle comment générer des sorties ou se comporter pour cette tâche. Le modèle apprend du jeu de données et ajuste ses paramètres conformément aux instructions fournies. Le peaufinage sur instructions implique l’utilisation d’exemples étiquetés au format de paires invite-réponse et formulés sous forme d’instructions. Pour plus d’informations sur le peaufinage, consultez Peaufinage d’un modèle de fondation.
Note
Les tâches telles que la classification d’images et de texte, les prévisions de séries temporelles et le peaufinage des grands modèles de langage sont exclusivement disponibles via la version 2 de l’API REST AutoML. Si le langage de votre choix est Python, vous pouvez vous référer AWS SDK pour Python (Boto3)
Les utilisateurs qui préfèrent la commodité d'une interface utilisateur peuvent utiliser Amazon SageMaker Canvas pour accéder à des modèles préentraînés et à des modèles de base d'IA génératifs, ou créer des modèles personnalisés adaptés à des textes spécifiques, à une classification d'images, à des besoins de prévision ou à une IA générative.
Pour créer une expérience de pilote automatique par programmation afin de peaufiner un LLM, vous pouvez appeler l'CreateAutoMLJobV2API dans n'importe quel langage pris en charge par Amazon Autopilot ou le. SageMaker AWS CLI
Pour plus d’informations sur la façon dont cette action d’API se traduit par une fonction dans le langage de votre choix, consultez la section Voir aussi de CreateAutoMLJobV2, et choisissez un kit SDK. À titre d'exemple, pour les utilisateurs de Python, consultez la syntaxe complète des demandes de create_auto_ml_job_v2 dans le kit AWS SDK pour Python (Boto3).
Note
Autopilot optimise les grands modèles de langage sans nécessiter l’entraînement et l’évaluation de plusieurs candidats. Au lieu de cela, à l’aide de votre jeu de données, Autopilot optimise directement votre modèle cible pour améliorer une métrique objective par défaut : la perte d’entropie croisée. Le peaufinage de modèles de langages dans Autopilot ne nécessite pas de définir le champ AutoMLJobObjective.
Une fois votre LLM peaufiné, vous pouvez évaluer ses performances en accédant aux différents scores ROUGE via le BestCandidate lors d’un appel d’API DescribeAutoMLJobV2. Le modèle fournit également des informations sur sa perte d’entraînement et de validation ainsi que sur sa perplexité. Pour une liste complète des métriques permettant d’évaluer la qualité du texte généré par les modèles peaufinés, consultez Métriques de peaufinage des grands modèles de langage dans Autopilot.
Conditions préalables
Avant d'utiliser le pilote automatique pour créer une expérience de réglage précis dans l' SageMaker IA, assurez-vous de suivre les étapes suivantes :
-
(Facultatif) Choisissez le modèle pré-entraîné que vous souhaitez optimiser.
Pour consulter la liste des modèles préentraînés disponibles pour un réglage précis dans Amazon SageMaker Autopilot, consultez. Grands modèles de langage pris en charge pour le peaufinage La sélection d'un modèle n'est pas obligatoire ; si aucun modèle n'est spécifié, le pilote automatique utilise automatiquement par défaut le modèle Falcon7. BInstruct
-
Créez un jeu de données d’instructions. Consultez Types de fichiers de jeux de données et format des données d’entrée pour en savoir plus sur les exigences de format concernant votre jeu de données basé sur des instructions.
-
Placez votre jeu de données dans un compartiment Amazon S3.
-
Accordez un accès complet au compartiment Amazon S3 contenant vos données d'entrée pour le rôle d'exécution de l' SageMaker IA utilisé pour exécuter votre expérience.
-
Pour plus d'informations sur la récupération de votre rôle d'exécution SageMaker AI, consultezObtention de votre rôle d’exécution.
-
Pour plus d'informations sur l'octroi à votre rôle d'exécution SageMaker AI des autorisations pour accéder à un ou plusieurs compartiments spécifiques dans Amazon S3, consultez Ajouter des autorisations Amazon S3 supplémentaires à un rôle d'exécution SageMaker AI dansCréer un rôle d’exécution.
-
-
En outre, vous devez fournir à votre rôle d'exécution les autorisations nécessaires pour accéder au compartiment de stockage par défaut utilisé par Amazon S3 JumpStart. Cet accès est requis pour stocker et récupérer des artefacts de modèles préentraînés dans. JumpStart Pour octroyer l’accès à ce compartiment Amazon S3, vous devez créer une nouvelle politique personnalisée intégrée à votre rôle d’exécution.
Voici un exemple de politique que vous pouvez utiliser dans votre éditeur JSON lorsque vous configurez des tâches de peaufinage AutoML dans
us-west-2:JumpStartles noms de bucket suivent un schéma prédéterminé qui dépend du Régions AWS. Vous devez ajuster le nom du compartiment en conséquence.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-us-west-2", "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*" ] }
Après cela, vous pouvez utiliser l’ARN de ce rôle d’exécution dans les demandes d’API Autopilot.
Paramètres requis
Lorsque vous appelez CreateAutoMLJobV2 pour créer une expérience Autopilot de peaufinage des LLM, vous devez fournir les valeurs suivantes :
-
Un paramètre
AutoMLJobNamepour spécifier le nom de votre tâche. Le nom doit être de typestringet doit avoir une longueur minimale de 1 caractère et une longueur maximale de 32. -
Au moins un
AutoMLJobChannelde typetrainingdansAutoMLJobInputDataConfig. Ce canal indique le nom du compartiment Amazon S3 dans lequel votre jeu de données de peaufinage est situé. Vous avez la possibilité de définir un canal devalidation. Si aucun canal de validation n’est fourni et qu’uneValidationFractionest configurée dansAutoMLDataSplitConfig, cette fraction est utilisée pour diviser aléatoirement le jeu de données d’entraînement en jeux de données d’entraînement et de validation. En outre, vous pouvez spécifier le type de contenu (fichiers CSV ou Parquet) pour le jeu de données. -
Une
AutoMLProblemTypeConfigde typeTextGenerationJobConfigpour configurer les paramètres de votre tâche d’entraînement.Vous pouvez notamment spécifier le nom du modèle de base à optimiser dans le champ
BaseModelName. Pour consulter la liste des modèles préentraînés disponibles pour un réglage précis dans Amazon SageMaker Autopilot, consultez. Grands modèles de langage pris en charge pour le peaufinage -
Un élément
OutputDataConfigpour spécifier le chemin de sortie Amazon S3 pour stocker les artefacts de votre tâche AutoML. -
Un élément
RoleArnpour spécifier l'ARN du rôle utilisé pour accéder à vos données.
Voici un exemple du format complet d’une demande utilisée lors d’un appel d’API vers CreateAutoMLJobV2 pour le peaufinage d’un modèle (Falcon7BInstruct).
{ "AutoMLJobName": "<job_name>", "AutoMLJobInputDataConfig": [ { "ChannelType": "training", "CompressionType": "None", "ContentType": "text/csv", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://<bucket_name>/<input_data>.csv" } } } ], "OutputDataConfig": { "S3OutputPath": "s3://<bucket_name>/output", "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>" }, "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>", "AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7BInstruct" } } }
Tous les autres paramètres sont facultatifs.
Paramètres facultatifs
Les sections suivantes fournissent des détails sur certains paramètres facultatifs que vous pouvez transmettre à votre tâche de peaufinage AutoML.
Vous pouvez fournir votre propre jeu de données de validation et un rapport de répartition des données personnalisé, ou laisser Autopilot répartir automatiquement le jeu de données.
Chaque AutoMLJobChannelobjet (voir le paramètre obligatoire Auto MLJob InputDataConfig) possède unChannelType, qui peut être défini sur l'une training ou l'autre des validation valeurs spécifiant la manière dont les données doivent être utilisées lors de la création d'un modèle d'apprentissage automatique.
Au moins une source de données doit être fournie et deux sources de données maximum sont autorisées : une pour les données d'entraînement et l'autre pour les données de validation. Le fractionnement des données en jeux de données d'entraînement et de validation varie selon que vous disposiez d'une ou de deux sources de données.
-
Si vous n'avez qu'une source de données,
ChannelTypeest défini surtrainingpar défaut et doit avoir cette valeur.-
Si la valeur
ValidationFractiondeAutoMLDataSplitConfign'est pas définie, 0,2 (20 %) des données de cette source sont utilisées pour la validation par défaut. -
Si
ValidationFractionest défini sur une valeur comprise entre 0 et 1, le jeu de données est divisé en fonction de la valeur spécifiée, où la valeur spécifie la fraction du jeu de données utilisé pour la validation.
-
-
Si vous disposez de deux sources de données, le
ChannelTypede l'un des objetsAutoMLJobChanneldoit être défini surtraining(valeur par défaut). LeChannelTypede l'autre source de données doit être défini survalidation. Les deux sources de données doivent avoir le même format, CSV ou Parquet, et le même schéma. Vous ne devez pas définir la valeur deValidationFractiondans ce cas, car toutes les données de chaque source sont utilisées à des fins d'entraînement ou de validation. La définition de cette valeur provoque une erreur.
Avec Autopilot, vous pouvez déployer automatiquement votre modèle peaufiné sur un point de terminaison. Pour activer le déploiement automatique de votre modèle peaufiné, incluez le paramètre ModelDeployConfig dans la demande de tâche AutoML. Cela permet le déploiement de votre modèle affiné sur un point de terminaison d' SageMaker IA. Vous trouverez ci-dessous les configurations disponibles pour la personnalisation.
-
Pour permettre à Autopilot de générer le nom du point de terminaison, définissez
AutoGenerateEndpointNamesurTrue. -
Pour fournir votre propre nom pour le point de terminaison, définissez
AutoGenerateEndpointName to.Falseand provide a name of your choice in EndpointName
Pour les modèles nécessitant l’acceptation d’un contrat de licence utilisateur final (CLUF) avant le peaufinage, vous pouvez accepter le CLUF en définissant l’attribut AcceptEula du paramètre ModelAccessConfig sur True dans TextGenerationJobConfig lors de la configuration de AutoMLProblemTypeConfig.
Vous pouvez optimiser le processus d’apprentissage de votre modèle de génération de texte en définissant des valeurs d’hyperparamètres dans l’attribut TextGenerationHyperParameters du paramètre TextGenerationJobConfig lors de la configuration de AutoMLProblemTypeConfig.
Autopilot permet de définir quatre hyperparamètres communs à tous les modèles.
-
epochCount: sa valeur doit être une chaîne contenant un nombre entier compris entre1et10. -
batchSize: sa valeur doit être une chaîne contenant un nombre entier compris entre1et64. -
learningRate: sa valeur doit être une chaîne contenant une valeur à virgule flottante comprise entre0et1. -
learningRateWarmupSteps: sa valeur doit être une chaîne contenant un nombre entier compris entre0et250.
Pour plus de détails sur chaque hyperparamètre, consultez Hyperparamètres d’optimisation du processus d’apprentissage de vos modèles de génération de texte.
L'exemple JSON suivant montre un TextGenerationHyperParameters champ transmis au TextGenerationJobConfig où les quatre hyperparamètres sont configurés.
"AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7B", "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"} } }