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.
Exemples de formules d’évaluation
Amazon Nova propose quatre types de recettes d'évaluation, disponibles dans le GitHub référentiel de HyperPod recettes.
Ces formules vous permettent d’évaluer les capacités fondamentales des modèles Amazon Nova grâce à une suite complète de points de référence basés uniquement sur le texte. Elles sont fournies au format xxx_general_text_benchmark_eval.yaml.
Ces formules vous permettent d’utiliser votre propre jeu de données à des fins d’analyse comparative et de comparer les résultats du modèle aux réponses de référence à l’aide de différents types de métriques. Elles sont fournies au format xxx_bring_your_own_dataset_eval.yaml.
Voici les exigences relatives à l’apport de votre propre jeu de données :
-
Exigences en matière de format de fichier d’entrée
-
Vous devez inclure un seul fichier
gen_qa.jsonlcontenant des exemples d’évaluation. -
Votre ensemble de données doit être téléchargé sur un emplacement S3 où SageMaker AI Training Job peut y accéder.
-
Le fichier doit suivre le format de schéma requis pour un jeu de données de questions/réponses général.
-
-
Exigences de format de schéma : chaque ligne du fichier JSONL doit être un objet JSON avec les champs suivants :
-
query: chaîne contenant la question ou l’instruction nécessitant une réponse (obligatoire) -
response: chaîne contenant le résultat attendu du modèle (obligatoire) -
system: chaîne contenant l’invite système qui définit le comportement, le rôle ou la personnalité du modèle d’IA avant qu’il ne traite la requête (facultatif) -
metadata: (Facultatif) Chaîne contenant les métadonnées associées à l'entrée à des fins de balisage.
-
Voici un exemple d’entrée « apportez votre propre jeu de données » :
{ "system":"You are a english major with top marks in class who likes to give minimal word responses: ", "query":"What is the symbol that ends the sentence as a question", "response":"?" } { "system":"You are a pattern analysis specialist that provides succinct answers: ", "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?", "response":"32" } { "system":"You have great attention to detail that follows instructions accurately: ", "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry", "response":"of dry" }
Pour utiliser votre jeu de données personnalisé, modifiez votre formule d’évaluation avec les champs obligatoires suivants, sans modifier le contenu :
evaluation: task: gen_qa strategy: gen_qa metric: all
Les limites suivantes s'appliquent :
-
Un seul fichier JSONL est autorisé par évaluation.
-
Le fichier doit suivre strictement le schéma défini.
-
Limite de longueur du contexte : pour chaque échantillon de l'ensemble de données, la longueur du contexte (y compris le système et les invites de requête) doit être inférieure à 3,5 ko.
Amazon Nova LLM-juge est une caractéristique d’évaluation des modèles qui vous permet de comparer la qualité des réponses d’un modèle aux réponses d’un modèle de référence à l’aide d’un jeu de données personnalisé. Il accepte un jeu de données contenant des invites, des réponses de base et des réponses de challenger, puis utilise un modèle Nova Judge pour fournir une métrique du taux de réussite basée sur la probabilité de Bradley-Terry
Les formules sont fournies au format xxx_llm_judge_eval.yaml.
Les exigences liées à LLM-juge sont les suivantes :
-
Exigences en matière de format de fichier d’entrée
-
Incluez un seul fichier
llm_judge.jsonlcontenant des exemples d’évaluation. Le fichier doit être nomméllm_judge.jsonl. -
Votre ensemble de données doit être téléchargé vers un emplacement S3 auquel SageMaker AI HyperPod RIG peut accéder.
-
Le fichier doit respecter le format de schéma requis pour le jeu de données
llm_judge.jsonl. -
Le jeu de données d’entrée doit garantir que tous les enregistrements ont une longueur de contexte inférieure à 12 000.
-
-
Exigences de format de schéma : chaque ligne du fichier JSONL doit être un objet JSON avec les champs suivants :
-
prompt: chaîne contenant l’invite de la réponse générée (obligatoire). -
response_A: chaîne contenant la réponse de base. -
response_B: chaîne contenant la réponse alternative comparée à la réponse de base.
-
Voici un exemple d’entrée LLM-juge :
{ "prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less." } { "prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations." } { "prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts." }
Pour utiliser votre jeu de données personnalisé, modifiez votre formule d’évaluation avec les champs obligatoires suivants, sans modifier le contenu :
evaluation: task: llm_judge strategy: judge metric: all
Les limites suivantes s'appliquent :
-
Un seul fichier JSONL est autorisé par évaluation.
-
Le fichier doit suivre strictement le schéma défini.
-
Les modèles Amazon Nova Judge sont identiques pour toutes les caractéristiques de la famille de modèles (à savoir, Lite, Micro et Pro).
-
Les modèles de juges personnalisés ne sont actuellement pas pris en charge.
-
Limite de longueur du contexte : pour chaque échantillon de l'ensemble de données, la longueur du contexte (y compris le système et les invites de requête) doit être inférieure à 7 ko.
Nova LLM Judge pour multimodal (image), abréviation de Nova MM_LLM Judge, est une fonctionnalité d'évaluation de modèle qui vous permet de comparer la qualité des réponses d'un modèle à celles d'un modèle de référence à l'aide d'un ensemble de données personnalisé. Il accepte un ensemble de données contenant des invites, des réponses de base et des réponses aux challengers, ainsi que des images sous forme de chaîne codée en Base64, puis utilise un modèle Nova Judge pour fournir une métrique du taux de victoire basée sur la probabilité de Bradley-Terryxxx_mm_llm_judge _eval.yaml.
Exigences relatives à le jeu de données Nova LLM
Format de fichier :
-
Fichier
mm_llm_judge.jsonlunique contenant des exemples d’évaluation. Le nom du fichier doit être exactllm_judge.jsonl. -
Vous devez télécharger votre ensemble de données sur un emplacement S3 où les SageMaker professionnels de formation peuvent y accéder.
-
Le fichier doit respecter le format de schéma requis pour le jeu de données
mm_llm_judge. -
L'ensemble de données en entrée doit garantir que tous les enregistrements ont une longueur de contexte inférieure à 12 k, à l'exception de l'attribut de l'image.
Format de schéma : chaque ligne du fichier .jsonl doit être un objet JSON avec les champs suivants.
-
Champs obligatoires.
prompt: chaîne contenant l’invite de réponse générée.images: Tableau contenant une liste d'objets avec des attributs de données (les valeurs sont des chaînes d'image codées en Base64).response_A: chaîne contenant la réponse de base.response_B: chaîne contenant la réponse alternative comparée à la réponse de base.
Exemple d’entrée
Pour des raisons de lisibilité, l'exemple suivant inclut de nouvelles lignes et une indentation, mais dans le jeu de données actuel, chaque enregistrement doit figurer sur une seule ligne.
{ "prompt": "what is in the image?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." } ], "response_A": "a dog.", "response_B": "a cat.", } { "prompt": "how many animals in echo of the images?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." }, { "data": "data:image/jpeg;Base64,/DKEafe3gihn..." } ], "response_A": "The first image contains one cat and the second image contains one dog", "response_B": "The first image has one aminal and the second has one animal", }
Pour utiliser votre jeu de données personnalisé, modifiez votre formule d’évaluation avec les champs obligatoires suivants, sans modifier le contenu :
evaluation: task: mm_llm_judge strategy: judge metric: all
Limites
-
Un seul fichier
.jsonlest autorisé par évaluation. -
Le fichier doit suivre strictement le schéma défini.
-
Les modèles Nova MM Judge ne prennent en charge que les références d'image.
-
Les modèles Nova MM Judge sont les mêmes pour toutes les spécifications d'Amazon Nova Lite.
-
Les modèles de juges personnalisés ne sont actuellement pas pris en charge.
-
L'URI de l'image Amazon S3 n'est pas prise en charge.
-
L'ensemble de données en entrée doit garantir que tous les enregistrements ont une longueur de contexte inférieure à 12 k, à l'exception de l'attribut images.
Rubric Judge est un modèle d' LLM-as-a-judgeévaluation amélioré basé sur Nova 2.0 Lite. Contrairement au modèle de juge original
Fonctionnalités clés :
-
Génération de critères dynamiques : crée automatiquement des dimensions d'évaluation pertinentes en fonction de l'invite de saisie
-
Notation pondérée : attribue des poids d'importance à chaque critère pour refléter leur importance relative
-
Évaluation granulaire : fournit des scores détaillés sur une base binaire (vrai/faux) ou sur une échelle (1 à 5) pour chaque critère
-
Indicateurs de qualité : calcule des scores de qualité continus (échelle de 0 à 1) qui quantifient l'ampleur des différences entre les réponses
Exemple de critère généré par le modèle :
price_validation: description: "The response includes validation to ensure price is a positive value." type: "scale" weight: 0.3
Le modèle évalue les deux réponses par rapport à tous les critères générés, puis utilise ces scores au niveau des critères pour éclairer sa décision de préférence finale.
Rubriques
Configuration de la recette
Recette de Rubric Judge
Activez Rubric Judge task: rubric_llm_judge en définissant votre recette :
run: name: nova-eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-2-lite-v1:0:256k # [FIXED] Rubric Judge model type model_name_or_path: "nova-lite-2/prod" # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [FIXED] Leave empty for SageMaker Training job output_s3_path: "" # [FIXED] Leave empty for SageMaker Training job evaluation: task: rubric_llm_judge # [FIXED] Evaluation task - enables Rubric Judge strategy: judge # [FIXED] Evaluation strategy metric: all # [FIXED] Metric calculation method inference: max_new_tokens: 12000 # [MODIFIABLE] Maximum tokens to generate top_k: -1 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
Recette originale de LLM as a Judge (à titre de comparaison)
Le modèle de juge original utilise task: llm_judge :
run: name: eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-micro-v1:0:128k # [FIXED] Model type model_name_or_path: "nova-micro/prod" # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [FIXED] Leave empty for SageMaker Training job output_s3_path: "" # [FIXED] Leave empty for SageMaker Training job evaluation: task: llm_judge # [FIXED] Original judge task strategy: judge # [FIXED] Evaluation strategy metric: all # [FIXED] Metric calculation method inference: max_new_tokens: 12000 # [MODIFIABLE] Maximum tokens to generate top_k: -1 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
Format du jeu de données d'entrée
Le format du jeu de données en entrée est identique à celui du modèle de juge d'origine
Champs obligatoires :
-
prompt: chaîne contenant l'invite de saisie et les instructions -
response_A: chaîne contenant la sortie du modèle de référence -
response_B: chaîne contenant la sortie du modèle personnalisé
Exemple de jeu de données (format JSONL) :
{"prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."} {"prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."} {"prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."}
Exigences relatives au format :
-
Chaque entrée doit être un objet JSON d'une seule ligne
-
Séparez les entrées par de nouvelles lignes
-
Suivez le nom exact des champs, comme indiqué dans les exemples
Résultat de l'évaluation
Structure de sortie
Rubric Judge produit des métriques d'évaluation améliorées par rapport au modèle de juge original :
{ "config_general": { "lighteval_sha": "string", "num_fewshot_seeds": "int", "max_samples": "int | null", "job_id": "int", "start_time": "float", "end_time": "float", "total_evaluation_time_secondes": "string", "model_name": "string", "model_sha": "string", "model_dtype": "string | null", "model_size": "string" }, "results": { "custom|rubric_llm_judge_judge|0": { "a_scores": "float", "a_scores_stderr": "float", "b_scores": "float", "b_scores_stderr": "float", "ties": "float", "ties_stderr": "float", "inference_error": "float", "inference_error_stderr": "float", "score": "float", "score_stderr": "float", "weighted_score_A": "float", "weighted_score_A_stderr": "float", "weighted_score_B": "float", "weighted_score_B_stderr": "float", "score_margin": "float", "score_margin_stderr": "float", "winrate": "float", "lower_rate": "float", "upper_rate": "float" } }, "versions": { "custom|rubric_llm_judge_judge|0": "int" } }
Nouveaux indicateurs dans Rubric Judge
Les six indicateurs suivants sont propres à Rubric Judge et fournissent une évaluation précise de la qualité :
Métrique |
Description |
|---|---|
Score pondéré A |
Note de qualité normalisée moyenne pour Response_A pour tous les critères d'évaluation générés par le modèle. Les scores sont pondérés en fonction de l'importance du critère et normalisés sur une échelle de 0 à 1 (plus haut = meilleure qualité) |
Score_pondéré_A_Stderr |
Erreur type de la moyenne pour Weighted_Score_A, indiquant une incertitude statistique |
Score pondéré B |
Note de qualité normalisée moyenne pour Response_B pour tous les critères d'évaluation générés par le modèle. Les scores sont pondérés en fonction de l'importance du critère et normalisés sur une échelle de 0 à 1 (plus haut = meilleure qualité) |
Score_pondéré_B_Stderr |
Erreur type de la moyenne pour Weighted_Score_B, indiquant une incertitude statistique |
score_margin |
Différence entre les scores pondérés (calculée comme Weighted_Score_A - Weighted_Score_B). Plage : -1,0 à 1,0. Positif = Response_A est meilleur ; négatif = Response_B est meilleur ; proche de zéro = qualité similaire |
score_margin_stderr |
Erreur type de la moyenne pour score_margin, indiquant une incertitude dans la mesure de la différence de qualité |
Comprendre les indicateurs de score pondérés
Objectif : Les scores pondérés fournissent des mesures de qualité continues qui complètent les verdicts de préférence binaires, permettant ainsi de mieux comprendre les performances du modèle.
Principales différences par rapport au juge initial :
-
Juge d'origine : affiche uniquement des préférences discrètes (A>B, B>A, A=B)
-
Rubric Judge : affiche à la fois les préférences ET les scores de qualité continus (échelle de 0 à 1) sur la base de critères personnalisés
Interprétation de score_margin :
-
score_margin = -0.128: Response_B a obtenu 12,8 points de pourcentage de plus que Response_A -
|score_margin| < 0.1: faible différence de qualité (décision serrée) -
|score_margin| > 0.2: différence de qualité claire (décision prise en toute confiance)
Cas d'utilisation :
-
Amélioration du modèle : identifiez les domaines spécifiques dans lesquels votre modèle est sous-performant
-
Quantification de la qualité : mesurez l'ampleur des écarts de performance, pas seulement win/loss les ratios
-
Évaluation de la confiance : faites la distinction entre des décisions serrées et des différences de qualité claires
Important
Les verdicts finaux sont toujours basés sur les étiquettes de préférence explicites du modèle du juge afin de préserver le raisonnement holistique et de garantir une atténuation appropriée des biais de position grâce forward/backward à l'évaluation. Les scores pondérés servent d'outils d'observabilité et ne remplacent pas le verdict principal.
Méthodologie de calcul
Les scores pondérés sont calculés selon le processus suivant :
-
Extraire les données des critères : analyse la sortie YAML du juge pour extraire les scores et les pondérations des critères
-
Normaliser les scores :
-
Critères de type échelle (1-5) : normaliser à 0-1 en calculant
(score - 1) / 4 -
Critères binaires (vrai/faux) : Convertir en 1,0/0,0
-
-
Appliquer des pondérations : multipliez chaque score normalisé par son critère de pondération
-
Agrégat : additionnez tous les scores pondérés pour chaque réponse
-
Calculer la marge : Calculer
score_margin = weighted_score_A - weighted_score_B
Exemple : si Response_A a une somme pondérée de 0,65 et Response_B a une somme pondérée de 0,78, ce score_margin serait -0,13, ce qui indique que Response_B est de 13 points de pourcentage plus élevée en termes de qualité pour tous les critères pondérés.
Support du modèle de raisonnement
La prise en charge des modèles de raisonnement permet une évaluation à l'aide de modèles Nova capables de raisonner qui effectuent un raisonnement interne explicite avant de générer des réponses finales. Cette fonctionnalité utilise le contrôle au niveau de l'API via le reasoning_effort paramètre pour activer ou désactiver dynamiquement la fonctionnalité de raisonnement, améliorant potentiellement la qualité des réponses pour les tâches analytiques complexes.
Modèles pris en charge :
-
amazon.nova-2-lite-v 1:0:256 k
Configuration de la recette
Activez le raisonnement en ajoutant le reasoning_effort paramètre à la inference section de votre recette :
run: name: eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-2-lite-v1:0:256k # [FIXED] Must be a reasoning-supported model model_name_or_path: nova-lite-2/prod # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [MODIFIABLE] Leave empty for SageMaker Training job; optional for SageMaker HyperPod job output_s3_path: "" # [MODIFIABLE] Output path for SageMaker HyperPod job (not compatible with SageMaker Training jobs) evaluation: task: mmlu # [MODIFIABLE] Evaluation task strategy: generate # [MODIFIABLE] Evaluation strategy metric: all # [MODIFIABLE] Metric calculation method inference: reasoning_effort: high # [MODIFIABLE] Enables reasoning mode; options: low/medium/high or null to disable max_new_tokens: 200 # [MODIFIABLE] Maximum tokens to generate top_k: 50 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
Utilisation du paramètre reasoning_effort
Le reasoning_effort paramètre contrôle le comportement de raisonnement des modèles capables de raisonner.
Prérequis :
-
Compatibilité des modèles : définie
reasoning_effortuniquement lorsqu'model_typeun modèle capable de raisonner est spécifié (actuellement)amazon.nova-2-lite-v1:0:256k -
Gestion des erreurs : l'utilisation
reasoning_effortavec des modèles non pris en charge échouera avecConfigValidationError: "Reasoning mode is enabled but model '{model_type}' does not support reasoning. Please use a reasoning-capable model or disable reasoning mode."
Options disponibles :
Option |
Comportement |
Limite de jetons |
Cas d’utilisation |
|---|---|---|---|
null (par défaut) |
Désactive le mode raisonnement |
N/A |
Évaluation standard sans frais de raisonnement |
bas |
Permet de raisonner avec des contraintes |
4 000 jetons pour le raisonnement interne |
Scénarios nécessitant un raisonnement concis ; optimisations en termes de rapidité et de coût |
haut |
Permet de raisonner sans contraintes |
Aucune limite symbolique au raisonnement interne |
Problèmes complexes nécessitant une analyse et un step-by-step raisonnement approfondis |
Quand activer le raisonnement
Utilisez le mode raisonnement (lowmedium, ouhigh) pour :
-
Tâches complexes de résolution de problèmes (mathématiques, énigmes logiques, codage)
-
Questions analytiques en plusieurs étapes nécessitant un raisonnement intermédiaire
-
Tâches pour lesquelles des explications ou des step-by-step réflexions détaillées améliorent la précision
-
Scénarios dans lesquels la qualité de réponse est privilégiée par rapport à la vitesse
Utilisez le mode non raisonné (omettre le paramètre) pour :
-
Questions et réponses simples ou questions factuelles
-
Tâches d'écriture créative
-
Lorsque des temps de réponse plus rapides sont essentiels
-
Analyse comparative des performances où les frais de raisonnement doivent être exclus
-
Optimisation des coûts lorsque le raisonnement n'améliore pas les performances des tâches
Résolution des problèmes
Erreur : « Le mode raisonnement est activé mais le modèle ne prend pas en charge le raisonnement »
Cause : le reasoning_effort paramètre est défini sur une valeur non nulle, mais la valeur spécifiée model_type ne permet pas de raisonner.
Résolution :
-
Vérifiez que le type de votre modèle est
amazon.nova-2-lite-v1:0:256k -
Si vous utilisez un modèle différent, passez à un modèle capable de raisonner ou supprimez le
reasoning_effortparamètre de votre recette