Option 2 : utilisation des journaux d’invocation pour la préparation des données
Lorsque vous créez une tâche de distillation, Amazon Bedrock peut utiliser les réponses des enseignants existantes issues des journaux d’invocation de CloudWatch 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 Surveillance de l’invocation du modèle à 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 une tâche de distillation de modèles dans la console Amazon Bedrock, à l’aide de l’API, de l’AWS CLI ou du kit AWS SDK.
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 les métadonnées de demande « 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 une tâche de distillation de modèles dans la console Amazon Bedrock, à l’aide de l’API, de l’AWS CLI ou du kit AWS SDK. Pour plus d’informations, consultez 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