Investigadores de la Universidad de Pekín presentan FastServe un sistema de servicio de inferencia distribuida para modelos de lenguaje grandes (LLMs).

Investigadores de la Universidad de Pekín presentan FastServe, un sistema de inferencia distribuida para modelos de lenguaje grandes (LLMs).

Las mejoras en los modelos de lenguaje grandes (LLM) crean oportunidades en diversos campos e inspiran una nueva ola de aplicaciones interactivas de IA. La más destacada es ChatGPT, que permite a las personas comunicarse de forma informal con un agente de IA para resolver problemas que van desde ingeniería de software hasta traducción de idiomas. ChatGPT es uno de los programas de mayor crecimiento en la historia, gracias a sus capacidades notables. Muchas empresas siguen la tendencia de lanzar LLM y productos similares a ChatGPT, incluidos New Bing de Microsoft, Bard de Google, LLaMa de Meta, Alpaca de Stanford, Dolly de Databricks y Vicuna de UC Berkeley. 

La inferencia de LLM difiere de la inferencia de otro modelo de red neuronal profunda (DNN), como ResNet, porque tiene características especiales. Las aplicaciones de IA interactivas construidas sobre LLM deben proporcionar inferencias para funcionar. El diseño interactivo de estas aplicaciones requiere tiempos rápidos de finalización de tareas (JCT) para que la inferencia de LLM brinde experiencias de usuario atractivas. Por ejemplo, los consumidores esperan una respuesta inmediata cuando envían datos a ChatGPT. Sin embargo, la infraestructura de servicio de inferencia está bajo una gran presión debido a la cantidad y complejidad de los LLM. Las empresas configuran clústeres costosos con aceleradores como GPUs y TPUs para manejar las operaciones de inferencia de LLM. 

Los trabajos de inferencia de DNN suelen ser deterministas y altamente predecibles, es decir, el modelo y el hardware determinan en gran medida el tiempo de ejecución del trabajo de inferencia. Por ejemplo, el tiempo de ejecución de varias fotos de entrada varía un poco al usar el mismo modelo ResNet en una GPU determinada. Por el contrario, las posiciones de inferencia de LLM tienen un patrón autoregresivo único. El trabajo de inferencia de LLM pasa por varias rondas. Cada iteración produce un token de salida, que luego se agrega a la entrada para crear el token siguiente en la siguiente iteración. La longitud de salida, que es desconocida al principio, afecta tanto el tiempo de ejecución como la longitud de entrada. La mayoría de las tareas de inferencia de modelos deterministas, como las realizadas por ResNet, son atendidas por sistemas de servicio de inferencia existentes como Clockwork y Shepherd. 

Ellos basan sus decisiones de programación en perfiles precisos de tiempo de ejecución, lo cual es ineficaz para la inferencia de LLM con tiempos de ejecución variables. El método más avanzado para la inferencia de LLM es Orca. Sugiere una programación a nivel de iteración, lo que permite agregar nuevos trabajos o eliminar trabajos completados del lote de procesamiento actual después de cada iteración. Sin embargo, procesa los trabajos de inferencia utilizando el esquema de primero en entrar, primero en salir (FCFS). Una tarea programada se ejecuta continuamente hasta que se completa. El lote de procesamiento no se puede aumentar con un número arbitrario de funciones entrantes debido a la capacidad de memoria GPU limitada y los requisitos de bajo JCT de los trabajos de inferencia. El bloqueo de línea principal en el procesamiento de finalización es bien conocido. 

Debido a que los LLM son de gran tamaño y tardan mucho tiempo en ejecutarse en términos absolutos, el problema es particularmente grave para las operaciones de inferencia de LLM. Los trabajos de inferencia de LLM grandes, especialmente aquellos con longitudes de salida largas, tardarían mucho tiempo en completarse y obstruirían trabajos cortos subsiguientes. Investigadores de la Universidad de Pekín desarrollaron una solución de servicio de inferencia distribuida para LLM llamada FastServe. Para permitir la interrupción en el nivel de cada token de salida, FastServe utiliza una programación a nivel de iteración y el patrón autoregresivo de la inferencia de LLM. FastServe puede elegir si continuar una tarea programada después de generar un token de salida o interrumpirla con otro trabajo en la cola. Esto permite que FastServe reduzca JCT y el bloqueo de línea principal a través de una programación preemptiva. 

Un programador de cola de retroalimentación multinivel (MLFQ) de salto y unión único sirve como base de FastServe. MLFQ es un método conocido para minimizar el JCT promedio en entornos sin información. Cada trabajo comienza en la cola de prioridad más alta y, si no se completa en un cierto tiempo, se degrada a la siguiente cola de prioridad. La inferencia de LLM es semiagnóstica a la información, lo que significa que si bien la longitud de salida no se conoce de antemano, se conoce la longitud de entrada. Esta es la principal diferencia entre la inferencia de LLM y la situación convencional. La longitud de entrada determina el tiempo de ejecución para crear el token de salida inicial, que puede llevar mucho más tiempo que los tokens siguientes debido al patrón autoregresivo de la inferencia de LLM.

El tiempo de ejecución del token de salida inicial ocupa la mayor parte del trabajo cuando la entrada es larga y la salida es breve. Utilizan esta cualidad para agregar el salto y la unión a la MLFQ tradicional. Cada tarea de llegada se une a una cola adecuada comparando el tiempo de ejecución del primer token de salida con los umbrales de degradación de las líneas, en lugar de ingresar siempre a la cola de prioridad más alta. Las colas de prioridad más altas que la cola unida se pasan por alto para minimizar las degradaciones. La programación preemptiva con MLFQ agrega una sobrecarga de memoria adicional para mantener los trabajos iniciados pero incompletos en un estado intermedio. Los LLM mantienen una caché de clave-valor para cada capa de transformador para almacenar el estado intermedio. Siempre que no se exceda el tamaño del lote, la caché FCFS debe almacenar los estados intermedios de los trabajos programados. Sin embargo, pueden haber comenzado trabajos adicionales en MLFQ, pero se asignan a colas con prioridades menores. Todos los trabajos iniciados pero incompletos en MLFQ deben tener el estado intermedio mantenido por la caché. Dado el tamaño de los LLM y el espacio de memoria limitado de las GPUs, la caché puede desbordarse. Cuando la caché está llena, el programador puede retrasar de manera ingenua la iniciación de nuevos trabajos, pero esto crea nuevamente bloqueo de línea principal. 

En cambio, desarrollan un sistema de gestión de memoria GPU productivo que carga de manera proactiva el estado de los procesos en colas de baja prioridad cuando se programan y descarga el estado cuando la caché está casi llena. Para aumentar la eficiencia, utilizan técnicas de canalización y operaciones de memoria asíncronas. FastServe utiliza técnicas de paralelización como paralelismo tensorial y de canalización para proporcionar servicios de inferencia distribuida con muchas GPU para modelos enormes que no caben en una sola GPU. Para reducir las burbujas en la canalización, el programador realiza numerosos lotes de trabajos de manera concurrente. Un caché distribuido de clave-valor es organizado por el administrador de caché de clave-valor, que también distribuye la gestión del intercambio de memoria entre la GPU y la memoria del host. Implementaron un prototipo del sistema FastServe basado en NVIDIA FasterTransformer. Los resultados revelan que FastServe mejora el tiempo medio y el tiempo máximo de finalización de los trabajos en hasta un 5.1 y 6.4, respectivamente, en comparación con la solución de vanguardia Orca.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Revelando los secretos de las neuronas multimodales Un viaje desde Molyneux hasta los Transformadores

Los Transformers podrían ser una de las innovaciones más importantes en el dominio de la inteligencia artificial. Est...

Investigación

Un paso hacia pilotos automáticos seguros y confiables para volar.

Un nuevo enfoque basado en inteligencia artificial para controlar robots autónomos satisface los objetivos a menudo c...

Inteligencia Artificial

Los camareros robots chinos alimentan la ansiedad coreana sobre la escasez de mano de obra

Los surcoreanos están ansiosos por la llegada de una oleada de camareros robots chinos baratos debido a la escasez de...

Inteligencia Artificial

Desenmascarando Deepfakes Aprovechando los patrones de estimación de la posición de la cabeza para mejorar la precisión de detección

La aparición de la capacidad de producir videos “falsos” ha generado preocupaciones significativas con re...