Do pré-treinamento à adaptação de modelos
Siga um modelo desde o pré-treinamento em trilhões de tokens até o ajuste de instruções, ajuste de preferência e adaptadores baratos como LoRA.
- Descrever o pré-treinamento e como a computação, os dados e o tamanho do modelo se relacionam
- Compare ajuste fino supervisionado, RLHF e DPO
- Explique por que LoRA torna o ajuste fino barato
Um modelo de chat é construído em etapas:
- Pré-treinamento – previsão do próximo token de trilhões de tokens de páginas da web, livros, códigos e muito mais. É daí que vêm o conhecimento e a habilidade linguística, e vai quase toda a computação. O resultado é um modelo básico: brilhante para continuar o texto, não para seguir instruções.
- Ajuste fino supervisionado (SFT) - treinamento em exemplos selecionados de instruções e boas respostas, para que o modelo se comporte como um assistente.
- Ajuste de preferência - pessoas (ou modelos) comparam pares de respostas; o modelo é empurrado para os preferidos. RLHF (Ouyang et al., 2022) treina um modelo de recompensa e otimiza contra ele com aprendizagem por reforço; DPO (Rafailov et al., 2023) aprende diretamente dos pares de preferências, de forma mais simples.
Muitos modelos recentes adicionam aprendizado por reforço em tarefas verificáveis - problemas matemáticos e código com respostas verificáveis - que ensina um “raciocínio” passo a passo mais longo antes de responder.
Experimente
Até 15 XPQual etapa?
Combine cada descrição com o estágio de treinamento ao qual ela pertence.
“Preveja o próximo token em trilhões de tokens de texto e código da web”
“Treine com 50.000 instruções escritas à mão → pares de respostas ideais”
“Os rotuladores escolhem qual das duas respostas é mais útil e honesta”
“Produz um modelo base que continua o texto em vez de responder”
“Aumentar diretamente a probabilidade de respostas preferidas em relação às rejeitadas”
Dimensionamento: qual o tamanho e quantos dados?
A computação de treinamento é aproximadamente operações de ponto flutuante, onde é a contagem de parâmetros e o número de tokens de treinamento (Kaplan et al., 2020). O estudo Chinchilla (Hoffmann et al., 2022) descobriu que, para um orçamento de computação fixo, os melhores resultados vêm de cerca de 20 tokens por parâmetro - muitos modelos anteriores eram muito grandes e mal treinados. Hoje, muitos modelos treinam muito além de 20× porque um modelo menor e mais barato de executar vale um treinamento extra.
Ajuste fino barato com LoRA
Ajustar cada peso de um modelo grande é caro. LoRA (Hu et al., 2021) congela os pesos originais e aprende uma pequena atualização de classificação baixa: para uma matriz de peso , ele treina duas matrizes finas de classificação , adicionando apenas parâmetros . Com isso está bem abaixo de 1% do original – pequeno o suficiente para treinar em uma GPU e manter muitos adaptadores para diferentes tarefas.
d_in, d_out, rank = 4096, 4096, 8
print(d_in * d_out, rank * (d_in + d_out))16777216 65536
Principais conclusões
O pré-treinamento constrói conhecimento; SFT ensina a função de assistente; o ajuste de preferência molda o que “bom” significa.
Calcule ≈ 6ND; Chinchilla sugere cerca de 20 tokens de treinamento por parâmetro para treinamento com otimização de computação.
LoRA faz o ajuste fino com uma pequena fração dos parâmetros.
Quiz da aula
7 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: escreva código em Python
Escreva código Python no editor e execute os testes com exemplos. O Python roda localmente no navegador usando WebAssembly.
Orçamento de treinamento estilo chinchila
Cada linha é uma contagem de parâmetros em bilhões. Usando cerca de 20 tokens por parâmetro e cálculo de treinamento , imprima NB params: TB tokens, F FLOPs com tokens em bilhões (:g) e FLOPs em notação científica com 2 casas decimais (:.2e).
- Três tamanhos
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Contar parâmetros LoRA
Cada linha é d_in d_out rank. Imprima full=F lora=L (P%): a contagem de parâmetros da matriz completa, a classificação de LoRA × (d_in + d_out) e LoRA como uma porcentagem do total (2 casas decimais).
- Camadas quadradas e largas
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…