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 | |
---|---|
|
Opcional: Entrada para evaluar si la predicción coincide exactamente con la referencia. |
|
Opcional: Entrada para calcular la puntuación BLEU a través de la comparación de la predicción con la referencia. |
|
Opcional: Entrada para calcular las puntuaciones |
|
Opcional: Entrada para evaluar el dominio de idioma de una sola respuesta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de proporcionar una respuesta coherente y fácil de seguir. |
|
Opcional: Entrada para evaluar el nivel de seguridad de una sola respuesta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de proporcionar o hacer referencia a información incluida solo en el texto de entrada. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de cumplir instrucciones por completo. |
|
Opcional: Entrada para evaluar la capacidad general de una sola respuesta para resumir texto. |
|
Opcional: Entrada para comparar la calidad general de resumen de dos respuestas. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de proporcionar un resumen, que contiene los detalles necesarios para sustituir el texto original. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de proporcionar un resumen conciso. |
|
Opcional: Entrada para evaluar la capacidad general de una sola respuesta de responder preguntas, con un cuerpo de texto de referencia. |
|
Opcional: Entrada para comparar la capacidad general de dos respuestas para responder preguntas, con un cuerpo de texto de referencia. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de responder con información relevante cuando se hace una pregunta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de proporcionar detalles clave cuando se responde una pregunta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta para responder correctamente una pregunta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada válida a la herramienta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada a la herramienta con el nombre correcto de la herramienta. |
|
Opcional: Entrada para evaluar la capacidad de una sola respuesta de predecir una llamada a la herramienta con los nombres de parámetros correctos. |
|
Opcional: 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 | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Respuesta dorada de LLM como referencia. |
ExactMatchResults
{ "exact_match_results: { "exact_match_metric_values": [ { "score": float } ] } }
Salida | |
---|---|
|
Resultados de la evaluación por entrada de instancia. |
|
Uno de los siguientes:
|
BleuInput
{ "bleu_input: { "metric_spec": {}, "instances": [ { "prediction": string, "reference": string } ] } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Respuesta dorada de LLM como referencia. |
BleuResults
{ "bleu_results: { "bleu_metric_values": [ { "score": float } ] } }
Salida | |
---|---|
|
Resultados de la evaluación por entrada de instancia. |
|
|
RougeInput
{ "rouge_input: { "metric_spec": { "rouge_type": string, "use_stemmer": bool, "split_summaries": bool }, "instances": [ { "prediction": string, "reference": string } ] } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Valores aceptables:
|
|
Opcional: Indica si se debe usar el algoritmo de Porter para quitar los sufijos de palabras para mejorar la coincidencia. |
|
Opcional: Indica si se deben agregar líneas nuevas entre oraciones para rougeLsum. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Respuesta dorada de LLM como referencia. |
RougeResults
{ "rouge_results: { "rouge_metric_values": [ { "score": float } ] } }
Salida | |
---|---|
|
Resultados de la evaluación por entrada de instancia. |
|
|
FluencyInput
{ "fluency_input: { "metric_spec": {}, "instance": { "prediction": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta de LLM. |
|
Opcional: Respuesta de LLM. |
FluencyResult
{ "fluency_result: { "score": float, "explanation": string, "confidence": float } }
Salida | |
---|---|
|
|
|
|
|
|
CoherenceInput
{ "coherence_input: { "metric_spec": {}, "instance": { "prediction": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta de LLM. |
|
Opcional: Respuesta de LLM. |
CoherenceResult
{ "coherence_result: { "score": float, "explanation": string, "confidence": float } }
Salida | |
---|---|
|
|
|
|
|
|
SafetyInput
{ "safety_input: { "metric_spec": {}, "instance": { "prediction": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta de LLM. |
|
Opcional: Respuesta de LLM. |
SafetyResult
{ "safety_result: { "score": float, "explanation": string, "confidence": float } }
Salida | |
---|---|
|
|
|
|
|
|
GroundednessInput
{ "groundedness_input: { "metric_spec": {}, "instance": { "prediction": string, "context": string } } }
Parámetro |
Descripción |
|
Opcional: GroundednessSpec Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: GroundednessInstance Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
FulfillmentInput
{ "fulfillment_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
FulfillmentResult
{ "fulfillment_result: { "score": float, "explanation": string, "confidence": float } }
Salida | |
---|---|
|
|
|
|
|
|
SummarizationQualityInput
{ "summarization_quality_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
PairwiseSummarizationQualityInput
{ "pairwise_summarization_quality_input: { "metric_spec": {}, "instance": { "baseline_prediction": string, "prediction": string, "instruction": string, "context": string, } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM del modelo de referencia. |
|
Opcional: Respuesta de LLM del modelo candidato. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
SummarizationHelpfulnessInput
{ "summarization_helpfulness_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
SummarizationVerbosityInput
{ "summarization_verbosity_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringQualityInput
{ "question_answering_quality_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
PairwiseQuestionAnsweringQualityInput
{ "question_answering_quality_input: { "metric_spec": {}, "instance": { "baseline_prediction": string, "prediction": string, "instruction": string, "context": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM del modelo de referencia. |
|
Opcional: Respuesta de LLM del modelo candidato. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringRelevanceInput
{ "question_answering_quality_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringHelpfulnessInput
{ "question_answering_helpfulness_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringCorrectnessInput
{ "question_answering_correctness_input: { "metric_spec": { "use_reference": bool }, "instance": { "prediction": string, "reference": string, "instruction": string, "context": string } } }
Parámetros | |
---|---|
|
Opcional: |
|
Opcional: Si se usa la referencia o no en la evaluación. |
|
Opcional: Entrada de evaluación, que consiste en entradas de inferencia y la respuesta correspondiente. |
|
Opcional: Respuesta de LLM. |
|
Opcional: Respuesta dorada de LLM como referencia. |
|
Opcional: Instrucción usada en el tiempo de inferencia. |
|
Opcional: 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 | |
---|---|
|
|
|
|
|
|
ToolCallValidInput
{ "tool_call_valid_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves { "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" } } ] } |
|
Opcional: 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 | |
---|---|
|
|
|
|
ToolNameMatchInput
{ "tool_name_match_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves |
|
Opcional: 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 | |
---|---|
|
|
|
|
ToolParameterKeyMatchInput
{ "tool_parameter_key_match_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves |
|
Opcional: 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 | |
---|---|
|
|
|
|
ToolParameterKVMatchInput
{ "tool_parameter_kv_match_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parámetros | |
---|---|
|
Opcional: Especificación de la métrica que define el comportamiento de la métrica. |
|
Opcional: Entrada de evaluación, que consiste en la respuesta y referencia de LLM. |
|
Opcional: Respuesta de LLM del modelo candidato, que es una cadena serializada JSON que contiene las claves |
|
Opcional: 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 | |
---|---|
|
|
|
|
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))