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.
- 01Sessõesselecionar chats
- 02Conjunto de dadoscoletar exemplos
- 03Provedoronde ele treina
- 04Preparação de dadoslimpar + converter
- 05Treinarexecutar a tarefa
- 06Avaliarprovar que melhorou
- 07Chat de testeexperimente você mesmo
- 08Usarcolocar para funcionar
As etapas, uma por uma
| Etapa | O que entra | O que sai |
|---|---|---|
| Sessões | Seus chats na Scalata ou chats importados de outros aplicativos | As conversas com as quais aprender |
| Conjunto de dados | Chats selecionados, exemplos sintéticos ou importados, documentos opcionais e as respostas escolhidas como alvos | Um instantâneo congelado de exemplos |
| Provedor | Onde o modelo será treinado e disponibilizado | Uma plataforma e os modelos que ela oferece |
| Preparação de dados | Um conjunto de dados e configurações de limpeza | Arquivos JSONL limpos, anonimizados e divididos no formato do provedor |
| Treinamento | Arquivos preparados, um modelo base, um método e configurações | Um modelo treinado, suas curvas de perda e seu custo |
| Avaliação | O modelo treinado, seu modelo inicial e perguntas reservadas | Respostas lado a lado, pontuações de juízes e uma taxa de vitória |
| Chat de teste | Um modelo treinado | Uma implantação temporária com a qual você pode conversar |
| Uso | Um modelo que foi aprovado na avaliação | O 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.
- Sessões → Conjunto de dados: 400 chats de suporte são revisados; 320 contêm respostas boas o suficiente para serem alvos.
- 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.
- Treinamento: fine-tuning supervisionado com configurações Auto, como uma linha de base.
- 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.
- 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.
- 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.
- 02Model Cards for Model ReportingMitchell et al., 2018 · arXiv · arxiv.orgA mesma ideia para modelos treinados: documentar em que foram treinados e avaliados.
- 03Supervised fine-tuningOpenAI API docs · developers.openai.comA versão de um provedor hospedado para o mesmo pipeline: preparar dados, treinar, avaliar.
- 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.