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.
Fine-tune un grand modèle de langage (LLM) utilisant des instructions rapides
Instruction-based le réglage fin utilise des exemples étiquetés pour améliorer les performances d'un modèle de base 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 l'ajustement basé sur les instructions, consultez les articles Présentation du FLAN : des modèles de langage plus généralisables avec des modèles de langage d'instructions et de mise à l'échelle. Fine-Tuning
Fine-tuned Les modèles LANguage Net (FLAN) utilisent le réglage des instructions pour les rendre plus aptes à résoudre les tâches générales de NLP en aval. Amazon SageMaker JumpStart propose un certain nombre de modèles de base dans la famille de modèles FLAN. Par exemple, les FLAN-T5 modèles sont des instructions affinées pour un large éventail de tâches afin d'augmenter les performances zéro dans divers 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 optimiser un LLM sur une tâche spécifique à l’aide d’instructions de tâche et de paires invite-réponse :
-
Préparez vos instructions dans des fichiers JSON. Pour plus d’informations sur le format requis pour les fichiers de paires invite-réponse et sur la structure du dossier de données, consultez Préparation et chargement des données d’entraînement pour le peaufinage sur instructions.
-
Créez votre tâche d’entraînement de peaufinage. Pour obtenir des instructions, consultez Création d’une tâche d’entraînement pour le peaufinage sur instructions.
Vous trouverez des exemples de bout en bout dans Exemples de blocs-notes.
Seul un sous-ensemble de modèles de JumpStart base est compatible avec le réglage fin basé sur des instructions. Instruction-based le réglage fin est disponible avec les modèles de base suivants :
Note
Certains modèles de JumpStart base, tels que Llama 2 7B, nécessitent l'acceptation d'un contrat de licence utilisateur final avant d'affiner et d'effectuer des inférences. Pour de plus amples informations, veuillez consulter End-user contrats de licence.
-
Flan-T5 Base
-
Flan-T5 Grand
-
Flan-T5 Petit
-
Flan-T5 XL
-
Flan-T5 XXL
-
Llama 2 13B
-
Llama 2 13B Chat
-
Llama 2 13B Neuron
-
Llama 2 70B
-
Llama 2 70B Chat
-
Llama 2 7B
-
Llama 2 7B Chat
-
Llama 2 7B Neuron
-
Mistral 7B
-
RedPajama INCITE Base 3B V1
-
RedPajama INCITE Base 7B V1
-
RedPajama Tableau INCITE 3B V1
-
RedPajama Tableau INCITE 7B V1
-
RedPajama INCITE Instrut 3B V1
-
RedPajama Invite Instruit 7B V1
Préparation et chargement des données d’entraînement pour le peaufinage sur instructions
Les données d’entraînement pour le peaufinage sur 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 d’entraînement peut également inclure un modèle de fichier JSON (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 fichier template.json, chaque entrée .jsonl des données d’entraînement doit inclure les champs {instruction}, {context} et {response}.
Si vous fournissez un fichier JSON de modèle personnalisé, utilisez les clés "prompt" et "completion" pour définir vos propres champs obligatoires. Selon le fichier JSON de modèle personnalisé, chaque entrée .jsonl des données d’entraînement doit inclure les champs {question}, {context}, et {answer} :
{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }
Fractionnement des données pour l’entraînement 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 jeu de données de validation n’est fourni, une quantité définie de données d’entraînement est mise de côté à des fins de validation. Vous pouvez ajuster le pourcentage de données d’entraînement utilisé pour la validation lorsque vous choisissez les hyperparamètres pour le peaufinage de votre modèle.
Chargement de données de peaufinage sur Amazon S3
Téléchargez les données que vous avez préparées sur Amazon Simple Storage Service (Amazon S3) pour les utiliser lors de la mise au point d'un modèle de JumpStart base. Vous pouvez utiliser les commandes suivantes pour 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éation d’une tâche d’entraînement pour le peaufinage sur instructions
Une fois vos données chargées sur Amazon S3, vous pouvez affiner et déployer votre modèle de JumpStart base. Pour optimiser votre modèle dans Studio, consultez Fine-tune un modèle dans Studio. Pour affiner votre modèle à l'aide du SageMaker Python SDK, consultez. Fine-tune modèles de base accessibles au public avec la JumpStartEstimator classe
Exemples de blocs-notes
Pour plus d’informations sur le peaufinage sur instructions, consultez les exemples de blocs-notes suivants :