Prepare o conjunto de dados de avaliação

Para o serviço de avaliação de IA gen., o conjunto de dados de avaliação consiste normalmente na resposta do modelo que quer avaliar, nos dados de entrada usados para gerar a sua resposta e, possivelmente, na resposta de referência.

Esquema do conjunto de dados de avaliação

Para exemplos de utilização típicos de métricas baseadas em modelos, o conjunto de dados tem de fornecer as seguintes informações:

Tipo de entrada Conteúdo do campo de entrada
comando Introdução do utilizador para o modelo ou a aplicação de IA gen. É opcional em alguns casos.
resposta A resposta de inferência do MDG que quer avaliar.
baseline_model_response (obrigatório para métricas aos pares) A resposta de inferência do GML de base que é usada para comparar a resposta do GML com a avaliação aos pares

Se usar o módulo de avaliação de IA gen do SDK Vertex AI para Python, o serviço de avaliação de IA gen pode gerar automaticamente os response e baseline_model_response com o modelo especificado.

Para outros exemplos de utilização de avaliação, pode ter de fornecer mais informações:

Interação múltipla ou chat

Tipo de entrada Conteúdo do campo de entrada
história O histórico da conversa entre o utilizador e o modelo antes da vez atual.
comando Introdução do utilizador para o modelo ou a aplicação de IA gen na interação atual.
resposta A sua resposta de inferência do MDL/CE a ser avaliada, que se baseia no histórico e no comando de turno atual.
baseline_model_response (obrigatório para métricas aos pares) A resposta de inferência do GML de base que é usada para comparar a resposta do GML com a avaliação aos pares, que se baseia no histórico e no comando de turno atual.

Métricas baseadas em cálculos

O seu conjunto de dados tem de fornecer uma resposta do modelo de linguagem (conteúdo extenso) e uma referência para comparação.

Tipo de entrada Conteúdo do campo de entrada
resposta A resposta de inferência do MDG que quer avaliar.
referência O facto observável com o qual comparar a resposta do MDG.

Métricas de tradução

O conjunto de dados tem de fornecer uma resposta do modelo. Consoante o exemplo de utilização, também tem de 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
fonte Texto de origem no idioma original a partir do qual a previsão foi traduzida.
resposta A resposta de inferência do MDG que quer avaliar.
referência O facto observável com o qual comparar a resposta do MDG. Está no mesmo idioma que a resposta.

Consoante os seus exemplos de utilização, também pode dividir o comando do utilizador de entrada em partes detalhadas, como instruction e context, e juntá-las para inferência fornecendo um modelo de comando. Também pode fornecer as informações de referência ou factuais, se necessário:

Tipo de entrada Conteúdo do campo de entrada
instrução Parte do comando do utilizador de entrada. Refere-se à instrução de inferência que é enviada para o seu MDG. Por exemplo: "Resume o seguinte texto" é uma instrução.
contexto Introdução do utilizador para o modelo ou a aplicação de IA gen na interação atual.
referência O facto observável com o qual comparar a resposta do MDG.

As entradas necessárias para o conjunto de dados de avaliação devem ser consistentes com as suas métricas. Para mais detalhes sobre a personalização das métricas, consulte os artigos Defina as métricas de avaliação e Execute a avaliação. Para mais detalhes sobre como incluir dados de referência nas suas métricas baseadas em modelos, consulte o artigo Adapte um modelo de comando de métricas aos seus dados de entrada.

Importe o seu conjunto de dados de avaliação

Pode importar o conjunto de dados nos seguintes formatos:

  • Ficheiro JSONL ou CSV armazenado no Cloud Storage

  • tabela do BigQuery

  • Pandas DataFrame

Exemplos de conjuntos de dados de avaliação

Esta secção mostra exemplos de conjuntos de dados com o formato Pandas Dataframe. Tenha em atenção que apenas são apresentados vários registos de dados como exemplo e que os conjuntos de dados de avaliação têm normalmente 100 ou mais pontos de dados. Para ver as práticas recomendadas ao preparar um conjunto de dados, consulte a secção Práticas recomendadas.

Métricas baseadas em modelos ao nível do ponto

Segue-se um exemplo de resumo para demonstrar um conjunto de dados de exemplo para métricas baseadas em modelos ao nível do ponto:

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 aos pares

O exemplo seguinte mostra um caso de resposta a perguntas com consulta de informações para demonstrar um conjunto de dados de amostra para métricas baseadas em modelos aos 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 baseadas em cálculos

Para métricas baseadas em cálculos, é frequentemente necessário reference.

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 utilização de ferramentas (chamada de funções)

O exemplo seguinte mostra os dados de entrada para métricas de utilização de ferramentas baseadas 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,
})

Exemplos de utilização de tradução

O exemplo seguinte 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 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 e resultados estatisticamente significativos. Esta dimensão ajuda a estabelecer um nível de confiança mais elevado nos resultados da avaliação agregada, minimizando a influência de valores atípicos e garantindo que as métricas de desempenho refletem as verdadeiras capacidades do modelo em diversos cenários. A taxa de melhorias na qualidade das métricas agregadas tende a diminuir quando são fornecidos mais de 400 exemplos.

O que se segue?