Self-Distillation Fine-Tuning: o método do MIT que resolve catastrophic forgetting em LLMs
-
Diego Hartmann - 01 Mar, 2026
Você fine-tuna um LLM para gerar código. Funciona. Aí fine-tuna o mesmo modelo para análise de sentimento. Funciona também — mas a geração de código degradou 30%. Fine-tuna de novo para sumarização e o modelo esquece as duas skills anteriores. Parabéns: você acaba de encontrar o catastrophic forgetting, um dos problemas mais antigos e irritantes de deep learning.
A resposta da indústria até agora tem sido pragmática e cara: manter múltiplas cópias do modelo, cada uma fine-tuned para uma tarefa. Funciona, mas escala mal. Servir 5 modelos especializados custa 5x mais infra do que servir 1.
Um paper recente de MIT, Improbable AI Lab e ETH Zurich propõe algo diferente: Self-Distillation Fine-Tuning (SDFT) — um método que permite ao modelo aprender novas habilidades sem esquecer as anteriores. E o mecanismo é elegante o suficiente para valer uma explicação detalhada.
O problema em números
Catastrophic forgetting não é hipótese teórica. É mensurável. Quando você faz fine-tuning convencional (full fine-tuning) de um LLM em uma nova tarefa, a performance nas tarefas anteriores cai entre 15% e 40%, dependendo do tamanho do modelo e do volume de dados da nova tarefa. Quanto menor o modelo, pior a degradação.
O problema é que os pesos do modelo são compartilhados. Quando você otimiza para a nova tarefa, os gradientes sobrescrevem representações que eram úteis para tarefas anteriores. É como reformatar um HD para instalar um novo sistema operacional — o antigo some.
As soluções existentes atacam isso de formas diferentes. LoRA (Low-Rank Adaptation) evita modificar os pesos originais — adiciona adaptadores de baixo rank e treina só eles. Funciona bem para uma tarefa, mas empilhar múltiplos LoRA adapters para tarefas diferentes é engenharia de cola. Replay-based methods misturam dados da tarefa anterior com a nova, mas exigem acesso aos dados originais — que nem sempre estão disponíveis. EWC (Elastic Weight Consolidation) penaliza mudanças em pesos importantes, mas é computacionalmente caro e não escala bem.
Nenhuma dessas soluções resolve o cenário de fine-tuning sequencial acumulativo de forma limpa. SDFT resolve.
Como SDFT funciona
A ideia central é usar a capacidade de in-context learning (ICL) do próprio modelo como mecanismo de auto-destilação. Vou traduzir.
LLMs grandes têm uma propriedade interessante: conseguem executar tarefas que nunca viram no treinamento, desde que você coloque exemplos no prompt. Isso é ICL — o modelo “aprende” a tarefa a partir dos exemplos no contexto, sem alterar nenhum peso.
O SDFT explora isso em dois passos:
Passo 1 — Gerar targets via ICL. Antes de fine-tunar o modelo na nova tarefa, você usa o próprio modelo (ainda com as habilidades anteriores intactas) para gerar outputs das tarefas antigas via in-context learning. Coloca exemplos da tarefa no prompt, o modelo gera respostas, e essas respostas viram os targets de destilação.
Passo 2 — Fine-tuning com destilação conjunta. O treinamento otimiza dois objetivos simultaneamente: (a) aprender a nova tarefa com os novos dados, e (b) manter performance nas tarefas anteriores usando os targets gerados no passo 1 como supervisão. É knowledge distillation — mas o teacher e o student são o mesmo modelo em momentos diferentes.
A analogia mais próxima: imagine que antes de estudar para uma prova nova, você grava um vídeo de si mesmo explicando a matéria das provas anteriores. Enquanto estuda o conteúdo novo, você revisa seus próprios vídeos. Você é, ao mesmo tempo, professor e aluno de si mesmo.
O mecanismo não precisa de acesso aos dados originais de fine-tuning — só precisa de alguns exemplos (few-shot) para o ICL funcionar. Isso é um diferencial enorme em cenários corporativos onde dados de treinamento têm restrições de acesso.
Resultados
Os resultados do paper são consistentes. Em benchmarks de fine-tuning sequencial com 4+ tarefas acumuladas:
- Full fine-tuning degradou performance nas tarefas anteriores em média 25-38%.
- LoRA sequencial degradou 12-20% (melhor, mas longe do ideal).
- SDFT manteve performance dentro de 2-5% das tarefas anteriores enquanto atingiu performance comparável na nova tarefa.
O ponto importante: SDFT não sacrifica qualidade na nova tarefa para preservar as anteriores. A performance na nova tarefa ficou equivalente ao full fine-tuning. Não é um trade-off — é um Pareto improvement.
Os testes foram feitos em modelos de 7B a 70B parâmetros. Como esperado, modelos maiores se beneficiam mais — a capacidade de ICL é melhor, então os targets de auto-destilação são de maior qualidade.
Limitações
Antes de sair implementando, as ressalvas:
Custo computacional. O passo de geração de targets via ICL adiciona overhead. Para cada tarefa anterior que você quer preservar, precisa rodar inferência few-shot e gerar um dataset de destilação. Com 10 tarefas acumuladas, isso é 10 passes de inferência antes de começar o treinamento.
Dependência de ICL. O método assume que o modelo tem ICL competente. Modelos menores (abaixo de 7B) têm ICL fraco, o que significa que os targets gerados podem ser de baixa qualidade — e você destila ruído ao invés de conhecimento.
Escalabilidade a longo prazo. O paper testa com 4-6 tarefas sequenciais. O que acontece com 50 tarefas? 100? A degradação acumulativa pode aparecer em horizontes mais longos. Isso ainda não foi testado.
Reprodutibilidade. Na data de publicação, o código do paper estava disponível no repositório do grupo, mas sem um pipeline de reprodução plug-and-play. Espere investir tempo de engenharia para adaptar ao seu setup.
Quando usar: SDFT vs LoRA vs full fine-tuning
Na prática, a decisão depende do seu cenário:
| Cenário | Recomendação |
|---|---|
| Uma tarefa, modelo vai servir só pra isso | Full fine-tuning ou LoRA — SDFT é overhead desnecessário |
| Múltiplas tarefas, servidas separadamente | LoRA com adapters separados — mais simples de gerenciar |
| Múltiplas tarefas acumulativas, modelo único | SDFT — é exatamente o caso de uso |
| Modelo < 7B parâmetros | LoRA — ICL fraco torna SDFT menos eficaz |
| Sem acesso a dados das tarefas anteriores | SDFT — só precisa de few-shot examples, não do dataset completo |
O cenário onde SDFT brilha é claro: quando você quer um único modelo que evolui continuamente, acumulando capacidades, sem manter uma frota de cópias especializadas. Para empresas que servem múltiplos use cases com LLMs, isso traduz diretamente em redução de custo de infraestrutura.
O que isso muda
Catastrophic forgetting é um problema de 1989 — McCloskey e Cohen publicaram sobre isso quando redes neurais ainda eram curiosidade acadêmica. 37 anos depois, SDFT é a primeira solução que não exige gambiarras arquiteturais ou acesso a dados históricos.
A implicação prática é que o modelo de deployment pode mudar: ao invés de N modelos especializados rodando em paralelo, você tem 1 modelo que acumula N skills sequencialmente. Menos endpoints, menos GPUs, menos complexidade operacional.
O paper está no arxiv. O repo está no GitHub do grupo de Improbable AI Lab do MIT. Se você tá gerenciando fine-tuning em produção e o custo de múltiplos modelos está pesando, vale ler as 18 páginas.