Création d’une invite pour une métrique personnalisée - Amazon Bedrock

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 invite pour une métrique personnalisée

Avec les tâches d’évaluation RAG, vous pouvez créer vos propres métriques afin de mieux caractériser les performances du modèle en fonction de votre analyse de rentabilisation particulière. Vous pouvez définir jusqu’à 10 métriques personnalisées pour chaque tâche d’évaluation.

Pour créer votre propre métrique d’évaluation personnalisée, vous devez fournir les éléments suivants :

  • Une invite contenant les instructions détaillées à utiliser par le modèle d’évaluation

  • Le modèle évaluateur que vous souhaitez utiliser pour vos métriques personnalisées

Vous pouvez également spécifier un système de notation (schéma de sortie) que le modèle évaluateur peut utiliser pour évaluer les sorties du système RAG.

Les sections suivantes décrivent comment créer une invite pour votre modèle évaluateur lorsque vous utilisez des métriques personnalisées, ainsi que les bonnes pratiques. Ils définissent également le schéma à utiliser si vous créez votre métrique à l’aide d’un fichier JSON.

Pour savoir comment créer une tâche d’évaluation avec une métrique personnalisée à l’aide de votre invite, consultez Création d’une tâche d’évaluation RAG de la récupération uniquement à l’aide de métriques personnalisées et Création d’une tâche d’évaluation RAG de la récupération et de la génération à l’aide de métriques personnalisées.

Construction d’invite et bonnes pratiques

Lorsque vous créez une invite pour une métrique personnalisée, vous devez structurer l’invite avec les éléments suivants :

  1. Définition de rôle (facultatif) : indique au modèle évaluateur d’adopter une identité ou un rôle spécifique

  2. Description de tâche : fournit des instructions détaillées sur la tâche d’évaluation

  3. Critère et rubrique (facultatif) : fournit des directives de notation détaillées et des rubriques pour l’évaluation

  4. Variables d’entrée : définit les variables à évaluer, telles que l’invite et la réponse

Incluez ces éléments dans votre invite dans l’ordre indiqué dans la liste. Les sections suivantes décrivent chacun de ces éléments plus en détail.

Définition de rôle

La fourniture d’une définition du rôle est facultative, mais le fait d’en fournir une peut aider à encadrer l’évaluation. Par exemple, si vous créez une métrique pour évaluer le style de prose des sorties finales d’un système RAG, vous pouvez envisager d’utiliser un rôle tel que « tuteur d’écriture ». Des rôles tels que « vérificateur de l’exactitude des faits » ou « expert en la matière » peuvent également être appropriés en fonction des objectifs de votre évaluation.

Si vous choisissez d’inclure une définition de rôle, celle-ci doit figurer dans la première section de votre invite. Voici un exemple de définition de rôle.

Exemple définition de rôle
You are a professional editor who is familiar with the requirements of commonly-used style manuals.

Définition de tâche

La définition de tâche est la section la plus importante de votre invite. Elle définit la tâche que vous souhaitez que votre modèle évaluateur exécute. Votre définition de tâche doit fournir des instructions détaillées sur la tâche d’évaluation (nous recommandons un minimum de 15 mots) et préciser les aspects sur lesquels se concentrer et la manière de structurer l’évaluation.

Votre définition de tâche doit figurer directement après votre définition de rôle, si vous choisissez d’en inclure une.

Pour des conseils plus généraux sur la manière de structurer les invites pour les LLM, consultez Conception d’une invite.

L’exemple suivant montre une définition de tâche pour une métrique qui met l’accent sur l’adhésion des réponses du système RAG à un guide de style particulier.

Exemple définition de tâche
You are provided a prompt and a response from a RAG system. The prompt asks the RAG system to follow the Chicago Manual of Style when generating its responses. Your task is to assess how closely the text in the response adheres to the style guide. Focus in particular on grammar, prose style, and citation requirements.

Critère et rubrique

Cette section est facultative et peut être utilisée pour définir plusieurs rubriques d’évaluation ou fournir des directives de notation détaillées pour la métrique. Cette section doit être ajoutée entre la définition de tâche et les variables d’entrée. Les exemples suivants présentent une rubrique d’évaluation et des directives de notation pour la tâche donnée dans l’exemple de définition de tâche fourni. Vous pouvez inclure l’un ou l’autre de ces types d’informations, ou les deux, dans cette section de votre invite.

Exemple rubrique d’évaluation
When evaluating the response quality, consider the following: - Grammar: Does the grammar in the response follow the requirements of the style guide - Style consistency: Does the response maintain consistent capitalization, punctuation, and paragraph formatting - Citations: Does the response use the correct citation style for in-text citations and endnotes
Exemple directives de notation
Please rate the quality of the response on the following scale: - Poor: Response includes errors in citation, grammar, or usage - Acceptable: Response includes only minor formatting errors - Good: Response meets all requirements of the style guide

Lorsque vous créez une tâche d’évaluation qui utilise un LLM-juge, que ce soit dans la AWS Management Console ou à l’aide de l’AWS CLI ou de l’un des kits AWS SDK, vous pouvez spécifier un schéma de sortie pour Amazon Bedrock afin d’évaluer les réponses de votre modèle générateur. Assurez-vous que toutes les définitions que vous spécifiez pour le schéma de sortie sont conformes aux directives de notation que vous définissez dans l’invite. Par exemple, dans l’exemple précédent, vous devez spécifier les définitions de votre schéma de sortie comme « Mauvaise », « Acceptable » et « Bonne ». Pour plus d’informations sur la définition des schémas de sortie, consultez Spécification d’un schéma de sortie (échelle de notation).

Variables d’entrée

La dernière section de votre invite indique les variables dont le modèle évaluateur a besoin pour effectuer l’évaluation. Notez que vous devez spécifier les variables d’entrée en dernier ; si vous fournissez des instructions supplémentaires dans votre invite après les variables d’entrée, le modèle évaluateur risque de ne pas évaluer correctement vos métriques.

Les variables d’entrée minimales que vous devez spécifier dépendent du type de tâche d’évaluation que vous créez ; pour une tâche d’extraction uniquement, vous devez fournir {{context}} et pour une tâche d’extraction et de génération, vous devez fournir {{prediction}}. Dans les deux cas, nous vous recommandons d’inclure également l’invite fournie au modèle générateur ({{prompt}}). Le tableau suivant définit les variables que vous pouvez utiliser dans votre invite et la manière dont elles correspondent aux propriétés de votre jeu de données d’invite.

Variable d’entrée Définition Obligatoire (extraction uniquement) Obligatoire (extraction et génération) Propriété de jeu de données d’invite
{{prompt}} L’invite fournie au système RAG Non Non "prompt"
{{prediction}} La réponse fournie par le modèle générateur de réponses (uniquement disponible pour les tâches d’extraction et de génération) Non Oui "output" -> "text" (uniquement applicable aux tâches pour lesquelles vous fournissez vos propres données d’inférence)
{{ground_truth}} Une réponse de référence pour l’invite Non Non "referenceResponses" -> "content" -> "text"
{{context}} Passages RAG reçus pour générer la réponse Oui Non "retrievalResults" -> "content" -> "text"
{{reference_contexts}} Des passages de vérité sur le terrain que vous vous attendriez à extraire Non Non referenceContexts -> "content" -> "text"

L’exemple suivant montre comment spécifier des variables d’entrée dans une invite.

Exemple définition de la variable d’entrée
Here is the actual task: Prompt: {{prompt}} Response: {{prediction}}

Par souci d’exhaustivité, l’invite complète pour ce cas d’utilisation est fournie dans l’exemple suivant. Une invite complète ne doit pas dépasser 5 000 caractères.

Exemple invite de métrique personnalisée
You are a professional editor who is familiar with the requirements of commonly-used style manuals. You are provided a prompt and a response from a RAG system. The prompt asks the RAG system to follow the Chicago manual of style when generating its responses. Your task is to assess how closely the text in the response adheres to the style guide. Focus in particular on grammar, prose style, and citation requirements. When evaluating the response quality, consider the following: - Grammar: Does the grammar in the response follow the requirements of the style guide - Style consistency: Does the response maintain consistent capitalization, punctuation, and paragraph formatting - Citations: Does the response use the correct citation style for in-text citations and endnotes Please rate the quality of the response on the following scale: - Poor: Response includes errors in citation, grammar, or usage - Acceptable: Response includes only minor formatting errors - Good: Response meets all requirements of the style guide Here is the actual task: Prompt: {{prompt}} Response: {{prediction}}

Spécification d’un schéma de sortie (échelle de notation)

Outre les directives d’évaluation indiquées dans votre invite, lorsque vous créez une tâche d’évaluation avec une métrique personnalisée, vous pouvez définir une échelle de notation pour la métrique en spécifiant un schéma de sortie. Ce schéma comprend des valeurs d’échelle et leurs définitions correspondantes. Les valeurs de l’échelle peuvent être des valeurs numériques ou des chaînes, mais pas un mélange des deux.

Nous vous recommandons vivement de définir une échelle de notation. Dans le cas contraire, Amazon Bedrock ne sera peut-être pas en mesure d’analyser correctement les sorties de votre modèle évaluateur pour afficher vos résultats graphiquement dans la console ou pour calculer le score moyen. Vous pouvez définir une échelle de notation lorsque vous créez une métrique soit à l’aide de la console, soit à l’aide de la propriété ratingScale si vous créez votre métrique à l’aide d’un kit AWS SDK ou de l’AWS CLI.

Lorsque vous définissez une échelle de notation, Amazon Bedrock ajoute des instructions de sortie structurées à l’invite de votre modèle évaluateur. Le format de sortie structurée étant différent selon les modèles évaluateurs, il est important de définir l’échelle de notation séparément et de ne pas l’inclure dans votre invite principale. Si vous créez votre métrique et définissez une échelle de notation dans la console, vous pouvez voir l’invite finale, y compris les instructions de sortie structurées, dans la zone de texte d’aperçu.

Lorsque vous fournissez la définition de chaque valeur d’échelle, assurez-vous que les définitions que vous utilisez dans la définition de votre schéma de sortie correspondent exactement à la manière dont vous avez défini vos directives de notation dans l’invite. Ces définitions doivent comporter un maximum de cinq mots et sont limitées à 100 caractères. Évitez d’utiliser des articles (« un/une/des » et « le/la/l’/les ») dans la définition. Vous pouvez utiliser le texte explicatif figurant dans votre invite pour fournir au modèle évaluateur une définition plus détaillée de la manière d’évaluer les réponses.

Le tableau suivant montre comment vous pouvez décrire les directives de notation dans l’invite et comment spécifier la définition d’échelle correspondante dans le schéma de sortie.

Directive de notation d’invite Valeur d’échelle du schéma Définition de l’échelle du schéma
- Poor: The response fails to meet the basic requirements of the prompt and contains significant errors and omissions 0 Poor
- Good: The response adequately meets the basic requirements of the prompt but may contain minor errors or omissions 1 Good
- Excellent: The response fully meets the prompt with comprehensive, accurate, and valuable information 2 Excellent

Cet exemple utilise des valeurs entières pour l’échelle, mais vous pouvez également utiliser des chaînes.

Pour savoir comment spécifier le schéma lorsque vous créez une tâche d’évaluation, consultez Création d’une tâche d’évaluation des modèles à l’aide de métriques personnalisées.

Création d’un fichier JSON pour créer une métrique personnalisée

Lorsque vous créez une tâche d’évaluation qui utilise des métriques personnalisées dans la console, vous avez la possibilité de charger un fichier JSON depuis votre machine locale qui définit votre métrique. Si vous choisissez d’utiliser un fichier JSON pour créer une métrique personnalisée à l’aide de la console, vous ne pouvez pas définir d’échelle de notation à l’aide des zones de texte de l’interface utilisateur de la console. Vous devez donc l’inclure dans votre définition JSON. Nous vous recommandons de toujours définir une échelle de notation lors de la création de métriques personnalisées.

Les exemples suivants montrent les formats de fichier JSON permettant de créer une métrique personnalisée avec une échelle de notation numérique ou sous forme de chaîne, ou sans échelle de notation. Dans chaque cas, ajoutez votre invite complète sous forme de chaîne dans la propriété "instructions".

Lorsque vous créez une tâche d’évaluation avec une ou plusieurs métriques personnalisées, Amazon Bedrock enregistre vos définitions de métriques sous forme de fichiers JSON dans le compartiment S3 de sortie que vous spécifiez. Vous pouvez accéder à ces fichiers via s3://S3-output-bucket-name/job-name/job-uuid/custom_metrics.

Definition with numerical scale
{ "customMetricDefinition": { "metricName": "my_custom_metric", "instructions": "Your complete custom metric prompt including at least one {{input variable}}", "ratingScale": [ { "definition": "first rating definition", "value": { "floatValue": 3 } }, { "definition": "second rating definition", "value": { "floatValue": 2 } }, { "definition": "third rating definition", "value": { "floatValue": 1 } } ] } }
Definition with string scale
{ "customMetricDefinition": { "metricName": "my_custom_metric", "instructions": "Your complete custom metric prompt including at least one {{input variable}}", "ratingScale": [ { "definition": "first rating definition", "value": { "stringValue": "first value" } }, { "definition": "second rating definition", "value": { "stringValue": "second value" } }, { "definition": "third rating definition", "value": { "stringValue": "third value" } } ] } }
Definition with no scale
{ "customMetricDefinition": { "metricName": "my_custom_metric", "instructions": "Your complete custom metric prompt including at least one {{input variable}}" } }