Bei modellbasierten Messwerten werden Ihre Modelle mit Gen AI evals anhand eines Basismodells wie Gemini bewertet, das als Judge-Modell konfiguriert und mit Prompts versehen wurde. Weitere Informationen zum Judge-Modell finden Sie in der Reihe Advanced judge model customization (Erweiterte Anpassung des Judge-Modells). Dort werden zusätzliche Tools beschrieben, mit denen Sie das Judge-Modell bewerten und konfigurieren können.
Informationen zum grundlegenden Bewertungs-Workflow finden Sie im Gen AI evals-Schnellstart. Die Reihe Advanced judge model customization (Erweiterte Anpassung des Judge-Modells) umfasst die folgenden Seiten:
- Judge-Modell bewerten (aktuelle Seite)
- Judge-Modell konfigurieren
Übersicht
Die Bewertung von Large Language Models (LLMs) durch menschliche Bewerter kann teuer und zeitaufwendig sein. Die Verwendung eines Judge-Modells ist eine skalierbarere Möglichkeit, LLMs zu bewerten. Gen AI evals verwendet ein konfiguriertes Gemini-Modell als Judge-Modell mit anpassbaren Prompts, um Ihr Modell für verschiedene Anwendungsfälle zu bewerten.
In den folgenden Abschnitten wird beschrieben, wie Sie ein benutzerdefiniertes Judge-Modell für Ihren idealen Anwendungsfall bewerten.
Dataset vorbereiten
Um modellbasierte Messwerte zu bewerten, bereiten Sie ein Bewertungs-Dataset mit menschlichen Bewertungen als Ground Truth vor. Ziel ist es, die Ergebnisse aus modellbasierten Messwerten mit menschlichen Bewertungen zu vergleichen und zu prüfen, ob die modellbasierten Messwerte die ideale Qualität für Ihren Anwendungsfall haben.
Bereiten Sie für
PointwiseMetricdie Spalte{metric_name}/human_ratingim Dataset als Ground Truth für das Ergebnis{metric_name}/scorevor, das von modellbasierten Messwerten generiert wurde.Bereiten Sie für
PairwiseMetricdie Spalte{metric_name}/human_pairwise_choiceim Dataset als Ground Truth für das Ergebnis{metric_name}/pairwise_choicevor, das von modellbasierten Messwerten generiert wurde.
Verwenden Sie das folgende Dataset-Schema:
| Modellbasierter Messwert | Spalte für menschliche Bewertung |
|---|---|
PointwiseMetric |
{metric_name}/human_rating |
PairwiseMetric |
{metric_name}/human_pairwise_choice |
Verfügbare Messwerte
Für einen PointwiseMetric, der nur zwei Ergebnisse zurückgibt (z. B. 0 und 1), und einen PairwiseMetric mit nur zwei Präferenztypen (Modell A oder Modell B) sind die folgenden Messwerte verfügbar:
| Messwert | Berechnung |
|---|---|
| Ausgeglichene Genauigkeit für zwei Klassen | \( (1/2)*(True Positive Rate + True Negative Rate) \) |
| Ausgeglichener F1-Wert für zwei Klassen | \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \) |
| Wahrheitsmatrix | Verwenden Sie die Felder confusion_matrix und confusion_matrix_labels, um Messwerte wie die Rate der richtig positiven Ergebnisse (True Positive Rate, TPR), die Rate der richtig negativen Ergebnisse (True Negative Rate, TNR), die Rate der falsch positiven Ergebnisse (False Positive Rate, FPR) und die Rate der falsch negativen Ergebnisse (False Negative Rate, FNR) zu berechnen. Beispiel: Das folgende Ergebnis: confusion_matrix = [[20, 31, 15],
[10, 11, 3],
[ 3, 2, 2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']BASELINE | CANDIDATE | TIE BASELINE. 20 31 15 CANDIDATE. 10 11 3 TIE. 3 2 2 | |
Für einen PointwiseMetric, der mehr als zwei Ergebnisse zurückgibt (z. B. 1 bis 5), und einen PairwiseMetric mit mehr als zwei Präferenztypen (Modell A, Modell B oder Unentschieden) sind die folgenden Messwerte verfügbar:
| Messwert | Berechnung |
|---|---|
| Ausgeglichene Genauigkeit für mehrere Klassen | \( (1/n) *∑_{i=1...n}(recall(class_i)) \) |
| Ausgeglichener F1-Wert für mehrere Klassen | \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \) |
Wobei:
\( f1 = 2 * precision * recall / (precision + recall) \)
\( precision = True Positives / (True Positives + False Positives) \)
\( recall = True Positives / (True Positives + False Negatives) \)
\( n \) : Anzahl der Klassen
\( cnt_i \) : Anzahl der \( class_i \) in den Ground Truth-Daten
\( sum \): Anzahl der Elemente in den Ground Truth-Daten
Zum Berechnen anderer Messwerte können Sie Open-Source-Bibliotheken verwenden.
Modellbasierten Messwert bewerten
Im folgenden Beispiel wird der modellbasierte Messwert mit einer benutzerdefinierten Definition von Sprachkompetenz aktualisiert und dann die Qualität des Messwerts bewertet.
from vertexai.preview.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]
)