Carregando
0x30Lição 4 de 16

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.

24 min Questionário com 7 perguntas 2 exercícios de código
Ao final desta lição, você saberá
  • 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:

  1. 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.
  2. Ajuste fino supervisionado (SFT) - treinamento em exemplos selecionados de instruções e boas respostas, para que o modelo se comporte como um assistente.
  3. 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 XP

Qual etapa?

Combine cada descrição com o estágio de treinamento ao qual ela pertence.

0 de 5 classificadosPontuação 0/0
  • “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 6ND6ND operações de ponto flutuante, onde NN é a contagem de parâmetros e DD 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 din×doutd_{in} \times d_{out}, ele treina duas matrizes finas de classificação rr, adicionando apenas parâmetros r(din+dout)r(d_{in} + d_{out}). Com r=8r = 8 isso está bem abaixo de 1% do original – pequeno o suficiente para treinar em uma GPU e manter muitos adaptadores para diferentes tarefas.

lora.py
d_in, d_out, rank = 4096, 4096, 8
print(d_in * d_out, rank * (d_in + d_out))
Saída
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.

Exercício 1

Orçamento de treinamento estilo chinchila

+25 XP

Cada linha é uma contagem de parâmetros em bilhões. Usando cerca de 20 tokens por parâmetro e cálculo de treinamento C≈6NDC \approx 6ND, 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
main.py
Carregando editor…

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.

Exercício 2

Contar parâmetros LoRA

+25 XP

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
main.py
Carregando editor…

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…