Esta página apresenta como realizar a avaliação baseada em modelos aos pares usando o AutoSxS, que é uma ferramenta executada através do serviço de pipeline de avaliação. Explicamos como pode usar o AutoSxS através da API Vertex AI, do SDK Vertex AI para Python ou da Google Cloud consola.
AutoSxS
A comparação lado a lado automática (AutoSxS) é uma ferramenta de avaliação baseada em modelos aos pares que é executada através do serviço de pipeline de avaliação. O AutoSxS pode ser usado para avaliar o desempenho de modelos de IA generativa no Registo de modelos do Vertex AI ou previsões pré-geradas, o que lhe permite suportar modelos básicos do Vertex AI, modelos de IA generativa otimizados e modelos de linguagem de terceiros. O AutoSxS usa um avaliador automático para decidir que modelo dá a melhor resposta a um comando. Está disponível a pedido e avalia modelos de linguagem com um desempenho comparável ao dos avaliadores humanos.
O avaliador automático
A um nível elevado, o diagrama mostra como o AutoSxS compara as previsões dos modelos A e B com um terceiro modelo, o avaliador automático.
Os modelos A e B recebem comandos de entrada e cada modelo gera respostas que são enviadas ao avaliador automático. Tal como um avaliador humano, um avaliador automático é um modelo de linguagem que avalia a qualidade das respostas do modelo com base num comando de inferência original. Com o AutoSxS, o avaliador automático compara a qualidade de duas respostas do modelo, tendo em conta as respetivas instruções de inferência, através de um conjunto de critérios. Os critérios são usados para determinar que modelo teve o melhor desempenho comparando os resultados do modelo A com os resultados do modelo B. O avaliador automático produz preferências de resposta como métricas agregadas e produz explicações de preferências e classificações de confiança para cada exemplo. Para mais informações, consulte a tabela de julgamento.
Modelos suportados
O AutoSxS suporta a avaliação de qualquer modelo quando são fornecidas previsões pré-geradas. O AutoSxS também suporta a geração automática de respostas para qualquer modelo no Registo de modelos da Vertex AI que suporte a previsão em lote na Vertex AI.
Se o seu modelo de texto não for suportado pelo registo de modelos do Vertex AI, o AutoSxS também aceita previsões pré-geradas armazenadas como JSONL no Cloud Storage ou numa tabela do BigQuery. Para ver os preços, consulte a secção Geração de texto.
Tarefas e critérios suportados
O AutoSxS suporta a avaliação de modelos para tarefas de resumo e resposta a perguntas. Os critérios de avaliação são predefinidos para cada tarefa, o que torna a avaliação da linguagem mais objetiva e melhora a qualidade das respostas.
Os critérios são apresentados por tarefa.
Resumo
A tarefa summarization
tem um limite
de tokens de entrada de 4096.
A lista de critérios de avaliação para summarization
é a seguinte:
Critérios | |
---|---|
1. Segue instruções | Em que medida a resposta do modelo demonstra uma compreensão da instrução do comando? |
2. Grounded | A resposta inclui apenas informações do contexto de inferência e da instrução de inferência? |
3. Abrangente | Em que medida o modelo capta os detalhes importantes no resumo? |
4. Resumo | O resumo é detalhado? Inclui linguagem florida? É demasiado conciso? |
Resposta à pergunta
A tarefa question_answering
tem um limite
de tokens de entrada de 4096.
A lista de critérios de avaliação para question_answering
é a seguinte:
Critérios | |
---|---|
1. Responde totalmente à pergunta | A resposta responde à pergunta de forma completa. |
2. Grounded | A resposta inclui apenas informações do contexto das instruções e das instruções de inferência? |
3. Relevância | O conteúdo da resposta está relacionado com a pergunta? |
4. Abrangente | Até que ponto o modelo capta os detalhes importantes na pergunta? |
Prepare o conjunto de dados de avaliação para o AutoSxS
Esta secção detalha os dados que deve fornecer no seu conjunto de dados de avaliação AutoSxS e as práticas recomendadas para a criação de conjuntos de dados. Os exemplos devem refletir as entradas do mundo real que os seus modelos podem encontrar na produção e contrastar melhor o comportamento dos seus modelos publicados.
Formato do conjunto de dados
O AutoSxS aceita um único conjunto de dados de avaliação com um esquema flexível. O conjunto de dados pode ser uma tabela do BigQuery ou estar armazenado como JSON Lines no Cloud Storage.
Cada linha do conjunto de dados de avaliação representa um único exemplo e as colunas são uma das seguintes:
- Colunas de ID: usadas para identificar cada exemplo único.
- Colunas de dados: usadas para preencher modelos de comandos. Consulte os parâmetros de comando
- Previsões pré-geradas: previsões feitas pelo mesmo modelo com o mesmo comando. A utilização de previsões pré-geradas poupa tempo e recursos.
- Preferências humanas reais: usadas para comparar o AutoSxS com os seus dados de preferências reais quando são fornecidas previsões pré-geradas para ambos os modelos.
Segue-se um exemplo de conjunto de dados de avaliação em que context
e question
são colunas de dados e model_b_response
contém previsões pré-geradas.
context |
question |
model_b_response |
---|---|---|
Algumas pessoas podem pensar que o aço ou o titânio são os materiais mais duros, mas, na verdade, o diamante é o material mais duro. | Qual é o material mais duro? | O diamante é o material mais duro. É mais duro do que o aço ou o titânio. |
Para mais informações sobre como chamar o AutoSxS, consulte o artigo Realize a avaliação do modelo. Para ver detalhes sobre o comprimento dos tokens, consulte o artigo Tarefas e critérios suportados. Para carregar os seus dados para o Cloud Storage, consulte o artigo Carregue o conjunto de dados de avaliação para o Cloud Storage.
Parâmetros de comandos
Muitos modelos de linguagem usam parâmetros de comandos como entradas em vez de uma única string de comando. Por exemplo, o comando chat-bison
usa vários parâmetros de comando (messages, examples, context), que compõem partes do comando. No entanto, text-bison
tem apenas um parâmetro de comando, denominado prompt, que contém o comando completo.
Descrevemos como pode especificar de forma flexível os parâmetros de comando do modelo no momento da inferência e da avaliação. O AutoSxS oferece-lhe a flexibilidade de chamar modelos de linguagem com entradas esperadas variáveis através de parâmetros de comandos com modelos.
Inferência
Se algum dos modelos não tiver previsões pré-geradas, o AutoSxS usa a previsão em lote do Vertex AI para gerar respostas. Têm de ser especificados os parâmetros de comando de cada modelo.
No AutoSxS, pode fornecer uma única coluna no conjunto de dados de avaliação como um parâmetro de comando.
{'some_parameter': {'column': 'my_column'}}
Em alternativa, pode definir modelos, usando colunas do conjunto de dados de avaliação como variáveis, para especificar parâmetros de comando:
{'some_parameter': {'template': 'Summarize the following: {{ my_column }}.'}}
Quando fornecem parâmetros de comando do modelo para inferência, os utilizadores podem usar a palavra-chave default_instruction
protegida como um argumento de modelo, que é substituído pela instrução de inferência predefinida para a tarefa especificada:
model_prompt_parameters = {
'prompt': {'template': '{{ default_instruction }}: {{ context }}'},
}
Se gerar previsões, forneça parâmetros de comando do modelo e uma coluna de saída. Veja os exemplos seguintes:
Gemini
Para os modelos Gemini, as chaves dos parâmetros de comando do modelo são contents
(obrigatório) e system_instruction
(opcional), que se alinham com o
esquema do corpo do pedido do Gemini.
model_a_prompt_parameters={
'contents': {
'column': 'context'
},
'system_instruction': {'template': '{{ default_instruction }}'},
},
text-bison
Por exemplo, text-bison
usa "comando" para entrada e "conteúdo" para saída. Siga estes
passos:
- Identifique as entradas e as saídas necessárias para os modelos que estão a ser avaliados.
- Defina as entradas como parâmetros de comando do modelo.
- Transmitir o resultado para a coluna de resposta.
model_a_prompt_parameters={
'prompt': {
'template': {
'Answer the following question from the point of view of a college professor: {{ context }}\n{{ question }}'
},
},
},
response_column_a='content', # Column in Model A response.
response_column_b='model_b_response', # Column in eval dataset.
Avaliação
Tal como tem de fornecer parâmetros de comando para a inferência, também tem de fornecer parâmetros de comando para a avaliação. O autorater requer os seguintes parâmetros de comando:
Parâmetro de comando do avaliador automático | Configurável pelo utilizador? | Descrição | Exemplo |
---|---|---|---|
Instrução do avaliador automático | Não | Uma instrução calibrada que descreve os critérios que o avaliador automático deve usar para avaliar as respostas fornecidas. | Escolha a resposta que responde à pergunta e segue melhor as instruções. |
Instrução de inferência | Sim | Uma descrição da tarefa que cada modelo candidato deve realizar. | Responde à pergunta com precisão: qual é o material mais duro? |
Contexto de inferência | Sim | Contexto adicional para a tarefa que está a ser realizada. | Embora o titânio e o diamante sejam mais duros do que o cobre, o diamante tem uma classificação de dureza de 98, enquanto o titânio tem uma classificação de 36. Uma classificação mais elevada significa uma dureza mais elevada. |
Responses | Não1 | Um par de respostas a avaliar, uma de cada modelo candidato. | Diamante |
1Só pode configurar o parâmetro de comando através de respostas pré-geradas.
Exemplo de código que usa os parâmetros:
autorater_prompt_parameters={
'inference_instruction': {
'template': 'Answer the following question from the point of view of a college professor: {{ question }}.'
},
'inference_context': {
'column': 'context'
}
}
Os modelos A e B podem ter instruções de inferência e contexto formatados de forma diferente, quer sejam ou não fornecidas as mesmas informações. Isto significa que o avaliador automático recebe uma instrução de inferência e um contexto separados, mas únicos.
Exemplo de conjunto de dados de avaliação
Esta secção fornece um exemplo de um conjunto de dados de avaliação de tarefas de perguntas e respostas,
incluindo previsões pré-geradas para o modelo B. Neste exemplo, o AutoSxS
realiza a inferência apenas para o modelo A. Disponibilizamos uma coluna id
para diferenciar
entre exemplos com a mesma pergunta e contexto.
{
"id": 1,
"question": "What is the hardest material?",
"context": "Some might think that steel is the hardest material, or even titanium. However, diamond is actually the hardest material.",
"model_b_response": "Diamond is the hardest material. It is harder than steel or titanium."
}
{
"id": 2,
"question": "What is the highest mountain in the world?",
"context": "K2 and Everest are the two tallest mountains, with K2 being just over 28k feet and Everest being 29k feet tall.",
"model_b_response": "Mount Everest is the tallest mountain, with a height of 29k feet."
}
{
"id": 3,
"question": "Who directed The Godfather?",
"context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
"model_b_response": "Francis Ford Coppola directed The Godfather."
}
{
"id": 4,
"question": "Who directed The Godfather?",
"context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
"model_b_response": "John Smith."
}
Práticas recomendadas
Siga estas práticas recomendadas quando definir o conjunto de dados de avaliação:
- Forneça exemplos que representem os tipos de entradas que os seus modelos processam em produção.
- O conjunto de dados tem de incluir, pelo menos, um exemplo de avaliação. Recomendamos cerca de 100 exemplos para garantir métricas agregadas de alta qualidade. A taxa de melhorias na qualidade das métricas agregadas tende a diminuir quando são fornecidos mais de 400 exemplos.
- Para um guia sobre como escrever comandos, consulte o artigo Crie comandos de texto.
- Se estiver a usar previsões pré-geradas para qualquer um dos modelos, inclua as previsões pré-geradas numa coluna do conjunto de dados de avaliação. O fornecimento de previsões pré-geradas é útil porque permite comparar o resultado de modelos que não estão no registo de modelos do Vertex AI e permite reutilizar respostas.
Realize a avaliação de modelos
Pode avaliar modelos através da API REST, do SDK Vertex AI para Python ou da Google Cloud consola.
Use esta sintaxe para especificar o caminho para o seu modelo:
- Modelo de publicador:
publishers/PUBLISHER/models/MODEL
Exemplo:publishers/google/models/text-bison
Modelo otimizado:
projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL@VERSION
Exemplo:projects/123456789012/locations/us-central1/models/1234567890123456789
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:
- PIPELINEJOB_DISPLAYNAME : nome a apresentar para o
pipelineJob
. - PROJECT_ID : Google Cloud projeto que executa os componentes do pipeline.
- LOCATION : região para executar os componentes do pipeline. O
us-central1
é suportado. - OUTPUT_DIR : URI do Cloud Storage para armazenar o resultado da avaliação.
- EVALUATION_DATASET : tabela do BigQuery ou uma lista separada por vírgulas de caminhos do Cloud Storage para um conjunto de dados JSONL que contenha exemplos de avaliação.
- TASK : tarefa de avaliação, que pode ser uma das seguintes:
[summarization, question_answering]
. - ID_COLUMNS : colunas que distinguem exemplos de avaliação únicos.
- AUTORATER_PROMPT_PARAMETERS : parâmetros de comandos de avaliadores automáticos mapeados para colunas ou modelos. Os parâmetros esperados são:
inference_instruction
(detalhes sobre como realizar uma tarefa) einference_context
(conteúdo a referenciar para realizar a tarefa). Por exemplo,{'inference_context': {'column': 'my_prompt'}}
usa a coluna `my_prompt` do conjunto de dados de avaliação para o contexto do avaliador automático. - RESPONSE_COLUMN_A : o nome de uma coluna no conjunto de dados de avaliação que contém previsões predefinidas ou o nome da coluna na saída do Modelo A que contém previsões. Se não for indicado nenhum valor, o nome da coluna de saída do modelo correto é inferido.
- RESPONSE_COLUMN_B : o nome de uma coluna no conjunto de dados de avaliação que contém previsões predefinidas ou o nome da coluna na saída do modelo B que contém previsões. Se não for indicado nenhum valor, o nome da coluna de saída do modelo correto é inferido.
- MODEL_A (Opcional): um nome do recurso do modelo totalmente qualificado (
projects/{project}/locations/{location}/models/{model}@{version}
) ou um nome do recurso do modelo do publicador (publishers/{publisher}/models/{model}
). Se forem especificadas respostas do modelo A, este parâmetro não deve ser fornecido. - MODEL_B (Opcional): um nome do recurso do modelo totalmente qualificado (
projects/{project}/locations/{location}/models/{model}@{version}
) ou um nome do recurso do modelo do publicador (publishers/{publisher}/models/{model}
). Se forem especificadas respostas do modelo B, este parâmetro não deve ser fornecido. - MODEL_A_PROMPT_PARAMETERS (Opcional): parâmetros do modelo de comando do modelo A mapeados para colunas ou modelos. Se as respostas do modelo A estiverem predefinidas, este parâmetro não deve ser fornecido. Exemplo:
{'prompt': {'column': 'my_prompt'}}
usa a colunamy_prompt
do conjunto de dados de avaliação para o parâmetro de comando denominadoprompt
. - MODEL_B_PROMPT_PARAMETERS (Opcional): parâmetros do modelo de comando do modelo B mapeados para colunas ou modelos. Se as respostas do modelo B forem predefinidas, este parâmetro não deve ser fornecido. Exemplo:
{'prompt': {'column': 'my_prompt'}}
usa a colunamy_prompt
do conjunto de dados de avaliação para o parâmetro de comando denominadoprompt
. - JUDGMENTS_FORMAT
(Opcional): o formato para escrever julgamentos. Pode ser
jsonl
(predefinição),json
oubigquery
. - BIGQUERY_DESTINATION_PREFIX: tabela do BigQuery para escrever julgamentos se o formato especificado for
bigquery
.
Corpo JSON do pedido
{
"displayName": "PIPELINEJOB_DISPLAYNAME",
"runtimeConfig": {
"gcsOutputDirectory": "gs://OUTPUT_DIR",
"parameterValues": {
"evaluation_dataset": "EVALUATION_DATASET",
"id_columns": ["ID_COLUMNS"],
"task": "TASK",
"autorater_prompt_parameters": AUTORATER_PROMPT_PARAMETERS,
"response_column_a": "RESPONSE_COLUMN_A",
"response_column_b": "RESPONSE_COLUMN_B",
"model_a": "MODEL_A",
"model_a_prompt_parameters": MODEL_A_PROMPT_PARAMETERS,
"model_b": "MODEL_B",
"model_b_prompt_parameters": MODEL_B_PROMPT_PARAMETERS,
"judgments_format": "JUDGMENTS_FORMAT",
"bigquery_destination_prefix":BIGQUERY_DESTINATION_PREFIX,
},
},
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default"
}
Use curl
para enviar o seu pedido.
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"
Resposta
"state": "PIPELINE_STATE_PENDING",
"labels": {
"vertex-ai-pipelines-run-billing-id": "1234567890123456789"
},
"runtimeConfig": {
"gcsOutputDirectory": "gs://my-evaluation-bucket/output",
"parameterValues": {
"evaluation_dataset": "gs://my-evaluation-bucket/output/data.json",
"id_columns": [
"context"
],
"task": "question_answering",
"autorater_prompt_parameters": {
"inference_instruction": {
"template": "Answer the following question: {{ question }} }."
},
"inference_context": {
"column": "context"
}
},
"response_column_a": "",
"response_column_b": "response_b",
"model_a": "publishers/google/models/text-bison@002",
"model_a_prompt_parameters": {
"prompt": {
"template": "Answer the following question from the point of view of a college professor: {{ question }}\n{{ context }} }"
}
},
"model_b": "",
"model_b_prompt_parameters": {}
}
},
"serviceAccount": "123456789012-compute@developer.gserviceaccount.com",
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default",
"templateMetadata": {
"version": "sha256:7366b784205551ed28f2c076e841c0dbeec4111b6df16743fc5605daa2da8f8a"
}
}
SDK Vertex AI para 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 sobre a API Python, consulte a API Vertex AI SDK for Python.
Para mais informações sobre os parâmetros do pipeline, consulte a documentação de referência dos componentes do pipeline do Google Cloud.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PIPELINEJOB_DISPLAYNAME : nome a apresentar para o
pipelineJob
. - PROJECT_ID : Google Cloud projeto que executa os componentes do pipeline.
- LOCATION : região para executar os componentes do pipeline. O
us-central1
é suportado. - OUTPUT_DIR : URI do Cloud Storage para armazenar o resultado da avaliação.
- EVALUATION_DATASET : tabela do BigQuery ou uma lista separada por vírgulas de caminhos do Cloud Storage para um conjunto de dados JSONL que contenha exemplos de avaliação.
- TASK : tarefa de avaliação, que pode ser uma das seguintes:
[summarization, question_answering]
. - ID_COLUMNS : colunas que distinguem exemplos de avaliação únicos.
- AUTORATER_PROMPT_PARAMETERS : parâmetros de comandos de avaliadores automáticos mapeados para colunas ou modelos. Os parâmetros esperados são:
inference_instruction
(detalhes sobre como realizar uma tarefa) einference_context
(conteúdo a referenciar para realizar a tarefa). Por exemplo,{'inference_context': {'column': 'my_prompt'}}
usa a coluna `my_prompt` do conjunto de dados de avaliação para o contexto do avaliador automático. - RESPONSE_COLUMN_A : o nome de uma coluna no conjunto de dados de avaliação que contém previsões predefinidas ou o nome da coluna na saída do Modelo A que contém previsões. Se não for indicado nenhum valor, o nome da coluna de saída do modelo correto é inferido.
- RESPONSE_COLUMN_B : o nome de uma coluna no conjunto de dados de avaliação que contém previsões predefinidas ou o nome da coluna na saída do modelo B que contém previsões. Se não for indicado nenhum valor, o nome da coluna de saída do modelo correto é inferido.
- MODEL_A (Opcional): um nome do recurso do modelo totalmente qualificado (
projects/{project}/locations/{location}/models/{model}@{version}
) ou um nome do recurso do modelo do publicador (publishers/{publisher}/models/{model}
). Se forem especificadas respostas do modelo A, este parâmetro não deve ser fornecido. - MODEL_B (Opcional): um nome do recurso do modelo totalmente qualificado (
projects/{project}/locations/{location}/models/{model}@{version}
) ou um nome do recurso do modelo do publicador (publishers/{publisher}/models/{model}
). Se forem especificadas respostas do modelo B, este parâmetro não deve ser fornecido. - MODEL_A_PROMPT_PARAMETERS (Opcional): parâmetros do modelo de comando do modelo A mapeados para colunas ou modelos. Se as respostas do modelo A estiverem predefinidas, este parâmetro não deve ser fornecido. Exemplo:
{'prompt': {'column': 'my_prompt'}}
usa a colunamy_prompt
do conjunto de dados de avaliação para o parâmetro de comando denominadoprompt
. - MODEL_B_PROMPT_PARAMETERS (Opcional): parâmetros do modelo de comando do modelo B mapeados para colunas ou modelos. Se as respostas do modelo B forem predefinidas, este parâmetro não deve ser fornecido. Exemplo:
{'prompt': {'column': 'my_prompt'}}
usa a colunamy_prompt
do conjunto de dados de avaliação para o parâmetro de comando denominadoprompt
. - JUDGMENTS_FORMAT
(Opcional): o formato para escrever julgamentos. Pode ser
jsonl
(predefinição),json
oubigquery
. - BIGQUERY_DESTINATION_PREFIX: tabela do BigQuery para escrever julgamentos se o formato especificado for
bigquery
.
import os
from google.cloud import aiplatform
parameters = {
'evaluation_dataset': 'EVALUATION_DATASET',
'id_columns': ['ID_COLUMNS'],
'task': 'TASK',
'autorater_prompt_parameters': AUTORATER_PROMPT_PARAMETERS,
'response_column_a': 'RESPONSE_COLUMN_A',
'response_column_b': 'RESPONSE_COLUMN_B',
'model_a': 'MODEL_A',
'model_a_prompt_parameters': MODEL_A_PROMPT_PARAMETERS,
'model_b': 'MODEL_B',
'model_b_prompt_parameters': MODEL_B_PROMPT_PARAMETERS,
'judgments_format': 'JUDGMENTS_FORMAT',
'bigquery_destination_prefix':
BIGQUERY_DESTINATION_PREFIX,
}
aiplatform.init(project='PROJECT_ID', location='LOCATION', staging_bucket='gs://OUTPUT_DIR')
aiplatform.PipelineJob(
display_name='PIPELINEJOB_DISPLAYNAME',
pipeline_root=os.path.join('gs://OUTPUT_DIR', 'PIPELINEJOB_DISPLAYNAME'),
template_path=(
'https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default'),
parameter_values=parameters,
).run()
Consola
Para criar uma tarefa de avaliação de modelos aos pares através da Google Cloud consola, siga estes passos:
Comece com um modelo base da Google ou use um modelo que já exista no seu Registo de modelos Vertex AI:
Para avaliar um modelo base da Google:
Aceda ao Vertex AI Model Garden e selecione um modelo que suporte a avaliação aos pares, como o
text-bison
.Clique em Avaliar.
No menu apresentado, clique em Selecionar para selecionar uma versão do modelo.
Um painel Guardar modelo pode pedir-lhe para guardar uma cópia do modelo no Registo de modelos do Vertex AI se ainda não tiver uma cópia. Introduza um Nome do modelo e clique em Guardar.
É apresentada uma página Criar avaliação. No passo Método de avaliação, selecione Avaliar este modelo em comparação com outro modelo.
Clique em Continuar.
Para avaliar um modelo existente no Registo de modelos Vertex AI:
Aceda à página do Registo de modelos da Vertex AI:
Clique no nome do modelo que quer avaliar. Certifique-se de que o tipo de modelo tem suporte para avaliação aos pares. Por exemplo,
text-bison
.No separador Avaliar, clique em SxS.
Clique em Criar avaliação lado a lado.
Para cada passo na página de criação da avaliação, introduza as informações necessárias e clique em Continuar:
No passo Conjunto de dados de avaliação, selecione um objetivo de avaliação e um modelo para comparar com o modelo selecionado. Selecione um conjunto de dados de avaliação e introduza as colunas de ID (colunas de resposta).
No passo Definições do modelo, especifique se quer usar as respostas do modelo já no seu conjunto de dados ou se quer usar a previsão em lote do Vertex AI para gerar as respostas. Especifique as colunas de resposta para ambos os modelos. Para a opção Vertex AI Batch Prediction, pode especificar os parâmetros do comando do modelo de previsão.
No passo Definições do avaliador automático, introduza os parâmetros do comando do avaliador automático e uma localização de saída para as avaliações.
Clique em Iniciar avaliação.
Veja os resultados da avaliação
Pode encontrar os resultados da avaliação nos Vertex AI Pipelines inspecionando os seguintes artefactos produzidos pelo pipeline AutoSxS:
- A tabela judgments é produzida pelo árbitro AutoSxS.
- As métricas agregadas são produzidas pelo componente de métricas AutoSxS.
- As métricas de alinhamento de preferências humanas são produzidas pelo componente de métricas AutoSxS.
Sentenças
O AutoSxS produz julgamentos (métricas ao nível do exemplo) que ajudam os utilizadores a compreender o desempenho do modelo ao nível do exemplo. As sentenças incluem as seguintes informações:
- Comandos de inferência
- Respostas do modelo
- Decisões de classificação automática
- Explicações das classificações
- Classificações de confiança
Os julgamentos podem ser escritos no Cloud Storage no formato JSONL ou numa tabela do BigQuery com estas colunas:
Coluna | Descrição |
---|---|
colunas de ID | Colunas que distinguem exemplos de avaliação únicos. |
inference_instruction |
Instrução usada para gerar respostas do modelo. |
inference_context |
Contexto usado para gerar respostas do modelo. |
response_a |
Resposta do modelo A, tendo em conta a instrução de inferência e o contexto. |
response_b |
Resposta do modelo B, tendo em conta a instrução de inferência e o contexto. |
choice |
O modelo com a melhor resposta. Os valores possíveis são Model A , Model B ou Error . Error significa que ocorreu um erro que impediu a classificação automática de determinar se a resposta do modelo A ou a resposta do modelo B era a melhor. |
confidence |
Uma pontuação entre 0 e 1 , que indica o nível de confiança do avaliador automático na sua escolha. |
explanation |
O motivo da escolha do avaliador automático. |
Agregue métricas
O AutoSxS calcula as métricas agregadas (taxa de vitórias) através da tabela de julgamentos. Se não forem fornecidos dados de preferências humanas, são geradas as seguintes métricas agregadas:
Métrica | Descrição |
---|---|
Taxa de ganhos do modelo A do AutoRater | Percentagem de vezes que o avaliador automático decidiu que o modelo A tinha a melhor resposta. |
Taxa de ganhos do modelo B do AutoRater | Percentagem de vezes que o avaliador automático decidiu que o modelo B tinha a melhor resposta. |
Para compreender melhor a taxa de êxito, consulte os resultados baseados em linhas e as explicações do avaliador automático para determinar se os resultados e as explicações estão alinhados com as suas expetativas.
Métricas de alinhamento de preferências humanas
Se forem fornecidos dados de preferências humanas, o AutoSxS produz as seguintes métricas:
Métrica | Descrição | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Taxa de ganhos do modelo A do AutoRater | Percentagem de vezes que o avaliador automático decidiu que o modelo A tinha a melhor resposta. | ||||||||||||||
Taxa de ganhos do modelo B do AutoRater | Percentagem de vezes que o avaliador automático decidiu que o modelo B tinha a melhor resposta. | ||||||||||||||
Taxa de ganhos do modelo A de preferência humana | Percentagem de vezes em que os humanos decidiram que o modelo A tinha a melhor resposta. | ||||||||||||||
Taxa de ganhos do modelo B de preferências humanas | Percentagem de vezes em que os humanos decidiram que o modelo B tinha a melhor resposta. | ||||||||||||||
TP | Número de exemplos em que o classificador automático e as preferências humanas indicaram que o modelo A tinha a melhor resposta. | ||||||||||||||
FP | Número de exemplos em que o classificador automático escolheu o modelo A como a melhor resposta, mas a preferência humana era que o modelo B tivesse a melhor resposta. | ||||||||||||||
TN | Número de exemplos em que o classificador automático e as preferências humanas indicaram que o Modelo B tinha a melhor resposta. | ||||||||||||||
FN | Número de exemplos em que o classificador automático escolheu o modelo B como a melhor resposta, mas a preferência humana era que o modelo A tivesse a melhor resposta. | ||||||||||||||
Precisão | Percentagem de tempo em que o avaliador automático concordou com os avaliadores humanos. | ||||||||||||||
Precisão | Percentagem de tempo em que o avaliador automático e os humanos consideraram que o modelo A tinha uma resposta melhor, de todos os casos em que o avaliador automático considerou que o modelo A tinha uma resposta melhor. | ||||||||||||||
Recordar | Percentagem de tempo em que o avaliador automático e os humanos consideraram que o modelo A tinha uma resposta melhor, de todos os casos em que os humanos consideraram que o modelo A tinha uma resposta melhor. | ||||||||||||||
F1 | Meio harmónico de precisão e revocação. | ||||||||||||||
Kappa de Cohen | Uma medição da concordância entre o avaliador automático e os avaliadores humanos que tem em conta a probabilidade de concordância aleatória. Cohen sugere a seguinte interpretação:
|
Exemplos de utilização do AutoSxS
Pode explorar como usar o AutoSxS com três cenários de exemplos de utilização.
Compare modelos
Avalie um modelo original (1P) otimizado em comparação com um modelo original de referência.
Pode especificar que a inferência é executada em ambos os modelos em simultâneo.
Este exemplo de código avalia um modelo otimizado do Registo de modelos Vertex em comparação com um modelo de referência do mesmo registo.
# Evaluation dataset schema:
# my_question: str
# my_context: str
parameters = {
'evaluation_dataset': DATASET,
'id_columns': ['my_context'],
'task': 'question_answering',
'autorater_prompt_parameters': {
'inference_instruction': {'column': 'my_question'},
'inference_context': {'column': 'my_context'},
},
'model_a': 'publishers/google/models/text-bison@002',
'model_a_prompt_parameters': {QUESTION: {'template': '{{my_question}}\nCONTEXT: {{my_context}}'}},
'response_column_a': 'content',
'model_b': 'projects/abc/locations/abc/models/tuned_bison',
'model_b_prompt_parameters': {'prompt': {'template': '{{my_context}}\n{{my_question}}'}},
'response_column_b': 'content',
}
Compare previsões
Avalie um modelo de terceiros (3P) otimizado em comparação com um modelo de terceiros de referência.
Pode ignorar a inferência fornecendo diretamente respostas do modelo.
Este exemplo de código avalia um modelo de terceiros otimizado em comparação com um modelo de terceiros de referência.
# Evaluation dataset schema:
# my_question: str
# my_context: str
# response_b: str
parameters = {
'evaluation_dataset': DATASET,
'id_columns': ['my_context'],
'task': 'question_answering',
'autorater_prompt_parameters':
'inference_instruction': {'column': 'my_question'},
'inference_context': {'column': 'my_context'},
},
'response_column_a': 'content',
'response_column_b': 'response_b',
}
Verifique o alinhamento
Todas as tarefas suportadas foram testadas com dados de avaliadores humanos para garantir que as respostas do avaliador automático estão alinhadas com as preferências humanas. Se quiser realizar testes de referência do AutoSxS para os seus exemplos de utilização, forneça dados de preferências humanas diretamente ao AutoSxS, que produz estatísticas agregadas de alinhamento.
Para verificar o alinhamento com um conjunto de dados de preferências humanas, pode especificar ambas as saídas (resultados da previsão) para o avaliador automático. Também pode fornecer os resultados da inferência.
Este exemplo de código verifica se os resultados e as explicações do avaliador automático estão alinhados com as suas expetativas.
# Evaluation dataset schema:
# my_question: str
# my_context: str
# response_a: str
# response_b: str
# actual: str
parameters = {
'evaluation_dataset': DATASET,
'id_columns': ['my_context'],
'task': 'question_answering',
'autorater_prompt_parameters': {
'inference_instruction': {'column': 'my_question'},
'inference_context': {'column': 'my_context'},
},
'response_column_a': 'response_a',
'response_column_b': 'response_b',
'human_preference_column': 'actual',
}
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 os modelos de base de linguagem.