Pode avaliar o desempenho dos modelos base e dos seus modelos de IA generativa ajustados no Vertex AI. Os modelos são avaliados através de um conjunto de métricas com base num conjunto de dados de avaliação que fornece. Esta página explica como funciona a avaliação de modelos baseada em cálculos através do serviço de pipeline de avaliação, como criar e formatar o conjunto de dados de avaliação e como realizar a avaliação através da Google Cloud consola, da API Vertex AI ou do SDK Vertex AI para Python.
Como funciona a avaliação de modelos baseada em cálculos
Para avaliar o desempenho de um modelo, primeiro, cria um conjunto de dados de avaliação que contém pares de comandos e dados reais. Para cada par, o comando é a entrada que quer avaliar e a verdade fundamental é a resposta ideal para esse comando. Durante a avaliação, o comando em cada par do conjunto de dados de avaliação é transmitido ao modelo para produzir um resultado. O resultado gerado pelo modelo e a verdade fundamental do conjunto de dados de avaliação são usados para calcular as métricas de avaliação.
O tipo de métricas usado para a avaliação depende da tarefa que está a avaliar. A tabela seguinte mostra as tarefas suportadas e as métricas usadas para avaliar cada tarefa:
Tarefa | Métrica |
---|---|
Classificação | Micro-F1, Macro-F1, F1 por classe |
Resumo | ROUGE-L |
Respostas a perguntas | Correspondência Exata |
Geração de texto | BLEU, ROUGE-L |
Modelos suportados
A avaliação de modelos é suportada para os seguintes modelos:
text-bison
: versões base e otimizadas.Gemini: todas as tarefas, exceto a classificação.
Prepare o conjunto de dados de avaliação
O conjunto de dados de avaliação usado para a avaliação do modelo inclui pares de comandos e verdade fundamental que se alinham com a tarefa que quer avaliar. O conjunto de dados tem de incluir, no mínimo, 1 par de comandos e dados reais, e, pelo menos, 10 pares para métricas significativas. Quanto mais exemplos der, mais significativos são os resultados.
Formato do conjunto de dados
O conjunto de dados de avaliação tem de estar no formato JSON Lines (JSONL), em que cada linha contém um único par de comandos e dados reais especificados, respetivamente, nos campos input_text
e output_text
. O campo input_text
contém o comando que quer avaliar e o campo output_text
contém a resposta ideal para o comando.
O comprimento máximo de tokens para input_text
é de 8192 e o comprimento máximo de tokens para output_text
é de 1024.
Carregue o conjunto de dados de avaliação para o Cloud Storage
Pode criar um novo contentor do Cloud Storage ou usar um existente para armazenar o ficheiro do conjunto de dados. O contentor tem de estar na mesma região que o modelo.
Quando o contentor estiver pronto, carregue o ficheiro do conjunto de dados para o contentor.
Realize a avaliação de modelos
Pode avaliar os modelos através da API REST ou da Google Cloud consola.
REST
Para criar uma tarefa de avaliação de modelos, envie um pedido POST
através do método pipelineJobs.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o Google Cloud projeto que executa os componentes do pipeline.
- PIPELINEJOB_DISPLAYNAME: um nome a apresentar para o pipelineJob.
- LOCATION: a região para executar os componentes do pipeline.
Atualmente, apenas é suportado o idioma
us-central1
. - DATASET_URI: o URI do Cloud Storage do seu conjunto de dados de referência. Pode especificar um ou vários URIs. Este parâmetro suporta carateres universais. Para saber mais acerca deste parâmetro, consulte InputConfig.
- OUTPUT_DIR: o URI do Cloud Storage para armazenar o resultado da avaliação.
- MODEL_NAME: especifique um modelo de publicador ou um recurso de modelo otimizado da seguinte forma:
- Modelo de publicador:
publishers/google/models/MODEL@MODEL_VERSION
Exemplo:
publishers/google/models/text-bison@002
- Modelo otimizado:
projects/PROJECT_NUMBER/locations/LOCATION/models/ENDPOINT_ID
Exemplo:
projects/123456789012/locations/us-central1/models/1234567890123456789
A tarefa de avaliação não afeta implementações existentes do modelo nem os respetivos recursos.
- Modelo de publicador:
- EVALUATION_TASK: a tarefa na qual quer
avaliar o modelo. A tarefa de avaliação calcula um conjunto de métricas relevantes para essa tarefa específica. Os valores aceitáveis incluem o seguinte:
summarization
question-answering
text-generation
classification
- INSTANCES_FORMAT: o formato do conjunto de dados.
Atualmente, apenas é suportado o idioma
jsonl
. Para saber mais acerca deste parâmetro, consulte o artigo InputConfig. - PREDICTIONS_FORMAT: o formato do resultado da avaliação. Atualmente, apenas é suportado o idioma
jsonl
. Para saber mais acerca deste parâmetro, consulte InputConfig. - MACHINE_TYPE: (opcional) O tipo de máquina para
executar a tarefa de avaliação. O valor predefinido é
e2-highmem-16
. Para ver uma lista dos tipos de máquinas compatíveis, consulte Tipos de máquinas. - SERVICE_ACCOUNT: (opcional) A conta de serviço a usar para executar a tarefa de avaliação. Para saber como criar uma conta de serviço personalizada, consulte Configurar uma conta de serviço com autorizações detalhadas. Se não for especificado, é usado o agente do serviço de código personalizado do Vertex AI.
- NETWORK: (Opcional) O nome totalmente qualificado da rede do Compute Engine para estabelecer peering com a tarefa de avaliação. O formato do nome da rede é
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
. Se especificar este campo, tem de ter um intercâmbio da rede da VPC para o Vertex AI. Se não for especificado, a tarefa de avaliação não é associada a nenhuma rede. - KEY_NAME: (Opcional) O nome da chave de encriptação gerida pelo cliente (CMEK). Se estiver configurado, os recursos criados pela tarefa de avaliação são encriptados através da chave de encriptação fornecida. O formato do nome da chave é
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
. A chave tem de estar na mesma região que a tarefa de avaliação.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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
Deve receber uma resposta JSON semelhante à seguinte. Tenha em atenção que pipelineSpec
foi truncado para poupar espaço.
Comando curl de exemplo
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 ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Consola
Para criar uma tarefa de avaliação de modelos através da Google Cloud consola, siga estes passos:
- Na Google Cloud consola, aceda à página Registo de modelos da Vertex AI.
- Clique no nome do modelo que quer avaliar.
- No separador Avaliar, clique em Criar avaliação e configure da seguinte forma:
- Objetivo: selecione a tarefa que quer avaliar.
- Coluna ou campo de destino: (apenas classificação) introduza a coluna de destino para a previsão. Exemplo:
ground_truth
. - Caminho de origem: introduza ou selecione o URI do conjunto de dados de avaliação.
- Formato de saída: introduza o formato da saída da avaliação.
Atualmente, apenas é suportado o idioma
jsonl
. - Caminho do Cloud Storage: introduza ou selecione o URI para armazenar o resultado da avaliação.
- Nomes das classes: (apenas classificação) introduza a lista de possíveis nomes das classes.
- Número de nós de computação: introduza o número de nós de computação para executar a tarefa de avaliação.
- Tipo de máquina: selecione um tipo de máquina a usar para executar a tarefa de avaliação.
- Clique em Iniciar avaliação
Veja os resultados da avaliação
Pode encontrar os resultados da avaliação no diretório de saída do Cloud Storage
que especificou quando criou a tarefa de avaliação. O ficheiro tem o nome
evaluation_metrics.json
.
Para modelos otimizados, também pode ver os resultados da avaliação na Google Cloud consola:
Na secção Vertex AI da Google Cloud consola, aceda à página Registo de modelos do Vertex AI.
Clique no nome do modelo para ver as respetivas métricas de avaliação.
No separador Avaliar, clique no nome da execução de avaliação que quer ver.
O que se segue?
- Saiba mais sobre a avaliação da IA generativa.
- Saiba mais sobre a avaliação online com o serviço de avaliação de IA gen.
- Saiba como ajustar um modelo base.