Hugging Face Daily Papers→ original

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
DisaggKD tira o teacher para nós separados e acelera a destilação do Qwen3.5-35B-A3B para 9B
Fonte: Hugging Face Daily Papers. Colagem: Hamidun News.
◐ Ouvir artigo

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.

ZK
Hamidun News
Notícias de AI sem ruído. Seleção editorial diária de mais de 50 fontes. Produto de Zhemal Khamidun, Head of AI na Alpina Digital.
✦ Unified AI Workspace

Access Frontier LLMs & Multimodal AI in One Workspace

Discover NomadNet AI (nomadnet.ai) — unified access to frontier language models, research synthesis, and multimodal workflows.

Try NomadNet AI →Launch NomadNet Agent
O que você acha?
Carregando comentários…