Giudice basato sulla rubrica - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Giudice basato sulla rubrica

Panoramica di

Rubric Judge è un modello di LLM-as-a-judge valutazione avanzato basato su Nova 2.0 Lite. A differenza del modello di arbitro originale che fornisce solo verdetti di preferenza (A>B, B>A o pareggio), Rubric Judge genera dinamicamente criteri di valutazione personalizzati su misura per ogni richiesta e assegna punteggi granulari su più dimensioni.

Funzionalità chiave

  • Generazione di criteri dinamici: crea automaticamente dimensioni di valutazione pertinenti in base alla richiesta di input

  • Punteggio ponderato: assegna dei pesi di importanza a ciascun criterio in base alla relativa importanza

  • Valutazione granulare: fornisce punteggi dettagliati su base binaria (vero/falso) o su scala (1-5) per ciascun criterio

  • Metriche di qualità: calcola punteggi di qualità continui (scala 0-1) che quantificano l'entità delle differenze tra le risposte

Criterio di esempio generato dal modello

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

Il modello valuta entrambe le risposte rispetto a tutti i criteri generati, quindi utilizza questi punteggi a livello di criterio per determinare la preferenza finale.

Configurazione della ricetta

Ricetta Rubric Judge

Abilita Rubric Judge task: rubric_llm_judge impostando nella tua ricetta:

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)

Ricetta originale LLM as a Judge (per confronto)

Il modello di giudice originale utilizzatask: 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)

Formato del set di dati di input

Il formato del set di dati di input è identico al modello originale del giudice:

Campi obbligatori

  • prompt— Stringa contenente il prompt di input e le istruzioni

  • response_A— Stringa contenente l'output del modello di base

  • response_B— Stringa contenente l'output del modello personalizzato

Set di dati di esempio (formato 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."}

Requisiti di formato

  • Ogni voce deve essere un oggetto JSON a riga singola

  • Separa le voci con nuove righe

  • Segui l'esatta denominazione dei campi, come mostrato negli esempi

Risultato della valutazione

Struttura di output

Rubric Judge produce metriche di valutazione migliorate rispetto al modello di giudice originale:

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

Nuove metriche in Rubric Judge

Le seguenti sei metriche sono esclusive di Rubric Judge e forniscono una valutazione granulare della qualità:

Metrica Description
punteggio_ponderato_A Punteggio di qualità medio normalizzato per Response_a in base a tutti i criteri di valutazione generati dal modello. I punteggi sono ponderati in base all'importanza del criterio e normalizzati su una scala 0-1 (più alto = migliore qualità)
Weighted_score_a_stderr Errore standard della media per Weighted_score_a, che indica l'incertezza statistica
Punteggio_ponderato_B Punteggio di qualità medio normalizzato per Response_b in tutti i criteri di valutazione generati dal modello. I punteggi sono ponderati in base all'importanza del criterio e normalizzati su una scala 0-1 (più alto = migliore qualità)
Weighted_score_b_stderr Errore standard della media per Weighted_score_b, che indica l'incertezza statistica
score_margin Differenza tra i punteggi ponderati (calcolati come Weighted_score_A - Weighted_score_b). Intervallo: da -1,0 a 1,0. Positivo = response_a è migliore; negativo = response_B è migliore; vicino allo zero = qualità simile
score_margin_stderr Errore standard della media di score_margin, che indica l'incertezza nella misurazione della differenza di qualità

Comprensione delle metriche dei punteggi ponderati

Scopo: i punteggi ponderati forniscono misurazioni continue della qualità che completano i verdetti sulle preferenze binarie, consentendo una visione più approfondita delle prestazioni del modello.

Principali differenze rispetto al giudice originale

  • Giudice originale: emette solo preferenze discrete (A>B, B>A, A=B)

  • Rubric Judge: emette sia le preferenze che i punteggi di qualità continui (scala 0-1) in base a criteri personalizzati

Interpretazione di score_margin

  • score_margin = -0.128: Response_B ha ottenuto 12,8 punti percentuali in più rispetto a Response_a

  • |score_margin| < 0.1: Differenza di qualità ridotta (decisione ravvicinata)

  • |score_margin| > 0.2: Chiara differenza di qualità (decisione sicura)

Casi d'uso

  • Miglioramento del modello: identifica le aree specifiche in cui il tuo modello ha prestazioni inferiori

  • Quantificazione della qualità: misura l'entità dei divari prestazionali, non solo i rapporti win/loss

  • Valutazione della fiducia: distinguere tra decisioni ravvicinate e chiare differenze di qualità

Importante

I verdetti finali si basano ancora sulle etichette di preferenza esplicite del modello giudicante per preservare un ragionamento olistico e garantire un'adeguata mitigazione dei pregiudizi di posizione attraverso la valutazione. forward/backward I punteggi ponderati servono come strumenti di osservabilità, non come sostituti del verdetto primario.

Metodologia di calcolo

I punteggi ponderati vengono calcolati attraverso il seguente processo:

  • Estrai i dati dei criteri: analizza l'output YAML del giudice per estrarre punteggi e pesi dei criteri

  • Normalizza i punteggi:

    • Criteri di tipo di scala (1-5): normalizza a 0-1 calcolando (punteggio - 1)/4

    • Criteri binari (vero/falso): converti in 1,0/0,0

  • Applica pesi: moltiplica ogni punteggio normalizzato per il relativo peso del criterio

  • Aggregato: somma tutti i punteggi ponderati per ogni risposta

  • Calcola il margine: calcola score_margin = weighted_score_A - weighted_score_B

Esempio: se Response_a ha una somma ponderata di 0,65 e Response_b ha 0,78, score_margin sarebbe -0,13, indicando che response_b ha una qualità superiore di 13 punti percentuali rispetto a tutti i criteri ponderati.