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.
Juge basé sur des rubriques
Présentation de
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
Capacité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 pondérations d'importance à chaque critère afin de 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.
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 original — Affiche uniquement les 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.