Los LLM están impulsando importantes avances en investigación y desarrollo en la actualidad. Se ha observado un cambio significativo en los objetivos y metodologías de investigación hacia un enfoque centrado en el LLM. Sin embargo, están asociados con altos gastos, lo que hace que los LLM para su utilización a gran escala sean inaccesibles para muchos. Por lo tanto, es un desafío importante reducir la latencia de las operaciones, especialmente en aplicaciones dinámicas que exigen capacidad de respuesta.
La caché KV se utiliza para la decodificación autorregresiva en LLM. Almacena pares clave-valor en atención de múltiples cabezas durante la fase de inferencia previa al llenado. Durante la etapa de decodificación, se agregan nuevos pares de KV a la memoria. La caché KV almacena las activaciones de valores y claves intermedias en el mecanismo de atención, lo que reduce la complejidad del orden cuadrático al lineal. La caché KV permite mejorar la eficiencia, pero crece linealmente con el tamaño del lote, la longitud de la secuencia y el tamaño del modelo. El creciente tamaño de la memoria de la caché KV excede la capacidad de manejo de las GPU y transferirla a la CPU introduce varios cuellos de botella, lo que aumenta la latencia y reduce el rendimiento.
Las interfaces PCIe se convierten en un factor limitante, especialmente cuando se transfiere el caché de la CPU a la GPU para realizar cálculos. Las interfaces PCIe lentas pueden provocar que la latencia exceda los niveles normales en un orden de magnitud, lo que genera un tiempo de inactividad sustancial de la GPU.
Trabajos anteriores intentaron mitigar el problema del rendimiento lento de PCIe. Aún así, estos enfoques a menudo fallan debido a que la transferencia de datos y los tiempos de cálculo de la GPU no coinciden, particularmente con lotes y contextos de gran tamaño. Otros dependían de los recursos de la CPU, lo que nuevamente se convirtió en un factor limitante. Este artículo analiza un enfoque novedoso para la optimización de PCIe y GPU.
Investigadores de la Universidad del Sur de California proponen un método eficiente de inferencia LLM con reconocimiento de E/S de CPU-GPU para una utilización optimizada de PCIe. Aprovecha el recálculo parcial de la caché KV y la superposición asincrónica para abordar el cuello de botella del sistema al cargar grandes cachés KV. Su proceso implica transferir segmentos de activación más pequeños del caché a la GPU en lugar de transferir todo el caché KV. Luego, la GPU reconstruye toda la memoria caché a partir de estos bits de activación más pequeños. La clave está en calcular puntuaciones de atención que garanticen una pérdida mínima de información.
Los autores proponen un método totalmente automatizado para determinar las divisiones de recálculo y comunicación. Este trabajo consta de tres módulos para minimizar la latencia de GPU:
- Módulo de perfilador: recopila información del hardware del sistema, como el ancho de banda PCIe y la velocidad de procesamiento de la GPU.
- Módulo Programador: Formula el problema como una tarea de programación lineal para determinar el punto de división KV óptimo utilizando información del hardware y la configuración del usuario. El objetivo es maximizar la superposición entre los procesos de computación y comunicación.
- Módulo de tiempo de ejecución: coordina la transferencia de datos entre los dos dispositivos y gestiona las asignaciones de memoria.
El Módulo Programadorque es responsable de encontrar la división KV óptima, funciona de dos maneras:
Programación fila por fila: Reduce la latencia con un plan de ejecución fila por fila. Aquí, la GPU comienza a reconstruir la caché KV mientras las activaciones restantes se cargan de forma asincrónica. Programación columna por columna: Maximiza el rendimiento y admite inferencias significativas sobre el tamaño de los lotes al reutilizar los pesos del modelo en todos los lotes. Superpone la transmisión de caché KV y activaciones con el cálculo de MHA (atención de múltiples cabezas) en múltiples lotes en lugar de procesar cada capa secuencialmente en un lote. Además, utilizando una estrategia de paralelismo de comunicación de seis procesos, el Módulo de tiempo de ejecución permite el cálculo simultáneo de GPU y la comunicación CPU-GPU.
Los autores probaron el marco propuesto para una inferencia LLM eficiente utilizando una GPU NVIDIA A100 conectada a una CPU a través de una interfaz PCIe 4.0 x16. Se realizaron experimentos con dos objetivos para evaluar el rendimiento del marco:
- Carga de trabajo orientada a la latencia: El método propuesto superó las líneas de base y redujo la latencia en un 35,8 %.
- Carga de trabajo orientada al rendimiento: El método logró hasta un 29% de mejora en relación con la línea de base.
Conclusión:
El método de inferencia LLM con reconocimiento de E/S de CPU-GPU reduce de manera eficiente la latencia al tiempo que aumenta el rendimiento en la inferencia LLM. Aprovecha el recálculo parcial de la caché KV y lo superpone con la transmisión de datos para minimizar el tiempo de inactividad de la GPU y mejorar la eficiencia.
Verificar el Papel. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo y únete a nuestro Canal de telegramas y LinkedIn Grarriba. Si te gusta nuestro trabajo, te encantará nuestro hoja informativa.. No olvides unirte a nuestro SubReddit de más de 60.000 ml.
🚨 [Partner with us]: ‘Próxima revista/Informe: IA de código abierto en producción’
Adeeba Alam Ansari actualmente está cursando su doble titulación en el Instituto Indio de Tecnología (IIT) de Kharagpur, donde obtuvo una licenciatura en Ingeniería Industrial y una maestría en Ingeniería Financiera. Con un gran interés en el aprendizaje automático y la inteligencia artificial, es una lectora ávida y una persona curiosa. Adeeba cree firmemente en el poder de la tecnología para empoderar a la sociedad y promover el bienestar a través de soluciones innovadoras impulsadas por la empatía y una profunda comprensión de los desafíos del mundo real.