Novo algoritmo L-Mul promete reduzir em 95% o consumo de energia da IA
(tomshardware.com)- A BitEnergy AI afirma que é possível reduzir o consumo de energia em até 95% ao substituir a multiplicação de ponto flutuante (FPM), uma operação central no processamento de IA, por adição de inteiros
- A Linear-Complexity Multiplication (L-Mul) busca produzir resultados próximos aos da FPM usando operações mais simples, mantendo exatidão e precisão
- Embora o potencial de melhoria na eficiência energética seja grande, o hardware dominante atual, como as GPUs Blackwell da Nvidia, não foi projetado pressupondo a execução desse algoritmo
- Empresas que já investiram de milhões a bilhões de dólares em hardware de IA dificilmente conseguirão evitar o ônus de adotar novos sistemas, mesmo que o desempenho da L-Mul seja comprovado
- Em um cenário em que a demanda de energia dos data centers de IA pressiona as redes elétricas e as metas climáticas, a L-Mul pode ser vista como uma abordagem que busca ampliar desempenho e reduzir energia ao mesmo tempo
L-Mul substitui FPM por adição de inteiros
- A BitEnergy AI é uma empresa especializada em tecnologia de inferência de IA e desenvolveu um método para substituir a FPM por adição de inteiros no processamento de IA
- O novo método se chama Linear-Complexity Multiplication (L-Mul)
- A L-Mul afirma conseguir produzir resultados próximos aos da FPM com um algoritmo mais simples, mantendo a alta exatidão e precisão da FPM
- Segundo o TechXplore, esse método pode reduzir o consumo de energia de sistemas de IA em até 95%
Compatibilidade de hardware impede a adoção
- Como a L-Mul é uma nova forma de processamento, o hardware popular atualmente no mercado não foi projetado para processá-la diretamente
- A próxima geração de GPUs Blackwell da Nvidia também é citada como um exemplo de hardware que não foi projetado pressupondo a execução desse algoritmo
- Mesmo que o algoritmo da BitEnergy AI entregue desempenho no mesmo nível da FPM, seu uso real exige sistemas capazes de executá-lo
- Para empresas que já investiram de milhões a bilhões de dólares em hardware de IA, a necessidade de novos sistemas pode se tornar um grande peso
- Se fabricantes de chips de IA criarem ASICs adaptados a esse algoritmo, a possibilidade de reduzir o consumo de energia em 95% pode atrair o interesse de grandes empresas de tecnologia
A pressão criada pela demanda de energia da IA
- A energia vem surgindo como uma das principais restrições no desenvolvimento de IA
- Só as GPUs de data center vendidas no ano passado foram descritas como capazes de consumir, ao longo de um ano, mais eletricidade do que a usada por mais de 1 milhão de residências
- O Google viu suas metas climáticas ficarem em segundo plano por causa da demanda de energia da IA, e suas emissões de gases de efeito estufa aumentaram 48% em relação a 2019
- O ex-CEO do Google já sugeriu reduzir as metas climáticas e permitir mais geração de energia para resolver o aquecimento global com IA avançada
O que a melhoria da eficiência energética pode mudar
- Se o processamento de IA se tornar mais eficiente em termos de energia, será possível manter tecnologias avançadas de IA reduzindo ao mesmo tempo o impacto ambiental
- Uma redução de 95% no uso de energia também diminuiria a pressão que grandes data centers exercem sobre as redes elétricas nacionais
- Com menor pressão sobre a rede elétrica, também pode diminuir a necessidade de construir mais usinas para expandir rapidamente a infraestrutura futura de IA
Equilíbrio entre expansão de desempenho e eficiência
- Novos chips de IA chamam atenção por oferecerem maior capacidade computacional a cada geração
- Mas o verdadeiro avanço é possível quando os processadores se tornam mais poderosos e, ao mesmo tempo, mais eficientes
- Se a L-Mul funcionar como promete, é possível esperar ao mesmo tempo expansão do desempenho de IA e melhoria da eficiência energética
1 comentários
Comentários do Hacker News
https://arxiv.org/abs/2410.00907
Segundo o resumo do artigo, a maior parte da computação em redes neurais grandes é usada em multiplicações de tensores de ponto flutuante, e o L-Mul aproxima a multiplicação em ponto flutuante com soma inteira, produzindo maior precisão com menos recursos computacionais do que ponto flutuante de 8 bits
Eles afirmam que, se aplicado a hardware de processamento de tensores, isso pode reduzir em até 95% a energia de multiplicações elemento a elemento de tensores em ponto flutuante e em 80% a energia de produtos internos, e avaliam que o L-Mul com mantissa de 3 a 4 bits é comparável ou melhor que float8 e4m3/e5m2, além de poder ser aplicado à attention de Transformers com quase nenhuma perda
Parece que vai gerar bastante interesse
Tem este aqui https://news.ycombinator.com/item?id=41784591 e também houve outros antes. Para quem é mais profundo na área, talvez isso seja até uma ideia meio óbvia
Intuitivamente, usar ponto flutuante para no fim tomar decisões quase booleanas parece desperdício, mas eu achava que isso era necessário para construir algoritmos diferenciáveis
Era muito rápida e ainda entregava precisão próxima da multiplicação em ponto flutuante. Para obter ao mesmo tempo multiplicação rápida e paralelismo, talvez seja preciso usar esses blocos de DSP como parte de Tensor/GPU
É uma aproximação bem grosseira. Por exemplo, 1.75 * 2.5 == 3, mas parece melhorar quanto mais os números se aproximam de 0
Implementei isso no tinyBLAS do llamafile para AVX512 e testei com Llama-3.2-3B-Instruct.F16.gguf, e a saída ficou corrompida. Para funcionar direito, parece que o modelo teria de ser treinado e projetado desde o início para usar essa aproximação de multiplicação, ou então ajustado para usá-la apenas em certas camadas ou operações
Ainda assim, a velocidade foi razoável: no Threadripper, o prefill caiu de 850 tokens/s para 200 tokens/s, mas a velocidade de previsão permaneceu em 34 tokens/s. Se alguém publicar no Hugging Face uma arquitetura de LLM e pesos que usem esse algoritmo, talvez dê para rodar bem rápido sem hardware especializado
Pelo artigo, 1.75 == (1+0.75)*2^0 e 2.5 == (1+0.25)*2^1, então o resultado seria (1+0.75+0.25+2^-4)*2^1 == 4.125. O resultado correto é 4.375
Afirmações extraordinárias exigem evidências extraordinárias
Pode até ser possível, mas gente muito inteligente em vários grupos vem trabalhando duro nisso há muito tempo. Então uma afirmação de redução de 95% no custo de energia com o mesmo desempenho entra na categoria do extraordinário. Claro, quando a maré baixar, vamos descobrir
A melhoria de 95% se aplica especificamente apenas à operação de multiplicação. Em inferência, memória já tende a pesar mais do que computação, então o ganho real deve ser bem menor
O jornalismo de tecnologia, na verdade quase todo jornalismo, fica tão focado em cliques e receita para sobreviver que é difícil esperar notícias realmente pé no chão
Exige muito retreinamento e fine-tuning, e se você já não tiver hardware massivamente paralelo, o custo é alto. Senão, teria de fazer um ASIC/FPGA com alto risco de investimento
Chutando por alto, modelos de baixa resolução como llama-2 podem se sair bem, já que o llama-2 quantiza sem grandes problemas. Mas modelos de alta resolução como llama-3 provavelmente não serão fáceis sem retreinamento em larga escala
https://github.com/microsoft/BitNet
Também houve gente melhorando a eficiência de operações matemáticas de baixo nível, e isso está mais para um fruto desse tipo de trabalho. Descobrir esse tipo de coisa não é nada fácil
Não estou dizendo que é impossível ou falso, mas é preciso prova de que isso permite desempenho equivalente em máquinas reais e com energia real
A defesa de “não existe chip apropriado” é meio desonesta. Se essa redução de 95% realmente for possível, algum fabricante esperto de chips vai fazer as contas e construir o chip. Se estiver certo, essa empresa vai ganhar muito dinheiro; se não, não vai fazer
Do ponto de vista de alguém que já pesquisou essa área, isto é, computação aproximada, tanto em GPUs quanto em silício, tanto a alegação sobre consumo de energia quanto a de precisão são totalmente equivocadas
O artigo diz que “L-Mul é mais preciso que multiplicação fp8 e4m3”, mas ao mesmo tempo afirma, na análise de erro e na estimativa de complexidade de Mul e L-Mul, que “não considera arredondamento para o par mais próximo”. Se você tira da análise a parte que dá precisão ao algoritmo de referência, pode escolher praticamente qualquer resultado que quiser
Multiplicação em ponto flutuante, quando arredondada para o par mais próximo, produz o resultado de multiplicar o valor original com precisão infinita e então arredondar corretamente, e o IEEE 754 exige isso nas operações básicas. Se tirar isso, você gera muito mais ruído de quantização e ruído com viés
Uma parte considerável do custo de energia vem da movimentação de dados entre memória externa e interconexões, como DRAM/HBM, e do buffering em SRAM e flip-flops. O custo da lógica combinacional normalmente não é o grande problema; mesmo que aumente com muitos multiplicadores matriciais de função fixa, a economia total de energia no acelerador inteiro provavelmente seria, no máximo, algo como 10% a 20%
Além disso, não vejo detalhes sobre reescalonamento nem sobre acumulação de alta precisão para resultados intermediários em ambientes como o H100. Sem essas informações, também é difícil confiar nos resultados da avaliação
Discussão original do preprint: https://news.ycombinator.com/item?id=41784591
Isso não é só usar
log(x) + log(y) = log(xy)?A representação de ponto flutuante IEEE754 armazena sinal, mantissa e expoente. Se você ignorar os dois primeiros, no fim das contas, como já houve quantização, o expoente é apenas um inteiro que armazena o
log()do floatSe tanto
aquantobforem relativamente pequenos,abfica muito pequeno e pode ser ignorado. Então substitui-se(1+a)(1+b)por1+a+b. Os dois claramente não são iguais, mas parece que, no trabalho de inferência da máquina, essa diferença não importa muitoEu postei isso há cerca de uma semana:
https://news.ycombinator.com/item?id=41816598
Esse tipo de abordagem vem sendo usado há décadas em circuitos digitais, FPGA, processamento digital de sinais etc. Como ponto flutuante consome muitos recursos e energia, usar ponto flutuante sem hardware dedicado para isso vem sendo evitado há décadas, a menos que seja realmente necessário
Já foi frustrante o bastante redescobrirem ponto fixo; reações do tipo “se você representar a pose com quaternion, tudo funciona melhor” vêm fazendo desenvolvedores de engines de jogos explodirem há 30 anos
Talvez por eu ser cético por natureza, mas sempre desconfio quando o título diz “método x reduz y em z%”, enquanto o texto diz que, se certa etapa for otimizada, “talvez seja possível reduzir y em até z%”
Fico me perguntando por que não divulgam benchmarks reais que comprovem a alegação, nem que seja em alguns casos especiais
“Até 95%” também não vem do paper. As reduções de custo são citadas por operação e por nível de precisão, chegando a até 97,3%, e se baseiam em pesquisas anteriores sobre o custo energético de operações matemáticas em hardware de computação moderno. Não há alegação de redução de custo de ponta a ponta
Segundo, a redução de custo energético que eles de fato afirmam nem sequer era a questão experimental. Em hardware moderno, a diferença de custo energético entre várias operações já foi estabelecida por outros estudos; aqui, a questão experimental era se a técnica matemática que permite operações de menor energia conseguia competir, na inferência de LLM, com implementações existentes em termos de qualidade de saída
“A primeira versão do bitnet.cpp tem como foco o suporte à inferência em CPU. Ela alcança ganhos de velocidade de 1,37x a 5,07x em CPUs ARM, com melhorias maiores em modelos maiores. O consumo de energia também cai de 55,4% a 70,0%, aumentando a eficiência geral. Em CPUs x86, mostra ganhos de velocidade de 2,37x a 6,17x e economia de energia de 71,9% a 82,2%. Além disso, o bitnet.cpp consegue executar o modelo 100B BitNet b1.58 em uma única CPU, atingindo 5–7 tokens por segundo, próximo à velocidade de leitura humana, o que aumenta muito a viabilidade de rodar LLMs em dispositivos locais. Mais detalhes serão fornecidos em breve”
Será que https://en.wikipedia.org/wiki/Jevons_paradox também se aplica neste caso?
O custo de energia claramente cria uma barreira de entrada, e se o custo cair, essa barreira também diminui. Aí mais participantes entram, e a demanda aumenta
Não acho que o algoritmo vá mudar o consumo de energia
Do ponto de vista computacional, sempre será preciso a capacidade máxima. Se amanhã um novo algoritmo aumentar o desempenho em 4 vezes, nós simplesmente faremos 4 vezes mais computação