1 puntos por GN⁺ 2024-10-20 | 1 comentarios | Compartir por WhatsApp
  • BitEnergy AI afirma que reemplazar la multiplicación de punto flotante (FPM), una operación clave en el procesamiento de IA, por sumas de enteros puede reducir el consumo eléctrico hasta en un 95%
  • Linear-Complexity Multiplication (L-Mul) busca producir resultados cercanos a FPM mediante operaciones más simples, manteniendo la exactitud y la precisión
  • Aunque el potencial de mejora en eficiencia energética es grande, el hardware dominante actual, como las GPU Blackwell de Nvidia, no está diseñado pensando en ejecutar este algoritmo
  • Para las empresas que ya invirtieron millones o miles de millones de dólares en hardware de IA, será difícil evitar la carga de adoptar nuevos sistemas incluso si se confirma el rendimiento de L-Mul
  • En un contexto donde la demanda eléctrica de los centros de datos de IA presiona las redes eléctricas y los objetivos climáticos, L-Mul puede verse como un enfoque que apunta a ampliar el rendimiento y ahorrar energía al mismo tiempo

L-Mul, que reemplaza FPM por sumas de enteros

  • BitEnergy AI es una empresa especializada en tecnología de inferencia de IA y desarrolló un método para reemplazar la FPM por sumas de enteros en el procesamiento de IA
  • El nuevo método se llama Linear-Complexity Multiplication (L-Mul)
  • L-Mul afirma poder producir resultados cercanos a FPM con un algoritmo más simple, manteniendo la alta exactitud y precisión de FPM
  • Según TechXplore, este método puede reducir el consumo eléctrico de los sistemas de IA hasta en un 95%

Compatibilidad de hardware que frena la adopción

  • Como L-Mul es un nuevo método de procesamiento, el hardware popular que existe hoy en el mercado no está diseñado para procesarlo directamente
  • Las GPU Blackwell de próxima generación de Nvidia se mencionan como un ejemplo de hardware que no fue diseñado pensando en ejecutar este algoritmo
  • Aunque el algoritmo de BitEnergy AI alcance un rendimiento al nivel de FPM, para usarlo en la práctica se necesitan sistemas capaces de ejecutarlo
  • Para las empresas que ya invirtieron millones o miles de millones de dólares en hardware de IA, la necesidad de nuevos sistemas puede convertirse en una carga importante
  • Si los fabricantes de chips de IA crean ASIC adaptados a este algoritmo, la posibilidad de reducir el consumo eléctrico en un 95% podría atraer el interés de las grandes tecnológicas

La presión creada por la demanda eléctrica de la IA

  • La electricidad está emergiendo como una de las principales limitantes en el desarrollo de IA
  • Se señala que solo las GPU para centros de datos vendidas el año pasado consumen en un año más electricidad que la usada por más de un millón de hogares
  • Google vio retrasados sus objetivos climáticos por la demanda eléctrica de la IA, y sus emisiones de gases de efecto invernadero aumentaron un 48% frente a 2019
  • El ex CEO de Google propuso en su momento reducir los objetivos climáticos y permitir más generación eléctrica para resolver el calentamiento global con IA avanzada

Lo que podría cambiar una mejora en eficiencia energética

  • Si el procesamiento de IA se vuelve más eficiente en consumo eléctrico, se podría reducir la carga ambiental manteniendo al mismo tiempo tecnologías avanzadas de IA
  • Si el uso de energía disminuye un 95%, también se reduciría la presión que los grandes centros de datos ejercen sobre las redes eléctricas nacionales
  • Con una menor carga sobre la red eléctrica, también podría disminuir la necesidad de construir más centrales eléctricas para expandir rápidamente la infraestructura de IA futura

Equilibrio entre expansión del rendimiento y eficiencia

  • Los nuevos chips de IA llaman la atención porque ofrecen mayor capacidad de cómputo con cada generación
  • Sin embargo, el verdadero avance es posible cuando los procesadores se vuelven más potentes y, al mismo tiempo, más eficientes
  • Si L-Mul funciona como afirma, se podría esperar tanto una expansión del rendimiento de la IA como una mejora en la eficiencia energética

1 comentarios

 
GN⁺ 2024-10-20
Opiniones de Hacker News
  • https://arxiv.org/abs/2410.00907
    Según el resumen del paper, la mayor parte de las operaciones en redes neuronales grandes se usa en multiplicaciones de tensores de punto flotante, y L-Mul aproxima la multiplicación de punto flotante con sumas de enteros para lograr mayor precisión usando menos recursos de cómputo que el punto flotante de 8 bits.
    Afirma que, si se aplica a hardware de procesamiento de tensores, puede reducir hasta 95% la energía de la multiplicación de tensores de punto flotante elemento por elemento y 80% la energía de los productos internos; además, evalúa que L-Mul con mantisa de 3 a 4 bits es similar o mejor que float8 e4m3/e5m2, y que puede aplicarse al attention de Transformer casi sin pérdida.

    • Me pregunto si esto significa que se puede entrenar de forma eficiente incluso sin GPU.
      Parece que va a generar bastante interés.
    • Siento que ya vi esta idea algunas veces, creo que en posts que salieron en HN.
      Está este https://news.ycombinator.com/item?id=41784591 y también hubo otros antes. Para quienes conocen a fondo este campo, quizá sea una idea obvia.
      Intuitivamente, usar punto flotante para terminar tomando decisiones cercanas a booleanas parece un desperdicio, pero pensaba que era necesario para crear algoritmos diferenciables.
    • Antes, varias arquitecturas DSP usaban multiplicación de punto fijo (Q Format) en algoritmos DSP. https://en.wikipedia.org/wiki/Q_(number_format)
      Era muy rápida y aun así daba una precisión cercana a la multiplicación de punto flotante. Tal vez haya que usar este tipo de bloques DSP como parte de Tensor/GPU para obtener tanto multiplicación rápida como paralelismo.
    • ¿Esto produce un efecto de cuantización sin cuantizar realmente?
  • Es una aproximación bastante burda. Por ejemplo, 1.75 * 2.5 == 3, aunque parece mejorar cuanto más cerca de 0 están los números.
    La implementé para AVX512 en tinyBLAS de llamafile y la probé con Llama-3.2-3B-Instruct.F16.gguf, pero la salida salió rota. Para que funcione bien, probablemente habría que entrenar y diseñar el modelo desde cero usando esta aproximación de multiplicación, o ajustarla para usarla solo en ciertas capas u operaciones.
    Aun así, la velocidad fue decente: en Threadripper, el prefill cayó de 850 tokens/s a 200 tokens/s, pero la velocidad de predicción se mantuvo igual en 34 tokens/s. Si alguien publica en Hugging Face una arquitectura de LLM y pesos que usen este algoritmo, creo que podría correr bastante rápido sin hardware especializado.

    • Para 1.75 * 2.5, creo que el kernel está mal.
      Según el paper, 1.75 == (1+0.75)*2^0 y 2.5 == (1+0.25)*2^1, así que el resultado es (1+0.75+0.25+2^-4)*2^1 == 4.125. El resultado correcto es 4.375.
  • Las afirmaciones extraordinarias requieren evidencia extraordinaria.
    Puede ser posible, pero en este campo muchos grupos de gente muy inteligente han trabajado mucho durante años. Por eso, afirmar una reducción de 95% en el costo energético con el mismo rendimiento entra en la categoría de extraordinario. Claro, cuando baje la marea se sabrá.

    • Ese es un título clickbait, y la afirmación en sí no es extraordinaria. El preprint de arXiv ya había salido aquí antes.
      La mejora de 95% corresponde específicamente solo a la operación de multiplicación. En inferencia, el peso de la memoria suele ser mayor que el del cómputo, así que el beneficio real será mucho menor.
      El periodismo tecnológico, en realidad casi todo el periodismo, está tan enfocado en clics e ingresos para sobrevivir que es difícil esperar grounded news.
    • No creo que esta afirmación sea extraordinaria. No es matemáticamente imposible ni inverosímil; simplemente es muy molesta de verificar.
      Requiere mucho reentrenamiento y fine-tuning, y si no tienes ya hardware masivamente paralelo, sale caro. O habría que fabricar un ASIC/FPGA con alto riesgo de inversión.
      A ojo, modelos de baja resolución como llama-2 podrían estar bien, porque llama-2 se cuantiza sin grandes problemas. Pero modelos de alta resolución como llama-3 no parecen fáciles sin reentrenamiento a gran escala.
    • La afirmación de ahorro energético se puede verificar hasta alrededor de 70%. La implementación de inferencia está aquí:
      https://github.com/microsoft/BitNet
    • Hasta ahora, los investigadores se han ocupado sobre todo de otros temas, como la estructura de las redes o cómo crear redes que den mejores resultados.
      También hubo gente que mejoró la eficiencia de las operaciones matemáticas de bajo nivel, y esto se parece más al fruto de esos trabajos. Descubrir algo así no es nada fácil.
    • Incluso considerando todos los comentarios de arriba y abajo, sigue siendo una afirmación extraordinaria.
      No digo que sea imposible ni falsa, pero hace falta evidencia de que se puede lograr un rendimiento equivalente usando máquinas reales y energía real.
      La defensa de “no existe el chip adecuado” es un poco poco seria. Si de verdad es posible ahorrar 95%, algún fabricante de chips inteligente hará los cálculos y fabricará el chip. Si es cierto, esa empresa ganará mucho dinero; si no, no lo fabricará.
  • Desde mi experiencia investigando este campo, es decir, cómputo aproximado, tanto en GPU como en silicio, las afirmaciones sobre consumo eléctrico y precisión son completamente disparatadas.
    El paper dice que “L-Mul es más preciso que la multiplicación fp8 e4m3”, pero en el análisis de error y la estimación de complejidad de Mul y L-Mul indica que “no se considera el redondeo nearest even”. Si quitas del algoritmo de referencia la parte que aporta precisión, puedes escoger los resultados que quieras.
    La multiplicación de punto flotante, al redondear con nearest even, equivale a multiplicar los valores originales con precisión infinita y luego redondear correctamente el resultado; IEEE 754 también exige esto en las operaciones básicas. Si se quita, aparece mucho más ruido de cuantización y ruido de sesgo.
    Una parte considerable del costo energético viene del movimiento de datos entre memoria externa como DRAM/HBM y el cableado, y del buffering en SRAM y flip-flops. El costo de la lógica combinacional normalmente no es el gran problema y, aunque aumenta si hay muchos multiplicadores de matrices de función fija, la reducción total de energía del acelerador probablemente sería, como mucho, de 10 a 20%.
    Además, no se ven detalles sobre el reescalado que ocurre en entornos como H100 ni sobre la acumulación de alta precisión de resultados intermedios. Sin esa información, también es difícil confiar en los resultados de la evaluación.

  • Discusión original del preprint: https://news.ycombinator.com/item?id=41784591

  • ¿No es esto simplemente aprovechar “log(x) + log(y) = log(xy)”?
    La representación de punto flotante IEEE754 almacena el signo, la mantisa y el exponente. Si ignoras los dos primeros, como de todos modos ya cuantizaste, el exponente no es más que un entero que almacena el log() del float.

    • No exactamente. Lo que aprovecha es (1+a)(1+b) = 1 + a + b + ab.
      Si a y b son ambos lo bastante pequeños, ab es tan pequeño que se puede ignorar. Por eso cambian (1+a)(1+b) por 1+a+b. Claramente no son iguales, pero en tareas donde la máquina está adivinando, parece que esa diferencia no importa mucho.
    • Correcto. La siguiente pregunta pasa a ser: “bien, entonces ¿cómo hacemos la suma?”
  • Publiqué esto hace aproximadamente una semana:
    https://news.ycombinator.com/item?id=41816598
    Este tipo de enfoque se viene usando desde hace décadas en circuitos digitales, FPGA, procesamiento digital de señales, etc. Como el punto flotante consume muchos recursos y energía, durante décadas se ha evitado usar punto flotante sin hardware dedicado de procesamiento de punto flotante, salvo que fuera realmente necesario.

    • Exacto. El área de ML está aprendiendo lentamente que no solo importa reducir la cantidad de símbolos de álgebra lineal, sino optimizar para la simplicidad del silicio.
      Redescubrir el punto fijo ya fue bastante frustrante, pero reacciones del tipo “si representamos la pose con quaternions, todo funciona mejor” hacen explotar a los desarrolladores de motores de juegos de los últimos 30 años.
    • En el espacio de investigación de ML es común ponerles nombres nuevos a conceptos viejos y reetiquetarlos como novel.
    • Estaría bueno explicarlo un poco más para quienes no lo conocen bien.
  • Tal vez porque soy escéptico por naturaleza, pero cada vez que el título dice “el método x reduce y en z%” y el cuerpo dice que al optimizar cierto paso “podría reducir y hasta en z%”, me genera sospechas.
    Me pregunto por qué no publican benchmarks reales que demuestren la afirmación, aunque sea en algunos casos especiales.

    • Primero, ese título no lo pusieron los investigadores, sino que viene de una cobertura de medios generalistas, y el artículo publicado aquí originalmente también era una republicación de otra nota de medios generalistas. Es raro esperar que los autores del paper justifiquen con benchmarks algo que el paper no afirma.
      El “hasta 95%” tampoco viene del paper. La reducción de costos se cita por operación y por precisión, llega hasta 97.3%, y se basa en trabajos previos sobre el costo energético de las operaciones matemáticas en hardware de cómputo moderno. No hacen una afirmación de reducción de costos de punta a punta.
      Segundo, la reducción de costo energético que sí afirman en realidad no era la pregunta experimental. Las diferencias de costo energético entre varias operaciones en hardware moderno ya están establecidas por otros estudios; el punto experimental aquí era si la técnica matemática que permite usar operaciones de menor energía podía competir en inferencia de LLM con implementaciones existentes en términos de calidad de salida.
    • Por otro lado, existe una prueba viviente de que una red neuronal sorprendentemente grande puede funcionar con 20W de potencia, así que no es irracional esperar que el consumo eléctrico pueda reducirse por varios órdenes de magnitud.
    • https://github.com/microsoft/BitNet
      “La primera versión de bitnet.cpp apunta a dar soporte a inferencia en CPU. En CPU ARM logra mejoras de velocidad de 1.37x a 5.07x, con mayores mejoras de rendimiento en modelos más grandes. También reduce el consumo de energía entre 55.4% y 70.0%, aumentando la eficiencia general. En CPU x86 muestra mejoras de velocidad de 2.37x a 6.17x y ahorros de energía de 71.9% a 82.2%. Además, bitnet.cpp puede ejecutar un modelo BitNet b1.58 de 100B en una sola CPU y alcanzar 5 a 7 tokens/s, una velocidad similar a la lectura humana, lo que aumenta mucho la posibilidad de ejecutar LLM en dispositivos locales. Pronto habrá más detalles disponibles”.
    • Aunque la vida moderna sea decepcionante, para atraer tráfico hace falta un título clickbait. Aun así, hiciste bien en leer el artículo. La información está en el cuerpo, no en el título.
  • ¿https://en.wikipedia.org/wiki/Jevons_paradox aplicará también en este caso?

    • Interesante.
      El costo energético claramente crea una barrera de entrada, y si el costo baja, también baja esa barrera. Entonces entran más participantes y la demanda aumenta.
    • No necesariamente sería algo malo. Quizá les compre tiempo a los estafadores de IA para construir algo realmente útil.
    • Claro. La paradoja de Jevons siempre aplica.
  • No creo que el algoritmo vaya a cambiar el consumo de energía.
    En términos de cómputo, siempre se necesita la máxima capacidad. Si mañana un algoritmo nuevo mejora el rendimiento 4 veces, simplemente haremos 4 veces más cómputo.