Recursos/Treinamento de modelo/O panorama geral

Conceito

O pipeline de treinamento

As etapas pelas quais um projeto de treinamento passa na Scalata, o que cada uma produz e por que cada etapa é mantida como seu próprio registro inspecionável.

Capítulo 14 min de leitura4 referências

O que é o pipeline

O fine-tuning raramente é uma ação única. Um resultado útil requer os exemplos certos, preparados no formato correto, treinados com configurações sensatas e, em seguida, verificados em relação ao modelo inicial. A Scalata divide isso em etapas, cada uma das quais utiliza o resultado da anterior e produz algo que pode ser aberto e inspecionado.

  1. 01Sessõesselecionar chats
  2. 02Conjunto de dadoscoletar exemplos
  3. 03Provedoronde ele treina
  4. 04Preparação de dadoslimpar + converter
  5. 05Treinarexecutar a tarefa
  6. 06Avaliarprovar que melhorou
  7. 07Chat de testeexperimente você mesmo
  8. 08Usarcolocar para funcionar
O pipeline de treinamento. Cada estágio entrega um artefato congelado e inspecionável ao próximo, para que qualquer execução possa ser rastreada até os chats exatos com os quais aprendeu.

As etapas, uma por uma

EtapaO que entraO que sai
SessõesSeus chats na Scalata ou chats importados de outros aplicativosAs conversas com as quais aprender
Conjunto de dadosChats selecionados, exemplos sintéticos ou importados, documentos opcionais e as respostas escolhidas como alvosUm instantâneo congelado de exemplos
ProvedorOnde o modelo será treinado e disponibilizadoUma plataforma e os modelos que ela oferece
Preparação de dadosUm conjunto de dados e configurações de limpezaArquivos JSONL limpos, anonimizados e divididos no formato do provedor
TreinamentoArquivos preparados, um modelo base, um método e configuraçõesUm modelo treinado, suas curvas de perda e seu custo
AvaliaçãoO modelo treinado, seu modelo inicial e perguntas reservadasRespostas lado a lado, pontuações de juízes e uma taxa de vitória
Chat de testeUm modelo treinadoUma implantação temporária com a qual você pode conversar
UsoUm modelo que foi aprovado na avaliaçãoO modelo em funcionamento na Scalata (em breve)

Por que cada etapa é um registro separado

Cada etapa grava um registro que o trabalho posterior não altera. Um conjunto de dados é uma cópia dos chats, não um link para eles. Uma preparação de dados mantém os arquivos exatos que produziu. Uma execução de treinamento mantém a preparação que utilizou, suas configurações e o preço cotado quando foi iniciada. Isso torna os resultados reprodutíveis — meses depois, ainda é possível afirmar quais chats, quais configurações de limpeza e quais hiperparâmetros produziram um determinado modelo — e torna as comparações justas, pois duas execuções treinadas a partir da mesma preparação realmente viram os mesmos dados.

Isso também permite a criação de ramificações. Um conjunto de dados pode ser preparado duas vezes com configurações diferentes, uma preparação pode treinar vários modelos e um modelo treinado pode ser o ponto de partida para outra execução.

De onde os problemas geralmente vêm

Resultados decepcionantes geralmente têm origem nas etapas iniciais, e não nas configurações de treinamento:

  • Alvos errados ou inconsistentes no conjunto de dados — o modelo os aprende fielmente.
  • Nada retido na preparação de dados, de modo que a avaliação mede a memória em vez da habilidade.
  • Uma incompatibilidade entre o treinamento e o uso — um prompt de sistema diferente, ou perguntas reais que não se parecem em nada com os chats de treinamento.
  • Várias mudanças de uma só vez entre as execuções, de modo que você não consegue dizer qual delas ajudou.
Um primeiro projeto típico
  1. Sessões → Conjunto de dados: 400 chats de suporte são revisados; 320 contêm respostas boas o suficiente para serem alvos.
  2. Provedor → Preparação de dados: a limpeza remove respostas de erro e duplicatas, os dados pessoais são ocultados, 10% das conversas são separadas como um conjunto de teste para avaliação e 10% do restante são retidas para validação.
  3. Treinamento: fine-tuning supervisionado com configurações Auto, como uma linha de base.
  4. Avaliação: o modelo treinado e o modelo base respondem às perguntas de teste retidas. Um juiz prefere o modelo treinado na maioria delas, e seus motivos apontam para uma fraqueza nas perguntas sobre faturamento.
  5. Próxima rodada: mais chats de faturamento entram em um novo conjunto de dados, e o ciclo se repete. Apenas uma coisa mudou, então a próxima avaliação mostrará se isso ajudou.

Erros comuns

  • Ajustar as configurações de treinamento antes de verificar o conjunto de dados.
  • Alterar o conjunto de dados, as configurações de preparação e os hiperparâmetros na mesma execução.
  • Ignorar a avaliação porque a perda de treinamento diminuiu.
  • Excluir execuções antigas em vez de arquivá-las, o que resulta na perda do registro do que foi testado e por que falhou.

Referências e leitura complementar

Fontes externas abrem em uma nova aba.

  1. 01Datasheets for DatasetsGebru et al., 2018 · arXiv · arxiv.orgPor que todo conjunto de dados deve vir acompanhado de um registro de sua origem e de como foi criado.
  2. 02Model Cards for Model ReportingMitchell et al., 2018 · arXiv · arxiv.orgA mesma ideia para modelos treinados: documentar em que foram treinados e avaliados.
  3. 03Supervised fine-tuningOpenAI API docs · developers.openai.comA versão de um provedor hospedado para o mesmo pipeline: preparar dados, treinar, avaliar.
  4. 04Customize your model to improve its performance for your use caseAmazon Bedrock User Guide · docs.aws.amazon.comComo outro provedor estrutura os trabalhos de personalização.

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