Bewertungsmesswerte definieren

Nachdem Sie ein Bewertungs-Dataset erstellt haben, müssen Sie die Messwerte definieren, mit denen die Modellleistung gemessen wird. Mit generativen KI-Modellen lassen sich Anwendungen für eine Vielzahl von Aufgaben erstellen. Der Gen AI Evaluation Service verwendet ein testgesteuertes Framework, das die Bewertung von subjektiven Bewertungen in objektive, umsetzbare Ergebnisse umwandelt.

Im Folgenden finden Sie die wichtigsten Konzepte im Zusammenhang mit Bewertungsmetriken:

  • Rubriken: Die Kriterien für die Bewertung der Antwort eines LLM-Modells oder einer Anwendung.

  • Messwerte: Eine Punktzahl, mit der die Modellausgabe anhand der Bewertungskriterien gemessen wird.

Der Gen AI Evaluation Service bietet die folgenden Kategorien von Messwerten:

  • Rubrikbasierte Messwerte: LLMs in Bewertungs-Workflows einbinden.

    • Adaptive Rubrics (empfohlen): Rubrics werden dynamisch für jeden Prompt generiert. Antworten werden anhand von detailliertem, nachvollziehbarem Feedback (bestanden oder nicht bestanden) bewertet, das sich auf den jeweiligen Prompt bezieht.

    • Statische Rubriken: Rubriken werden explizit definiert und dieselbe Rubrik wird auf alle Prompts angewendet. Antworten werden mit denselben numerischen Bewertungsmodellen bewertet. Eine einzelne numerische Bewertung (z. B. 1–5) pro Prompt. Wenn eine Bewertung für eine sehr spezifische Dimension erforderlich ist oder wenn für alle Prompts genau dieselbe Rubrik verwendet werden muss.

  • Berechnungsbasierte Messwerte: Antworten werden mit deterministischen Algorithmen bewertet, in der Regel anhand von Ground Truth. Eine numerische Punktzahl (z.B.0,0–1,0) pro Prompt. Wenn eine Ground Truth verfügbar ist und mit einer deterministischen Methode abgeglichen werden kann.

  • Messwerte für benutzerdefinierte Funktionen: Sie können einen eigenen Messwert über eine Python-Funktion definieren.

Rubrikbasierte Messwerte

Rubrikbasierte Messwerte beziehen Large Language Models in Workflows ein, um die Qualität von Modellantworten zu bewerten. Rubrikbasierte Bewertungen eignen sich für eine Vielzahl von Aufgaben, insbesondere für die Bewertung von Schreibqualität, Sicherheit und Befolgung von Anweisungen, die oft schwer mit deterministischen Algorithmen zu bewerten sind.

Adaptive Rubriken

Adaptive Rubriken funktionieren wie Einheitentests für Ihre Modelle. Bei adaptiven Rubriken wird für jeden einzelnen Prompt in Ihrem Datensatz dynamisch eine eindeutige Reihe von Tests zum Bestehen oder Nichtbestehen generiert. Die Bewertungsschemas sorgen dafür, dass die Bewertung für die angeforderte Aufgabe relevant ist, und zielen darauf ab, objektive, nachvollziehbare und konsistente Ergebnisse zu liefern.

Im folgenden Beispiel wird gezeigt, wie adaptive Rubriken für eine Reihe von Prompts generiert werden können:

Prompt Adaptive Rubriken
„Fasse den folgenden Artikel über die Vorteile von Solarenergie in weniger als 100 Wörtern zusammen…“
  • Ist die Zusammenfassung kürzer als 100 Wörter?
  • Werden in der Zusammenfassung die Vorteile von Solarenergie aufgeführt?
  • Enthält die Antwort Informationen, die nicht im Artikel enthalten sind?
„Schreibe eine kurze, freundliche E‑Mail, in der du Mitarbeiter zum jährlichen Picknick des Unternehmens einlädst. Erwähne, dass das Datum der 15. September ist und dass vegetarische Optionen verfügbar sein werden…“
  • Ist der Ton der E‑Mail freundlich und einladend?
  • Wird in der E-Mail das Datum 15. September erwähnt?
  • Wird in der E-Mail angegeben, dass vegetarische Gerichte verfügbar sein werden?

Sie können über das SDK auf adaptive Rubriken zugreifen. Wir empfehlen, mit GENERAL_QUALITY als Standardeinstellung zu beginnen.

Allgemeiner Qualitätsmesswert

GENERAL_QUALITY generiert je nach Eingabeaufforderung eine Reihe von Rubriken für verschiedene Aufgaben wie Befolgen von Anweisungen, Formatierung, Ton und Stil. Sie können die Rubrikgenerierung mit der Validierung in der folgenden Codezeile kombinieren:

from vertexai import types

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.GENERAL_QUALITY,
    ],
)

Sie können Bewertungsschemas separat generieren, um sie zu prüfen oder in verschiedenen Modellen und Agents wiederzuverwenden, bevor Sie sie zum Bewerten von Modellantworten verwenden:

from vertexai import types

# Use GENERAL_QUALITY recipe to generate rubrics, and store them
# as a rubric group named "general_quality_rubrics".
data_with_rubrics = client.evals.generate_rubrics(
    src=eval_dataset_df,
    rubric_group_name="general_quality_rubrics",
    predefined_spec_name=types.RubricMetric.GENERAL_QUALITY,
)

# Specify the group of rubrics to use for the evaluation.
eval_result = client.evals.evaluate(
    dataset=data_with_rubrics,
    metrics=[types.RubricMetric.GENERAL_QUALITY(
      rubric_group_name="general_quality_rubrics",
    )],
)

Sie können GENERAL_QUALITY auch mit natürlicher Sprache guidelines anweisen, sich bei der Erstellung von Rubriken auf die Kriterien zu konzentrieren, die für Sie am wichtigsten sind. Der Gen AI Evaluation Service generiert dann Rubriken, die sowohl die Standardaufgaben als auch die von Ihnen angegebenen Richtlinien abdecken.

from vertexai import types

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.GENERAL_QUALITY(
            metric_spec_parameters={
                "guidelines": "The response must maintain a professional tone and must not provide financial advice."
            }
        )
    ],
)

Messwerte für die Zielgruppe

Wenn Sie einen gezielteren Aspekt der Modellqualität bewerten möchten, können Sie Messwerte verwenden, mit denen Rubriken für einen bestimmten Bereich erstellt werden. Beispiel:

from vertexai import types

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.TEXT_QUALITY,
        types.RubricMetric.INSTRUCTION_FOLLOWING,
    ],
)

Der Gen AI Evaluation Service bietet die folgenden Arten von adaptiven Rubriken:

  • INSTRUCTION_FOLLOWING: Misst, wie gut die Antwort die spezifischen Einschränkungen und Anweisungen im Prompt berücksichtigt.

  • TEXT_QUALITY: Hier wird speziell auf die sprachliche Qualität der Antwort geachtet, wobei die Flüssigkeit, Kohärenz und Grammatik bewertet werden.

Multi-Turn Conversation

  • multi_turn_general_quality: Bewertet die allgemeine Konversationsqualität in einem Dialog mit mehreren Runden.

  • multi_turn_text_quality: Bewertet die Textqualität der Antworten in einem Dialog mit mehreren Turns.

Agent-Bewertung

  • final_response_reference_free: Bewertet die Qualität der endgültigen Antwort eines Kundenservicemitarbeiters, ohne dass eine Referenzantwort erforderlich ist.

Weitere Informationen zu gezielten adaptiven Rubriken

Statische Bewertungsschemas

Bei einer statischen Rubrik wird ein einzelner, fester Satz von Bewertungsrichtlinien auf jedes Beispiel in Ihrem Dataset angewendet. Dieser scorebasierte Ansatz ist nützlich, wenn Sie die Leistung aller Prompts anhand eines einheitlichen Benchmarks messen müssen.

Im folgenden Beispiel wird die Textqualität anhand einer statischen Rubrik auf einer Skala von 1 bis 5 bewertet:

5: (Very good). Exceptionally clear, coherent, fluent, and concise. Fully adheres to instructions and stays grounded.
4: (Good). Well-written, coherent, and fluent. Mostly adheres to instructions and stays grounded. Minor room for improvement.
3: (Ok). Adequate writing with decent coherence and fluency. Partially fulfills instructions and may contain minor ungrounded information. Could be more concise.
2: (Bad). Poorly written, lacking coherence and fluency. Struggles to adhere to instructions and may include ungrounded information. Issues with conciseness.
1: (Very bad). Very poorly written, incoherent, and non-fluent. Fails to follow instructions and contains substantial ungrounded information. Severely lacking in conciseness.

Der Gen AI Evaluation Service bietet die folgenden statischen Rubrikmesswerte:

  • GROUNDING: Überprüft die Faktizität und Konsistenz anhand eines bereitgestellten Quelltexts (Ground Truth). Dieser Messwert ist entscheidend für RAG-Systeme.

  • SAFETY: Bewertet die Antwort des Modells auf Verstöße gegen Sicherheitsrichtlinien, z. B. Hassrede oder gefährliche Inhalte.

Sie können auch Vorlagen für Messwert-Prompts wie FLUENCY verwenden.

from vertexai import types

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.SAFETY,
        types.RubricMetric.GROUNDING,
        types.RubricMetric.FLUENCY,
    ],
)

Statische Rubriken anpassen

Für sehr spezielle Anforderungen können Sie eine eigene statische Rubrik erstellen. Diese Methode bietet maximale Kontrolle, erfordert aber, dass Sie den Bewertungs-Prompt sorgfältig gestalten, um konsistente und zuverlässige Ergebnisse zu erzielen. Wir empfehlen, vor dem Anpassen statischer Rubriken Richtlinien mit GENERAL_QUALITY zu verwenden.

# Define a custom metric to evaluate language simplicity
simplicity_metric = types.LLMMetric(
    name='language_simplicity',
    prompt_template=types.MetricPromptBuilder(
        instruction="Evaluate the story's simplicity for a 5-year-old.",
        criteria={
            "Vocabulary": "Uses simple words.",
            "Sentences": "Uses short sentences.",
        },
        rating_scores={
            "5": "Excellent: Very simple, ideal for a 5-year-old.",
            "4": "Good: Mostly simple, with minor complex parts.",
            "3": "Fair: Mix of simple and complex; may be challenging for a 5-year-old.",
            "2": "Poor: Largely too complex, with difficult words/sentences.",
            "1": "Very Poor: Very complex, unsuitable for a 5-year-old."
        }
    )
)

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        simplicity_metric
    ],
)

Berechnungsbasierte Messwerte

Bei berechnungsbasierten Messwerten wird die Antwort eines Modells anhand deterministischer Algorithmen bewertet, indem sie mit einer Referenzantwort verglichen wird. Sie erfordern eine Ground Truth in Ihrem Dataset und eignen sich ideal für Aufgaben, bei denen eine „richtige“ Antwort genau definiert ist.

  • Recall-Oriented Understudy for Gisting Evaluation (rouge_l, rouge_1): Misst die Überschneidung von N-Grammen (zusammenhängende Wortfolgen) zwischen der Antwort des Modells und einem Referenztext. Es wird häufig zur Bewertung der Textzusammenfassung verwendet.

  • Bilingual Evaluation Understudy (BLEU): Misst, wie ähnlich eine Antwort einem hochwertigen Referenztext ist, indem übereinstimmende n-Gramme gezählt werden. Er ist der Standardmesswert für die Übersetzungsqualität, kann aber auch für andere Aufgaben zur Textgenerierung verwendet werden.

  • Genaue Übereinstimmung (exact_match): Misst den Prozentsatz der Antworten, die mit der Referenzantwort identisch sind. Das ist nützlich für die Beantwortung von faktenbasierten Fragen oder Aufgaben, bei denen es nur eine richtige Antwort gibt.

from vertexai import types

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.Metric(name='bleu'),
        types.Metric(name='rouge_l'),
        types.Metric(name='exact_match')
    ],
)

Messwert für benutzerdefinierte Funktion

Sie können auch eine benutzerdefinierte Bewertungslogik implementieren, indem Sie eine benutzerdefinierte Python-Funktion an den Parameter custom_function übergeben. Der Gen AI Evaluation Service führt diese Funktion für jede Zeile Ihres Datasets aus.

# Define a custom function to check for the presence of a keyword
def contains_keyword(instance: dict) -> dict:
    keyword = "magic"
    response_text = instance.get("response", "")
    score = 1.0 if keyword in response_text.lower() else 0.0
    return {"score": score}

keyword_metric = types.Metric(
    name="keyword_check",
    custom_function=contains_keyword
)

eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[keyword_metric]
)

Nächste Schritte