API d'évaluation rapide

Le service d'évaluation rapide permet aux utilisateurs d'évaluer leurs modèles LLM, par point ou par paire, sur plusieurs métriques. Les utilisateurs fournissent des entrées d'heure d'inférence, des réponses LLM et des paramètres supplémentaires, et le service renvoie des métriques spécifiques à la tâche d'évaluation. Les métriques incluent à la fois des métriques basées sur un modèle (par exemple, SummarizationQuality) et des métriques calculées en mémoire (par exemple, Rouge, Bleu et les métriques d'appel d'outil/de fonction). Étant donné que le service prend en entrée les résultats de prédiction directement à partir des modèles, il peut évaluer tous les modèles compatibles avec Vertex.

Limites

  • Les métriques basées sur des modèles consomment un quota text-bison. Le service d'évaluation rapide utilise text-bison comme modèle arbitre sous-jacent pour calculer les métriques basées sur un modèle.
  • Le service a un délai de propagation. Il peut ne pas être disponible pendant plusieurs minutes après le premier appel au service.

Syntaxe

  • 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))

Liste des paramètres

Liste complète des métriques disponibles.

Paramètres

exact_match_input

Facultatif : ExactMatchInput.

Entrée permettant de déterminer si la prédiction correspond exactement à la référence.

bleu_input

Facultatif : BleuInput.

Entrée permettant de calculer le score BLEU en comparant la prédiction à la référence.

rouge_input

Facultatif : RougeInput.

Entrée permettant de calculer les scores ROUGE en comparant la prédiction à la référence. Différents scores ROUGE sont acceptés par rouge_type.

fluency_input

Facultatif : FluencyInput.

Entrée permettant d'évaluer la maîtrise du langage d'une seule réponse.

coherence_input

Facultatif : CoherenceInput.

Données permettant d'évaluer la capacité d'une réponse à fournir une réponse cohérente et facile à suivre

safety_input

Facultatif : SafetyInput.

Entrée permettant d'évaluer le niveau de sécurité d'une seule réponse.

groundedness_input

Facultatif : GroundednessInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à fournir ou à référencer des informations incluses uniquement dans le texte d'entrée.

fulfillment_input

Facultatif : FulfillmentInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à répondre complètement aux instructions.

summarization_quality_input

Facultatif : SummarizationQualityInput.

Entrée permettant d'évaluer la capacité globale d'une réponse à résumer du texte

pairwise_summarization_quality_input

Facultatif : PairwiseSummarizationQualityInput.

Entrée permettant de comparer la qualité globale de la synthèse de deux réponses.

summarization_helpfulness_input

Facultatif : SummarizationHelpfulnessInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à fournir une synthèse, qui contient les détails nécessaires pour remplacer le texte d'origine.

summarization_verbosity_input

Facultatif : SummarizationVerbosityInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à fournir un résumé succinct.

question_answering_quality_input

Facultatif : QuestionAnsweringQualityInput.

Entrée permettant d'évaluer la capacité globale d'une réponse à répondre à des questions, à partir d'un corps de texte à référencer.

pairwise_question_answering_quality_input

Facultatif : PairwiseQuestionAnsweringQualityInput.

Entrée permettant de comparer la capacité globale de deux réponses à répondre à des questions, à partir d'un corps de texte à référencer.

question_answering_relevance_input

Facultatif : QuestionAnsweringRelevanceInput.

Entrée permettant d'évaluer la capacité d'une réponse donnée à répondre avec des informations pertinentes lorsqu'on lui pose une question.

question_answering_helpfulness_input

Facultatif : QuestionAnsweringHelpfulnessInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à fournir des détails clés lors de la réponse à une question.

question_answering_correctness_input

Facultatif : QuestionAnsweringCorrectnessInput.

Entrée permettant d'évaluer la capacité d'une réponse donnée à répondre correctement à une question.

tool_call_valid_input

Facultatif : ToolCallValidInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à prédire un appel d'outil valide.

tool_name_match_input

Facultatif : ToolNameMatchInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à prédire un appel d'outil avec le nom d'outil approprié.

tool_parameter_key_match_input

Facultatif : ToolParameterKeyMatchInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à prédire un appel d'outil avec des noms de paramètres corrects.

tool_parameter_kv_match_input

Facultatif : ToolParameterKvMatchInput.

Entrée permettant d'évaluer la capacité d'une réponse unique à prédire un appel d'outil avec des noms et des valeurs de paramètres corrects

ExactMatchInput

{
  "exact_match_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Paramètres

metric_spec

Facultatif : ExactMatchSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instances

Facultatif : ExactMatchInstance[].

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instances.prediction

Facultatif : string.

Réponse LLM.

instances.reference

Facultatif : string.

Réponse LLM de référence pour référence.

ExactMatchResults

{
  "exact_match_results: {
    "exact_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

exact_match_metric_values

ExactMatchMetricValue[]

Résultats d'évaluation par entrée d'instance.

exact_match_metric_values.score

float

Choisissez l'une des options suivantes :

  • 0: l'instance n'était pas une correspondance exacte
  • 1: Correspondance exacte

BleuInput

{
  "bleu_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Paramètres

metric_spec

Facultatif : BleuSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instances

Facultatif : BleuInstance[].

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instances.prediction

Facultatif : string.

Réponse LLM.

instances.reference

Facultatif : string.

Réponse LLM de référence pour référence.

BleuResults

{
  "bleu_results: {
    "bleu_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

bleu_metric_values

BleuMetricValue[]

Résultats d'évaluation par entrée d'instance.

bleu_metric_values.score

float: [0, 1]. Plus les scores sont élevés, plus la prédiction ressemble à la référence.

RougeInput

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

metric_spec

Facultatif : RougeSpec.

Spécification de la métrique, définissant le comportement de la métrique.

metric_spec.rouge_type

Facultatif : string.

Valeurs acceptables :

  • rougen[1-9]: calcule les scores ROUGE en fonction du chevauchement de n-grammes entre la prédiction et la référence.
  • rougeL: calcule les scores ROUGE en fonction de la sous-séquence la plus longue (LCS, Longest Common Subsequence) entre la prédiction et la référence.
  • rougeLsum: divise d'abord la prédiction et la référence en phrases, puis calcule le LCS pour chaque tuple. Le score rougeLsum final correspond à la moyenne de ces scores LCS individuels.

metric_spec.use_stemmer

Facultatif : bool.

Indique si le stemmer de Porter doit être utilisé pour supprimer les suffixes de mots afin d'améliorer la correspondance.

metric_spec.split_summaries

Facultatif : bool.

Indique s'il faut ajouter des sauts de ligne entre les phrases pour rougeLsum.

instances

Facultatif : RougeInstance[].

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instances.prediction

Facultatif : string.

Réponse LLM.

instances.reference

Facultatif : string.

Réponse LLM de référence pour référence.

RougeResults

{
  "rouge_results: {
    "rouge_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

rouge_metric_values

RougeValue[]

Résultats d'évaluation par entrée d'instance.

rouge_metric_values.score

float: [0, 1]. Plus les scores sont élevés, plus la prédiction ressemble à la référence.

FluencyInput

{
  "fluency_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Paramètres

metric_spec

Facultatif : FluencySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : FluencyInstance.

Entrée d'évaluation, composée de la réponse LLM.

instance.prediction

Facultatif : string.

Réponse LLM.

FluencyResult

{
  "fluency_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: incohérent
  • 2: relativement incohérent
  • 3: Neutre
  • 4: relativement cohérent
  • 5: cohérent

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

CoherenceInput

{
  "coherence_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Paramètres

metric_spec

Facultatif : CoherenceSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : CoherenceInstance.

Entrée d'évaluation, composée de la réponse LLM.

instance.prediction

Facultatif : string.

Réponse LLM.

CoherenceResult

{
  "coherence_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: inarticulé
  • 2: légèrement inarticulé
  • 3: Neutre
  • 4: assez fluide
  • 5: fluide

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

SafetyInput

{
  "safety_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Paramètres

metric_spec

Facultatif : SafetySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : SafetyInstance.

Entrée d'évaluation, composée de la réponse LLM.

instance.prediction

Facultatif : string.

Réponse LLM.

SafetyResult

{
  "safety_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 0. Non sécurisé
  • 1. Sûres

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

GroundednessInput

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

Paramètre

Description

metric_spec

Facultatif: GroundnessSpec

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif: GroundnessInstance

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

GroundednessResult

{
  "groundedness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 0: non ancré
  • 1: Grounded

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

FulfillmentInput

{
  "fulfillment_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string
    }
  }
}
Paramètres

metric_spec

Facultatif : FulfillmentSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : FulfillmentInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

FulfillmentResult

{
  "fulfillment_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: aucun traitement
  • 2: mauvaise traitement
  • 3: un certain traitement
  • 4: bon traitement
  • 5: traitement terminé

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

SummarizationQualityInput

{
  "summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Paramètres

metric_spec

Facultatif : SummarizationQualitySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : SummarizationQualityInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

SummarizationQualityResult

{
  "summarization_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: Très mauvais
  • 2: Mauvais
  • 3: Ok
  • 4: Bon
  • 5: Très bon

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

PairwiseSummarizationQualityInput

{
  "pairwise_summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Paramètres

metric_spec

Facultatif : PairwiseSummarizationQualitySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : PairwiseSummarizationQualityInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.baseline_prediction

Facultatif : string.

Réponse LLM du modèle de référence.

instance.prediction

Facultatif : string.

Réponse LLM du modèle candidat.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

PairwiseSummarizationQualityResult

{
  "pairwise_summarization_quality_result: {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
Résultat

pairwise_choice

PairwiseChoice: énumération avec les valeurs possibles suivantes:

  • BASELINE: la prédiction de référence est meilleure
  • CANDIDATE: la prédiction candidate est meilleure
  • TIE: égalité entre les prédictions de référence et les prédictions candidates.

explanation

string: Justification pour l'attribution pairwise_choice.

confidence

float: [0, 1] score de confiance de notre résultat.

SummarizationHelpfulnessInput

{
  "summarization_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Paramètres

metric_spec

Facultatif : SummarizationHelpfulnessSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : SummarizationHelpfulnessInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

SummarizationHelpfulnessResult

{
  "summarization_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: inutile
  • 2: plutôt utile
  • 3: Neutre
  • 4: assez utile
  • 5: utile

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

SummarizationVerbosityInput

{
  "summarization_verbosity_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Paramètres

metric_spec

Facultatif : SummarizationVerbositySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : SummarizationVerbosityInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

SummarizationVerbosityResult

{
  "summarization_verbosity_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float. Un des suivants:

  • -2: sec
  • -1: plutôt sec
  • 0: optimal
  • 1: assez détaillée
  • 2: détaillé

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

QuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Paramètres

metric_spec

Facultatif : QuestionAnsweringQualitySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : QuestionAnsweringQualityInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

QuestionAnsweringQualityResult

{
  "question_answering_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: Très mauvais
  • 2: Mauvais
  • 3: Ok
  • 4: Bon
  • 5: Très bon

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

PairwiseQuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Paramètres

metric_spec

Facultatif : QuestionAnsweringQualitySpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : QuestionAnsweringQualityInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.baseline_prediction

Facultatif : string.

Réponse LLM du modèle de référence.

instance.prediction

Facultatif : string.

Réponse LLM du modèle candidat.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

PairwiseQuestionAnsweringQualityResult

{
  "pairwise_question_answering_quality_result: {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
Résultat

pairwise_choice

PairwiseChoice: énumération avec les valeurs possibles suivantes:

  • BASELINE: la prédiction de référence est meilleure
  • CANDIDATE: la prédiction candidate est meilleure
  • TIE: égalité entre les prédictions de référence et les prédictions candidates.

explanation

string: justification du devoir pairwise_choice.

confidence

float: [0, 1] score de confiance de notre résultat.

QuestionAnsweringRelevanceInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Paramètres

metric_spec

Facultatif : QuestionAnsweringRelevanceSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : QuestionAnsweringRelevanceInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

QuestionAnsweringRelevancyResult

{
  "question_answering_relevancy_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: non pertinent
  • 2: peu pertinent
  • 3: Neutre
  • 4 : moyennement pertinent
  • 5: pertinent

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

QuestionAnsweringHelpfulnessInput

{
  "question_answering_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Paramètres

metric_spec

Facultatif : QuestionAnsweringHelpfulnessSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : QuestionAnsweringHelpfulnessInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

QuestionAnsweringHelpfulnessResult

{
  "question_answering_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 1: inutile
  • 2: plutôt utile
  • 3: Neutre
  • 4: assez utile
  • 5: utile

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

QuestionAnsweringCorrectnessInput

{
  "question_answering_correctness_input: {
    "metric_spec": {
      "use_reference": bool
    },
    "instance": {
      "prediction": string,
      "reference": string,
      "instruction": string,
      "context": string
    }
  }
}
Paramètres

metric_spec

Facultatif: QuestionAnsweringCorrectnessSpec: spécification de métrique, définissant le comportement de la métrique.

metric_spec.use_reference

Facultatif : bool.

Si une référence est utilisée ou non dans l'évaluation.

instance

Facultatif : QuestionAnsweringCorrectnessInstance.

Entrée d'évaluation, composée des entrées d'inférence et de la réponse correspondante.

instance.prediction

Facultatif : string.

Réponse LLM.

instance.reference

Facultatif : string.

Réponse LLM de référence pour référence.

instance.instruction

Facultatif : string.

Instruction utilisée au moment de l'inférence.

instance.context

Facultatif : string.

Texte d'inférence contenant toutes les informations, pouvant être utilisé dans la réponse LLM.

QuestionAnsweringCorrectnessResult

{
  "question_answering_correctness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Résultat

score

float : l'un des types suivants :

  • 0: Mauvaise réponse.
  • 1: Bonne réponse.

explanation

string: justification de l'attribution des notes.

confidence

float: [0, 1] score de confiance de notre résultat.

ToolCallValidInput

{
  "tool_call_valid_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Paramètres

metric_spec

Facultatif : ToolCallValidSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : ToolCallValidInstance.

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instance.prediction

Facultatif : string.

Réponse LLM du modèle candidat, qui est une chaîne sérialisée JSON contenant les clés content et tool_calls. La valeur content correspond au texte de sortie du modèle. La valeur tool_call est une chaîne sérialisée JSON d'une liste d'appels d'outil. Voici un exemple :

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

Facultatif : string.

Sortie du modèle de référence au même format que la prédiction.

ToolCallValidResults

{
  "tool_call_valid_results: {
    "tool_call_valid_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

tool_call_valid_metric_values

ToolCallValidMetricValue répété: résultats de l'évaluation par entrée d'instance.

tool_call_valid_metric_values.score

float : l'un des types suivants :

  • 0: appel d'outil non valide
  • 1: appel d'outil valide

ToolNameMatchInput

{
  "tool_name_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Paramètres

metric_spec

Facultatif : ToolNameMatchSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : ToolNameMatchInstance.

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instance.prediction

Facultatif : string.

Réponse LLM du modèle candidat, qui est une chaîne sérialisée JSON contenant les clés content et tool_calls. La valeur content correspond au texte de sortie du modèle. La valeur tool_call est une chaîne sérialisée JSON d'une liste d'appels d'outil.

instance.reference

Facultatif : string.

Sortie du modèle de référence au même format que la prédiction.

ToolNameMatchResults

{
  "tool_name_match_results: {
    "tool_name_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

tool_name_match_metric_values

ToolNameMatchMetricValue répété: résultats de l'évaluation par entrée d'instance.

tool_name_match_metric_values.score

float : l'un des types suivants :

  • 0: le nom de l'appel de l'outil ne correspond pas à la référence.
  • 1: le nom de l'appel d'outil correspond à la référence.

ToolParameterKeyMatchInput

{
  "tool_parameter_key_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Paramètres

metric_spec

Facultatif : ToolParameterKeyMatchSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : ToolParameterKeyMatchInstance.

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instance.prediction

Facultatif : string.

Réponse LLM du modèle candidat, qui est une chaîne sérialisée JSON contenant les clés content et tool_calls. La valeur content correspond au texte de sortie du modèle. La valeur tool_call est une chaîne sérialisée JSON d'une liste d'appels d'outil.

instance.reference

Facultatif : string.

Sortie du modèle de référence au même format que la prédiction.

ToolParameterKeyMatchResults

{
  "tool_parameter_key_match_results: {
    "tool_parameter_key_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

tool_parameter_key_match_metric_values

ToolParameterKeyMatchMetricValue répété: résultats de l'évaluation par entrée d'instance.

tool_parameter_key_match_metric_values.score

float: [0, 1], où des scores plus élevés signifient que plus de paramètres correspondent aux noms des paramètres de référence.

ToolParameterKVMatchInput

{
  "tool_parameter_kv_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Paramètres

metric_spec

Facultatif : ToolParameterKVMatchSpec.

Spécification de la métrique, définissant le comportement de la métrique.

instance

Facultatif : ToolParameterKVMatchInstance.

Entrée d'évaluation, composée de la réponse et de la référence du LLM.

instance.prediction

Facultatif : string.

Réponse LLM du modèle candidat, qui est une chaîne sérialisée JSON contenant les clés content et tool_calls. La valeur content correspond au texte de sortie du modèle. La valeur tool_call est une chaîne sérialisée JSON d'une liste d'appels d'outil.

instance.reference

Facultatif : string.

Sortie du modèle de référence au même format que la prédiction.

ToolParameterKVMatchResults

{
  "tool_parameter_kv_match_results: {
    "tool_parameter_kv_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Résultat

tool_parameter_kv_match_metric_values

ToolParameterKVMatchMetricValue répété: résultats de l'évaluation par entrée d'instance.

tool_parameter_kv_match_metric_values.score

float: [0, 1], où des scores plus élevés signifient que plus de paramètres correspondent aux noms et aux valeurs des paramètres de référence.

Examples

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

Qualité de la synthèse par paire

Ici, nous vous expliquons comment appeler l'API d'évaluation rapide pour évaluer le résultat d'un LLM. Dans ce cas, nous effectuons une comparaison de la qualité des résumés par paire.

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

Nous allons ensuite appeler l'API pour obtenir le score ROUGE d'une prédiction, en fonction d'une référence.

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))