antonio leandro

ia generativa

DeepSeek-V3 Technical Report

paper · DeepSeek-AI ·

a tese

um modelo de 671b parâmetros cabe em 2.788.000 horas de h800 quando arquitetura, framework de treino e hardware são projetados como um problema só — o gargalo não era compute, era comunicação e precisão

o que fica

  1. Balancear carga entre especialistas não exige loss auxiliar: um bias por especialista, ajustado fora do gradiente ao fim de cada passo, equilibra a rota sem puxar o modelo contra o objetivo de linguagem.
  2. O bias entra só na escolha do top-k; o gating que multiplica a saída do especialista continua vindo do score original — separar as duas coisas é o que evita distorcer o modelo.
  3. Treinar em FP8 em escala grande depende da granularidade da quantização: 1×128 para ativação e 128×128 para peso funciona, mas quantizar gradiente de ativação em bloco 128×128 fez um modelo de 16B divergir em torno de 300B tokens.
  4. O Tensor Core do H800 acumula produtos FP8 com cerca de 14 bits, o que dá quase 2% de erro relativo com K=4.096; a saída foi promover os parciais para os CUDA Cores a cada 128 elementos e somar em FP32.
  5. Prever dois tokens em vez de um melhora o modelo mesmo quando o módulo extra é descartado na inferência; reaproveitado como speculative decoding, o segundo token é aceito entre 85% e 90% das vezes e rende 1,8 vez mais tokens por segundo.
  6. O treino barato tem preço no deploy: a unidade mínima recomendada para decoding é de 320 GPUs, e os próprios autores admitem que isso pesa para times pequenos.

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.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·