O que é
Um modelo com ajuste fino leu suas respostas de treinamento muitas vezes. Faça uma dessas perguntas novamente e ele poderá reproduzir a resposta quase palavra por palavra. Isso parece habilidade, mas é memorização: não diz nada sobre como o modelo lidará com o próximo cliente, cuja pergunta ele nunca viu.
O conjunto de teste é a solução, e uma das regras mais antigas em aprendizado de máquina: mantenha alguns exemplos completamente separados do treinamento e avalie o modelo apenas neles. Grandes modelos de linguagem tornam a regra mais importante, não menos. Estudos de benchmarks públicos encontraram repetidamente modelos que viram itens de teste durante o treinamento e obtiveram pontuações mais altas por causa disso — um problema conhecido como contaminação de dados ou vazamento.
Como funciona
dataset has ≥ 10 conversations? no → no test set
yes → test = 10% of conversations (at least 3)
random, but fixed for this prep
each assistant reply in a test conversation → one question
asked with the conversation up to that point
reference answer = the reply itself
reply identical to a training reply → dropped- Reservado primeiro. Antes que a validação seja separada ou qualquer coisa seja gravada para treinamento, a preparação de dados escolhe 10% das conversas, pelo menos 3. Conjuntos de dados com menos de 10 conversas não recebem um conjunto de teste.
- Aleatório, mas fixo por preparação. A escolha é aleatória, para não ser tendenciosa em relação a conversas fáceis ou difíceis, e permanece a mesma para aquela preparação, de modo que avaliar novamente fará as mesmas perguntas.
- Uma pergunta por resposta. Cada resposta do assistente em uma conversa de teste se torna uma pergunta, feita com a conversa até aquele ponto. A própria resposta é a resposta de referência.
- Sem cópias ocultas. Uma resposta de teste que seja exatamente igual a uma resposta de treinamento — a mesma resposta padrão em outra conversa — é descartada, porque o modelo efetivamente já a viu.
- Nunca sai. As conversas de teste não estão no arquivo de treinamento nem no arquivo de validação, e nunca são enviadas ao provedor.
- Aprendeu com
- não
- Enviado ao provedor
- não
O modelo realmente melhorou?
- Aprendeu com
- não
- Enviado ao provedor
- sim
Uma segunda opinião quando não há conjunto de teste
- Aprendeu com
- sim
- Enviado ao provedor
- sim
Apenas uma verificação de sanidade: os resultados são otimistas
Por que a validação não é um teste limpo
As conversas de validação não são usadas para aprendizado, então por que não avaliar com base nelas? Porque o provedor recebe o arquivo de validação e o usa durante o treinamento, para calcular a perda de validação e monitorar a execução. Os dados saíram de suas mãos, e cada decisão tomada ao observar esses números — qual execução manter, quantas épocas — ajusta o resultado um pouco em direção a essas perguntas específicas. A validação é uma boa segunda opinião; não é um exame cego.
De onde o Evaluate obtém suas perguntas
| Origem | Visto durante o treinamento? | Usar para |
|---|---|---|
| Teste reservado | Não | Julgar se o modelo realmente melhorou |
| Validação | Visto pelo provedor, não usado para aprendizado | Uma segunda opinião quando não há conjunto de teste |
| Amostra de treinamento | Sim, usado no aprendizado | Apenas uma verificação de sanidade; os resultados são otimistas |
O Evaluate usa a primeira fonte que existir, nessa ordem. Um resultado em uma amostra de treinamento é um limite superior: se o modelo ajustado não vencer nem mesmo nas perguntas que aprendeu, não vencerá nas novas; se vencer, você ainda não saberá por quanto.
- O conjunto de dados possui 120 conversas, portanto, a preparação de dados reserva 10%: 12 conversas, escolhidas aleatoriamente e fixadas para esta preparação.
- Essas 12 conversas contêm 31 respostas do assistente. Cada uma se torna uma pergunta, feita com a conversa até aquele ponto e com a resposta como sua resposta de referência.
- Duas respostas são exatamente iguais a respostas em conversas de treinamento — uma resposta padrão sobre redefinição de senha. Elas são descartadas: restam 29 perguntas de teste.
- As outras 108 conversas seguem para a divisão de validação e treinamento habituais. Nenhum dos arquivos contém uma conversa de teste, e o provedor nunca as recebe.
- Após o treinamento, o Evaluate faz as 29 perguntas de teste. Para comparação: um conjunto de dados de 25 conversas reservaria 3 (o mínimo), e um de 9 não teria conjunto de teste, então o Evaluate recorreria às perguntas de validação.
Como usar corretamente
- Dê espaço. Um conjunto de teste de 29 perguntas é útil, mas pequeno: nesse tamanho, uma taxa de vitória de 60% ainda é compatível com nenhuma melhoria. Mais conversas no conjunto de dados significam mais perguntas de teste e um veredito mais firme.
- Mantenha as conversas de teste fora de treinamentos posteriores. Se você as copiar para outro conjunto de dados e treinar nele, o próximo modelo as terá visto e sua avaliação será lisonjeira.
- Compare coisas semelhantes. Uma nova preparação extrai seu próprio conjunto de teste. Ao comparar modelos, use as perguntas de teste de uma única preparação para todos eles.
- Leve os avisos a sério. Uma avaliação em uma amostra de treinamento é marcada como tal por um motivo: interprete-a como uma verificação de sanidade, não como um resultado.
Fontes de perguntas
Perguntas da preparação de dados de conversas mantidas à parte. Nunca usadas no treinamento, nunca usadas na validação, nunca enviadas ao provedor: o teste limpo e o padrão.
Perguntas da divisão de validação. Não usadas no aprendizado, mas vistas pelo provedor enquanto monitorava o treinamento. Usadas quando a preparação não possui um conjunto de teste.
Uma amostra de perguntas nas quais o modelo foi treinado. O último recurso, marcado com um aviso: os resultados são otimistas e mostram apenas que nada está gravemente quebrado.
Erros comuns
- Avaliar com perguntas de treinamento e interpretar o resultado como desempenho no mundo real.
- Tratar os resultados de validação como sendo tão limpos quanto os resultados de testes reservados.
- Copiar conversas de teste para um conjunto de dados de treinamento posterior, para que o próximo modelo já as tenha visto.
- Considerar um punhado de perguntas de teste como um veredito: pequenos conjuntos de teste precisam de uma grande diferença para significar algo.
- Comparar modelos que foram avaliados, cada um, no conjunto de teste de uma preparação diferente.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01Training, validation, and test data setsWikipedia · en.wikipedia.orgA divisão em três partes e por que o conjunto de teste é usado apenas no final.
- 02Leakage (machine learning)Wikipedia · en.wikipedia.orgComo as informações dos dados de teste se infiltram no treinamento e inflam as pontuações.
- 03NLP Evaluation in trouble: On the Need to Measure LLM Data Contamination for each BenchmarkSainz et al., 2023 · arXiv · arxiv.orgPor que a contaminação torna os resultados da avaliação não confiáveis e por que ela deve ser verificada.
- 04Time Travel in LLMs: Tracing Data Contamination in Large Language ModelsGolchin & Surdeanu, 2023 · arXiv · arxiv.orgDetectar quando um modelo memorizou exemplos de teste, pedindo que ele os complete.