O que é
Uma divisão de validação separa parte dos seus dados antes do início do treinamento. Essas conversas são separadas: o modelo nunca treina nelas. O provedor as utiliza para calcular a perda de validação enquanto o treinamento é executado. Elas não são o conjunto de teste, um segundo grupo separado de conversas guardado para avaliação posterior.
O motivo é simples. Um modelo com fine-tuning pode memorizar. Ao receber uma pergunta na qual foi treinado, ele pode reproduzir a resposta de referência quase palavra por palavra, o que não diz nada sobre como ele lidará com as perguntas da próxima semana. Apenas dados que ele não viu podem mostrar se ele aprendeu o padrão ou apenas os exemplos.
Como funciona
As conversas são atribuídas aleatoriamente a um lado ou ao outro, como conversas inteiras. Dividir por mensagem seria uma forma de vazamento de dados: a primeira metade de um chat poderia treinar o modelo enquanto sua resposta fica na validação, ou a mesma resposta poderia aparecer em ambos os lados em dois registros vizinhos. A pontuação de validação mediria então a memorização, não a capacidade. O vazamento é uma armadilha bem documentada muito além dos modelos de linguagem — Kapoor e Narayanan (2022) encontraram erros de vazamento afetando 329 artigos em 17 campos científicos.
Durante o treinamento, o provedor executa periodicamente o modelo nos registros de validação e relata sua perda sem atualizar nenhum peso. Quando a perda de treinamento continua caindo, mas a perda de validação aumenta, o modelo começou a sofrer overfitting.
A validação não é o conjunto de teste
Os registros de validação são enviados ao provedor com o arquivo de treinamento e observados durante toda a execução; as pessoas também escolhem épocas e taxas de aprendizado olhando para eles. Isso os torna um pouco menos do que não vistos, portanto, não são um teste final limpo. Um teste limpo precisa de conversas que não toquem nem no treinamento nem na validação e nunca saiam de suas mãos: o conjunto de teste. A avaliação o utiliza por padrão e recorre às perguntas de validação apenas quando não há conjunto de teste.
| Conjunto | Visto durante o treinamento? | Usado para |
|---|---|---|
| Treinamento | Sim, usado para aprendizado | Alterar os pesos |
| Validação | Visto pelo provedor, não usado para aprendizado | A perda de validação; uma segunda opinião na avaliação quando não há conjunto de teste |
| Teste | Não, nunca enviado ao provedor | Avaliar se o modelo realmente melhorou |
Qual deve ser o tamanho?
É um compromisso. Cada conversa separada é uma com a qual o modelo não aprende; cada conversa treinada é uma com a qual você não pode testar. A precisão de uma pontuação depende do número de exemplos separados, não de sua proporção, e é por isso que pequenos conjuntos de dados são o caso difícil. Para uma taxa de vitória, a incerteza diminui aproximadamente com a raiz quadrada do número de perguntas:
standard error of a win rate ≈ √( p × (1 − p) ÷ n )
95% margin ≈ 1.96 × standard error
at p = 0.5 ≈ 1 ÷ √n
n = 10 → ± 31 points
n = 50 → ± 14 points
n = 100 → ± 10 points
n = 400 → ± 5 pointsAbaixo desse número, a perda de validação seria majoritariamente ruído, portanto, nenhuma divisão de validação é feita e tudo o que está fora do conjunto de teste é direcionado ao treinamento.
- 2.000 conversas: 200 vão primeiro para o conjunto de teste, depois 10% do restante (180) para validação, deixando 1.620 para treinamento. Uma avaliação nas 200 conversas de teste mede uma taxa de vitória com uma margem de cerca de ±7 pontos — o suficiente para comparar execuções.
- 300 conversas: 30 conversas de teste e 27 de validação. Uma avaliação em 30 conversas de teste tem uma margem de cerca de ±18 pontos e não consegue separar um modelo de 55% de um de 45%; apenas mais dados podem estreitar essa margem.
- 60 conversas: 6 vão para o conjunto de teste. 10% das 54 restantes são 5, abaixo do mínimo de 10, portanto não há curva de validação e todas as 54 são usadas no treinamento. A avaliação ainda conta com 6 conversas de teste não vistas: poucas, então interprete o resultado como um indício.
- 8 conversas: muito poucas para um conjunto de teste, que precisa de um conjunto de dados de pelo menos 10. Nada é separado, e uma avaliação só pode recorrer, com um aviso, às perguntas nas quais o modelo foi treinado.
Erros comuns
- Dividir por mensagem ou por registro, de modo que partes da mesma conversa caiam em ambos os lados.
- Separar uma parcela que é muito pequena para medir qualquer coisa e, em seguida, atribuir significado a um resultado de 6 contra 4.
- Adicionar quase duplicatas de conversas de validação a um conjunto de treinamento posterior, o que as transforma silenciosamente em dados de treinamento.
- Comparar dois modelos que foram avaliados em conjuntos separados diferentes como se as pontuações estivessem na mesma escala.
- Pular a divisão em um conjunto de dados real para “usar todos os dados” e perder a única medição honesta que você tinha.
- Tratar os resultados da validação como um teste final limpo, embora o provedor tenha visto esses registros durante todo o treinamento.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01Datasets: Dividing the original datasetGoogle Machine Learning Crash Course · developers.google.comUma introdução clara aos conjuntos de treinamento, validação e teste.
- 02Training, validation, and test data setsWikipedia · en.wikipedia.orgDefinições e o papel de cada conjunto.
- 03Leakage and the Reproducibility Crisis in ML-based ScienceKapoor & Narayanan, 2022 · arXiv · arxiv.orgUma pesquisa sobre como o vazamento entre dados de treinamento e de teste infla os resultados relatados.