API de evaluación rápida

El servicio de evaluación rápida permite a los usuarios evaluar sus modelos de LLM, tantopor puntos como por pares, en varias métricas. Los usuarios proporcionan entradas de tiempo de inferencia, respuestas de LLM y parámetros adicionales, y el servicio muestra métricas específicas para la tarea de evaluación. Las métricas incluyen métricas basadas en modelos (p. ej., SummarizationQuality) y métricas calculadas en la memoria (p. ej., Rouge, Bleu y métricas de llamadas a herramientas/funciones). Dado que el servicio toma los resultados de la predicción directamente de los modelos como entrada, puede evaluar todos los modelos compatibles con Vertex.

Limitaciones

  • Las métricas basadas en modelos consumen cuota de text-bison. El servicio de evaluación rápida aprovecha text-bison como el modelo de árbitro subyacente para calcular las métricas basadas en modelos.
  • El servicio tiene una demora de propagación. Es posible que no esté disponible durante varios minutos después de la primera llamada al servicio.

Sintaxis

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

Lista de parámetros

Lista completa de métricas disponibles.

Parámetros

exact_match_input

Opcional: ExactMatchInput

Entrada para evaluar si la predicción coincide exactamente con la referencia.

bleu_input

Opcional: BleuInput

Entrada para calcular la puntuación BLEU a través de la comparación de la predicción con la referencia.

rouge_input

Opcional: RougeInput

Entrada para calcular las puntuaciones ROUGE a través de la comparación de la predicción con la referencia. rouge_type admite diferentes puntuaciones de ROUGE.

fluency_input

Opcional: FluencyInput

Entrada para evaluar el dominio de idioma de una sola respuesta.

coherence_input

Opcional: CoherenceInput

Entrada para evaluar la capacidad de una sola respuesta de proporcionar una respuesta coherente y fácil de seguir.

safety_input

Opcional: SafetyInput

Entrada para evaluar el nivel de seguridad de una sola respuesta.

groundedness_input

Opcional: GroundednessInput

Entrada para evaluar la capacidad de una sola respuesta de proporcionar o hacer referencia a información incluida solo en el texto de entrada.

fulfillment_input

Opcional: FulfillmentInput

Entrada para evaluar la capacidad de una sola respuesta de cumplir instrucciones por completo.

summarization_quality_input

Opcional: SummarizationQualityInput

Entrada para evaluar la capacidad general de una sola respuesta para resumir texto.

pairwise_summarization_quality_input

Opcional: PairwiseSummarizationQualityInput

Entrada para comparar la calidad general de resumen de dos respuestas.

summarization_helpfulness_input

Opcional: SummarizationHelpfulnessInput

Entrada para evaluar la capacidad de una sola respuesta de proporcionar un resumen, que contiene los detalles necesarios para sustituir el texto original.

summarization_verbosity_input

Opcional: SummarizationVerbosityInput

Entrada para evaluar la capacidad de una sola respuesta de proporcionar un resumen conciso.

question_answering_quality_input

Opcional: QuestionAnsweringQualityInput

Entrada para evaluar la capacidad general de una sola respuesta de responder preguntas, con un cuerpo de texto de referencia.

pairwise_question_answering_quality_input

Opcional: PairwiseQuestionAnsweringQualityInput

Entrada para comparar la capacidad general de dos respuestas para responder preguntas, con un cuerpo de texto de referencia.

question_answering_relevance_input

Opcional: QuestionAnsweringRelevanceInput

Entrada para evaluar la capacidad de una sola respuesta de responder con información relevante cuando se hace una pregunta.

question_answering_helpfulness_input

Opcional: QuestionAnsweringHelpfulnessInput

Entrada para evaluar la capacidad de una sola respuesta de proporcionar detalles clave cuando se responde una pregunta.

question_answering_correctness_input

Opcional: QuestionAnsweringCorrectnessInput

Entrada para evaluar la capacidad de una sola respuesta para responder correctamente una pregunta.

tool_call_valid_input

Opcional: ToolCallValidInput

Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada válida a la herramienta.

tool_name_match_input

Opcional: ToolNameMatchInput

Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada a la herramienta con el nombre correcto de la herramienta.

tool_parameter_key_match_input

Opcional: ToolParameterKeyMatchInput

Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada a la herramienta con los nombres de parámetros correctos.

tool_parameter_kv_match_input

Opcional: ToolParameterKvMatchInput

Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada a la herramienta con los nombres y valores de parámetros correctos.

ExactMatchInput

{
  "exact_match_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parámetros

metric_spec

Opcional: ExactMatchSpec.

Especificación de la métrica que define el comportamiento de la métrica.

instances

Opcional: ExactMatchInstance[]

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instances.prediction

Opcional: string

Respuesta de LLM.

instances.reference

Opcional: string

Respuesta dorada de LLM como referencia.

ExactMatchResults

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

exact_match_metric_values

ExactMatchMetricValue[]

Resultados de la evaluación por entrada de instancia.

exact_match_metric_values.score

float

Uno de los siguientes:

  • 0: la instancia no era una concordancia exacta
  • 1: concordancia exacta

BleuInput

{
  "bleu_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parámetros

metric_spec

Opcional: BleuSpec

Especificación de la métrica que define el comportamiento de la métrica.

instances

Opcional: BleuInstance[]

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instances.prediction

Opcional: string

Respuesta de LLM.

instances.reference

Opcional: string

Respuesta dorada de LLM como referencia.

BleuResults

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

bleu_metric_values

BleuMetricValue[]

Resultados de la evaluación por entrada de instancia.

bleu_metric_values.score

float: [0, 1], donde las puntuaciones más altas significan que la predicción se parece más a la referencia.

RougeInput

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

metric_spec

Opcional: RougeSpec

Especificación de la métrica que define el comportamiento de la métrica.

metric_spec.rouge_type

Opcional: string

Valores aceptables:

  • rougen[1-9]: calcula las puntuaciones ROUGE según la superposición de n-gramas entre la predicción y la referencia.
  • rougeL: calcula las puntuaciones ROUGE según la subsecuencia común más larga (LCS) entre la predicción y la referencia.
  • rougeLsum: primero, divide la predicción y la referencia en oraciones y, luego, calcula la LCS para cada tupla. La puntuación final rougeLsum es el promedio de estas puntuaciones de LCS individuales.

metric_spec.use_stemmer

Opcional: bool

Indica si se debe usar el algoritmo de Porter para quitar los sufijos de palabras para mejorar la coincidencia.

metric_spec.split_summaries

Opcional: bool

Indica si se deben agregar líneas nuevas entre oraciones para rougeLsum.

instances

Opcional: RougeInstance[]

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instances.prediction

Opcional: string

Respuesta de LLM.

instances.reference

Opcional: string

Respuesta dorada de LLM como referencia.

RougeResults

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

rouge_metric_values

RougeValue[]

Resultados de la evaluación por entrada de instancia.

rouge_metric_values.score

float: [0, 1], donde las puntuaciones más altas significan que la predicción se parece más a la referencia.

FluencyInput

{
  "fluency_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parámetros

metric_spec

Opcional: FluencySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: FluencyInstance

Entrada de evaluación, que consiste en la respuesta de LLM.

instance.prediction

Opcional: string

Respuesta de LLM.

FluencyResult

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

score

float: Uno de los siguientes:

  • 1: incoherente
  • 2: algo incoherente
  • 3: neutral
  • 4: algo coherente
  • 5: coherente

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

CoherenceInput

{
  "coherence_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parámetros

metric_spec

Opcional: CoherenceSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: CoherenceInstance

Entrada de evaluación, que consiste en la respuesta de LLM.

instance.prediction

Opcional: string

Respuesta de LLM.

CoherenceResult

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

score

float: Uno de los siguientes:

  • 1: inarticulado
  • 2: algo inarticulado
  • 3: neutral
  • 4: algo fluido
  • 5: fluido

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

SafetyInput

{
  "safety_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parámetros

metric_spec

Opcional: SafetySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: SafetyInstance

Entrada de evaluación, que consiste en la respuesta de LLM.

instance.prediction

Opcional: string

Respuesta de LLM.

SafetyResult

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

score

float: Uno de los siguientes:

  • 0. No es seguro
  • 1. Seguras

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

GroundednessInput

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

Parámetro

Descripción

metric_spec

Opcional: GroundednessSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: GroundednessInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

GroundednessResult

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

score

float: Uno de los siguientes:

  • 0: sin fundamento
  • 1: con fundamento

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

FulfillmentInput

{
  "fulfillment_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string
    }
  }
}
Parámetros

metric_spec

Opcional: FulfillmentSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: FulfillmentInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

FulfillmentResult

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

score

float: Uno de los siguientes:

  • 1: sin entrega
  • 2: entrega deficiente
  • 3: algunas entregas
  • 4: entrega buena
  • 5: entrega completa

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

SummarizationQualityInput

{
  "summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parámetros

metric_spec

Opcional: SummarizationQualitySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: SummarizationQualityInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

SummarizationQualityResult

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

score

float: Uno de los siguientes:

  • 1: muy malo
  • 2: malo
  • 3: de acuerdo
  • 4: bueno
  • 5: muy bueno

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

PairwiseSummarizationQualityInput

{
  "pairwise_summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parámetros

metric_spec

Opcional: PairwiseSummarizationQualitySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: PairwiseSummarizationQualityInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.baseline_prediction

Opcional: string

Respuesta de LLM del modelo de referencia.

instance.prediction

Opcional: string

Respuesta de LLM del modelo candidato.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

PairwiseSummarizationQualityResult

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

pairwise_choice

PairwiseChoice: enumeración con valores posibles de la siguiente manera:

  • BASELINE: la predicción del modelo de referencia es mejor
  • CANDIDATE: la predicción candidata es mejor
  • TIE: empate entre las predicciones de modelo de referencia y candidatas.

explanation

string: justificación para la asignación pairwise_choice.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

SummarizationHelpfulnessInput

{
  "summarization_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parámetros

metric_spec

Opcional: SummarizationHelpfulnessSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: SummarizationHelpfulnessInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

SummarizationHelpfulnessResult

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

score

float: Uno de los siguientes:

  • 1: poco útil
  • 2: algo inútil
  • 3: neutral
  • 4: bastante útil
  • 5: útil

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

SummarizationVerbosityInput

{
  "summarization_verbosity_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parámetros

metric_spec

Opcional: SummarizationVerbositySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: SummarizationVerbosityInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

SummarizationVerbosityResult

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

score

float. Uno de los siguientes:

  • -2: terso
  • -1: algo terso
  • 0: óptimo
  • 1: algo verboso
  • 2: verboso

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

QuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parámetros

metric_spec

Opcional: QuestionAnsweringQualitySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: QuestionAnsweringQualityInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

QuestionAnsweringQualityResult

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

score

float: Uno de los siguientes:

  • 1: muy malo
  • 2: malo
  • 3: de acuerdo
  • 4: bueno
  • 5: muy bueno

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

PairwiseQuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parámetros

metric_spec

Opcional: QuestionAnsweringQualitySpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: QuestionAnsweringQualityInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.baseline_prediction

Opcional: string

Respuesta de LLM del modelo de referencia.

instance.prediction

Opcional: string

Respuesta de LLM del modelo candidato.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

PairwiseQuestionAnsweringQualityResult

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

pairwise_choice

PairwiseChoice: enumeración con valores posibles de la siguiente manera:

  • BASELINE: la predicción del modelo de referencia es mejor
  • CANDIDATE: la predicción candidata es mejor
  • TIE: empate entre las predicciones de modelo de referencia y candidatas.

explanation

string: justificación para la asignación pairwise_choice.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

QuestionAnsweringRelevanceInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parámetros

metric_spec

Opcional: QuestionAnsweringRelevanceSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: QuestionAnsweringRelevanceInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

QuestionAnsweringRelevancyResult

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

score

float: Uno de los siguientes:

  • 1: irrelevante
  • 2: algo irrelevante
  • 3: neutral
  • 4: algo relevante
  • 5: relevante

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

QuestionAnsweringHelpfulnessInput

{
  "question_answering_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parámetros

metric_spec

Opcional: QuestionAnsweringHelpfulnessSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: QuestionAnsweringHelpfulnessInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

QuestionAnsweringHelpfulnessResult

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

score

float: Uno de los siguientes:

  • 1: poco útil
  • 2: algo inútil
  • 3: neutral
  • 4: bastante útil
  • 5: útil

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

QuestionAnsweringCorrectnessInput

{
  "question_answering_correctness_input: {
    "metric_spec": {
      "use_reference": bool
    },
    "instance": {
      "prediction": string,
      "reference": string,
      "instruction": string,
      "context": string
    }
  }
}
Parámetros

metric_spec

Opcional: QuestionAnsweringCorrectnessSpec: especificación de la métrica que define el comportamiento de la métrica.

metric_spec.use_reference

Opcional: bool

Si se usa la referencia o no en la evaluación.

instance

Opcional: QuestionAnsweringCorrectnessInstance

Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente.

instance.prediction

Opcional: string

Respuesta de LLM.

instance.reference

Opcional: string

Respuesta dorada de LLM como referencia.

instance.instruction

Opcional: string

Instrucción usada en el tiempo de inferencia.

instance.context

Opcional: string

Texto de tiempo de inferencia que contiene toda la información, que se puede usar en la respuesta de LLM.

QuestionAnsweringCorrectnessResult

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

score

float: Uno de los siguientes:

  • 0: incorrecto
  • 1: correcto

explanation

string: justificación para la asignación de puntuaciones.

confidence

float: [0, 1] la puntuación de confianza de nuestro resultado.

ToolCallValidInput

{
  "tool_call_valid_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parámetros

metric_spec

Opcional: ToolCallValidSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: ToolCallValidInstance

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instance.prediction

Opcional: string

Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas. A continuación, se presenta un ejemplo:

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

Opcional: string

Salida del modelo dorado en el mismo formato que la predicción.

ToolCallValidResults

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

tool_call_valid_metric_values

ToolCallValidMetricValue repetido: resultados de la evaluación por entrada de instancia.

tool_call_valid_metric_values.score

float: Uno de los siguientes:

  • 0: llamada a la herramienta no válida
  • 1: llamada a la herramienta válida

ToolNameMatchInput

{
  "tool_name_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parámetros

metric_spec

Opcional: ToolNameMatchSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: ToolNameMatchInstance

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instance.prediction

Opcional: string

Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas.

instance.reference

Opcional: string

Salida del modelo dorado en el mismo formato que la predicción.

ToolNameMatchResults

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

tool_name_match_metric_values

ToolNameMatchMetricValue repetido: resultados de la evaluación por entrada de instancia.

tool_name_match_metric_values.score

float: Uno de los siguientes:

  • 0: el nombre de la llamada a la herramienta no coincide con la referencia.
  • 1: el nombre de la llamada a la herramienta coincide con la referencia.

ToolParameterKeyMatchInput

{
  "tool_parameter_key_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parámetros

metric_spec

Opcional: ToolParameterKeyMatchSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: ToolParameterKeyMatchInstance

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instance.prediction

Opcional: string

Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas.

instance.reference

Opcional: string

Salida del modelo dorado en el mismo formato que la predicción.

ToolParameterKeyMatchResults

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

tool_parameter_key_match_metric_values

ToolParameterKeyMatchMetricValue repetido: resultados de la evaluación por entrada de instancia.

tool_parameter_key_match_metric_values.score

float: [0, 1], donde las puntuaciones más altas significan más parámetros que coinciden con los nombres de los parámetros de referencia.

ToolParameterKVMatchInput

{
  "tool_parameter_kv_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parámetros

metric_spec

Opcional: ToolParameterKVMatchSpec

Especificación de la métrica que define el comportamiento de la métrica.

instance

Opcional: ToolParameterKVMatchInstance

Entrada de evaluación, que consiste en la respuesta y referencia de LLM.

instance.prediction

Opcional: string

Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves content y tool_calls. El valor content es la salida de texto del modelo. El valor tool_call es una cadena serializada JSON de una lista de llamadas a las herramientas.

instance.reference

Opcional: string

Salida del modelo dorado en el mismo formato que la predicción.

ToolParameterKVMatchResults

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

tool_parameter_kv_match_metric_values

ToolParameterKVMatchMetricValue repetido: resultados de la evaluación por entrada de instancia.

tool_parameter_kv_match_metric_values.score

float: [0, 1], donde las puntuaciones más altas significan más parámetros que coinciden con los nombres y valores de los parámetros de referencia.

Ejemplos

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

Calidad de resumen por pares

Aquí mostramos cómo llamar a la API de evaluación rápida para evaluar el resultado de un LLM. En este caso, hacemos una comparación de calidad de resumen por pares.

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

A continuación, llamaremos a la API para obtener la puntuación ROUGE de una predicción, dada una referencia.

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