Modelos y plataformas de IA

El Futuro de la Inferencia Servilleta para Modelos de Lenguaje Grande

mm
Añade Unite.AI a tus fuentes preferidas en Google

Los avances recientes en modelos de lenguaje grande (LLM) como GPT-4, PaLM han llevado a capacidades transformadoras en tareas de lenguaje natural. Los LLM se están incorporando en diversas aplicaciones como chatbots, motores de búsqueda y asistentes de programación. Sin embargo, servir LLM a escala sigue siendo un desafío debido a sus sustanciales requisitos de GPU y memoria.

Los enfoques para superar esto generalmente se dividen en dos categorías principales:

  1. Técnicas de Compresión de Modelos

Estas técnicas apuntan a reducir el tamaño del modelo mientras se mantiene la precisión. Los enfoques comunes incluyen:

  • Poda – Eliminar parámetros redundantes o menos importantes del modelo. Esto crea un modelo disperso con menos parámetros.
  • Cuantización – Usar números de menor precisión como int8 o bfloat16 para representar pesos en lugar de fp32 o fp16. Esto reduce la huella de memoria.
  • Destilación de Conocimiento – Entrenar un modelo “estudiante” más pequeño para imitar a un modelo “maestro” grande. El modelo más pequeño se utiliza entonces para inferencia.
  1. Ejecución Selectiva

En lugar de modelos comprimidos, estas técnicas ejecutan selectivamente solo partes del modelo por inferencia:

  • Activaciones dispersas – Saltar cálculos en activaciones cero.
  • Cómputo condicional – Ejecutar solo ciertas capas condicionadas a la entrada.

En el lado complementario con respecto a la arquitectura de software; para permitir una implementación más rápida de LLM, los investigadores han propuesto sistemas de inferencia servilleta. En arquitecturas servilleta, los LLM se alojan en clústeres de GPU compartidos y se asignan dinámicamente según la demanda. Esto permite una utilización eficiente de las GPU y reduce los costos para los desarrolladores. Las implementaciones prominentes incluyen Amazon (AMZN ) SageMaker, Microsoft Azure ML y opciones de código abierto como KServe.

A pesar de la promesa de LLM servilleta, los sistemas existentes exhiben sobrecargas de latencia que degradan la experiencia del usuario en aplicaciones interactivas:

  1. Descargas de puntos de control costosas: Los LLM tienen huellas de memoria grandes, a menudo de gigabytes a terabytes de tamaño. Descargar puntos de control desde almacenamiento remoto es tiempo consumido, tomando más de 20 segundos incluso con redes optimizadas.
  2. Carga de puntos de control ineficiente: Incluso con almacenamiento local SSD, cargar puntos de control en memoria de GPU toma decenas de segundos debido a factores como la deserialización de tensores y la asignación. Esto agrega retrasos significativos más allá del tiempo de inicio del contenedor.

Para abordar estos problemas, los investigadores de MIT CSAIL propusieron ServerlessLLM, un sistema innovador que logra inferencia servilleta de baja latencia para LLM. ServerlessLLM mejora la localidad explotando la capacidad y ancho de banda abundantes pero subutilizados en almacenamiento de servidor multi-nivel para la implementación de LLM.

Visión general de los sistemas de inferencia servilleta de LLM

Visión general de los sistemas de inferencia servilleta de LLM

Innovaciones clave en ServerlessLLM ServerlessLLM incorpora varios diseños novedosos para reducir los tiempos de carga de LLM en entornos servilleta:

  1. Carga de puntos de control rápida
  • Formato de punto de control optimizado para carga que permite lecturas secuenciales rápidas y direcciones de tensor en memoria eficientes.
  • Tubería de carga de puntos de control de multi-nivel que maximiza la utilización del ancho de banda a través de la red, SSD, DRAM y memoria de GPU mediante técnicas como I/O directo, transferencia de memoria fijada y paralelismo.
  1. Migración en vivo para inferencia impulsada por localidad
  • Migración basada en tokens que solo transmite tokens de prompt esenciales sobre la red, evitando la transferencia lenta de instantáneas.
  • Migración de dos fases que permite inferencia ininterrumpida al recomputar estados de caché en el servidor de destino de forma asíncrona antes de transferir tokens finales.
  1. Asignación de servidor optimizada para latencia
  • Modelos precisos para estimar tiempos de carga de puntos de control desde cada nivel y tiempos de migración para un servidor.
  • Programador consciente de la localidad que selecciona servidores que minimizan la latencia de inicio esperada utilizando los modelos anteriores.

Estas optimizaciones permiten que ServerlessLLM reduzca los tiempos de carga de LLM en 4-8 veces y los tiempos de inicio de extremo a extremo en más de 25 veces en comparación con sistemas existentes como PyTorch, TensorFlow y KServe.

Veamos más a fondo cómo ServerlessLLM logra estos ganancias de rendimiento significativas.

Acelerando la Carga de Puntos de Control

El primer obstáculo importante abordado por ServerlessLLM es la alta latencia de carga de puntos de control de LLM desde el almacenamiento hasta la memoria de GPU.

Para permitir una carga de puntos de control rápida, ServerlessLLM introduce:

  1. Formato de punto de control optimizado para carga

Los puntos de control estándar utilizados por frameworks como PyTorch están diseñados para el entrenamiento y la depuración del modelo. Pero para la inferencia servilleta, los puntos de control se leen solo y se acceden repetidamente.

Para optimizar para un uso intensivo en lectura, ServerlessLLM convierte los puntos de control en un formato con dos propiedades clave:

  • Lectura de chunk secuencial: Los tensores se agrupan en archivos binarios por GPU, facilitando lecturas secuenciales grandes.
  • Dirección de tensor eficiente: Un índice asigna nombres de tensor a desplazamientos de memoria, permitiendo la restauración directa en memoria sin deserialización.
  1. Tubería de carga de puntos de control de multi-nivel

ServerlessLLM aprovecha la arquitectura de servidor de GPU con niveles de almacenamiento como SSD y redes que conectan a las GPU a través de PCIe, NVMe, etc.

El sistema incorpora una tubería de multi-etapa para maximizar la utilización del ancho de banda a través de todos los niveles:

  • Los fragmentos de datos en memoria se asignan utilizando memoria fijada para una transferencia de GPU rápida.
  • Se utiliza I/O directo para lecturas de SSD eficientes sin sobrecargas de caché.
  • Varios hilos leen diferentes fragmentos de almacenamiento en paralelo.
  • La coordinación entre etapas se realiza a través de colas de tareas asíncronas.

Juntos, esto permite saturar la capacidad de ancho de banda incluso de los niveles más rápidos como NVMe RAID. Los experimentos revelan que ServerlessLLM logra una carga 6-8 veces más rápida que PyTorch/TensorFlow, reduciendo los tiempos de inicio para LLM grandes de más de un minuto a menos de 10 segundos.

Inferencia de LLM Impulsada por Localidad a través de Migración en Vivo

Con la carga acelerada, ServerlessLLM enfrenta un nuevo desafío: cómo aprovechar los puntos de control pre-cargados para la localidad sin interrumpir las inferencias en curso en servidores ocupados.

ServerlessLLM introduce una técnica novedosa: migración en vivo de la inferencia de LLM a través de servidores de GPU. Esto permite transferir la ejecución de forma transparente a servidores con puntos de control locales disponibles.

Habilitadores clave de la migración en vivo de LLM:

  1. Migración basada en tokens

En lugar de tomar una instantánea del estado completo del modelo, ServerlessLLM solo migra los tokens de prompt mínimos sobre la red. Esto transfiere órdenes de magnitud menos datos que las instantáneas.

  1. Migración de dos fases

El servidor de destino pre-computa estados de caché de forma asíncrona a partir de los tokens de prompt. Una vez listo, el servidor de origen transfiere los tokens finales antes de liberar recursos. Esto evita retrasos en la inferencia.

Los experimentos revelan que la migración basada en tokens reduce los tiempos de migración de decenas de segundos a menos de un segundo incluso para secuencias largas. La migración en vivo es crucial para prevenir retrasos de cola al lograr una asignación impulsada por la localidad.

Programación de Modelo Optimizada para Latencia

Para minimizar la latencia de extremo a extremo, ServerlessLLM mejora el programador para optimizar la selección de servidor considerando la localidad. Esto implica:

  1. Estimador de tiempo de carga detallado

Los modelos predicen tiempos de carga desde la red, cachés de SSD y memoria para cada servidor utilizando métricas como retrasos de cola, tamaños de modelo y ancho de banda medido.

  1. Predicción de tiempo de migración precisa

El programador estima los tiempos de migración para los servidores utilizando el número de tokens de prompt y salida. Rastrea el progreso de la inferencia de forma asíncrona para evitar sobrecargas.

  1. Asignación consciente de la localidad

Para cada solicitud de inferencia, el programador evalúa los tiempos de carga y migración estimados a través de los servidores. Selecciona el servidor que minimiza la latencia de inicio esperada.

El programador también mantiene colas de tareas de servidor y aprovecha una tienda fuertemente consistente para la tolerancia a fallos. Juntos, estas innovaciones reducen las sobrecargas de programación mientras maximizan los beneficios de la localidad.

Evaluando el Rendimiento de ServerlessLLM

Experimentos exhaustivos miden la efectividad de extremo a extremo de ServerlessLLM en comparación con sistemas existentes utilizando modelos del mundo real como OPT-175B y cargas de trabajo modeladas a partir de trazas de Azure.

Resultados clave:

  • Micro-benchmarks: ServerlessLLM acelera la carga de puntos de control en 3,6-8,2 veces en comparación con PyTorch/TensorFlow. Satura completamente el ancho de banda de almacenamiento, incluso para NVMe RAID de última generación.
  • Programación: ServerlessLLM reduce la latencia de asignación en 4-12 veces en comparación con la programación aleatoria, destacando los beneficios de la conciencia de localidad. La migración en vivo evita retrasos de cola.
  • Servicio de extremo a extremo: Para modelos grandes como OPT-30B, ServerlessLLM mejora la latencia del percentil 99 en 28-200 veces en comparación con sistemas como KServe y Ray Serve. También mejora la eficiencia de recursos.

Estos ganancias sustanciales demuestran la capacidad de ServerlessLLM para superar los cuellos de botella en implementaciones servilleta existentes y desbloquear el poder de los LLM para servicios interactivos.

Las optimizaciones introducidas en ServerlessLLM, como la carga de multi-nivel, la migración en vivo y la programación impulsada por la latencia, pueden ayudar a informar el diseño de futuras arquitecturas servilleta. La capacidad del sistema para reducir los tiempos de carga y de inicio desbloquea la implementación escalable de modelos de lenguaje grande para aplicaciones prácticas.

Mirando Hacia Adelante: Desafíos en Curso

Aunque es un gran avance, ServerlessLLM representa solo el primer paso en la optimización de la inferencia servilleta para LLM masivos. Varios problemas abiertos permanecen, incluyendo:

  • Predecir la demanda de modelo en tiempo real para guiar la provisión y la pre-carga
  • Colocar inteligentemente los puntos de control a través de los servidores para maximizar los aciertos de caché
  • Escalar eficientemente los algoritmos de programación para manejar clústeres más grandes
  • Garantizar la equidad en la asignación de recursos a través de modelos y desarrolladores
  • Generalizar innovaciones como la migración en vivo a otras cargas de trabajo servilleta

Abordar estas áreas puede ayudar a construir sobre la promesa de LLM servilleta y hacer que sus capacidades sean aún más accesibles. Más allá de las optimizaciones a nivel de sistema, reducir la huella de carbono y los daños potenciales de los modelos grandes sigue siendo una prioridad urgente.

ServerlessLLM demuestra que existe un gran espacio para la innovación en arquitecturas servilleta de próxima generación para cargas de trabajo de IA. A medida que los LLM siguen creciendo en tamaño y popularidad, soluciones como ServerlessLLM que desbloquean su escalabilidad serán cada vez más impactantes. La confluencia de la investigación de sistemas y aprendizaje automático puede introducir nuevos paradigmas en el servicio, intercambio y escalado de modelos de IA de forma segura y sostenible.

He dedicado los últimos cinco años sumergiéndome en el fascinante mundo de Machine Learning y Deep Learning. Mi pasión y experiencia me han llevado a contribuir a más de 50 proyectos de ingeniería de software diversos, con un enfoque particular en AI/ML. Mi curiosidad en curso también me ha llevado hacia el Procesamiento de Lenguaje Natural, un campo que estoy ansioso por explorar más a fondo.