Destilação online: o mecanismo que transfere competência entre modelos sem retreino
No post anterior a gente viu que um prompt bem construído equivale a um LoRA de baixo rank no modelo, sem retreino e sem parâmetros extras. A consequência direta é que, quando a camada de prompt do harness (as instruções e os exemplos few-shot) é escrita por um modelo grande, ela se torna um veículo de destilação online: a competência do professor migra para o aluno via contexto, não via pesos. Este post explica o mecanismo: como o professor condensa o conhecimento em instruções e exemplos, como esse prefixo vira um delta de baixo rank na atenção do aluno, e por que a destilação online compõe múltiplos professores sem conflito. A destilação clássica grava nos pesos; a online escreve no contexto, e é por isso que ela é mais barata, mais flexível e, na maioria dos casos, substitui o fine-tuning antes mesmo de ele ser considerado.
Você tem um modelo grande que entende todo o seu catálogo de 10 mil produtos, as regras de devolução, as faixas de preço e as exceções de logística. Esse modelo é caro demais para responder cada pergunta de cliente em tempo real. Ele poderia escrever, ele mesmo, o manual de instruções que faria um modelo pequeno se comportar como ele? A resposta é sim, e esse manual é a camada de prompt do harness. O mecanismo por trás disso é o que a gente chama de destilação online.
Quando a camada de prompt do harness é escrita por um modelo grande, ela não é só um texto bem redigido: ela carrega, na própria estrutura (instruções, exemplos few-shot, regras), a competência do professor. O modelo pequeno, ao receber esse prompt como prefixo, não está apenas sendo instruído: ele está executando um delta de baixo rank que condensa o que o professor sabe. É uma transferência de conhecimento que acontece em tempo de execução, sem um único passo de gradiente, sem um parâmetro extra, sem um dia de treino em GPU. E, como a gente vai ver, isso muda o que significa destilar.
Este post assume o que ficou provado no post anterior: que um prompt é uma atualização de baixo rank nos pesos efetivos do modelo (afirmações 1 e 2), que isso só funciona em modelos obedientes (afirmação 3), e que a competência transferida via prompt é o que chamamos de destilação online (afirmação 4). Agora a gente avança para o mecanismo concreto de como essa destilação acontece quando o prompt do harness é gerado por um modelo, como compará-la com a destilação clássica, e por que ela compõe de um jeito que a destilação clássica não compõe.
O que é destilação online e por que um prompt escrito por um modelo vira destilação
Volte ao exemplo do post anterior. Uma empresa de e-commerce quer que um agente responda perguntas sobre um catálogo de 10 mil produtos. O modelo de fronteira analisa o catálogo, entende as regras de negócio (política de devolução, faixas de preço, exceções logísticas) e gera um prompt: instruções em linguagem natural, exemplos few-shot (pares de pergunta-resposta que mostram como interpretar perguntas ambíguas) e regras de formatação da saída. Esse prompt é usado por um modelo pequeno para responder cada pergunta do cliente em tempo real.
O ponto está no que acontece na atenção do modelo pequeno. Para entender o mecanismo, vale recapitular a matemática que a gente abriu no post #7. Na self-attention, cada token do contexto vira um par key-value. A saída da atenção para uma query é uma soma ponderada dos values do contexto inteiro. Quando a gente separa o prefixo do conteúdo, a contribuição do prefixo pode ser reescrita como uma matriz que age sobre a query: o fast weight . Cada token do prompt contribui com um produto externo , que é uma matriz de rank 1. A soma de tokens tem rank no máximo , então um prompt curto gera um delta de rank baixo.
No exemplo, o prompt do modelo de fronteira é o prefixo da equação. Cada token do prompt (cada instrução, cada exemplo few-shot) contribui com um produto externo para o fast weight. A soma desses produtos, , é o delta de baixo rank que o modelo pequeno aplica à query a cada passo. A competência do modelo de fronteira, condensada em palavras e exemplos, vira um LoRA em tempo real no modelo pequeno. O modelo pequeno não está sendo treinado, mas está recebendo, a cada chamada, a capacidade de entender o catálogo como se fosse o grande.
Isso é destilação porque há transferência de competência de um professor (o modelo de fronteira) para um aluno (o modelo pequeno). Mas não é a destilação que a gente conhece. Não há treino, não há gravação nos pesos, não há um modelo aluno versionado e armazenado. A competência vive no prompt, e o prompt é gerado sob demanda ou recuperado de um repositório. O aluno a executa, mas não a retém: na próxima chamada, se o prompt mudar, o comportamento muda junto.
A destilação online não grava conhecimento nos pesos do modelo. Ela escreve no contexto, e é por isso que o comportamento muda na hora, sem retreino, sem versão, sem custo de GPU.
Como a destilação online funciona: de onde vem a competência do prompt
A competência que alimenta a destilação online pode vir de várias fontes, mas todas convergem para o mesmo formato: um prefixo de contexto que o modelo aluno vai receber. No exemplo do e-commerce, o modelo de fronteira escreve o prompt diretamente. Ele recebe o catálogo como entrada (os 10 mil produtos, as políticas, as perguntas frequentes) e gera instruções e exemplos few-shot que capturam a lógica de negócio. O prompt poderia ser gerado uma vez e armazenado, ou regenerado a cada nova leva de produtos. O importante é que o professor não precisa ser chamado de novo para cada pergunta de cliente; ele escreve o manual uma vez, e o modelo pequeno o executa milhares de vezes.
Outra fonte possível é a destilação a partir de exemplos. Em vez de pedir ao modelo de fronteira que escreva instruções abstratas, a gente pode mostrar a ele pares de pergunta-resposta do catálogo e pedir que ele extraia os padrões. O resultado são exemplos few-shot que, quando colocados no prefixo do modelo pequeno, induzem o mesmo comportamento. Há também pipelines intermediários: um modelo grande pode gerar o prompt, e um segundo modelo (ou um script de validação) pode verificar se as respostas do aluno batem com as do professor, iterando no prompt até que o delta de baixo rank produza a saída correta.
Independente da fonte, o formato final é o mesmo. O prompt é um prefixo que, na atenção do aluno, constrói um de baixo rank. A competência do professor não está nos pesos do aluno, está no texto que precede a pergunta. É por isso que a destilação online é tão leve: o professor só precisa ser chamado para gerar ou refinar o prompt, e o aluno nunca precisa ser retreinado.
O mecanismo da destilação online: como o prompt carrega a competência em um delta de baixo rank
A pergunta mecanística é: como exatamente um conjunto de instruções e exemplos few-shot condensa a competência do professor? A resposta está na forma como o prefixo interage com a atenção, e a melhor forma de visualizar isso é através dos steering vectors. Lembre do post #7: se a gente roda o modelo com e sem um prefixo, subtrai as ativações e tira a média, obtém um vetor direção que encapsula o efeito daquele prefixo. Esse vetor pode ser extraído e reaplicado sem o texto original, o que prova que o efeito do prefixo é uma direção concreta no espaço de ativações.
No prompt do e-commerce, imagine que o professor inclui o exemplo few-shot: "Pergunta: 'Qual o prazo de entrega para São Paulo?' Resposta: 'O prazo é de 3 a 5 dias úteis para pedidos acima de R$ 50.'" Quando o modelo pequeno processa esse exemplo, as keys e values daquele token se alinham em direções que codificam a regra de negócio. O produto externo desse token contribui para o fast weight numa direção que, quando a pergunta do cliente chega, faz a atenção recuperar a regra correta. Vários exemplos e instruções juntos somam seus produtos externos, criando um delta que aponta na direção da competência do professor.
Há uma sutileza importante aqui. O prompt não precisa ser longo para ser eficaz. Como o rank do é limitado pelo número de tokens do prefixo, um prompt curto e concentrado (poucas instruções, poucos exemplos, mas bem escolhidos) pode produzir um delta de rank baixíssimo, até rank 1, que captura a essência da competência. É o que acontece quando o professor seleciona os exemplos mais representativos: ele está, na prática, escolhendo os produtos externos que mais contribuem para a direção desejada. O prompt é um extrato de baixo rank da competência do professor, e o steering vector é a prova de que esse extrato existe como uma direção concreta e reaplicável.
Destilação clássica vs. destilação online: onde cada uma brilha e onde uma substitui a outra
A destilação clássica funciona assim: você pega um modelo professor grande, roda ele num dataset de exemplos, coleta as saídas (logits, representações intermediárias ou respostas finais) e treina um modelo aluno pequeno para imitar essas saídas. O resultado é um modelo aluno cujos pesos foram ajustados para reproduzir o comportamento do professor. É offline, caro (requer GPU e tempo de treino) e produz um artefato estático: o aluno gravou a competência nos pesos e não muda sem um novo treino.
A destilação online, como a gente viu, funciona de outro jeito. O professor gera um prompt, e o aluno executa esse prompt como prefixo, sem nada gravado nos pesos. Se o prompt muda, o comportamento muda na hora, sem retreino. O custo é o de gerar o prompt (uma chamada ao professor, que pode ser rateada por milhares de execuções do aluno) e o custo de incluir alguns tokens a mais em cada chamada do aluno (o comprimento do prefixo). Não há GPU de treino, não há pipeline de versionamento de pesos, não há risco de o aluno esquecer o que aprendeu se for fine-tunado para outra tarefa depois.
Onde cada uma brilha? A destilação clássica é necessária quando a competência precisa estar permanentemente nos pesos do modelo, por exemplo, para reduzir a latência ao máximo (sem prefixo extra), ou quando o aluno precisa funcionar offline sem acesso ao prompt. Mas esses casos são minoria. Na maioria das aplicações de agente, o aluno já recebe um contexto a cada chamada (a pergunta do usuário, o histórico, os dados recuperados), e incluir mais alguns tokens de prompt é irrelevante em latência e custo. A destilação online substitui a clássica em praticamente todos os cenários onde o prompt pode ser gerado e armazenado.
Há um ponto adicional: a destilação online não sofre de catastrophic forgetting (esquecimento catastrófico, quando o fine-tuning numa tarefa nova sobrescreve os pesos que codificavam tarefas antigas). Se o aluno precisar atender a múltiplos domínios, cada domínio tem seu prompt, e o aluno carrega o prompt certo na hora. Na destilação clássica, treinar o aluno para um novo domínio sobrescreve os pesos do domínio anterior, causando esquecimento catastrófico. É por isso que a destilação online é a abordagem natural para agentes que lidam com tarefas heterogêneas.
Treinar grava a competência nos pesos e arrisca sobrescrever o que já estava lá. Gerar um prompt não toca em peso nenhum, então adicionar uma competência nova nunca apaga uma antiga.
Como a destilação online compõe múltiplos professores sem conflito
Um dos resultados mais interessantes do framework de fast weights é que deltas de diferentes fontes somam na atenção. Se um agente precisa lidar com regras de negócio de dois departamentos diferentes (vendas e logística), cada departamento pode ter seu próprio prompt, gerado por um professor especialista (ou pelo mesmo professor, mas com contextos diferentes). O prompt de vendas ensina a responder sobre prazos de entrega; o prompt de logística ensina a lidar com exceções de frete.
Quando os dois prompts são concatenados no prefixo do aluno (separados por delimitadores claros), cada um contribui com seu próprio . O fast weight total é a soma dos dois deltas: . Como ambos têm rank baixo e ocupam subespaços diferentes (se as instruções e exemplos são distintos), eles não competem: o modelo aplica ambos simultaneamente. É como se o aluno tivesse dois LoRAs carregados ao mesmo tempo, sem precisar fundi-los ou treiná-los juntos.
Essa composição é natural na destilação online e difícil na clássica. Na clássica, para compor dois professores, você precisaria ou treinar o aluno com os dados dos dois juntos (o que pode diluir a competência de cada um) ou usar técnicas de multi-task learning (treinar um único modelo em várias tarefas ao mesmo tempo para ele não esquecer nenhuma) que são mais complexas. Na online, basta concatenar os prompts. E como cada prompt pode ser gerado por um professor diferente em momentos diferentes, o agente pode receber novas competências sem nunca parar: um prompt novo é adicionado ao repositório, e o aluno começa a usá-lo na próxima chamada.
A composição tem um limite prático: o comprimento do contexto. Cada prompt adiciona tokens ao prefixo, e o aluno tem uma janela de contexto finita. Mas a boa notícia é que, como cada prompt é de rank baixo, ele pode ser relativamente curto (algumas dezenas de tokens). Um agente pode carregar dezenas de prompts antes de bater no limite, desde que eles sejam bem projetados. É aí que entra o craft de escrever prompts concisos que condensam a competência com o mínimo de tokens.
Onde a Pumpkin entra
A Pumpkin constrói a camada de prompt do harness que é, por definição, o veículo da destilação online. A gente não trata o prompt como um texto que o engenheiro escreve e esquece, mas como uma peça de engenharia que carrega competência de um modelo grande (ou de vários) para um modelo pequeno, em tempo de execução, sem retreino. No exemplo do e-commerce, a gente não só geraria o prompt com um modelo de fronteira, como montaria o pipeline de geração e validação em volta dele: o professor analisa o catálogo e escreve o prompt, e um conjunto de testes automatizados com perguntas conhecidas garante que o aluno, com aquele prompt, responde dentro do esperado. Quando uma regra de negócio muda, o prompt é regenerado e o aluno passa a usá-lo na chamada seguinte, e o custo de atualizar é o de uma chamada ao professor, não o de um novo treino. É também a Pumpkin que orquestra a composição, concatenando os prompts de estoque, devolução e pós-venda, garantindo que não conflitam e medindo a qualidade da resposta em produção. O prompt é uma das peças do harness, e a engenharia de harness é o que faz esse aparato aguentar o mundo real.
Formalizado. A identidade fast weight (a saída da atenção como uma matriz construída por soma de produtos externos) é exata para atenção linear (Schlag, Irie e Schmidhuber, 2021); o limite de rank pelo número de tokens é álgebra linear; a composição de deltas de baixo rank por concatenação de prefixos segue da linearidade da soma dos fast weights.
Robusto (suporte empírico e teórico). Que o contexto induz uma atualização de baixo rank dependente da entrada também no softmax, sustentado indiretamente por in-context learning como otimização implícita (von Oswald et al., 2023; Akyürek et al., 2022) e pela dimensão intrínseca baixa do fine-tuning (Aghajanyan et al., 2020). Os steering vectors (Turner et al., 2023; Rimsky et al., 2023) são a evidência prática de que o delta do prefixo é uma direção extraível e reaplicável. A destilação online como mecanismo de transferência de competência via prompt é uma aplicação direta desses resultados.
Interpretação (consistente, não um teorema fechado). Que o prompt escrito por um modelo grande condensa a competência do professor em direções de baixo rank. É a leitura mecanística do que torna a destilação online viável, coerente com a low-rank representation, apresentada como modelo mental, não como resultado provado em forma fechada.
O que é destilação online?
Como a destilação online funciona na prática?
Qual a diferença entre destilação clássica e destilação online?
A destilação online compõe múltiplos professores?
Quando usar destilação online em vez de fine-tuning?
A destilação online sofre de catastrophic forgetting?
Qual o custo da destilação online comparado ao fine-tuning?
- Schlag, Irie e Schmidhuber. Linear Transformers Are Secretly Fast Weight Programmers. ICML, 2021. (a identidade fast weight)
- Hu et al. LoRA: Low-Rank Adaptation of Large Language Models. ICLR, 2022. (o delta de baixo rank explícito nos pesos)
- Aghajanyan, Zettlemoyer e Gupta. Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. ACL, 2020. (fine-tuning vive em dimensão baixa)
- von Oswald et al. Transformers Learn In-Context by Gradient Descent. ICML, 2023. (in-context learning como otimização implícita)
- Akyürek et al. What Learning Algorithm Is In-Context Learning?. ICLR, 2022. (ICL implementando regressão e atualização)
- Turner et al. Activation Addition: Steering Language Models Without Optimization. 2023. (steering vectors)
- Rimsky et al. Steering Llama 2 via Contrastive Activation Addition. 2023. (extração e reaplicação de direções de controle)