Rapid Eval API

Mit dem Rapid Eval Service können Nutzer ihre LLM-Modelle sowohl punktweise als auch paarweise über mehrere Messwerte hinweg bewerten. Nutzer stellen Inferenzzeiteingaben, LLM-Antworten und zusätzliche Parameter bereit. Der Dienst gibt dann Messwerte zurück, die für die Bewertungsaufgabe spezifisch sind. Die Messwerte umfassen sowohl modellbasierte Messwerte (z.B. SummarizationQuality) als auch In-Memory-berechnete Messwerte (z.B. Rouge-, Bleu- und Tool-/Funktionsaufruf-Messwerte). Da der Dienst die Vorhersageergebnisse direkt von Modellen als Eingabe verwendet, kann er alle von Vertex unterstützten Modelle bewerten.

Beschränkungen

  • Modellbasierte Messwerte verbrauchen text-bison-Kontingente. Rapid Eval Service nutzt text-bison als zugrunde liegendes Arbitermodell, um modellbasierte Messwerte zu berechnen.
  • Der Dienst hat eine Übertragungsverzögerung. Er ist nach dem ersten Aufruf des Dienstes möglicherweise mehrere Minuten lang nicht verfügbar.

Syntax

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = MODEL_ID

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  ...
}

uri = f'https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))

Parameterliste

Vollständige Liste der verfügbaren Messwerte.

Parameter

exact_match_input

Optional: ExactMatchInput

Eingabe, um zu beurteilen, ob die Vorhersage genau mit der Referenz übereinstimmt.

bleu_input

Optional: BleuInput

Eingabe zur Berechnung des BLEU-Scores durch Vergleich der Vorhersage mit der Referenz.

rouge_input

Optional: RougeInput

Eingabe zum Berechnen der ROUGE-Scores durch Vergleich der Vorhersage mit der Referenz. rouge_type unterstützt unterschiedliche ROUGE-Scores.

fluency_input

Optional: FluencyInput

Eingabe zur Bewertung der Sprachkompetenz einer einzelnen Antwort.

coherence_input

Optional: CoherenceInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, eine kohärente, leicht verständliche Antwort zu liefern.

safety_input

Optional: SafetyInput

Eingabe zur Bewertung des Sicherheitsniveaus einer einzelnen Antwort.

groundedness_input

Optional: GroundednessInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, Informationen bereitzustellen oder zu referenzieren, die nur im Eingabetext enthalten sind.

fulfillment_input

Optional: FulfillmentInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, die Anweisungen vollständig zu erfüllen.

summarization_quality_input

Optional: SummarizationQualityInput

Eingabe, um allgemein die Fähigkeit einer einzelnen Antwort zu bewerten, Text zusammenzufassen.

pairwise_summarization_quality_input

Optional: PairwiseSummarizationQualityInput

Eingabe zum Vergleich der allgemeinen Qualität von Zusammenfassungen zweier Antworten.

summarization_helpfulness_input

Optional: SummarizationHelpfulnessInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, eine Zusammenfassung bereitzustellen, die die Details enthält, die zum Ersetzen des Originaltextes erforderlich sind.

summarization_verbosity_input

Optional: SummarizationVerbosityInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, eine prägnante Zusammenfassung zu liefern.

question_answering_quality_input

Optional: QuestionAnsweringQualityInput

Eingabe zur Bewertung der allgemeinen Fähigkeit einer einzelnen Antwort zur Beantwortung von Fragen anhand eines als Referenz dienenden Textkörpers.

pairwise_question_answering_quality_input

Optional: PairwiseQuestionAnsweringQualityInput

Eingabe für den Vergleich der allgemeinen Fähigkeit zweier Antworten zur Beantwortung von Fragen anhand eines als Referenz dienenden Textkörpers.

question_answering_relevance_input

Optional: QuestionAnsweringRelevanceInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, auf die Stellung einer Frage mit relevanten Informationen zu antworten.

question_answering_helpfulness_input

Optional: QuestionAnsweringHelpfulnessInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, bei der Beantwortung einer Frage wichtige Details zu liefern.

question_answering_correctness_input

Optional: QuestionAnsweringCorrectnessInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, eine Frage richtig zu beantworten.

tool_call_valid_input

Optional: ToolCallValidInput

Eingabe zur Bewertung der Fähigkeit einer einzelnen Antwort, einen gültigen Toolaufruf vorherzusagen.

tool_name_match_input

Optional: ToolNameMatchInput

Eingabe zur Bewertung der Fähigkeit einer einzelnen Antwort, einen Toolaufruf mit dem richtigen Toolnamen vorherzusagen.

tool_parameter_key_match_input

Optional: ToolParameterKeyMatchInput

Eingabe, um die Fähigkeit einer einzelnen Antwort zu bewerten, einen Toolaufruf mit den richtigen Parameternamen vorherzusagen.

tool_parameter_kv_match_input

Optional: ToolParameterKvMatchInput

Eingabe zur Bewertung der Fähigkeit einer einzelnen Antwort, einen Toolaufruf mit den richtigen Parameternamen und -werten vorherzusagen

ExactMatchInput

{
  "exact_match_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parameter

metric_spec

Optional: ExactMatchSpec.

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instances

Optional: ExactMatchInstance[]

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instances.prediction

Optional: string

LLM-Antwort.

instances.reference

Optional: string

Goldene LLM-Antwort als Referenz.

ExactMatchResults

{
  "exact_match_results: {
    "exact_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

exact_match_metric_values

ExactMatchMetricValue[]

Bewertungsergebnisse pro Instanzeingabe.

exact_match_metric_values.score

float

Eines der folgenden Betriebssysteme:

  • 0: Instanz war keine genaue Übereinstimmung
  • 1: Genaue Übereinstimmung

BleuInput

{
  "bleu_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parameter

metric_spec

Optional: BleuSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instances

Optional: BleuInstance[]

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instances.prediction

Optional: string

LLM-Antwort.

instances.reference

Optional: string

Goldene LLM-Antwort als Referenz.

BleuResults

{
  "bleu_results: {
    "bleu_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

bleu_metric_values

BleuMetricValue[]

Bewertungsergebnisse pro Instanzeingabe.

bleu_metric_values.score

float: [0, 1], wobei höhere Scores bedeuten, dass die Vorhersage eher der Referenz entspricht.

RougeInput

{
  "rouge_input: {
    "metric_spec": {
      "rouge_type": string,
      "use_stemmer": bool,
      "split_summaries": bool
    },
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parameter

metric_spec

Optional: RougeSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

metric_spec.rouge_type

Optional: string

Zulässige Werte:

  • rougen[1-9]: ROUGE-Scores anhand der Überlappung von N-Grammen zwischen der Vorhersage und der Referenz berechnen.
  • rougeL: ROUGE-Scores anhand der längsten allgemeinen Untersequenz (LCS) zwischen der Vorhersage und der Referenz berechnen.
  • rougeLsum: teilt zuerst die Vorhersage und die Referenz in Sätze auf und berechnet dann die LCS für jedes Tupel. Der endgültige rougeLsum-Score ist der Durchschnitt dieser einzelnen LCS-Scores.

metric_spec.use_stemmer

Optional: bool

Gibt an, ob der Porter-Stemmer zum Entfernen von Wortsuffixen verwendet werden soll, um die Übereinstimmung zu verbessern.

metric_spec.split_summaries

Optional: bool

Gibt an, ob Zeilenumbrüche zwischen Sätzen für rougeLsum hinzugefügt werden sollen.

instances

Optional: RougeInstance[]

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instances.prediction

Optional: string

LLM-Antwort.

instances.reference

Optional: string

Goldene LLM-Antwort als Referenz.

RougeResults

{
  "rouge_results: {
    "rouge_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

rouge_metric_values

RougeValue[]

Bewertungsergebnisse pro Instanzeingabe.

rouge_metric_values.score

float: [0, 1], wobei höhere Scores bedeuten, dass die Vorhersage eher der Referenz entspricht.

FluencyInput

{
  "fluency_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parameter

metric_spec

Optional: FluencySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: FluencyInstance

Bewertungseingabe, die aus der LLM-Antwort besteht.

instance.prediction

Optional: string

LLM-Antwort.

FluencyResult

{
  "fluency_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Inkohärent
  • 2: Eher inkohärent
  • 3: Neutral
  • 4: Eher kohärent
  • 5: Kohärent

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

CoherenceInput

{
  "coherence_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parameter

metric_spec

Optional: CoherenceSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: CoherenceInstance

Bewertungseingabe, die aus der LLM-Antwort besteht.

instance.prediction

Optional: string

LLM-Antwort.

CoherenceResult

{
  "coherence_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Undeutlich
  • 2: Eher undeutlich
  • 3: Neutral
  • 4: Eher fließend
  • 5: Fließend

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

SafetyInput

{
  "safety_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parameter

metric_spec

Optional: SafetySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: SafetyInstance

Bewertungseingabe, die aus der LLM-Antwort besteht.

instance.prediction

Optional: string

LLM-Antwort.

SafetyResult

{
  "safety_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • Unsicher
  • 1. Sicher

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

GroundednessInput

{
  "groundedness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "context": string
    }
  }
}

Parameter

Beschreibung

metric_spec

Optional: GroundednessSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: GroundednessInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

GroundednessResult

{
  "groundedness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 0: Unfundiert
  • 1: Fundiert

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

FulfillmentInput

{
  "fulfillment_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string
    }
  }
}
Parameter

metric_spec

Optional: FulfillmentSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: FulfillmentInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

FulfillmentResult

{
  "fulfillment_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Keine Erfüllung
  • 2: Schlechte Erfüllung
  • 3: Teilweise Erfüllung
  • 4: Gute Erfüllung
  • 5: Vollständige Erfüllung

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

SummarizationQualityInput

{
  "summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parameter

metric_spec

Optional: SummarizationQualitySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: SummarizationQualityInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

SummarizationQualityResult

{
  "summarization_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Sehr schlecht
  • 2: Schlecht
  • 3: Ok
  • 4: Gut
  • 5: Sehr gut

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

PairwiseSummarizationQualityInput

{
  "pairwise_summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parameter

metric_spec

Optional: PairwiseSummarizationQualitySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: PairwiseSummarizationQualityInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.baseline_prediction

Optional: string

LLM-Antwort des Basismodells.

instance.prediction

Optional: string

LLM-Antwort des Kandidatenmodells.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

PairwiseSummarizationQualityResult

{
  "pairwise_summarization_quality_result: {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

pairwise_choice

PairwiseChoice: Enum mit folgenden möglichen Werten:

  • BASELINE: Baseline-Vorhersage ist besser
  • CANDIDATE: Kandidatenvorhersage ist besser
  • TIE: Gleichheit zwischen Baseline- und Kandidatenvorhersagen.

explanation

string: Begründung für pairwise_choice-Zuweisung.

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

SummarizationHelpfulnessInput

{
  "summarization_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parameter

metric_spec

Optional: SummarizationHelpfulnessSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: SummarizationHelpfulnessInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

SummarizationHelpfulnessResult

{
  "summarization_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Nicht hilfreich
  • 2: Eher weniger hilfreich
  • 3: Neutral
  • 4: Einigermaßen hilfreich
  • 5: Hilfreich

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

SummarizationVerbosityInput

{
  "summarization_verbosity_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parameter

metric_spec

Optional: SummarizationVerbositySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: SummarizationVerbosityInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

SummarizationVerbosityResult

{
  "summarization_verbosity_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float. Einer der folgenden Werte:

  • -2: Knapp
  • -1: Eher knapp
  • 0: Optimal
  • 1: Eher ausführlich
  • 2: Ausführlich

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

QuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parameter

metric_spec

Optional: QuestionAnsweringQualitySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: QuestionAnsweringQualityInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

QuestionAnsweringQualityResult

{
  "question_answering_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Sehr schlecht
  • 2: Schlecht
  • 3: Ok
  • 4: Gut
  • 5: Sehr gut

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

PairwiseQuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parameter

metric_spec

Optional: QuestionAnsweringQualitySpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: QuestionAnsweringQualityInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.baseline_prediction

Optional: string

LLM-Antwort des Basismodells.

instance.prediction

Optional: string

LLM-Antwort des Kandidatenmodells.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

PairwiseQuestionAnsweringQualityResult

{
  "pairwise_question_answering_quality_result: {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

pairwise_choice

PairwiseChoice: Enum mit folgenden möglichen Werten:

  • BASELINE: Baseline-Vorhersage ist besser
  • CANDIDATE: Kandidatenvorhersage ist besser
  • TIE: Gleichheit zwischen Baseline- und Kandidatenvorhersagen.

explanation

string: Begründung für die Zuweisung von pairwise_choice.

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

QuestionAnsweringRelevanceInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parameter

metric_spec

Optional: QuestionAnsweringRelevanceSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: QuestionAnsweringRelevanceInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

QuestionAnsweringRelevancyResult

{
  "question_answering_relevancy_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Irrelevant
  • 2: Eher irrelevant
  • 3: Neutral
  • 4: Eher relevant
  • 5: Relevant

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

QuestionAnsweringHelpfulnessInput

{
  "question_answering_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parameter

metric_spec

Optional: QuestionAnsweringHelpfulnessSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: QuestionAnsweringHelpfulnessInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

QuestionAnsweringHelpfulnessResult

{
  "question_answering_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 1: Nicht hilfreich
  • 2: Eher weniger hilfreich
  • 3: Neutral
  • 4: Einigermaßen hilfreich
  • 5: Hilfreich

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

QuestionAnsweringCorrectnessInput

{
  "question_answering_correctness_input: {
    "metric_spec": {
      "use_reference": bool
    },
    "instance": {
      "prediction": string,
      "reference": string,
      "instruction": string,
      "context": string
    }
  }
}
Parameter

metric_spec

Optional: QuestionAnsweringCorrectnessSpec: Messwertspezifikation, die das Verhalten des Messwerts definiert.

metric_spec.use_reference

Optional: bool

Ob eine Referenz in der Bewertung verwendet wird oder nicht.

instance

Optional: QuestionAnsweringCorrectnessInstance

Bewertungseingabe, bestehend aus Inferenzeingaben und entsprechender Antwort.

instance.prediction

Optional: string

LLM-Antwort.

instance.reference

Optional: string

Goldene LLM-Antwort als Referenz.

instance.instruction

Optional: string

Zum Zeitpunkt der Inferenz verwendete Anweisung.

instance.context

Optional: string

Inferenzzeittext, der alle Informationen enthält, die in der LLM-Antwort verwendet werden können.

QuestionAnsweringCorrectnessResult

{
  "question_answering_correctness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Ausgabe

score

float: Beispiele:

  • 0: Falsch
  • 1: Richtig

explanation

string: Begründung für die Score-Zuweisung

confidence

float: [0, 1] Konfidenzwert unseres Ergebnisses.

ToolCallValidInput

{
  "tool_call_valid_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parameter

metric_spec

Optional: ToolCallValidSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: ToolCallValidInstance

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instance.prediction

Optional: string

LLM-Antwort des Kandidatenmodells, bei der es sich um einen JSON-serialisierten String handelt, der die Schlüssel content und tool_calls enthält. Der Wert content ist die Textausgabe des Modells. Der Wert tool_call ist ein JSON-serialisierter String einer Liste von Toolaufrufen. Ein Beispiel:


{
  "content": "",
  "tool_calls": [
    {
      "name": "book_tickets",
      "arguments": {
        "movie": "Mission Impossible Dead Reckoning Part 1",
        "theater": "Regal Edwards 14",
        "location": "Mountain View CA",
        "showtime": "7:30",
        "date": "2024-03-30",
        "num_tix": "2"
      }
    }
  ]
}

instance.reference

Optional: string

Ausgabe des goldenen Modells im selben Format wie die Vorhersage.

ToolCallValidResults

{
  "tool_call_valid_results: {
    "tool_call_valid_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

tool_call_valid_metric_values

wiederholt ToolCallValidMetricValue: Bewertungsergebnisse pro Instanzeingabe.

tool_call_valid_metric_values.score

float: Beispiele:

  • 0: Ungültiger Toolaufruf
  • 1: Gültiger Toolaufruf

ToolNameMatchInput

{
  "tool_name_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parameter

metric_spec

Optional: ToolNameMatchSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: ToolNameMatchInstance

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instance.prediction

Optional: string

LLM-Antwort des Kandidatenmodells, bei der es sich um einen JSON-serialisierten String handelt, der die Schlüssel content und tool_calls enthält. Der Wert content ist die Textausgabe des Modells. Der Wert tool_call ist ein JSON-serialisierter String einer Liste von Toolaufrufen.

instance.reference

Optional: string

Ausgabe des goldenen Modells im selben Format wie die Vorhersage.

ToolNameMatchResults

{
  "tool_name_match_results: {
    "tool_name_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

tool_name_match_metric_values

wiederholt ToolNameMatchMetricValue: Bewertungsergebnisse pro Instanzeingabe.

tool_name_match_metric_values.score

float: Beispiele:

  • 0: Name des Toolaufrufs entspricht nicht der Referenz.
  • 1: Name des Toolaufrufs entspricht der Referenz.

ToolParameterKeyMatchInput

{
  "tool_parameter_key_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parameter

metric_spec

Optional: ToolParameterKeyMatchSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: ToolParameterKeyMatchInstance

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instance.prediction

Optional: string

LLM-Antwort des Kandidatenmodells, bei der es sich um einen JSON-serialisierten String handelt, der die Schlüssel content und tool_calls enthält. Der Wert content ist die Textausgabe des Modells. Der Wert tool_call ist ein JSON-serialisierter String einer Liste von Toolaufrufen.

instance.reference

Optional: string

Ausgabe des goldenen Modells im selben Format wie die Vorhersage.

ToolParameterKeyMatchResults

{
  "tool_parameter_key_match_results: {
    "tool_parameter_key_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

tool_parameter_key_match_metric_values

wiederholt ToolParameterKeyMatchMetricValue: Bewertungsergebnisse pro Instanzeingabe.

tool_parameter_key_match_metric_values.score

float: [0, 1], wobei höhere Scores bedeuten, dass mehr Parameter den Namen der Referenzparameter entsprechen.

ToolParameterKVMatchInput

{
  "tool_parameter_kv_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parameter

metric_spec

Optional: ToolParameterKVMatchSpec

Messwertspezifikation, die das Verhalten des Messwerts definiert.

instance

Optional: ToolParameterKVMatchInstance

Bewertungseingabe, bestehend aus LLM-Antwort und Referenz.

instance.prediction

Optional: string

LLM-Antwort des Kandidatenmodells, bei der es sich um einen JSON-serialisierten String handelt, der die Schlüssel content und tool_calls enthält. Der Wert content ist die Textausgabe des Modells. Der Wert tool_call ist ein JSON-serialisierter String einer Liste von Toolaufrufen.

instance.reference

Optional: string

Ausgabe des goldenen Modells im selben Format wie die Vorhersage.

ToolParameterKVMatchResults

{
  "tool_parameter_kv_match_results: {
    "tool_parameter_kv_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Ausgabe

tool_parameter_kv_match_metric_values

wiederholt ToolParameterKVMatchMetricValue: Bewertungsergebnisse pro Instanzeingabe.

tool_parameter_kv_match_metric_values.score

float: [0, 1], wobei höhere Scores bedeuten, dass mehr Parameter den Namen und Werten der Referenzparameter entsprechen.

Beispiele

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

Qualität der paarweisen Zusammenfassung

Hier zeigen wir Ihnen, wie Sie die Rapid Eval API aufrufen, um die Ausgabe eines LLM zu bewerten. In diesem Fall führen wir einen Qualitätsvergleich der paarweisen Zusammenfassung aus.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances \
  -d '{
    "pairwise_summarization_quality_input": {
      "metric_spec": {},
      "instance": {
        "prediction": "France is a country located in Western Europe.",
        "baseline_prediction": "France is a country.",
        "instruction": "Summarize the context.",
        "context": "France is a country located in Western Europe. It'\''s bordered by Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Spain, and Andorra.  France'\''s coastline stretches along the English Channel, the North Sea, the Atlantic Ocean, and the Mediterranean Sea.  Known for its rich history, iconic landmarks like the Eiffel Tower, and delicious cuisine, France is a major cultural and economic power in Europe and throughout the world.",
      }
    }
  }'

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  "pairwise_summarization_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": "France is a country located in Western Europe.",
      "baseline_prediction": "France is a country.",
      "instruction": "Summarize the context.",
      "context": (
          "France is a country located in Western Europe. It's bordered by "
          "Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Spain, "
          "and Andorra.  France's coastline stretches along the English "
          "Channel, the North Sea, the Atlantic Ocean, and the Mediterranean "
          "Sea.  Known for its rich history, iconic landmarks like the Eiffel "
          "Tower, and delicious cuisine, France is a major cultural and "
          "economic power in Europe and throughout the world."
      ),
    }
  }
}

uri = f'https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))

ROUGE

Als Nächstes rufen wir die API auf, um die ROUGE-Scores einer Vorhersage anhand einer Referenz abzurufen.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances \
  -d '{
    "rouge_input": {
      "instances": {
        "prediction": "A fast brown fox leaps over a lazy dog.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "instances": {
        "prediction": "A quick brown fox jumps over the lazy canine.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "instances": {
        "prediction": "The speedy brown fox jumps over the lazy dog.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "metric_spec": {
        "rouge_type": "rougeLsum",
        "use_stemmer": true,
        "split_summaries": true
      }
    }
  }'

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  "rouge_input": {
    "metric_spec": {
        "rouge_type": "rougeLsum",
        "use_stemmer": True,
        "split_summaries": True
    },
    "instances": [
        {
          "prediction": "A fast brown fox leaps over a lazy dog.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }, {
          "prediction": "A quick brown fox jumps over the lazy canine.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }, {
          "prediction": "The speedy brown fox jumps over the lazy dog.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }
    ]
  }
}

uri = f'https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))