Auf Rubriken basierender Richter - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Auf Rubriken basierender Richter

-Übersicht

Rubric Judge ist ein erweitertes LLM-as-a-judge Bewertungsmodell, das auf Nova 2.0 Lite basiert. Im Gegensatz zum ursprünglichen Richtermodell, das nur Präferenzurteile (A>B, B>A oder Unentschieden) vorsieht, generiert Rubric Judge dynamisch benutzerdefinierte Bewertungskriterien, die auf jede Aufforderung zugeschnitten sind, und weist detaillierte Punktzahlen für mehrere Dimensionen zu.

Die wichtigsten Funktionen

  • Dynamische Kriteriengenerierung — Erstellt automatisch relevante Bewertungsdimensionen auf der Grundlage der Eingabeaufforderung

  • Gewichtete Bewertung — Weist jedem Kriterium Wichtigkeitsgewichte zu, um dessen relative Signifikanz widerzuspiegeln

  • Granulare Bewertung — Stellt detaillierte Punktzahlen auf binärer (Wahr/Falsch) oder Skala (1-5) für jedes Kriterium bereit

  • Qualitätskennzahlen — Berechnet kontinuierliche Qualitätswerte (Skala 0-1), die das Ausmaß der Unterschiede zwischen den Antworten quantifizieren

Vom Modell generiertes Beispielkriterium

price_validation: description: "The response includes validation to ensure price is a positive value." type: "scale" weight: 0.3

Das Modell bewertet beide Antworten anhand aller generierten Kriterien und verwendet dann diese Punktzahlen auf Kriterienebene als Grundlage für die endgültige Präferenzentscheidung.

Konfiguration des Rezepts

Rezept für Rubrik Judge

Aktiviere Rubric Judge, indem task: rubric_llm_judge du in deinem Rezept Folgendes eingibst:

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)

Originalrezept für LLM als Judge (zum Vergleich)

Das ursprüngliche Richtermodell verwendettask: 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 des Eingabedatensatzes

Das Format des Eingabedatensatzes ist identisch mit dem ursprünglichen Richtermodell:

Pflichtfelder

  • prompt— Zeichenfolge, die die Eingabeaufforderung und die Anweisungen enthält

  • response_A— Zeichenfolge, die die Ausgabe des Basismodells enthält

  • response_B— Zeichenfolge, die die benutzerdefinierte Modellausgabe enthält

Beispieldatensatz (JSONL-Format)

{"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."}

Anforderungen an das Format

  • Jeder Eintrag muss ein einzeiliges JSON-Objekt sein

  • Trennen Sie Einträge durch Zeilenumbrüche

  • Folgen Sie der genauen Feldbenennung, wie in den Beispielen gezeigt

Ergebnis der Bewertung

Struktur der Ausgabe

Rubric Judge bietet im Vergleich zum ursprünglichen Richtermodell verbesserte Bewertungskennzahlen:

{ "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" } }

Neue Metriken in Rubrik Judge

Die folgenden sechs Kennzahlen sind einzigartig für Rubric Judge und ermöglichen eine detaillierte Qualitätsbeurteilung:

Metrik Description
Weighted_Score_A Durchschnittlicher normalisierter Qualitätsfaktor für Response_A für alle modellgenerierten Bewertungskriterien. Die Ergebnisse werden nach der Wichtigkeit der Kriterien gewichtet und auf eine Skala von 0 bis 1 normalisiert (höher = bessere Qualität)
Weighted_Score_A_StdErr Standardfehler des Mittelwerts für Weighted_Score_A, was auf statistische Unsicherheit hinweist
Weighted_Score_B Durchschnittlicher normalisierter Qualitätsfaktor für Response_B für alle modellgenerierten Bewertungskriterien. Die Ergebnisse werden nach der Wichtigkeit der Kriterien gewichtet und auf eine Skala von 0 bis 1 normalisiert (höher = bessere Qualität)
Weighted_Score_B_StdErr Standardfehler des Mittelwerts für Weighted_Score_B, was auf statistische Unsicherheit hinweist
score_margin Unterschied zwischen gewichteten Punktzahlen (berechnet als Weighted_Score_A — Weighted_Score_B). Bereich: -1,0 bis 1,0. Positiv = Antwort_A ist besser; negativ = Antwort_B ist besser; nahe Null = ähnliche Qualität
score_margin_stderr Standardfehler des Mittelwerts für score_margin, was auf eine Unsicherheit bei der Messung von Qualitätsunterschieden hinweist

Grundlegendes zu Kennzahlen mit gewichteten Werten

Zweck: Gewichtete Werte ermöglichen kontinuierliche Qualitätsmessungen, die binäre Präferenzurteile ergänzen und so tiefere Einblicke in die Modellleistung ermöglichen.

Wesentliche Unterschiede zum ursprünglichen Richter

  • Ursprünglicher Richter — Gibt nur diskrete Präferenzen aus (A>B, B>A, A=B)

  • Rubrik Judge — Gibt sowohl Präferenzen als auch kontinuierliche Qualitätswerte (Skala 0-1) auf der Grundlage benutzerdefinierter Kriterien aus

Interpretieren von score_margin

  • score_margin = -0.128: Response_B erzielte 12,8 Prozentpunkte mehr als Response_A

  • |score_margin| < 0.1: Geringer Qualitätsunterschied (knappe Entscheidung)

  • |score_margin| > 0.2: Deutlicher Qualitätsunterschied (sichere Entscheidung)

Anwendungsfälle

  • Modellverbesserung — Identifizieren Sie bestimmte Bereiche, in denen Ihr Modell unterdurchschnittlich abschneidet

  • Quantifizierung der Qualität — Messen Sie das Ausmaß von Leistungslücken, nicht nur Kennzahlen win/loss

  • Vertrauensbeurteilung — Unterscheiden Sie zwischen knappen Entscheidungen und deutlichen Qualitätsunterschieden

Wichtig

Endgültige Urteile basieren immer noch auf den ausdrücklichen Präferenzbezeichnungen des Richtermodells, um eine ganzheitliche Argumentation zu wahren und eine angemessene Minderung von Positionsverzerrungen durch Bewertung sicherzustellen. forward/backward Gewichtete Punktzahlen dienen als Instrumente zur Beobachtung und nicht als Ersatz für das erste Urteil.

Berechnungsmethodik

Gewichtete Werte werden nach dem folgenden Verfahren berechnet:

  • Kriteriendaten extrahieren — Analysieren Sie die YAML-Ausgabe des Richters, um die Punktzahlen und Gewichtungen der Kriterien zu extrahieren

  • Punktzahlen normalisieren:

    • Kriterien vom Typ Skala (1-5): Normalisieren Sie den Wert auf 0-1, indem Sie (Punktzahl — 1)/4 berechnen

    • Binäre Kriterien (wahr/falsch): In 1,0/0,0 umwandeln

  • Gewichtungen anwenden — Multiplizieren Sie jedes normalisierte Ergebnis mit der Gewichtung des Kriteriums

  • Aggregieren — Alle gewichteten Werte für jede Antwort summieren

  • Marge berechnen — Berechnen score_margin = weighted_score_A - weighted_score_B

Beispiel: Wenn Antworte_A eine gewichtete Summe von 0,65 und Antworte_B eine gewichtete Summe von 0,78 hat, score_margin wäre das -0,13, was bedeutet, dass Antworte_B bei allen gewichteten Kriterien eine um 13 Prozentpunkte höhere Qualität aufweist.