DeepSeek's Low Level Hardware Magic


Houve, recentemente, uma série de especulações a respeito do desempenho do modelo chinês R1, que superou o GPT-o1 em benchmarks específicas por meio do uso do método de treinamento GRPO, baseado em avaliações internas ao próprio subset de raciocínios feitos pela IA, o que exclui a necessidade de utilizar um segundo modelo como crítico. A eficiência ganha em tokens a partir desta modificação feita no método PPO padrão diz respeito à arquitetura, e é, sem dúvidas, o estudo de caso mais popular relacionado ao DeepSeek.

Entretanto, fator ainda mais fundamental (ou tão fundamental quanto) é a otimização de hardware, cujo fim, no caso específico do DeepSeek, é se adaptar ao ecossistema limitado que a NVIDIA lhes pode ofertar. Devido às sanções, o conjunto de tecnologias disponível à China é quase três vezes inferior aos modelos mais eficientes das empresas ocidentais, e, por isso, é preciso criatividade. Com base em algumas leituras no Zhihu e CSDN, decidi fazer um resumo rápido explicando como a DeepSeek obtém ganhos de eficiência.

Sanções americanas de hardware

Genericamente, as restrições comerciais americanas aplicadas à computação são bastante populares e conhecidas, mas achei fundamental apontar, com mais detalhes, o que é realmente restrito. Quando falamos de sanções tecnológicas, referimo-nos, principalmente, ao EECN 3A090, decreto introduzido por meio da lei CHIPS and Science, de 2022. Esta regra limita a exportação de chips para data centers que atendam a limites de desempenho e recursos para entidades chinesas e russas. Evitando o jargão técnico governamental, seguem, abaixo, as restrições efetivas, em termos computacionais.

Isto demonstra que a DeepSeek não precisa somente lidar com limitações no poder de processamento dos chips, causadas devido a outras restrições (associadas à litografia), mas também com a ausência de equipamentos que foram proibídos tendo em mente dificultar a agregação de chips, o que é imprescindível às inteligências artificiais.

Mesmo que pareça magia, grande parte das informações a respeito do procedimento feito pelos chineses está documentada adequadamente no artigo do DeepSeek-V3, modelo base do R1. Vamos investigá-lo.

Treinamento em Precisão Mista

O treinamento em precisão mista tem sido uma estratégia popular entre os desenvolvedores chineses de LLMs. Uma implementação notável se dá no modelo Tencent Hunyuan-Large, que utilizou o formato bfloat16 (BF16), introduzido pelo Google Brain em 2019. O BF16 representa uma variante de 16 bits do formato convencional de ponto flutuante de precisão simples IEEE 754 (FP32). Embora mantenha o mesmo intervalo dinâmico do FP32, o BF16 apresenta uma mantissa truncada em comparação ao FP16, o que proporciona tanto eficiência de memória quanto aceleração computacional. Estudos demonstram que o treinamento em precisão mista pode alcançar uma aceleração de até 2,5x em relação ao treinamento em precisão total (FP32) em arquiteturas de GPU de alto desempenho, como o chip NVIDIA A100.

O principal avanço do V3 reside em viabilizar o uso do formato FP8 no treinamento de modelos em larga escala, um processo conhecido por ser instável. A solução da equipe consiste em uma estratégia de fine-grained quantization, que atua tanto nos níveis de tile quanto de block para expandir o intervalo dinâmico do FP8. O principal avanço do V3 reside em viabilizar o uso do formato FP8 no treinamento de modelos em larga escala, um processo conhecido por ser instável. A solução da equipe consiste em uma estratégia de fine-grained quantization, que atua tanto nos níveis de tile quanto de block para expandir o intervalo dinâmico do FP8. Para ativações, implementa-se um agrupamento por tiles de 1 * Nc​ elementos, e, para pesos, utiliza-se um agrupamento por blocos de Nc​ * Nc​ elementos. Essa abordagem granular mitiga o impacto de outliers, porque adapta a escala a grupos menores de elementos em vez de aplicar um fator de escala global.

Memory Movement

In many workloads, moving data costs more than computing on it. Optimized systems therefore focus heavily on reducing unnecessary transfers between memory hierarchies.