Os modelos de linguagem de um bit (LLMs) se tornaram uma abordagem promissora para tornar a IA generativa mais acessível e econômica. Ao representar os pesos do modelo com um número muito limitado de bits, os LLMs de 1 bit reduzem drasticamente os recursos de memória e computação necessários para executá-los.
A Microsoft Research tem ampliado os limites dos LLMs de 1 bit com sua arquitetura BitNet. Em um novo artigo, os pesquisadores introduzem o BitNet a4.8, uma nova técnica que melhora ainda mais a eficiência dos LLMs de 1 bit sem sacrificar seu desempenho.
O surgimento dos LLMs de 1 bit
Os LLMs tradicionais usam números de ponto flutuante de 16 bits (FP16) para representar seus parâmetros. Isso requer muita memória e recursos computacionais, o que limita as opções de acessibilidade e implementação para os LLMs. Os LLMs de 1 bit abordam esse desafio ao reduzir drasticamente a precisão dos pesos do modelo enquanto mantêm o desempenho dos modelos de precisão total.
Modelos anteriores do BitNet usaram valores de 1,58 bit (-1, 0, 1) para representar pesos do modelo e valores de 8 bits para ativações. Essa abordagem reduziu significativamente os custos de memória e I/O, mas o custo computacional das multiplicações de matrizes continuou sendo um gargalo, e otimizar redes neurais com parâmetros de bit extremamente baixos é desafiador.
Duas técnicas ajudam a resolver esse problema. A esparsificação reduz o número de cálculos ao podar ativações de menores magnitudes. Isso é particularmente útil em LLMs, pois os valores de ativação tendem a ter uma distribuição de cauda longa, com alguns valores muito grandes e muitos pequenos.
A quantização, por outro lado, usa um número menor de bits para representar ativações, reduzindo o custo computacional e de memória de seu processamento. No entanto, simplesmente reduzir a precisão das ativações pode levar a erros de quantização significativos e degradação do desempenho.
Além disso, combinar esparsificação e quantização é desafiador e apresenta problemas especiais ao treinar LLMs de 1 bit.
“Tanto a quantização quanto a esparsificação introduzem operações não diferenciáveis, tornando o cálculo do gradiente durante o treinamento particularmente desafiador”, disse Furu Wei, Gerente de Pesquisa Parceiro da Microsoft Research, ao VentureBeat.
O cálculo do gradiente é essencial para calcular erros e atualizar parâmetros ao treinar redes neurais. Os pesquisadores também tiveram que garantir que suas técnicas pudessem ser implementadas de forma eficiente em hardware existente, mantendo os benefícios tanto da esparsificação quanto da quantização.
BitNet a4.8
O BitNet a4.8 aborda os desafios da otimização dos LLMs de 1 bit através do que os pesquisadores descrevem como “quantização e esparsificação híbrida”. Eles conseguiram isso projetando uma arquitetura que aplica seletivamente quantização ou esparsificação a diferentes componentes do modelo, com base no padrão de distribuição específico das ativações. A arquitetura usa ativações de 4 bits para entradas em camadas de atenção e da rede feed-forward (FFN). Utiliza esparsificação com 8 bits para estados intermediários, mantendo apenas os 55% melhores dos parâmetros. A arquitetura também é otimizada para aproveitar o hardware existente.
“Com o BitNet b1.58, o gargalo de inferência dos LLMs de 1 bit muda de memória/I/O para computação, que é restringida pelos bits de ativação (ou seja, 8 bits no BitNet b1.58)”, disse Wei. “No BitNet a4.8, aumentamos os bits de ativação para 4 bits para que possamos aproveitar os kernels de 4 bits (por exemplo, INT4/FP4) para trazer uma aceleração de 2x para a inferência de LLM em dispositivos GPU. A combinação de pesos de modelo de 1 bit do BitNet b1.58 e ativações de 4 bits do BitNet a4.8 aborda efetivamente as restrições de memória/I/O e computacionais na inferência de LLMs.”
O BitNet a4.8 também usa valores de 3 bits para representar os estados de chave (K) e valor (V) no mecanismo de atenção. O cache KV é um componente crucial dos modelos transformer. Ele armazena as representações de tokens anteriores na sequência. Ao reduzir a precisão dos valores do cache KV, o BitNet a4.8 reduz ainda mais os requisitos de memória, especialmente ao lidar com sequências longas.
A promessa do BitNet a4.8
Resultados experimentais mostram que o BitNet a4.8 oferece desempenho comparável ao seu antecessor BitNet b1.58, enquanto usa menos computação e memória.
Comparado aos modelos Llama de precisão total, o BitNet a4.8 reduz o uso de memória em um fator de 10 e alcança uma aceleração de 4x. Em comparação com o BitNet b1.58, alcança uma aceleração de 2x através de kernels de ativação de 4 bits. Mas o design pode entregar muito mais.
“A melhoria de computação estimada é baseada no hardware existente (GPU)”, disse Wei. “Com hardware especificamente otimizado para LLMs de 1 bit, as melhorias de computação podem ser significativamente aprimoradas. O BitNet introduz um novo paradigma de computação que minimiza a necessidade de multiplicação de matrizes, um foco principal na otimização do design de hardware atual.”
A eficiência do BitNet a4.8 o torna particularmente adequado para a implantação de LLMs na borda e em dispositivos com recursos limitados. Isso pode ter implicações importantes para a privacidade e segurança. Ao permitir LLMs em dispositivos, os usuários podem se beneficiar do poder desses modelos sem precisar enviar seus dados para a nuvem.
Wei e sua equipe continuam seu trabalho em LLMs de 1 bit.
“Continuamos a avançar em nossa pesquisa e visão para a era dos LLMs de 1 bit”, disse Wei. “Embora nosso foco atual esteja na arquitetura do modelo e no suporte de software (ou seja, bitnet.cpp), pretendemos explorar o co-design e a co-evolução da arquitetura do modelo e do hardware para desbloquear totalmente o potencial dos LLMs de 1 bit.