1 pontos por GN⁺ 2024-10-20 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-10-20
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

    • Fico me perguntando se isso significa que dá para treinar de forma eficiente sem GPU
      Parece que vai gerar bastante interesse
    • Tenho a sensação de já ter visto essa ideia algumas vezes, acho que em posts no HN
      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
    • Antigamente, várias arquiteturas de DSP usavam multiplicação de ponto fixo (formato Q) em algoritmos de DSP. https://en.wikipedia.org/wiki/Q_(number_format)
      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
    • Isso está de fato produzindo o efeito de quantização sem realmente quantizar?
  • É 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

    • No caso de 1.75 * 2.5, parece que o kernel está errado
      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

    • Isso é um título caça-cliques, e a afirmação em si não é extraordinária. O preprint no arXiv já apareceu aqui antes
      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
    • Não acho que essa afirmação seja extraordinária. Não é algo matematicamente impossível nem inverossímil, só que é muito chato de validar
      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
    • A afirmação de economia de energia pode ser verificada em algo como até 70%. A implementação de inferência está aqui:
      https://github.com/microsoft/BitNet
    • Até agora, os pesquisadores vinham trabalhando mais do outro lado, como arquitetura de rede ou como construir redes que produzam resultados melhores
      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
    • Mesmo levando em conta os comentários acima e abaixo, isso continua sendo uma afirmação extraordinária
      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 float

    • Não exatamente. O que está sendo usado é (1+a)(1+b) = 1 + a + b + ab
      Se tanto a quanto b forem relativamente pequenos, ab fica muito pequeno e pode ser ignorado. Então substitui-se (1+a)(1+b) por 1+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 muito
    • Isso. A próxima pergunta passa a ser: “certo, então como fazemos a adição?”
  • Eu 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

    • Sim. O pessoal de ML está aprendendo lentamente que, além de reduzir a quantidade de operações na notação de álgebra linear, é importante otimizar para a simplicidade do silício
      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
    • No espaço de pesquisa em ML, é comum pegar um conceito antigo, dar um nome novo e fazer rebranding como algo novel
    • Seria bom explicar um pouco mais para quem não conhece bem isso
  • 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

    • Primeiro, esse título não foi dado pelos pesquisadores, mas surgiu na cobertura da mídia popular, e o post original aqui também era uma repercussão de outra matéria da mídia popular. É estranho esperar que os autores do artigo justifiquem com benchmarks algo que o paper nunca afirmou
      “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
    • Por outro lado, já existe prova viva de que redes neurais surpreendentemente grandes podem rodar com 20W de potência, então não é irracional esperar reduções de várias ordens de grandeza no consumo de energia
    • https://github.com/microsoft/BitNet
      “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”
    • Por mais decepcionante que seja a vida moderna, para atrair tráfego é preciso ter título caça-cliques. Ainda assim, foi bom você ter lido a matéria. A informação está no texto, não no título
  • Será que https://en.wikipedia.org/wiki/Jevons_paradox também se aplica neste caso?

    • Interessante
      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
    • Isso pode não ser necessariamente ruim. Talvez dê aos golpistas de IA tempo para criar algo realmente útil
    • Claro. O Jevons paradox sempre se aplica
  • 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