A NVIDIA relatou aumento de 42,5% no throughput de decodificação do modelo MoE Ling-3.0-flash-fp4 no DGX Spark: a taxa passou de 37,81 para 53,89 tokens por segundo em uma avaliação com 1.319 questões GSM8K e batch size 1. O artigo com os resultados foi publicado em 27 de outubro de 2026.

O ganho veio da combinação de três técnicas: kernels Humming para MoE MXFP4, quantização online FP8 do LM head e decodificação especulativa MTP com a camada NEXTN. MoE, ou mistura de especialistas, é uma arquitetura em que cada token ativa apenas parte dos especialistas do modelo.

O que a NVIDIA mediu na GSM8K

O vídeo de Codigo gris sobre os gargalos da inferência local

A avaliação usou cinco exemplos no prompt, temperatura 0,6, top-p 0,95, top-k 29, limite de 32.768 tokens gerados e raciocínio em cadeia ativado. Além do throughput, a NVIDIA reportou latência média de 15,21 segundos na configuração de referência e 11,49 segundos com as três otimizações. O tempo até o primeiro token foi de 0,207 e 0,214 segundo, respectivamente.

A taxa de decodificação mede a geração de tokens depois do processamento da entrada. São etapas diferentes: no vídeo em espanhol de Codigo gris, o processamento do prompt é explicado como limitado pela capacidade de computação, enquanto a geração de tokens pode ser limitada pela largura de banda da memória, que precisa alimentar repetidamente o modelo com seus pesos.

Três otimizações em partes diferentes da geração

O Humming substituiu o backend de kernels MoE MXFP4 usado na configuração de referência, que recorria ao FlashInfer. O Humming usa NVRTC, compilador da NVIDIA, para gerar kernels durante a execução conforme as dimensões, os tipos de dados e a arquitetura da GPU; depois, guarda os binários em ~/.humming/cache.

A segunda mudança quantiza online o LM head, ou cabeça de linguagem, de BF16 para FP8. Segundo a NVIDIA, isso reduz pela metade o volume de leitura dos pesos dessa camada em relação ao BF16. A configuração indicada é SGLANG_ENABLE_FP8_LM_HEAD=1, incompatível com a opção de referência --enable-fp32-lm-head.

A terceira técnica é a decodificação especulativa MTP, que usa a camada NEXTN para propor vários tokens antes de verificá-los. Na configuração descrita pela NVIDIA, o rascunho prevê três etapas e a janela de verificação cobre quatro tokens.

O modelo avaliado, Ling-3.0-flash-fp4, tem 124 bilhões de parâmetros no total e ativa 5,1 bilhões por token, segundo a NVIDIA. Em cada camada MoE, um token é encaminhado a oito dos 512 especialistas roteados, além de um especialista compartilhado.

O resultado sintético mede outra carga

A NVIDIA também testou uma carga sintética com batch size 1, entrada fixa de 32 mil tokens, saída de 2 mil tokens e decodificação gulosa. Os 185,1% de aumento relatados pertencem a esse cenário, não à avaliação GSM8K. As duas taxas de decodificação podem ser comparadas junto das condições específicas de cada teste:

Avaliação e condiçõesReferência (tok/s)Três otimizações (tok/s)Variação relatada pela NVIDIA
GSM8K: 1.319 questões, batch size 1, cinco exemplos e amostragem37,8153,89+42,5%
Sintética: batch size 1, entrada de 32 mil tokens, saída de 2 mil tokens e decodificação gulosa36,09102,88+185,1%

A aceitação média do MTP foi de 3,90 tokens por rodada no teste sintético e 2,68 na GSM8K. A NVIDIA observa que a saída repetitiva e a decodificação gulosa da carga sintética favorecem a aceitação especulativa. Por isso, os 185,1% descrevem aquela configuração, enquanto o resultado GSM8K oferece uma medida em uma avaliação diferente.

O compartilhamento do LM head é essencial para FP8 e MTP

Ao combinar FP8 e MTP, o modelo de rascunho precisa compartilhar com o modelo-alvo o módulo completo do LM head. Compartilhar apenas os pesos pode levar o rascunho a interpretar pesos FP8 como BF16. Nesse caso, a NVIDIA relata que a aceitação pode cair para 1,00 token por rodada e o throughput ficar abaixo da configuração de referência.