DisaggKD tira o teacher para nós separados e acelera a destilação do Qwen3.5-35B-A3B para 9B
Pesquisadores apresentaram o DisaggKD, um framework de destilação de conhecimento que coloca teacher e student em nós diferentes. As réplicas do teacher enviam os estados ocultos ao student por streaming, e o KD-loss é calculado em janelas de linhas e shards do vocabulário, de modo que a matriz completa de logits nunca é criada. Do ponto de vista matemático, o resultado coincide com o loss usual sobre o vocabulário completo. No par Qwen3.5-35B-A3B → 9B, o esquema separado alcançou o mesmo LM loss do esquema combinado e rodou mais rápido. Em pares maiores, as execuções combinadas esbarram em OOM, enquanto as separadas conseguem treinar. • Teacher e student deixam de dividir a memória das mesmas GPUs. • O fused loss reduz o pico de memória e ajuda até no esquema combinado. • Pares grandes treinam onde o modo colocated falha com OOM.
Processado por IA de Hugging Face Daily Papers; editado por Hamidun News
A equipe por trás do DisaggKD propõe eliminar uma restrição habitual da destilação de conhecimento: teacher e student não precisam mais ocupar as mesmas GPUs. No par Qwen3.5-35B-A3B (teacher) e 9B (student), o esquema separado alcançou o mesmo LM loss da execução combinada com o mesmo loss e ainda terminou mais rápido. Em pares maiores, as execuções combinadas esbarram na falta de memória, enquanto as separadas seguem treinando.
Por que o modo combinado esbarra na memória
Na maioria dos frameworks de KD, teacher e student dividem os mesmos aceleradores. Cada placa precisa guardar os pesos do teacher, os pesos do student, os gradientes e os estados do otimizador. Quanto mais forte o teacher, menos espaço sobra para o resto, e o tamanho do teacher passa a ser limitado pela memória de uma única GPU.
Há um segundo problema, escondido no próprio loss. O KD clássico compara as distribuições do teacher e do student sobre todo o vocabulário. Para isso, é preciso ter logits no formato «tokens × vocabulário», e os modelos atuais têm vocabulários grandes. Essa matriz se torna um dos maiores consumidores de memória no pico.
Como o DisaggKD funciona
Os autores dividem a solução em três partes.
Primeira parte: separação por nós. As réplicas do teacher trabalham à parte e enviam ao student os estados ocultos (hidden states). Os logits não trafegam pela rede.
Segunda parte: fused loss. O KD-loss é calculado em janelas de linhas e shards do vocabulário. Em aritmética exata, o resultado é igual ao loss sobre o vocabulário completo, mas a matriz de logits completos não é formada. A equivalência vale especificamente para aritmética exata. Na prática, a ordem de soma em float pode gerar pequenas divergências, e por isso os autores comparam separadamente as curvas reais de treinamento.
Terceira parte: prefetch ring. É um buffer circular que sincroniza o ritmo do produtor (o teacher) e do consumidor (o trainer). Enquanto o student calcula um passo, os próximos estados ocultos já estão a caminho, e nenhum dos lados fica ocioso.
Os autores também apresentam modelos fechados de memória e de tráfego de rede. Com eles, é possível estimar de antemão, para cada configuração (combinada ou separada), onde fica o limite de memória.
O que as medições mostraram
- Par Qwen3.5-35B-A3B → 9B: o esquema separado alcança o mesmo LM loss do combinado com o mesmo loss e roda mais rápido que ele.
- O fused loss é útil por si só. Com ele, a execução combinada pode usar menos nós e rodar mais rápido.
- Quando o student ocupa vários nós, o esquema separado é mais econômico em memória.
- Em pares maiores, as execuções combinadas falham com OOM mesmo com fused loss: os pesos do teacher e os estados do student consomem todo o orçamento. O esquema separado treina nesses pares.
O resumo do artigo não traz números absolutos de aceleração, quantidade de GPUs nem tamanhos dos pares maiores. Será preciso consultar o artigo completo para ver o tamanho do ganho e conferir com o seu próprio hardware.
Para quem isso é útil
As conclusões dos autores apontam uma bifurcação clara. Se o teacher é pequeno e o student cabe em um ou dois nós, o esquema combinado com fused loss basta: ele já economiza memória e acelera o treinamento. A configuração separada merece consideração quando o teacher tem dezenas de bilhões de parâmetros (como o 35B-A3B, com experts) ou quando o student está distribuído por vários nós. Nesse caso, o equilíbrio de memória decide se a execução será possível.
Há também um custo. O esquema separado exige conexão rápida entre os nós: os estados ocultos precisam ser enviados por streaming sem pausas. Por isso, os modelos de tráfego do artigo são práticos: antes de alugar um cluster, dá para usá-los nos cálculos e verificar se a rede não vai virar gargalo.
A ideia do fused loss merece destaque à parte. Ela pode ser levada para pipelines de KD já existentes sem alterar a topologia do cluster e elimina de imediato o pico de memória dos logits. Para equipes que destilam grandes modelos abertos em modelos compactos, é a forma mais barata de testar a abordagem com os próprios dados.
Access Frontier LLMs & Multimodal AI in One Workspace
Discover NomadNet AI (nomadnet.ai) — unified access to frontier language models, research synthesis, and multimodal workflows.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.