Créez une tâche AutoML pour affiner les modèles de génération de texte à l'aide de l'API - 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.

Créez une tâche AutoML pour affiner les modèles de génération de texte à l'aide de l'API

Les grands modèles linguistiques (LLM) 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 formation approfondie sur divers ensembles de données et diverses tâches. Cependant, des domaines spécifiques, tels que les soins de santé et les services financiers, peuvent nécessiter un ajustement personnalisé pour s'adapter à des données et à des cas d'utilisation uniques. En adaptant leur formation à leur domaine particulier, les LLM peuvent améliorer leurs performances et fournir des résultats plus précis pour des applications ciblées.

Le pilote automatique permet de peaufiner une sélection de modèles de texte génératifs préentraînés. En particulier, le pilote automatique prend en charge le réglage fin basé sur des instructions d'une sélection de grands modèles de langage (LLM) à usage général basés sur. 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.

L'ajustement précis 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 résultats ou se comporter pour cette tâche. Le modèle apprend de l'ensemble de données et ajuste ses paramètres conformément aux instructions fournies. Le réglage fin basé sur les instructions implique l'utilisation d'exemples étiquetés formatés sous forme de paires prompte-réponse et formulés sous forme d'instructions. Pour plus d'informations sur le réglage précis, voir Affiner un modèle de base.

Les directives suivantes décrivent le processus de création d'une tâche Amazon SageMaker Autopilot dans le cadre d'une expérience pilote visant à affiner les LLM de génération de texte à l'aide de l'API Reference. SageMaker

Note

Les tâches telles que la classification du texte et des images, les prévisions de séries chronologiques et le réglage précis de grands modèles linguistiques 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 for Python (Boto3)directement à l'objet AutoLV2 du SDK Amazon SageMaker Python.

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 la langue de votre choix, consultez la section Voir aussi de CreateAutoMLJobV2 et choisissez un 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 for Python (Boto3).

Note

Le pilote automatique affine les grands modèles linguistiques sans nécessiter la formation et l'évaluation de plusieurs candidats. Au lieu de cela, à l'aide de votre jeu de données, Autopilot affine directement votre modèle cible pour améliorer une métrique objective par défaut, la perte d'entropie croisée. Pour affiner les modèles linguistiques dans Autopilot, il n'est pas nécessaire de définir le champ. AutoMLJobObjective

Une fois votre LLM affiné, vous pouvez évaluer ses performances en accédant à différents ROUGE scores BestCandidate lors d'un appel d'DescribeAutoMLJobV2API. 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 mesures permettant d'évaluer la qualité du texte généré par les modèles affinés, voirMétriques pour affiner de grands modèles linguistiques dans Autopilot.

Prérequis

Avant d'utiliser le pilote automatique pour créer une expérience de réglage précis SageMaker, assurez-vous de suivre les étapes suivantes :

  • (Facultatif) Choisissez le modèle préentraîné que vous souhaitez affiner.

    Pour consulter la liste des modèles préentraînés disponibles pour un réglage précis dans Amazon SageMaker Autopilot, consultez. Modèles linguistiques étendus pris en charge pour un réglage précis 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 Falcon7bInstruct.

  • 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 pour votre jeu de données basé sur des instructions.

  • Placez votre ensemble 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 SageMaker d'exécution utilisé pour exécuter votre expérience.

    • Pour plus d'informations sur la récupération de votre rôle SageMaker d'exécution, consultezObtention du rôle d'exécution .

    • Pour plus d'informations sur l'octroi à votre rôle SageMaker d'exécution des autorisations d'accès à un ou plusieurs compartiments spécifiques dans Amazon S3, consultez Ajouter des autorisations Amazon S3 supplémentaires à un rôle SageMaker d'exécution 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 accorder l'accès à ce compartiment Amazon S3, vous devez créer une nouvelle politique personnalisée en ligne concernant 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 réglage précis 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 bucket 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 de pilote automatique pour le réglage précis du LLM, vous devez fournir les valeurs suivantes :

  • Un paramètre AutoMLJobName pour spécifier le nom de votre tâche. Le nom doit être de type string et doit avoir une longueur minimale de 1 caractère et une longueur maximale de 32.

  • Au moins l'un AutoMLJobChannel des training types figurant dans leAutoMLJobInputDataConfig. Ce canal indique le nom du compartiment Amazon S3 dans lequel se trouve votre ensemble de données de réglage précis. Vous avez la possibilité de définir un validation canal. Si aucun canal de validation n'est fourni et que a ValidationFraction est configuré dans le AutoMLDataSplitConfig, cette fraction est utilisée pour diviser aléatoirement l'ensemble de données d'apprentissage en ensembles d'apprentissage et de validation. En outre, vous pouvez spécifier le type de contenu (fichiers CSV ou Parquet) pour le jeu de données.

  • Un AutoMLProblemTypeConfig de type TextGenerationJobConfig permettant de configurer les paramètres de votre tâche de formation.

    Vous pouvez notamment spécifier le nom du modèle de base à affiner BaseModelName sur le terrain. Pour consulter la liste des modèles préentraînés disponibles pour un réglage précis dans Amazon SageMaker Autopilot, consultez. Modèles linguistiques étendus pris en charge pour un réglage précis

  • Un élément OutputDataConfig pour spécifier le chemin de sortie Amazon S3 pour stocker les artefacts de votre tâche AutoML.

  • Un élément RoleArn pour spécifier l'ARN du rôle utilisé pour accéder à vos données.

Voici un exemple du format de demande complet utilisé lors d'un appel d'API CreateAutoMLJobV2 pour affiner 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 réglage 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 requis AutoML JobInput DataConfig) possède unChannelType, qui peut être défini sur des validation valeurs qui spécifient la manière dont les données doivent être utilisées lors de la création d'un modèle d'apprentissage automatique. training

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, ChannelType est défini sur training par défaut et doit avoir cette valeur.

    • Si la valeur ValidationFraction de AutoMLDataSplitConfig n'est pas définie, 0,2 (20 %) des données de cette source sont utilisées pour la validation par défaut.

    • Si ValidationFraction est 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 ChannelType de l'un des objets AutoMLJobChannel doit être défini sur training (valeur par défaut). Le ChannelType de l'autre source de données doit être défini sur validation. 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 de ValidationFraction dans 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 le pilote automatique, vous pouvez déployer automatiquement votre modèle affiné sur un terminal. Pour activer le déploiement automatique de votre modèle affiné, incluez un ModelDeployConfig dans la demande de tâche AutoML. Cela permet le déploiement de votre modèle affiné sur un SageMaker terminal. Vous trouverez ci-dessous les configurations disponibles pour la personnalisation.

Pour les modèles nécessitant l'acceptation d'un contrat de licence utilisateur final avant d'être peaufinés, vous pouvez accepter le CLUF en définissant l'AcceptEulaattribut ModelAccessConfig to True in TextGenerationJobConfig lors de la configuration de votre. 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'TextGenerationHyperParametersattribut de TextGenerationJobConfig lors de la configuration de votreAutoMLProblemTypeConfig.

Le pilote automatique permet de définir quatre hyperparamètres communs à tous les modèles.

  • epochCount: Sa valeur doit être une chaîne contenant une valeur entière comprise entre 1 et10.

  • batchSize: Sa valeur doit être une chaîne contenant une valeur entière comprise entre 1 et64.

  • learningRate: Sa valeur doit être une chaîne contenant une valeur à virgule flottante comprise entre et. 0 1

  • learningRateWarmupSteps: Sa valeur doit être une chaîne contenant une valeur entière comprise entre 0 et250.

Pour plus de détails sur chaque hyperparamètre, consultezOptimisez le processus d'apprentissage de vos modèles de génération de texte grâce à des hyperparamètres.

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"} } }