Preparar o conjunto de dados de avaliação

Para o serviço de avaliação de IA generativa, o conjunto de dados de avaliação normalmente consiste na resposta do modelo que você quer avaliar, nos dados de entrada usados para gerar a resposta e, possivelmente, na resposta de informações empíricas.

Esquema do conjunto de dados de avaliação

Para casos de uso comuns de métricas baseadas em modelos, o conjunto de dados precisa fornecer as seguintes informações:

Tipo de entrada Conteúdo do campo de entrada
prompt Entrada do usuário para o aplicativo ou modelo de IA generativa. Ela é opcional em alguns casos.
resposta Sua resposta de inferência do LLM a ser avaliada.
baseline_model_response (obrigatória para métricas em pares) A resposta de inferência do LLM do valor de referência que é usada para comparação com a resposta do LLM na avaliação em pares

Se você usar o módulo de avaliação de IA generativa do SDK da Vertex AI para Python, o serviço de avaliação de IA generativa poderá gerar automaticamente response e baseline_model_response com o modelo especificado.

Para outros casos de uso de avaliação, talvez seja necessário fornecer mais informações:

Chat ou conversa com vários turnos

Tipo de entrada Conteúdo do campo de entrada
histórico O histórico da conversa entre o usuário e o modelo antes do turno atual.
prompt Entrada do usuário para o aplicativo ou modelo de IA generativa no turno atual.
resposta A resposta de inferência do LLM a ser avaliada, que é baseada no histórico e no comando do turno atual.
baseline_model_response (obrigatória para métricas em pares) A resposta de inferência do LLM do valor de referência, que é usada para comparação com a resposta do LLM na avaliação em pares, que tem como base o histórico e o comando no turno atual.

Métricas com base em computação

O conjunto de dados precisa fornecer uma resposta do modelo de linguagem grande e uma referência para comparação.

Tipo de entrada Conteúdo do campo de entrada
resposta Sua resposta de inferência do LLM a ser avaliada.
referência As informações empíricas para comparação com sua resposta do LLM.

Métricas de tradução

O conjunto de dados precisa fornecer uma resposta do modelo. Dependendo do caso de uso, você também precisa fornecer uma referência para comparação, uma entrada no idioma de origem ou uma combinação de ambos.

Tipo de entrada Conteúdo do campo de entrada
source Texto de origem que está no idioma original em que a previsão foi traduzida.
resposta Sua resposta de inferência do LLM a ser avaliada.
referência As informações empíricas para comparação com sua resposta do LLM. Ela é mostrada no mesmo idioma da resposta.

Dependendo dos casos de uso, você também pode dividir o comando de entrada do usuário em partes granulares, como instruction e context, e montá-las para inferência, fornecendo um modelo de comando. Quando necessário, também é possível fornecer as informações de referência ou informações empíricas:

Tipo de entrada Conteúdo do campo de entrada
instrução Parte do comando de entrada do usuário. Ele se refere à instrução de inferência enviada ao LLM. Por exemplo, "resuma o texto a seguir" é uma instrução.
contexto Entrada do usuário para o aplicativo ou modelo de IA generativa no turno atual.
referência As informações empíricas para comparação com sua resposta do LLM.

As entradas necessárias para o conjunto de dados de avaliação precisam ser consistentes com suas métricas. Para mais detalhes sobre a personalização das métricas, consulte Definir métricas de avaliação e Executar a avaliação. Para mais detalhes sobre como incluir dados de referência nas métricas baseadas em modelos, consulte Adaptar um modelo de comando de métrica aos dados de entrada.

Importar o conjunto de dados de avaliação

É possível importar o conjunto de dados nos seguintes formatos:

  • Arquivo JSONL ou CSV armazenado no Cloud Storage

  • Tabela do BigQuery

  • DataFrames da Pandas

Exemplos de conjuntos de dados de avaliação

Esta seção mostra exemplos de conjuntos de dados usando o formato Dataframe do Pandas. Apenas alguns registros de dados são mostrados aqui como exemplo, e os conjuntos de dados de avaliação geralmente têm 100 ou mais pontos de dados. Para conferir as práticas recomendadas ao preparar um conjunto de dados, consulte a seção Práticas recomendadas.

Métricas baseadas em modelos pontuais

Confira o seguinte caso de resumo que demonstra um conjunto de dados de exemplo para métricas baseadas em modelo pontuais:

prompts = [
    # Example 1
    (
        "Summarize the text in one sentence: As part of a comprehensive"
        " initiative to tackle urban congestion and foster sustainable urban"
        " living, a major city has revealed ambitious plans for an extensive"
        " overhaul of its public transportation system. The project aims not"
        " only to improve the efficiency and reliability of public transit but"
        " also to reduce the city's carbon footprint and promote eco-friendly"
        " commuting options. City officials anticipate that this strategic"
        " investment will enhance accessibility for residents and visitors"
        " alike, ushering in a new era of efficient, environmentally conscious"
        " urban transportation."
    ),
    # Example 2
    (
        "Summarize the text such that a five-year-old can understand: A team of"
        " archaeologists has unearthed ancient artifacts shedding light on a"
        " previously unknown civilization. The findings challenge existing"
        " historical narratives and provide valuable insights into human"
        " history."
    ),
]

responses = [
    # Example 1
    (
        "A major city is revamping its public transportation system to fight"
        " congestion, reduce emissions, and make getting around greener and"
        " easier."
    ),
    # Example 2
    (
        "Some people who dig for old things found some very special tools and"
        " objects that tell us about people who lived a long, long time ago!"
        " What they found is like a new puzzle piece that helps us understand"
        " how people used to live."
    ),
]

eval_dataset = pd.DataFrame({
    "prompt": prompts,
    "response": responses,
})

Métricas baseadas em modelos em pares

O exemplo a seguir mostra um caso de resposta a perguntas com livro aberto para demonstrar um conjunto de dados de exemplo para métricas baseadas em modelo em pares.

prompts = [
    # Example 1
    (
        "Based on the context provided, 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."
    ),
    # Example 2
    (
        "Based on the context provided, 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."
    ),
]

responses = [
    # Example 1
    "Diamond is the hardest material. It is harder than steel or titanium.",
    # Example 2
    "Francis Ford Coppola directed The Godfather.",
]

baseline_model_responses = [
    # Example 1
    "Steel is the hardest material.",
    # Example 2
    "John Smith.",
]

eval_dataset = pd.DataFrame(
  {
    "prompt":  prompts,
    "response":  responses,
    "baseline_model_response": baseline_model_responses,
  }
)

Métricas com base em computação

Para métricas baseadas em computação, o reference geralmente é necessário.

eval_dataset = pd.DataFrame({
  "response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
  "reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})

Métricas de uso de ferramentas (chamada de função)

Este exemplo mostra dados de entrada para métricas de uso de ferramentas com base em computação:

json_responses = ["""{
    "content": "",
    "tool_calls":[{
      "name":"get_movie_info",
      "arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
    }]
  }"""]

json_references = ["""{
    "content": "",
    "tool_calls":[{
      "name":"book_tickets",
      "arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
      }]
  }"""]

eval_dataset = pd.DataFrame({
    "response": json_responses,
    "reference": json_references,
})

Casos de uso da tradução

O exemplo a seguir mostra dados de entrada para métricas de tradução:

  source = [
      "Dem Feuer konnte Einhalt geboten werden",
      "Schulen und Kindergärten wurden eröffnet.",
  ]

  response = [
      "The fire could be stopped",
      "Schools and kindergartens were open",
  ]

  reference = [
      "They were able to control the fire.",
      "Schools and kindergartens opened",
  ]

  eval_dataset = pd.DataFrame({
      "source": source,
      "response": response,
      "reference": reference,
  })

Práticas recomendadas

Siga estas práticas recomendadas ao definir seu conjunto de dados de avaliação:

  • Forneça exemplos que representem os tipos de entradas que seus modelos processam na produção.
  • Seu conjunto de dados precisa incluir no mínimo um exemplo de avaliação. Recomendamos cerca de 100 exemplos para garantir métricas agregadas de alta qualidade e resultados estatisticamente significativos. Esse tamanho ajuda a estabelecer um maior nível de confiança nos resultados agregados da avaliação, minimizando a influência de outliers e garantindo que as métricas de desempenho reflitam as verdadeiras capacidades do modelo em diversos cenários. A taxa de melhorias de qualidade da métrica agregada tende a diminuir quando mais de 400 exemplos são fornecidos.

A seguir