o problema
Mixture-of-Experts promete o que todo mundo quer: aumentar parâmetro sem aumentar o custo por token. O preço vem em duas contas. A primeira é o roteamento. Se nada segurar, poucos especialistas recebem quase tudo e o resto morre — o colapso de rota descrito desde Shazeer et al. 2017. A defesa padrão é uma loss auxiliar que empurra a distribuição para o uniforme, e essa loss compete com o objetivo de linguagem: forte demais, degrada o modelo; fraca demais, não balanceia.
A segunda conta é a rede. Com especialistas de granularidade fina espalhados por vários nós, cada token vira tráfego all-to-all entre máquinas. No cluster do DeepSeek-V3 a razão computação/comunicação do treino cross-node ficava em torno de 1:1 — metade do tempo de GPU indo embora em transporte. Some a isso o custo bruto de um pré-treino de frontier em BF16, e o problema deixa de ser “qual arquitetura” e passa a ser “como pagar por ela”.
a ideia
O relatório trata arquitetura, framework e hardware como um problema único, e ataca cada conta no lugar mais barato. Em vez de comprar equilíbrio com um termo na loss, ajusta-se um viés por especialista fora do gradiente. Em vez de pagar a comunicação, ela é escondida embaixo da computação, com o schedule de pipeline reorganizado para isso. Em vez de BF16, FP8 nos GEMMs, com quantização em grupos pequenos o suficiente para os outliers não estourarem a faixa dinâmica.
Nenhum dos três movimentos é espetacular sozinho. Juntos, deram um pré-treino de 14,8T tokens em 2.048 H800 — 180K horas de GPU por trilhão de tokens, menos de dois meses de relógio — sem nenhum spike de loss irrecuperável e sem rollback.
como funciona
A base vem do DeepSeek-V2: MLA para atenção e DeepSeekMoE para as FFNs. São 61 camadas, dimensão 7.168, 128 heads. A MLA comprime keys e values num vetor latente de dimensão 512, e só esse latente mais a key desacoplada que carrega RoPE ficam no cache durante a geração. Cada camada MoE tem 1 especialista compartilhado e 256 roteados; 8 roteados são ativados por token. Total de 671B parâmetros, 37B ativos.
O balanceamento sem loss auxiliar é um bias b_i somado ao score de afinidade só na hora do top-k. Ao fim de cada passo, o bias de um especialista sobrecarregado cai γ, o de um ocioso sobe γ (γ = 0,001 nos primeiros 14,3T tokens, 0 nos 500B finais). Uma loss de balanceamento por sequência continua existindo, com α = 0,0001, só para impedir desastre dentro de uma sequência isolada. Nenhum token é descartado, nem no treino nem na inferência.
A comunicação é resolvida em duas frentes. O DualPipe divide cada chunk em atenção, dispatch, MLP e combine, e sobrepõe forward e backward nas duas direções do pipeline. O roteamento é limitado a no máximo 4 nós por token, o que casa com a diferença de banda entre NVLink (160 GB/s) e IB (50 GB/s): o token vai por IB até a GPU de mesmo índice no nó destino e de lá segue por NVLink. Vinte SMs, de 132, bastam para saturar as duas redes.
No FP8, ativação é escalada em tiles 1×128 e peso em blocos 128×128, com fator calculado online, sempre em E4M3. Como o Tensor Core acumula com precisão curta, os parciais sobem para os CUDA Cores a cada 128 elementos para somar em FP32. Embedding, output head, gating do MoE, normalizações e atenção ficam em precisão alta. O erro relativo de loss contra o baseline BF16 ficou abaixo de 0,25%.
o que isso custou
O número de US$ 5.576.000 é o treino oficial a US$ 2 por hora de H800. Ele exclui pesquisa anterior e todos os ablation de arquitetura, algoritmo e dado — que é onde mora a maior parte do trabalho. Ler esse valor como “o preço de fazer um DeepSeek-V3” é ler errado.
Os autores também derrubam parte da própria novidade: com balanceamento em escopo de batch, uma loss auxiliar batch-wise alcança a mesma loss de validação do método sem loss auxiliar (2,253 contra 2,253 em modelos de 1B; 2,080 contra 2,080 em 3B). O que importa é o escopo, não a ausência da loss.
O FP8 tem limite conhecido: quantizar gradiente de ativação em blocos 128×128 leva à divergência, e certas ativações precisaram de um formato E5M6 customizado. Os 20 SMs gastos em rede são compute jogado fora, e o relatório vira uma lista de pedidos aos fabricantes: acumulação FP8 mais precisa, MMA com escala por grupo, cast fundido com TMA, leitura transposta.
Em resultado, o modelo fica atrás do GPT-4o em SimpleQA (24,9 contra 38,2) e do Claude-3.5-Sonnet em SWE-bench Verified (42,0 contra 50,8). A destilação do R1 melhora precisão e alonga resposta: no ablation sobre o V2.5, MATH-500 sobe de 74,6 para 83,2 com o comprimento médio indo de 769 para 1.510 tokens.
onde isso aparece hoje
Os checkpoints foram publicados, e é isso que dá ao relatório o peso que ele tem: as três seções de infraestrutura são um manual reproduzível de FP8 em escala, de overlap computação-comunicação e de deploy com especialistas redundantes, escritas por quem rodou e apanhou. A seção de sugestões de hardware é endereçada nominalmente aos fabricantes e antecipa o suporte a microscaling anunciado para a linha Blackwell.
O módulo de multi-token prediction, treinado para melhorar o modelo, sai de graça como draft model para speculative decoding — o caminho que o próprio relatório mede em 1,8 vez de throughput. E o pipeline de pós-treino registra a direção que a DeepSeek já estava seguindo: destilar cadeia de raciocínio longa do R1 para dentro de um modelo que responde curto.