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.
Préparation de vos jeux de données d’entraînement pour la distillation
Avant de commencer une tâche de personnalisation d’un modèle, vous devez au minimum préparer un jeu de données d’entraînement. Pour préparer les jeux de données d’entrée pour votre modèle personnalisé, vous créez des fichiers .jsonl dont chaque ligne est un objet JSON correspondant à un enregistrement. Les fichiers que vous créez doivent respecter le format de la distillation de modèles et du modèle que vous avez choisis. Les enregistrements qu’ils contiennent doivent également être conformes aux exigences de taille.
Fournissez les données d’entrée sous forme d’invite. Amazon Bedrock utilise les données d’entrée pour générer des réponses à partir du modèle enseignant, puis utilise les réponses générées pour optimiser le modèle étudiant. Pour plus d’informations sur les entrées utilisées par Amazon Bedrock et pour choisir l’option la mieux adaptée à votre cas d’utilisation, consultez Fonctionnement de la distillation de modèles Amazon Bedrock. Il existe plusieurs options pour préparer votre jeu de données d’entrée.
Note
Les Amazon Nova modèles ont des exigences différentes pour la distillation. Pour plus d’informations, consultez Distillation des modèles Amazon Nova.
Les modèles répertoriés ne Modèles et régions pris en charge pour la distillation de modèles Amazon Bedrock prennent en charge que la text-to-text modalité.
Lors de la distillation de modèles, Amazon Bedrock génère un jeu de données synthétique qu’il utilise pour optimiser le modèle étudiant en fonction de votre cas d’utilisation spécifique. Pour plus d’informations, consultez Fonctionnement de la distillation de modèles Amazon Bedrock.
Vous pouvez optimiser le processus de génération de données synthétiques en formatant vos invites d’entrée en fonction du cas d’utilisation que vous souhaitez. Par exemple, si le cas d’utilisation de votre modèle distillé est la génération à enrichissement contextuel (RAG), vous devez formater vos invites différemment que si vous souhaitez que le modèle se concentre sur les cas d’utilisation des agents.
Vous trouverez ci-dessous des exemples de mise en forme de vos invites d’entrée pour les cas d’utilisation de RAG ou d’agent.
Collectez vos invites et stockez-les au format de fichier .jsonl. Chaque enregistrement dans le JSONL doit utiliser la structure suivante.
-
Incluez le champ
schemaVersionqui doit contenir la valeurbedrock-conversion-2024. -
[Facultatif] Incluez une invite système indiquant le rôle attribué au modèle.
-
Dans le champ
messages, incluez le rôle utilisateur contenant l’invite d’entrée fournie au modèle. -
[Facultatif] Dans le champ
messages, incluez le rôle d’assistant contenant la réponse souhaitée.
Les modèles Anthropic et Meta Llama ne prennent en charge que les invites de conversation simples, ce qui signifie que vous ne pouvez avoir qu’une seule invite utilisateur. Les modèles Amazon Nova prennent en charge les conversations complexes, ce qui vous permet de proposer des échanges entre plusieurs utilisateurs et assistants au sein d’un même enregistrement.
Exemple de format
{ "schemaVersion": "bedrock-conversation-2024", "system": [{ "text": "A chat between a curious User and an artificial intelligence Bot. The Bot gives helpful, detailed, and polite answers to the User's questions." }], "messages": [{ "role": "user", "content": [{ "text": "why is the sky blue" }] }, { "role": "assistant", "content": [{ "text": "The sky is blue because molecules in the air scatter blue light from the Sun more than other colors." }] } ] }}
Validation de votre jeu de données
Avant d’exécuter votre tâche de distillation, vous pouvez valider votre jeu de données d’entrée à l’aide d’un script Python
Lorsque vous créez une tâche de distillation, Amazon Bedrock peut utiliser les réponses des enseignants existantes issues des CloudWatch journaux d'invocation de Logs comme données de formation. Pour Amazon Bedrock, un journal d’invocation est un enregistrement détaillé des invocations du modèle.
Pour utiliser les journaux d’invocation pour la distillation de modèles, configurez la connexion par invocation du modèle, utilisez l’une des opérations d’appel du modèle et assurez-vous d’avoir configuré un compartiment Amazon S3 comme destination pour les journaux. Avant de démarrer la tâche de distillation de modèles, vous devez fournir à Amazon Bedrock les autorisations d’accès aux journaux. Pour plus d'informations sur la configuration des journaux d'invocation, consultez Surveiller le modèle d'invocation à l'aide d'Amazon CloudWatch Logs.
Avec cette option, vous pouvez spécifier si vous souhaitez qu’Amazon Bedrock utilise uniquement les invites ou utilise des paires invite-réponse issues du journal des invocations. Si vous souhaitez qu’Amazon Bedrock utilise uniquement des invites, Amazon Bedrock peut ajouter des techniques de synthèse de données exclusives afin de générer des réponses diverses et de meilleure qualité à partir du modèle enseignant. Si vous souhaitez qu’Amazon Bedrock utilise des paires invite-réponse, Amazon Bedrock ne régénérera pas les réponses à partir du modèle enseignant. Amazon Bedrock utilisera directement les réponses du journal des invocations pour optimiser le modèle étudiant.
Important
Vous pouvez fournir un maximum de 15 000 invites ou paires invite-réponse à Amazon Bedrock pour optimiser le modèle étudiant. Pour vous assurer que le modèle étudiant est optimisé afin de répondre à vos besoins spécifiques, nous vous recommandons vivement ce qui suit :
-
Si vous souhaitez qu’Amazon Bedrock utilise uniquement des invites, assurez-vous qu’au moins 100 paires invite-réponse ont été générées pour tous les modèles.
-
Si vous souhaitez qu’Amazon Bedrock utilise les réponses de vos journaux d’invocation, assurez-vous d’avoir généré au moins 100 paires invite-réponse à partir du modèle de vos journaux d’invocation qui correspondent exactement au modèle enseignant que vous avez choisi.
Vous pouvez éventuellement ajouter des métadonnées de demande aux paires invite-réponse du journal d’invocation à l’aide de l’une des opérations d’invocation du modèle, puis les utiliser ultérieurement pour filtrer les journaux. Amazon Bedrock peut utiliser les journaux filtrés pour optimiser le modèle étudiant.
Pour filtrer les journaux à l’aide de plusieurs métadonnées de demandes, utilisez un seul opérateur booléen AND, OR ou NOT. Vous ne pouvez pas combiner les opérations. Pour le filtrage des métadonnées à demande unique, utilisez l’opérateur booléen NOT.
Ajout de métadonnées de demande aux invites et aux réponses dans vos journaux d’invocation pour la distillation de modèles
La journalisation des invocations de modèle collecte les journaux d’invocation, les données d’entrée des modèles (invites), ainsi que des données de sortie des modèles (réponses) pour toutes les invocations utilisées dans Amazon Bedrock. Si vous avez activé la journalisation, vous pouvez collecter les journaux chaque fois que vous interagissez avec les modèles de fondation Amazon Bedrock par le biais d’opérations d’API Invoke ou Converse. Si vous souhaitez qu’Amazon Bedrock utilise les invites et les réponses associées du journal des invocations pour optimiser le modèle étudiant, vous devez autoriser Amazon Bedrock à accéder à ces journaux. L’utilisation des réponses déjà générées par un modèle permet d’optimiser plus rapidement le modèle étudiant. L’utilisation des réponses issues des journaux d’invocation permet également de rentabiliser la distillation de modèles. Toutefois, les techniques de synthèse de données exclusives d’Amazon Bedrock ne sont pas ajoutées, ce qui peut se traduire par un modèle distillé plus performant.
Grâce aux journaux d’invocation, vous pouvez identifier les paires invite-réponse que vous souhaitez qu’Amazon Bedrock utilise pour la distillation de modèles. Ces paires invite-réponse peuvent être destinées à des cas d’utilisation spécifiques. Pour pouvoir identifier les paires invite-réponse à utiliser pour la distillation, vous devez ajouter une chaîne de métadonnées de demande aux paires invite-réponse lorsque vous invoquez un modèle ou que vous utilisez l’opération d’API Converse. Les métadonnées de la demande sont fournies au format : ". priority" :
"High"
Au fur et à mesure que vous continuez à interagir avec le modèle à l’aide des opérations d’API Invoke ou Converse, les interactions et les métadonnées de la demande sont enregistrées dans les journaux d’invocation. Voici un exemple de journal d’appel issu d’une invocation InvokeModel qui affiche les métadonnées de la demande :
{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-09-11T17:16:18Z", "accountId": "XXXXX", "identity": { "arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX" }, "region": "us-east-1", "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5", "operation": "InvokeModel", "modelId": "meta.llama3-1-405b-instruct-v1:0", "input": { "inputContentType": "application/json", "inputBodyJson": { "prompt": "story of two dogs", "max_tokens_to_sample": 300 }, "inputTokenCount": 13 }, "output": { "outputContentType": "application/json", "outputBodyJson": { "type": "completion", "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little", "stop_reason": "max_tokens", "stop": null }, "outputTokenCount": 300 }, "requestMetadata": { "project": "CustomerService", "intent": "ComplaintResolution", "priority": "High" } }
Vous pouvez spécifier le journal des invocations comme source de données d’entrée lorsque vous démarrez une tâche de distillation de modèles. Vous pouvez démarrer la tâche de distillation du modèle dans la console Amazon Bedrock, à l'aide de l'API ou du AWS SDK. AWS CLI
Exigences relatives à la fourniture de métadonnées de demande
Les métadonnées de demande doivent respecter les exigences suivantes :
-
Fournies au format JSON
key:value. -
La paire clé/valeur doit être une chaîne de 256 caractères maximum.
-
Fournissez un maximum de 16 paires clé-valeur.
Utilisation de filtres de métadonnées des demandes
Vous pouvez appliquer des aux métadonnées de demande afin de sélectionner de manière sélective les paires invite-réponse à inclure dans la distillation afin d’optimiser le modèle étudiant. Par exemple, vous souhaiterez peut-être inclure uniquement celles dont les métadonnées de demande sont « project » : CustomerService "» et « priority » : « High ».
Pour filtrer les journaux à l’aide de plusieurs métadonnées de demandes, utilisez un seul opérateur booléen AND, OR ou NOT. Vous ne pouvez pas combiner les opérations. Pour le filtrage des métadonnées à demande unique, utilisez l’opérateur booléen NOT.
Vous pouvez spécifier le journal des invocations comme source de données d’entrée et les filtres à utiliser pour sélectionner les paires invite-réponse lorsque vous démarrez une tâche de distillation de modèles. Vous pouvez démarrer la tâche de distillation du modèle dans la console Amazon Bedrock, à l'aide de l'API ou du AWS SDK. AWS CLI Pour de plus amples informations, veuillez consulter Envoi d’un modèle de tâche de distillation de modèles dans Amazon Bedrock.
Validation de votre jeu de données
Avant d’exécuter votre tâche de distillation, vous pouvez valider votre jeu de données d’entrée à l’aide d’un script Python