Ajustez un grand modèle de langage (LLM) à l'aide d'instructions rapides - 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.

Ajustez un grand modèle de langage (LLM) à l'aide d'instructions rapides

L'optimisation basée sur les instructions utilise des exemples étiquetés pour améliorer les performances d'un modèle de fondation pré-entraîné sur une tâche spécifique. Les exemples étiquetés sont au format d'invites, de paires de réponses et sont formulés sous forme d'instructions. Ce processus d'optimisation modifie les poids du modèle. Pour plus d'informations sur le réglage précis basé sur les instructions, consultez les articles Présentation FLAN : modèles linguistiques plus généralisables avec réglage précis des instructions et mise à l'échelle des modèles linguistiques affinés avec instructions.

Les modèles LAnguage Net (FLAN) affinés utilisent le réglage des instructions pour rendre les modèles plus adaptés à la résolution de tâches générales en avalNLP. Amazon SageMaker JumpStart propose un certain nombre de modèles de base dans la famille de FLAN modèles. Par exemple, les modèles FLAN -T5 sont dotés d'instructions affinées pour un large éventail de tâches afin d'améliorer les performances zéro dans de nombreux cas d'utilisation courants. Grâce aux données supplémentaires et à l'optimisation, les modèles basés sur les instructions peuvent être davantage adaptés à des tâches plus spécifiques qui n'ont pas été prises en compte lors du pré-entraînement.

Pour affiner une tâche spécifique à LLM l'aide des instructions de tâches relatives aux paires prompt-réponse :

  1. Préparez vos instructions dans JSON des fichiers. Pour plus d'informations sur le format requis pour les fichiers de paires de réponses rapides et sur la structure du dossier de données, consultez. Préparez et téléchargez les données d'entraînement pour un réglage précis basé sur les instructions

  2. Créez votre tâche de formation personnalisée. Pour obtenir des instructions, consultez Créez une tâche de formation pour un réglage précis basé sur des instructions.

Vous trouverez des end-to-end exemples dansExemples de blocs-notes.

Seul un sous-ensemble de modèles de JumpStart base est compatible avec le réglage précis basé sur des instructions. L'optimisation basée sur les instructions est disponible avec les modèles de fondation suivants :

Note

Certains modèles de JumpStart base, tels que Llama 2 7B, nécessitent l'acceptation d'un contrat de licence d'utilisateur final avant de peaufiner et d'effectuer des inférences. Pour de plus amples informations, veuillez consulter Contrats de licence de l'utilisateur final.

  • Base Flan-T5

  • Flan-T5 Grand

  • Flan-T5 Petit

  • Flan-T5 XL

  • Flan-T5 XXL

  • Lama 2 13B

  • Chat Llama 2 13B

  • Neurone Llama 2 13B

  • Lama 2 70B

  • Chat Llama 2 70B

  • Lama 2 7B

  • Chat Llama 2 7B

  • Neurone Llama 2 7B

  • Mistral 7B

  • RedPajama INCITECulot 3B V1

  • RedPajama INCITECulot 7B V1

  • RedPajama INCITEChat 3B V1

  • RedPajama INCITETchat 7B V1

  • RedPajama INCITEInstruire 3B V1

  • RedPajama INCITEInstruire 7B V1

Préparez et téléchargez les données d'entraînement pour un réglage précis basé sur les instructions

Les données d'entraînement pour le réglage précis basé sur les instructions doivent être fournies au format de fichier texte JSON Lines, où chaque ligne est un dictionnaire. Toutes les données d'entraînement doivent se trouver dans un seul dossier. Le dossier peut inclure plusieurs fichiers .jsonl.

Le dossier de formation peut également inclure un JSON fichier modèle (template.json) qui décrit les formats d'entrée et de sortie de vos données. Si aucun fichier modèle n'est fourni, le fichier modèle suivant est utilisé :

{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}", "completion": "{response}" }

Selon le template.json fichier, chaque entrée .jsonl des données d'entraînement doit inclure des champs {instruction}{context}, et. {response}

Si vous fournissez un JSON fichier modèle personnalisé, utilisez les "completion" touches "prompt" et pour définir vos propres champs obligatoires. Selon le JSON fichier modèle personnalisé suivant, chaque entrée .jsonl des données d'entraînement doit inclure {question}{context}, et des champs : {answer}

{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }

Divisez les données pour la formation et les tests

Vous pouvez éventuellement fournir un autre dossier contenant les données de validation. Ce dossier doit également inclure un ou plusieurs fichiers .jsonl. Si aucun ensemble de données de validation n'est fourni, une quantité définie de données d'apprentissage est mise de côté à des fins de validation. Vous pouvez ajuster le pourcentage de données d'entraînement utilisées pour la validation lorsque vous choisissez les hyperparamètres pour affiner votre modèle.

Chargez des données de réglage précis sur Amazon S3

Chargez les données que vous avez préparées sur Amazon Simple Storage Service (Amazon S3) afin de les utiliser lors de la mise au point d'un modèle de base. JumpStart Vous pouvez utiliser les commandes suivantes pour télécharger vos données :

from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file = "train.jsonl" train_data_location = f"s3://{output_bucket}/dolly_dataset" S3Uploader.upload(local_data_file, train_data_location) S3Uploader.upload("template.json", train_data_location) print(f"Training data: {train_data_location}")

Créez une tâche de formation pour un réglage précis basé sur des instructions

Une fois vos données chargées sur Amazon S3, vous pouvez affiner et déployer votre modèle de JumpStart base. Pour affiner votre modèle dans Studio, voirAffiner un modèle dans Studio. Pour peaufiner votre modèle à l'aide du SageMaker Python SDK, voirAjustez les modèles de base accessibles au public avec la classe JumpStartEstimator.

Exemples de blocs-notes

Pour plus d'informations sur le réglage précis basé sur les instructions, consultez les exemples de blocs-notes suivants :