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

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,
})

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