LLMs acelerados por hardware: encuesta integral y comparación
- Los LLM han surgido como una herramienta poderosa en tareas de procesamiento de lenguaje natural, revolucionando este campo con su capacidad para comprender y generar texto similar al humano
- Este artículo realiza una encuesta integral de diversos esfuerzos de investigación sobre la aceleración de redes transformer para modelos de lenguaje grandes mediante el uso de aceleradores de hardware
Marco de trabajo y comparación
- Presenta el marco de trabajo propuesto y realiza comparaciones cualitativas y cuantitativas de tecnología, plataformas de procesamiento (FPGA, ASIC, In-Memory, GPU), mejora de velocidad, eficiencia energética, rendimiento (GOPs) y eficiencia energética (GOPs/W)
- El principal desafío es que cada esquema propuesto está implementado con distintas tecnologías de proceso, lo que dificulta una comparación justa
- La principal contribución de este artículo es estimar los resultados de rendimiento y eficiencia energética en una misma tecnología, permitiendo una comparación justa
Experimentos y resultados
- Implementa partes de los LLM en varios chips FPGA para estimar resultados bajo la misma tecnología de proceso y comparar el rendimiento de manera justa
Resumen de GN⁺
- Este artículo ofrece una encuesta integral sobre la aceleración de hardware de los modelos de lenguaje grandes (LLM)
- Compara el rendimiento y la eficiencia energética en diversas plataformas de procesamiento, lo que permite una comparación justa
- Mediante experimentos con chips FPGA, estima resultados bajo la misma tecnología
- Puede ser útil para quienes están interesados en mejorar el rendimiento de los LLM en el campo del procesamiento de lenguaje natural
- Otros proyectos con funciones similares incluyen los aceleradores GPU de NVIDIA y las TPU de Google
1 comentarios
Comentarios de Hacker News
Este artículo se queda corto en la explicación de contexto, así que para agregarlo: desde principios de los años 90 ya existía la observación de que el rendimiento computacional de la CPU (FLOPs) mejoraba más rápido que el ancho de banda de memoria, y en 1995 William Wulf y Sally Mckee predijeron que esta brecha llevaría a una pared de memoria en la que la mayoría de los cálculos quedarían limitados no por las operaciones aritméticas sino por el acceso a los datos
Durante los últimos 20 años, el pico de FLOPS del hardware de servidores se ha triplicado cada 2 años, pero el ancho de banda de DRAM y de interconexión solo ha crecido alrededor de 1.6x y 1.4x respectivamente
Por eso, en el entrenamiento e inferencia de LLM, el cuello de botella del rendimiento se está desplazando cada vez más hacia el ancho de banda de memoria, y en particular puede convertirse en el cuello de botella dominante en modelos decodificadores Transformer autorregresivos
Esta tendencia está impulsando la demanda de tecnologías como Compute-in-memory (CIM) y processing-in-memory (PIM). Son hardwares que realizan operaciones directamente sobre los datos dentro de la memoria sin moverlos primero a los registros de la CPU, por lo que pueden reducir la latencia y el consumo de energía, además de potencialmente evitar la pared de memoria
El artículo compara hardware ASIC y FPGA en distintos tamaños de proceso de semiconductores y extrapola con ajuste polinómico hasta una base de 16nm: “Basándonos en ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’ de Aaron Stillmaker y B.Baas, extrapolamos el rendimiento y la eficiencia energética en tecnología de 16nm para una comparación justa”
Pero para CIM/PIM no hace extrapolación y dice: “Dado que el rendimiento de los aceleradores in-memory no se basa únicamente en la tecnología de proceso, realizamos la extrapolación solo para aceleradores FPGA y ASIC, donde la tecnología de proceso sí afecta significativamente el rendimiento del sistema”. A simple vista parece una decisión extraña, y da la impresión de que alguien podría explicar mejor esta elección
Lecturas adicionales: https://arxiv.org/abs/2403.14123, https://en.m.wikipedia.org/wiki/In-memory_processing, http://vcl.ece.ucdavis.edu/pubs/2017.02.VLSIintegration.Tech...
Aun así, me gusta la idea de productos baratos que vengan en formato de módulo RAM. También se puede imaginar un montón de esos conectados en una placa 1U y unidos con una interconexión de alta velocidad, o incluso llenar por completo una tarjeta PCI con ellos
PCI-e V4 pasó tan rápido que parece haber tenido una vida útil de apenas unos 2 años, y NVMeOF ha escalado bien junto con el rendimiento del fabric. El H100 DGX actual tiene una interconexión de 400GB/s
“El crecimiento explosivo de los modelos de IA está siendo limitado por la ampliación de la brecha entre rendimiento de cómputo y ancho de banda de memoria. Se espera que modelos de próxima generación como GPT-5 alcancen una escala sin precedentes de 3 a 5 billones de parámetros, pero el cuello de botella técnico del ancho de banda de memoria se está convirtiendo en el principal obstáculo para realizar plenamente su potencial”
https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
Siempre me han gustado los arreglos sistólicos, y después de revisar varias opciones durante las últimas décadas, creo que una cuadrícula cartesiana de celdas es la solución óptima
Cada celda tiene 4 bits de entrada, uno desde cada vecino, y 4 bits de salida, uno hacia cada vecino. En el centro hay un registro de desplazamiento de 64 bits dentro de una larga scan chain, y su salida entra en 4 multiplexores 16:1 y un latch de 4 bits
Si se usa la magia del coloreado de grafos para dar reloj a todas las celdas con un patrón de tablero de ajedrez, los datos pueden fluir en cualquier dirección sin sesgo hacia una dirección específica y sin condiciones de carrera. Todas las entradas de cualquier celda quedan en un estado estable
Este enfoque da la flexibilidad de un FPGA, pero sin tener que preocuparse por problemas de timing, condiciones de carrera, glitches y cosas por el estilo. Además, todas las conexiones son cortas, así que todo es local, rápido y de bajo consumo
A cambio, no ofrece buena eficiencia de compuertas ni la ruta más corta para la lógica. En la práctica, cada operación individual ocurre en paralelo y todo el cómputo queda canalizado
Es una idea que tengo desde más o menos 1982, y ojalá alguien la retome y la construya bien. La llamo BitGrid
Material relacionado: https://arxiv.org/pdf/2406.08413
Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference
Me gustaría ver un LLM corriendo en WebGL, donde todo son texturas. Visualmente sería bastante interesante ver las diferencias de arquitectura
Hoy en día el cuello de botella es el movimiento de memoria, y por eso HBM es caro. Los diseños de Nvidia están realmente optimizados para la memoria, que es el verdadero cuello de botella, tanto a nivel de chip como de sistema
En la práctica casi no se ve
¿Podría una arquitectura híbrida de FPGA + ASIC + in-memory tener un papel en escalabilidad y flexibilidad? FPGA aporta flexibilidad, ASIC rendimiento, e in-memory eficiencia energética, así que me pregunto si un enfoque híbrido que los integre podría llevar todavía más lejos el rendimiento de los LLM
In-memory no solo parece correcto desde el punto de vista del rendimiento, sino también en la dirección general. No tiene mucho sentido hacer un ASIC o programar un FPGA para modelos que, con suerte, podrían volverse obsoletos en unos meses
Había un paper sobre ejecutar un LLM con una potencia equivalente a la de un foco
https://arxiv.org/abs/2406.02528
https://news.ucsc.edu/2024/06/matmul-free-llm.html
La clave es que usa dos técnicas para evitar la multiplicación de matrices. Primero, fuerza todos los números de la matriz a valores ternarios de solo -1, 0 y +1, reduciendo las multiplicaciones a sumas. Segundo, en vez de multiplicar cada elemento uno por uno, superpone las matrices y ejecuta solo las operaciones importantes
El equipo de investigación dice que introdujo cómputo basado en tiempo en el entrenamiento del modelo para mantener el rendimiento de la red neuronal, y que eso mejora el desempeño al darle a la red una “memoria” de la información importante que procesa
En GPU estándar, el uso de memoria se redujo a aproximadamente una décima parte y la velocidad aumentó cerca de 25%; además, podría abrir una forma de ejecutar el algoritmo a máxima capacidad incluso en dispositivos con poca memoria, como smartphones. Un prototipo en FPGA hecho en tres semanas superó un throughput legible por humanos con solo 13W de potencia; como una GPU requeriría unos 700W, dicen que el hardware personalizado fue más de 50 veces más eficiente que una GPU
No estoy seguro de si in-memory aquí se refiere a hardware especial que combina CPU y RAM
Citando un paper anterior de aceleración que mostró una mejora de 19 veces frente a DRAM + GPU: “Dado que las operaciones MAC representan la parte dominante del tiempo de ejecución en la mayoría de las cargas de trabajo de machine learning, proponemos multiplicación dentro del subarreglo y acumulación dentro del banco. La multiplicación se procesa mediante un enfoque basado en columnas que realiza operaciones AND y sumas, y el overhead de área adicional es menor al 1%”
https://arxiv.org/pdf/2105.03736
¿Hay alguna forma de ver contenido de Arxiv de manera más legible?
Cada vez que entro a ese sitio me confundo sobre si realmente tiene interfaz y termino perdido, así que normalmente me salgo antes de llegar al contenido
Para un paper individual, esa es probablemente la mejor forma, y también hay algunos frontends para Arxiv como https://arxiv-sanity-lite.com/