Execute o pipeline AutoSxS para fazer uma avaliação baseada em modelos aos pares

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.

Vista geral do funcionamento da funcionalidade AutoSxS

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:

  1. Identifique as entradas e as saídas necessárias para os modelos que estão a ser avaliados.
  2. Defina as entradas como parâmetros de comando do modelo.
  3. 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) e inference_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 coluna my_prompt do conjunto de dados de avaliação para o parâmetro de comando denominado prompt.
  • 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 coluna my_prompt do conjunto de dados de avaliação para o parâmetro de comando denominado prompt.
  • JUDGMENTS_FORMAT (Opcional): o formato para escrever julgamentos. Pode ser jsonl (predefinição), json ou bigquery.
  • 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) e inference_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 coluna my_prompt do conjunto de dados de avaliação para o parâmetro de comando denominado prompt.
  • 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 coluna my_prompt do conjunto de dados de avaliação para o parâmetro de comando denominado prompt.
  • JUDGMENTS_FORMAT (Opcional): o formato para escrever julgamentos. Pode ser jsonl (predefinição), json ou bigquery.
  • 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:

  1. 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:

      1. Aceda ao Vertex AI Model Garden e selecione um modelo que suporte a avaliação aos pares, como o text-bison.

        Aceda ao Model Garden

      2. Clique em Avaliar.

      3. No menu apresentado, clique em Selecionar para selecionar uma versão do modelo.

      4. 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.

      5. É apresentada uma página Criar avaliação. No passo Método de avaliação, selecione Avaliar este modelo em comparação com outro modelo.

      6. Clique em Continuar.

    • Para avaliar um modelo existente no Registo de modelos Vertex AI:

      1. Aceda à página do Registo de modelos da Vertex AI:

        Aceda ao Registo de modelos Vertex AI

      2. 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.

      3. No separador Avaliar, clique em SxS.

      4. Clique em Criar avaliação lado a lado.

  2. Para cada passo na página de criação da avaliação, introduza as informações necessárias e clique em Continuar:

    1. 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).

    2. 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.

    3. 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.

  3. 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:

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:
-1.00.0Concordância inferior ou equivalente à probabilidade aleatória
0.00.2Concordância ligeira
0.20.4Acordo justo
0.40.6Concordância moderada
0.60.8Acordo substancial
0.81.0Concordância quase perfeita
1.0Acordo perfeito

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.

Figura 2. Ambos os modelos de inferência são executados

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.

Figura 3. Apenas é executado um modelo de inferência

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.

Figura 4. Resultados de ambos os modelos fornecidos ao avaliador automático

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?