O serviço de avaliação rápida permite avaliar seus modelos de linguagem grandes (LLMs), tanto em ponto quanto em pares, em várias métricas. É possível fornecer entradas de tempo de inferência, respostas do LLM e outros parâmetros. O serviço de avaliação retorna métricas específicas para a tarefa de avaliação.
As métricas incluem métricas com base em modelo, como SummarizationQuality
, e métricas calculadas na memória, como rouge
, bleu
, e métricas de chamada de função da ferramenta.
Como o serviço recebe os resultados de previsão diretamente dos modelos como entrada,
ele pode realizar inferência e avaliação subsequente em
todos os modelos compatíveis com a
Vertex AI.
Para mais informações sobre como avaliar um modelo, consulte Visão geral do serviço de avaliação de IA generativa.
Limitações
Veja a seguir as limitações do serviço de avaliação:
- As métricas com base em modelo consomem a cota de text-bison. O serviço de avaliação rápida aproveita o text-bison como o modelo árbitro subjacente para calcular métricas com base nele.
- O serviço de avaliação tem um atraso de propagação. Talvez ela não fique disponível por vários minutos após a primeira chamada para o serviço.
Exemplo de sintaxe
Sintaxe para enviar uma chamada de avaliação.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}:evaluateInstances \ -d '{ "contents": [{ ... }], "tools": [{ "function_declarations": [ { ... } ] }] }'
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://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}:evaluateInstances' result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data) print(json.dumps(result.json(), indent=2))
Lista de parâmetros
Parâmetros | |
---|---|
|
Opcional: Entrada para avaliar se a previsão corresponde exatamente à referência. |
|
Opcional: Entrada para calcular a pontuação BLEU comparando a previsão com a referência. |
|
Opcional: Entrada para calcular pontuações |
|
Opcional: Entrada para avaliar o domínio do idioma de uma única resposta. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de fornecer uma resposta coerente e fácil de acompanhar. |
|
Opcional: Entrada para avaliar o nível de segurança de uma única resposta. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de fornecer ou referenciar informações incluídas apenas no texto de entrada. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de atender completamente às instruções. |
|
Opcional: Entrada para avaliar a capacidade geral de resumir textos de uma única resposta. |
|
Opcional: Entrada para comparar a qualidade geral do resumo de duas respostas. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de gerar um resumo com os detalhes necessários para substituir o texto original. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de fornecer um resumo sucinto. |
|
Opcional: Entrada para avaliar a capacidade geral de uma única resposta de responder a perguntas, com um corpo de texto para referência. |
|
Opcional: Entrada para comparar a capacidade geral de responder a perguntas de duas respostas, com um corpo de texto para referência. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de responder com informações relevantes quando uma pergunta é feita. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de fornecer detalhes importantes ao responder a uma pergunta. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de responder corretamente a uma pergunta. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de prever uma chamada de ferramenta válida. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de prever uma chamada de ferramenta com o nome correto da ferramenta. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de prever uma chamada de ferramenta com nomes de parâmetros corretos. |
|
Opcional: Entrada para avaliar a capacidade de uma única resposta de prever uma chamada de ferramenta com nomes e valores de parâmetros corretos |
ExactMatchInput
{ "exact_match_input": { "metric_spec": {}, "instances": [ { "prediction": string, "reference": string } ] } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM. |
|
Opcional: Resposta do LLM Golden para referência. |
ExactMatchResults
{ "exact_match_results": { "exact_match_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
Resultados da avaliação por entrada da instância. |
|
Opções:
|
BleuInput
{ "bleu_input": { "metric_spec": { "use_effective_order": bool }, "instances": [ { "prediction": string, "reference": string } ] } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Define se são considerados pedidos n-grama sem nenhuma correspondência. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM. |
|
Opcional: Resposta do LLM Golden para referência. |
BleuResults
{ "bleu_results": { "bleu_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
Resultados da avaliação por entrada da instância. |
|
|
RougeInput
{ "rouge_input": { "metric_spec": { "rouge_type": string, "use_stemmer": bool, "split_summaries": bool }, "instances": [ { "prediction": string, "reference": string } ] } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Valores aceitáveis:
|
|
Opcional: Define se a derivação de Porter deve ser usada para remover sufixos de palavras para melhorar a correspondência. |
|
Opcional: Define se novas linhas serão adicionadas entre as frases do rougeLsum. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM. |
|
Opcional: Resposta do LLM Golden para referência. |
RougeResults
{ "rouge_results": { "rouge_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
Resultados da avaliação por entrada da instância. |
|
|
FluencyInput
{ "fluency_input": { "metric_spec": {}, "instance": { "prediction": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste na resposta do LLM. |
|
Opcional: Resposta do LLM. |
FluencyResult
{ "fluency_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
CoherenceInput
{ "coherence_input": { "metric_spec": {}, "instance": { "prediction": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste na resposta do LLM. |
|
Opcional: Resposta do LLM. |
CoherenceResult
{ "coherence_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
SafetyInput
{ "safety_input": { "metric_spec": {}, "instance": { "prediction": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste na resposta do LLM. |
|
Opcional: Resposta do LLM. |
SafetyResult
{ "safety_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
GroundednessInput
{ "groundedness_input": { "metric_spec": {}, "instance": { "prediction": string, "context": string } } }
Parâmetro |
Descrição |
|
Opcional: GroundednessSpec Especificação da métrica que define o comportamento dela. |
|
Opcional: GroundednessInstance Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
GroundednessResult
{ "groundedness_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
FulfillmentInput
{ "fulfillment_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
FulfillmentResult
{ "fulfillment_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
SummarizationQualityInput
{ "summarization_quality_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
SummarizationQualityResult
{ "summarization_quality_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
PairwiseSummarizationQualityInput
{ "pairwise_summarization_quality_input": { "metric_spec": {}, "instance": { "baseline_prediction": string, "prediction": string, "instruction": string, "context": string, } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM do modelo de referência. |
|
Opcional: Resposta do LLM do modelo candidato. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
PairwiseSummarizationQualityResult
{ "pairwise_summarization_quality_result": { "pairwise_choice": PairwiseChoice, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
SummarizationHelpfulnessInput
{ "summarization_helpfulness_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
SummarizationHelpfulnessResult
{ "summarization_helpfulness_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
SummarizationVerbosityInput
{ "summarization_verbosity_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
SummarizationVerbosityResult
{ "summarization_verbosity_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
QuestionAnsweringQualityInput
{ "question_answering_quality_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
QuestionAnsweringQualityResult
{ "question_answering_quality_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
PairwiseQuestionAnsweringQualityInput
{ "question_answering_quality_input": { "metric_spec": {}, "instance": { "baseline_prediction": string, "prediction": string, "instruction": string, "context": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM do modelo de referência. |
|
Opcional: Resposta do LLM do modelo candidato. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
PairwiseQuestionAnsweringQualityResult
{ "pairwise_question_answering_quality_result": { "pairwise_choice": PairwiseChoice, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
QuestionAnsweringRelevanceInput
{ "question_answering_quality_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
QuestionAnsweringRelevancyResult
{ "question_answering_relevancy_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
QuestionAnsweringHelpfulnessInput
{ "question_answering_helpfulness_input": { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
QuestionAnsweringHelpfulnessResult
{ "question_answering_helpfulness_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
QuestionAnsweringCorrectnessInput
{ "question_answering_correctness_input": { "metric_spec": { "use_reference": bool }, "instance": { "prediction": string, "reference": string, "instruction": string, "context": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Se a referência é usada ou não na avaliação. |
|
Opcional: Entrada de avaliação, que consiste em entradas de inferência e na resposta correspondente. |
|
Opcional: Resposta do LLM. |
|
Opcional: Resposta do LLM Golden para referência. |
|
Opcional: Instrução usada no momento da inferência. |
|
Opcional: Texto de tempo de inferência contendo todas as informações, que podem ser usadas na resposta do LLM. |
QuestionAnsweringCorrectnessResult
{ "question_answering_correctness_result": { "score": float, "explanation": string, "confidence": float } }
Saída | |
---|---|
|
|
|
|
|
|
ToolCallValidInput
{ "tool_call_valid_input": { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM do modelo candidato, que é uma string serializada em JSON que contém as chaves { "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: Saída do modelo Golden no mesmo formato que a previsão. |
ToolCallValidResults
{ "tool_call_valid_results": { "tool_call_valid_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
|
|
|
ToolNameMatchInput
{ "tool_name_match_input": { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM do modelo candidato, que é uma string serializada em JSON que contém as chaves |
|
Opcional: Saída do modelo Golden no mesmo formato que a previsão. |
ToolNameMatchResults
{ "tool_name_match_results": { "tool_name_match_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
|
|
|
ToolParameterKeyMatchInput
{ "tool_parameter_key_match_input": { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM do modelo candidato, que é uma string serializada em JSON que contém as chaves |
|
Opcional: Saída do modelo Golden no mesmo formato que a previsão. |
ToolParameterKeyMatchResults
{ "tool_parameter_key_match_results": { "tool_parameter_key_match_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
|
|
|
ToolParameterKVMatchInput
{ "tool_parameter_kv_match_input": { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
Parâmetros | |
---|---|
|
Opcional: Especificação da métrica que define o comportamento dela. |
|
Opcional: Entrada de avaliação, que consiste em resposta e referência do LLM. |
|
Opcional: Resposta do LLM do modelo candidato, que é uma string serializada em JSON que contém as chaves |
|
Opcional: Saída do modelo Golden no mesmo formato que a previsão. |
ToolParameterKVMatchResults
{ "tool_parameter_kv_match_results": { "tool_parameter_kv_match_metric_values": [ { "score": float } ] } }
Saída | |
---|---|
|
|
|
|
Examples
Avaliar uma saída
O exemplo a seguir demonstra como chamar a API de avaliação rápida para avaliar a saída de um LLM usando várias métricas de avaliação, incluindo:
summarization_quality
groundedness
fulfillment
summarization_helpfulnes
summarization_verbosity
Python
Avaliar uma saída: qualidade do resumo em pares
O exemplo a seguir demonstra como chamar a API de avaliação rápida para avaliar a saída de um LLM usando uma comparação de qualidade de resumo em pares.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- PREDICTION: resposta do LLM.
- BASELINE_PREDICTION: resposta do LLM do modelo de referência.
- INSTRUCTION: a instrução usada no momento da inferência.
- CONTEXT: texto de tempo de inferência contendo todas as informações relevantes, que podem ser usadas na resposta do LLM.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/LOCATION:evaluateInstances \
Corpo JSON da solicitação:
{ "pairwise_summarization_quality_input": { "metric_spec": {}, "instance": { "prediction": "PREDICTION", "baseline_prediction": "BASELINE_PREDICTION", "instruction": "INSTRUCTION", "context": "CONTEXT", } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/LOCATION:evaluateInstances \"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/LOCATION:evaluateInstances \" | Select-Object -Expand Content
Receber a pontuação média
O exemplo a seguir chama a API de avaliação rápida para receber a pontuação Rouge de uma previsão, gerada por várias entradas. As entradas do Rouge usam metric_spec
, que determina o comportamento da métrica.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- PREDICTION: resposta do LLM.
- REFERENCE: resposta do LLM Golden para referência.
- ROUGE_TYPE: o cálculo usado para determinar o valor mínimo. Consulte
metric_spec.rouge_type
para conferir os valores aceitáveis. - USE_STEMMER: determina se o stemmer de Porter é usado para remover sufixos de palavras para melhorar a correspondência. Para valores aceitáveis, consulte
metric_spec.use_stemmer
. - SPLIT_SUMMARIES: determina se novas linhas são adicionadas entre
rougeLsum
frases. Para valores aceitáveis, consultemetric_spec.split_summaries
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/REGION:evaluateInstances \
Corpo JSON da solicitação:
{ "rouge_input": { "instances": { "prediction": "PREDICTION", "reference": "REFERENCE.", }, "metric_spec": { "rouge_type": "ROUGE_TYPE", "use_stemmer": USE_STEMMER, "split_summaries": SPLIT_SUMMARIES, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/REGION:evaluateInstances \"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/REGION:evaluateInstances \" | Select-Object -Expand Content
A seguir
- Para consultar a documentação detalhada, consulte Executar uma avaliação rápida.