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.