Recursos/Treinamento de modelo/Avaliação

Conceito

Perguntas de teste: por que os dados “reservados” importam

Uma fatia das suas conversas que a preparação de dados reserva antes de qualquer outra coisa, para que uma avaliação possa fazer ao modelo treinado perguntas que ele nunca viu. É a única maneira limpa de distinguir uma melhoria real da memorização.

Capítulo 85 min de leitura4 referências

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

como a preparação de dados constrói o conjunto de teste
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
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Teste reservado10% · separados primeiro
Aprendeu com
não
Enviado ao provedor
não

O modelo realmente melhorou?

Validaçãodo que restou
Aprendeu com
não
Enviado ao provedor
sim

Uma segunda opinião quando não há conjunto de teste

Treinamentotodo o resto
Aprendeu com
sim
Enviado ao provedor
sim

Apenas uma verificação de sanidade: os resultados são otimistas

Uma preparação ilustrativa de 30 conversas. O conjunto de teste é extraído primeiro e nunca sai da Scalata; a validação vai para o provedor para que ele possa monitorar o treinamento; o treinamento é com o que o modelo aprende. Apenas a primeira coluna é um teste limpo.

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

OrigemVisto durante o treinamento?Usar para
Teste reservadoNãoJulgar se o modelo realmente melhorou
ValidaçãoVisto pelo provedor, não usado para aprendizadoUma segunda opinião quando não há conjunto de teste
Amostra de treinamentoSim, usado no aprendizadoApenas 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.

Exemplo prático: um conjunto de dados de 120 conversas (ilustrativo)
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Teste reservadoTípico 10% das conversas, pelo menos 3; requer mais de 10 conversas#

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.

ValidaçãoTípico a alternativa quando não há conjunto de teste#

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.

Amostra de treinamentoTípico apenas quando nenhum dos outros existe#

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.

  1. 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.
  2. 02Leakage (machine learning)Wikipedia · en.wikipedia.orgComo as informações dos dados de teste se infiltram no treinamento e inflam as pontuações.
  3. 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.
  4. 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.

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas