É possível avaliar o desempenho dos modelos de base e dos modelos de IA generativa ajustados na Vertex AI. Os modelos são avaliados usando um conjunto de métricas em relação a um conjunto de dados de avaliação fornecido por você. Nesta página, explicamos como funciona a avaliação de modelos baseada em computação por meio do serviço de pipeline de avaliação, como criar e formatar o conjunto de dados de avaliação e como executar a avaliação usando o console do Google Cloud, a API Vertex AI ou o SDK da Vertex AI para Python.
Como funciona a avaliação de modelo baseado em computação
Para avaliar o desempenho de um modelo, primeiro você cria um conjunto de dados de avaliação que contém prompts e pares de informações empíricas. Para cada par, a entrada é a que você quer avaliar, e a informação empírica é a resposta ideal para ela. Durante a avaliação, o comando em cada par do conjunto de dados de avaliação é transmitido ao modelo para produzir uma saída. A saída gerada pelo modelo e as informações empíricas do conjunto de dados de avaliação são usadas para calcular as métricas de avaliação.
O tipo de métrica usada para avaliação depende da tarefa que você está avaliando. A tabela a seguir mostra as tarefas compatíveis e as métricas usadas para avaliar cada tarefa:
Tarefa | Métrica |
---|---|
Classificação | Micro-F1, Macro-F1, por classe F1 |
Resumo | ROUGE-L |
Respostas a perguntas | Correspondência exata |
Geração de texto | BLEU, ROUGE-L |
Modelos compatíveis
A avaliação de modelos é compatível com os seguintes modelos:
text-bison
: versões de base e ajustadas.Gemini: todas as tarefas, exceto classificação.
Preparar conjunto de dados de avaliação
O conjunto de dados usado para avaliar o modelo inclui pares de comandos e informações empíricas que se alinham à tarefa que você quer avaliar. Seu conjunto de dados precisa incluir no mínimo um par de comandos e informações empíricas e pelo menos 10 pares para métricas significativas. Quanto mais exemplos, mais significativos serão os resultados.
Formato do conjunto de dados
O conjunto de dados de avaliação precisa estar emLinhas JSON
(JSONL), em que cada linha contém um único par de prompt e de informações empíricas
especificado no input_text
e output_text
respectivamente. O campo
input_text
contém o comando que você quer avaliar, e o campo
output_text
contém a resposta ideal para esse comando.
O tamanho máximo do token para input_text
é 8.192, e o comprimento máximo do token
para output_text
é 1.024.
Fazer upload do conjunto de dados de avaliação para o Cloud Storage
É possível criar um novo bucket do Cloud Storage ou usar um atual para armazenar o arquivo do conjunto de dados. O bucket precisa estar na mesma região que o gatilho.
Quando o bucket estiver pronto, faça o upload do arquivo do conjunto de dados para o bucket.
Fazer avaliação de modelo.
É possível avaliar modelos usando a API REST ou o console do Google Cloud.
REST
Para criar um job de avaliação de modelo, envie uma solicitação POST
usando o método pipelineJobs.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o projeto do Google Cloud que executa os componentes do pipeline.
- PIPELINEJOB_DISPLAYNAME: um nome de exibição do pipelineJob.
- LOCATION: a região para executar os componentes do pipeline.
Atualmente, somente
us-central1
é aceito. - DATASET_URI: o URI do Cloud Storage do conjunto de dados de referência. É possível especificar um ou vários URIs. Esse parâmetro é compatível com caracteres curinga. Para saber mais sobre esse parâmetro, consulte InputConfig.
- OUTPUT_DIR: o URI do Cloud Storage para armazenar a saída da avaliação.
- MODEL_NAME: especifique um modelo de editor ou um recurso de modelo ajustado da seguinte maneira:
- Modelo do editor:
publishers/google/models/MODEL@MODEL_VERSION
Exemplo:
publishers/google/models/text-bison@002
- Modelo ajustado:
projects/PROJECT_NUMBER/locations/LOCATION/models/ENDPOINT_ID
Exemplo:
projects/123456789012/locations/us-central1/models/1234567890123456789
O job de avaliação não afeta as implantações atuais do modelo ou os recursos dele.
- Modelo do editor:
- EVALUATION_TASK: a tarefa em que você quer avaliar o modelo. O job de avaliação calcula um conjunto de métricas relevantes para essa tarefa específica. Os valores aceitáveis são os seguintes:
summarization
question-answering
text-generation
classification
- INSTANCES_FORMAT: o formato do conjunto de dados.
Atualmente, somente
jsonl
é aceito. Para saber mais sobre esse parâmetro, consulte InputConfig. - PREDICTIONS_FORMAT: o formato da saída da avaliação. Atualmente, somente
jsonl
é aceito. Para saber mais sobre esse parâmetro, consulte InputConfig. - MACHINE_TYPE: (opcional) o tipo de máquina para executar o job de avaliação. O valor padrão é
e2-highmem-16
. Para uma lista de tipos de máquina compatíveis, consulte Tipos de máquina. - SERVICE_ACCOUNT: (opcional) a conta de serviço a ser usada para executar o job de avaliação. Para saber como criar uma conta de serviço personalizada, consulte Configurar uma conta de serviço com permissões granulares. Se não for especificado, será usado o agente de serviço de código personalizado da Vertex AI.
- NETWORK: (opcional) o nome totalmente qualificado da rede do Compute Engine para fazer o peering do job de avaliação. O formato do nome da rede é
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
. Se você especificar esse campo, será necessário ter um peering de rede VPC para a Vertex AI. Se não for especificado, o job de avaliação não fará peering com nenhuma rede. - KEY_NAME: (opcional) o nome da chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês). Se configurados, os recursos criados pelo job de avaliação são criptografados usando a chave de criptografia fornecida. O formato do nome da chave é
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
. A chave precisa estar na mesma região que o job de avaliação.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
Corpo JSON da solicitação:
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "location": "LOCATION", "batch_predict_gcs_source_uris": ["gs://DATASET_URI"], "batch_predict_gcs_destination_output_uri": "gs://OUTPUT_DIR", "model_name": "MODEL_NAME", "evaluation_task": "EVALUATION_TASK", "batch_predict_instances_format": "INSTANCES_FORMAT", "batch_predict_predictions_format: "PREDICTIONS_FORMAT", "machine_type": "MACHINE_TYPE", "service_account": "SERVICE_ACCOUNT", "network": "NETWORK", "encryption_spec_key_name": "KEY_NAME" } }, "templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1" }
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/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"
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/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte. Observe que pipelineSpec
foi truncado para economizar espaço.
Exemplo de comando curl
PROJECT_ID=myproject
REGION=us-central1
MODEL_NAME=publishers/google/models/text-bison@002
TEST_DATASET_URI=gs://my-gcs-bucket-uri/dataset.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs" -d \
$'{
"displayName": "evaluation-llm-text-generation-pipeline",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"location": "'${REGION}'",
"batch_predict_gcs_source_uris": ["'${TEST_DATASET_URI}'"],
"batch_predict_gcs_destination_output_uri": "'${OUTPUT_DIR}'",
"model_name": "'${MODEL_NAME}'",
}
},
"templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}'
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Console
Para criar um job de avaliação de modelo usando o console do Google Cloud, execute as seguintes etapas:
- No console do Google Cloud, acesse a página do Vertex AI Model Registry.
- Clique no nome do modelo que você quer avaliar.
- Na guia Avaliar, clique em Criar avaliação e configure da seguinte maneira:
- Objetivo: selecione a tarefa que você quer avaliar.
- Coluna ou campo de destino: (apenas classificação) insira a coluna
de destino para previsão. Exemplo:
ground_truth
. - Caminho de origem: insira ou selecione o URI do conjunto de dados de avaliação.
- Formato de saída: insira o formato da saída da avaliação.
Atualmente, somente
jsonl
é aceito. - Caminho do Cloud Storage: insira ou selecione o URI para armazenar a saída da avaliação.
- Nomes de classes: (apenas classificação) digite a lista de possíveis nomes de classes.
- Número de nós de computação: digite o número de nós de computação para executar o job de avaliação.
- Tipo de máquina: selecione um tipo de máquina a ser usado para executar o job de avaliação.
- Clique em Iniciar avaliação.
Visualizar os resultados da avaliação
Encontre os resultados da avaliação no diretório de saída do Cloud Storage
especificado ao criar o job de avaliação. O nome do arquivo é evaluation_metrics.json
.
Para modelos ajustados, também é possível conferir os resultados da avaliação no console do Google Cloud:
Na seção "Vertex AI" do console do Google Cloud, acesse a página Vertex AI Model Registry.
Clique no nome do modelo para visualizar as métricas de avaliação.
Na guia Avaliar, clique no nome da execução da avaliação que você quer visualizar.
A seguir
- Saiba mais sobre avaliação de IA generativa.
- Saiba mais sobre a avaliação on-line com o serviço de avaliação de IA generativa.
- Saiba como ajustar um modelo de fundação.