

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
<a name="autopilot-create-experiment-finetune-llms"></a>

Les grands modèles de langage (LLM) excellent dans de nombreuses tâches génératives, notamment la génération de texte, la synthétisation, 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 entraînement à leur domaine particulier, les LLM 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, 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](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html).

Fine-tuning un modèle préentraîné nécessite un ensemble de données spécifique contenant des instructions claires qui guident le modèle sur la manière de générer des résultats ou de 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. Instruction-based le peaufinage 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, consultez [Fine-tune un modèle de base](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-fine-tuning.html).

[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 ](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)

**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](autopilot-reference.md). Si le langage de votre choix est Python, vous pouvez vous référer [AWS SDK pour Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html)directement à l'[objet AutoLV2](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2) du SDK Amazon SageMaker Python.  
Les utilisateurs qui préfèrent la commodité d'une interface utilisateur peuvent utiliser [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) 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'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)API 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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso) 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](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.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 affine directement votre modèle cible pour améliorer une métrique objective par défaut, la perte d'entropie croisée. Fine-tuning les modèles de langue dans Autopilot ne nécessitent pas de définir le `AutoMLJobObjective` champ.

Une fois votre LLM peaufiné, vous pouvez évaluer ses performances en accédant aux différents scores ROUGE via le `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)` lors d’un appel d’API `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`. 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](autopilot-llms-finetuning-metrics.md).

## Conditions préalables
<a name="autopilot-llms-finetuning-api-prerequisites"></a>

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](autopilot-llms-finetuning-models.md) La sélection d’un modèle n’est pas obligatoire. Si vous n’en spécifiez aucun, Autopilot utilise automatiquement le modèle *Falcon7BInstruct* par défaut.
+ 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](autopilot-llms-finetuning-data-format.md) 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, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).
  + 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* dans[Créer un rôle d’exécution](sagemaker-roles.md#sagemaker-roles-create-execution-role).
+ 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
<a name="autopilot-llms-finetuning-api-required-params"></a>

Lorsque vous appelez `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` pour créer une expérience Autopilot de peaufinage des LLM, vous devez fournir les valeurs suivantes :
+ Un paramètre `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)` 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 un `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` de type `training` dans `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)`. 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 de `validation`. Si aucun canal de validation n’est fourni et qu’une `ValidationFraction` est configurée dans [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html), 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 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` de type `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` pour 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](autopilot-llms-finetuning-models.md)
+ Un élément `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` pour spécifier le chemin de sortie Amazon S3 pour stocker les artefacts de votre tâche AutoML.
+ Un élément `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` pour 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
<a name="autopilot-llms-finetuning-api-optional-params"></a>

Les sections suivantes fournissent des détails sur certains paramètres facultatifs que vous pouvez transmettre à votre tâche de peaufinage AutoML.

### Comment spécifier les jeux de données d’entraînement et de validation d’une tâche AutoML
<a name="autopilot-llms-finetuning-data-training-or-validation"></a>

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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)objet (voir le paramètre requis [AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)) possède un`ChannelType`, 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**, `ChannelType` est défini sur `training` par défaut et doit avoir cette valeur.
  + Si la valeur `ValidationFraction` de [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 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.

### Comment activer le déploiement automatique
<a name="autopilot-llms-finetuning-auto-model-deployment"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-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 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` sur `True`.
+ Pour fournir votre propre nom pour le point de terminaison, définissez `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`.

### Comment définir l’acceptation du CLUF lors du peaufinage d’un modèle à l’aide de l’API AutoML
<a name="autopilot-llms-finetuning-set-eula"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelAccessConfig.html)` sur `True` dans `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` lors de la configuration de `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`.

### Comment définir les hyperparamètres pour optimiser le processus d’apprentissage d’un modèle
<a name="autopilot-llms-finetuning-set-hyperparameters"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` lors de la configuration de `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-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 entre `1` et `10`.
+ `batchSize` : sa valeur doit être une chaîne contenant un nombre entier compris entre `1` et `64`.
+ `learningRate` : sa valeur doit être une chaîne contenant une valeur à virgule flottante comprise entre `0` et `1`.
+ `learningRateWarmupSteps` : sa valeur doit être une chaîne contenant un nombre entier compris entre `0` et `250`.

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](autopilot-llms-finetuning-hyperparameters.md).

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