Cada número de um modelo é guardado com uma certa precisão, como uma régua graduada em milímetros ou em centímetros. Durante anos, os modelos usaram 16 ou 32 bits por número. Descobre-se que muitas vezes bastam 8, 4 ou até menos de 2.
Promissoratualizado em
I
A ideia, de forma simples
Os pesos de um modelo são números. Guardá-los com menos bits é como arredondar: se perde algum detalhe, mas cada número ocupa menos espaço, se lê mais depressa e se multiplica com circuitos menores.
O verdadeiro ganho está menos no cálculo do que no movimento: como mostra a figura da energia na página principal, ler um número da memória custa centenas de vezes mais do que calcular com ele. Dividir os bits por dois divide essa fatura por dois.
II
Como funciona
O truque é a escala por blocos: os números são agrupados em pequenos pacotes que partilham uma escala comum, de modo que poucos bits bastam para descrever cada um em relação aos vizinhos. As partes mais sensíveis (primeiras e últimas camadas, somas) ficam em precisão mais alta.
Há dois caminhos: comprimir depois do treinamento (rápido, mas a qualidade cai em precisão muito baixa) ou treinar diretamente em baixa precisão, para que o modelo aprenda a viver com o arredondamento desde o início.
Esquema ilustrativo: mostra a ideia, não medições.
Cada vez que a precisão cai pela metade, a memória a ser lida também cai pela metade, e portanto a energia gasta para movê-la. Só com −1, 0 ou +1, uma multiplicação se torna uma soma, uma subtração ou nada.III
Três degraus para baixo
Comprovado
8 bits: DeepSeek-V3 (2024)
Primeira validação do treinamento em 8 bits num modelo gigante: a maior parte dos cálculos matriciais do DeepSeek-V3 é feita em FP8, com uma escala fina. O erro de treinamento fica a menos de 0,25 % da referência em 16 bits. É uma das razões dseu baixo custo de treinamento.
A NVIDIA treinamentou um modelo de 12 bilhões de parâmetros com 10 trilhões de palavras em 4 bits, o treinamento mais longo deste tipo publicado. No MMLU-Pro: 62,58 % contra 62,62 % em 8 bits. Nos chips recentes, os 4 bits calculam 2 a 3 vezes mais depressa do que os 8 bits com metade da memória. Cerca de 16 % das camadas ficam em precisão mais alta, e o código sai um pouco pior.
Cada peso vale −1, 0 ou +1. A partir de 3 bilhões de parâmetros, iguala um modelo de 16 bits treinado com os mesmos dados, sendo 2,71 vezes mais rápido e usando 3,55 vezes menos memória; com 70 bilhões, 4,1 vezes mais rápido. Energia de cálculo estimada para os produtos de matrizes: 71 vezes menos.
Não há atalho para os modelos existentes: os pesos ternários precisam ser aprendidos desde o início; arredondar tanto um modelo existente o estraga. O hardware está atrasado: os ganhos do BitNet só são plenamente reais em chips concebidos para ele. Tarefas frágeis: o código e o cálculo preciso sofrem primeiro. E quanto mais dados um modelo viu, mais detalhes finos seus pesos levam, o que deixa menos margem para arredondar.
V
O que isso muda para nossas hipóteses
Terceiro fator de H6: os bits por peso. O paralelo com nosso caderno impressiona: um modelo ternário só guarda o sentido de cada ligação (a favor, contra, neutro), como se os detalhes finos não tivessem lugar nos pesos. É exatamente a divisão que propomos: os grandes princípios no modelo, os detalhes precisos numa memória externa.
Pegar um mesmo modelo aberto em 16, 8 e 4 bits e fazer às três versões as mesmas perguntas sobre artigos da OrigoTech. A nossa aposta: os fatos (datas, números) se degradam antes do raciocínio. Se assim for, é um argumento para guardar os fatos fora dos pesos.