Valutare un modello di giudice

Per le metriche basate su modelli, il servizio di valutazione dell'IA generativa valuta i tuoi modelli con un modello di base, come Gemini, che è stato configurato e richiesto come modello di giudizio. Per scoprire di più sul modello di giudice, la serie di articoli sulla personalizzazione avanzata del modello di giudice descrive strumenti aggiuntivi che puoi utilizzare per valutare e configurare il modello di giudice.

Per il flusso di lavoro di valutazione di base, consulta la guida introduttiva al servizio di valutazione dell'AI generativa. La serie di articoli sulla personalizzazione del modello di giudice avanzato include le seguenti pagine:

  1. Valutare un modello di giudice (pagina corrente)
  2. Richiesta di personalizzazione del modello di giudice
  3. Configurare un modello di giudice

Panoramica

L'utilizzo di giudici umani per valutare i modelli linguistici di grandi dimensioni (LLM) può essere costoso e richiedere molto tempo. L'utilizzo di un modello di valutazione è un modo più scalabile per valutare gli LLM. Per impostazione predefinita, il servizio di valutazione dell'IA generativa utilizza un modello Gemini 1.5 Pro configurato come modello di giudizio, con prompt personalizzabili per valutare il tuo modello per vari casi d'uso.

Le sezioni seguenti mostrano come valutare un modello di giudice personalizzato per il tuo caso d'uso ideale.

Prepara il set di dati

Per valutare le metriche basate su modelli, prepara un set di dati di valutazione con le valutazioni umane come dati di fatto. L'obiettivo è confrontare i punteggi delle metriche basate su modelli con le valutazioni umane e verificare se le metriche basate su modelli hanno la qualità ideale per il tuo caso d'uso.

  • Per PointwiseMetric, prepara la colonna {metric_name}/human_rating nel set di dati come dati empirici reali per il risultato {metric_name}/score generato dalle metriche basate su modelli.

  • Per PairwiseMetric, prepara la colonna {metric_name}/human_pairwise_choice nel set di dati come dati empirici reali per il risultato {metric_name}/pairwise_choice generato dalle metriche basate su modelli.

Utilizza lo schema del set di dati seguente:

Metrica basata su modello Colonna Valutazione umana
PointwiseMetric {metric_name}/valutazione_umana
PairwiseMetric {metric_name}/scelta_a_coppie_da_parte_di_un_utente

Metriche disponibili

Per un PointwiseMetric che restituisce solo due punteggi (ad esempio 0 e 1) e un PointwiseMetric che ha solo due tipi di preferenze (modello A o modello B), sono disponibili le seguenti metriche:PairwiseMetric

Metrica Calcolo
Accuratezza bilanciata a due classi \( (1/2)*(True Positive Rate + True Negative Rate) \)
Punteggio F1 bilanciato a 2 classi \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
Matrice di confusione Utilizza i campi confusion_matrix e confusion_matrix_labels per calcolare metriche come la percentuale di veri positivi (TPR), la percentuale di veri negativi (TNR), la percentuale di falsi positivi (FPR) e la percentuale di falsi negativi (FNR).

Ad esempio, il seguente risultato:
confusion_matrix = [[20, 31, 15],
    [10, 11,  3],
   [ 3,  2,  2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']
si traduce nella seguente matrice di confusione:
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

Per un PointwiseMetric che restituisce più di 2 punteggi (ad esempio da 1 a 5) e un PairwiseMetric con più di 2 tipi di preferenze (modello A, modello B o parità), sono disponibili le seguenti metriche:

Metrica Calcolo
Accuratezza bilanciata per più classi \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
Punteggio F1 bilanciato per più classi \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \)

Dove:

  • \( f1 = 2 * precision * recall / (precision + recall) \)

    • \( precision = True Positives / (True Positives + False Positives) \)

    • \( recall = True Positives / (True Positives + False Negatives) \)

  • \( n \) : numero di corsi

  • \( cnt_i \) : numero di \( class_i \) nei dati del vero e proprio

  • \( sum \): numero di elementi nei dati del vero e proprio

Per calcolare altre metriche, puoi utilizzare librerie open source.

Valutare la metrica basata su modelli

L'esempio seguente aggiorna la metrica basata sul modello con una definizione personalizzata di fluente, quindi valuta la qualità della metrica.

from vertexai.evaluation import {
   AutoraterConfig,
   PairwiseMetric,
}
from vertexai.preview.evaluation.autorater_utils import evaluate_autorater


# Step 1: Prepare the evaluation dataset with the human rating data column.
human_rated_dataset = pd.DataFrame({
  "prompt": [PROMPT_1, PROMPT_2],
    "response": [RESPONSE_1, RESPONSE_2],
  "baseline_model_response": [BASELINE_MODEL_RESPONSE_1, BASELINE_MODEL_RESPONSE_2],
    "pairwise_fluency/human_pairwise_choice": ["model_A", "model_B"]
})

# Step 2: Get the results from model-based metric
pairwise_fluency = PairwiseMetric(
    metric="pairwise_fluency",
    metric_prompt_template="please evaluate pairwise fluency..."
)

eval_result = EvalTask(
    dataset=human_rated_dataset,
    metrics=[pairwise_fluency],
).evaluate()

# Step 3: Calibrate model-based metric result and human preferences.
# eval_result contains human evaluation result from human_rated_dataset.
evaluate_autorater_result = evaluate_autorater(
  evaluate_autorater_input=eval_result.metrics_table,
  eval_metrics=[pairwise_fluency]
)

Passaggi successivi