Actualmente, se observa una tendencia significativa: cada vez más empresas trasladan sus sistemas de modelos de lenguaje de gran tamaño (LLM) a la infraestructura interna. Ya sea por la latencia, el cumplimiento normativo o la privacidad de los datos, alojar tus modelos open source en hardware propio te permite controlar el proceso de adopción de la inteligencia artificial. Sin embargo, convertir los experimentos con modelos de lenguaje de gran tamaño en servicios ya en la etapa de producción implica muchos gastos y complicaciones considerables.

Para abordar estos desafíos, se diseñó llm-d, un marco open source nuevo que cuenta con el respaldo de importantes colaboradores, como Red HatIBMGoogle. Se centra en el núcleo del problema: la inferencia de inteligencia artificial, es decir, el proceso por el que tu modelo genera resultados para peticiones, agentes, generación aumentada por recuperación (RAG) y más.

Gracias a las decisiones de programación inteligentes (desagregación) y los patrones de enrutamiento específicos de la inteligencia artificial, con llm-d se pueden distribuir las cargas de trabajo para los modelos de lenguaje de gran tamaño de forma dinámica e inteligente. Para entender la importancia de esto, analicemos el funcionamiento del llm-d y los costos en inteligencia artificial que nos ahorra, al mismo tiempo que mejora el rendimiento.

El desafío de ajustar la inferencia de los modelos de lenguaje de gran tamaño

Hay patrones establecidos para ajustar la dimensión de los servicios web tradicionales en plataformas como Kubernetes. En general, las solicitudes HTTP estándar son rápidas y uniformes, y no tienen estado. Sin embargo, ajustar la inferencia de los modelos de lenguaje de gran tamaño es un problema muy diferente.

Una de las principales razones por las que se produce este problema es que las características de las solicitudes varían mucho. Por ejemplo, un patrón de generación aumentada por recuperación (RAG) podría utilizar una larga petición de entrada con mucho contexto de una base de datos vectorial para generar una respuesta breve de una sola oración. Por el contrario, una tarea de razonamiento podría comenzar con una petición breve y generar una respuesta larga de múltiples pasos. Esta variación crea desequilibrios de carga que pueden afectar el rendimiento y aumentar la latencia extrema (ITL). La inferencia de los modelos de lenguaje de gran tamaño también depende en gran medida de la memoria caché de clave-valor (KV), la memoria a corto plazo de estos modelos, para almacenar resultados intermedios. El equilibrio de carga tradicional desconoce el estado de esta memoria caché, por lo que las solicitudes se enrutan de forma ineficiente y los recursos informáticos no se usan de manera óptima.

Comparing RAG and reasoning-style LLM requests, showing how monolithic models and traditional inference server deployment causes inefficiency and resource waste.

Con Kubernetes, la estrategia actual es implementar los modelos de lenguaje de gran tamaño como contenedores monolíticos, es decir, grandes cajas negras que no se pueden ver ni controlar. Por esto, y por ignorar diversos factores, como la estructura de las peticiones, la cantidad de tokens, los objetivos de latencia para las respuestas (objetivos de nivel de servicio o SLO) y la disponibilidad de la memoria caché, es difícil ajustar el tamaño de los modelos de manera efectiva.

En resumen, nuestros sistemas de inferencia actuales no son eficientes y utilizan más recursos informáticos de los necesarios.

Inferencias más eficientes y rentables con llm-d

Si bien vLLM es compatible con una gran variedad de modelos en diversos sistemas de hardware, llm-d va un paso más allá. Como llm-d se basa en infraestructuras de TI empresariales ya desarrolladas, ofrece funciones de inferencia distribuidas y avanzadas que permiten ahorrar recursos y mejorar el rendimiento. Entre sus beneficios se incluyen un tiempo tres veces menor para alcanzar el primer token y el doble de rendimiento con limitaciones de latencia (objetivos de nivel de servicio). Si bien ofrece varias novedades importantes, el enfoque principal de llm-d son dos innovaciones que mejoran la inferencia:

  • Desagregación: dividir el proceso permite usar los aceleradores de hardware de manera más eficiente durante la inferencia. Esto implica separar el procesamiento de peticiones (fase de prellenado) de la generación de tokens (fase de decodificación) en cargas de trabajo individuales, llamadas pods. Esta separación permite ajustar y optimizar cada fase de manera independiente, ya que tienen diferentes demandas informáticas.
  • Capa de programación inteligente: esta innovación amplía la API de puerta de enlace de Kubernetes, lo que permite tomar decisiones de enrutamiento para las solicitudes entrantes después de un análisis más detallado. Aprovecha los datos del momento, como el uso de la memoria caché de clave-valor y la carga de los pods, para dirigir las solicitudes a la instancia más adecuada. De esta manera, aumenta el número de aciertos de la memoria caché y equilibra la carga de trabajo en todo el clúster.
Differences between a traditional LLM request flow and llm-d’s enhanced architecture featuring validation, prompt logging, scheduling, KV cache, and distributed GPU use.

Además de incorporar funciones como el almacenamiento en caché de los pares de clave-valor en las solicitudes para evitar que se vuelvan a procesar, llm-d separa la inferencia de los modelos de lenguaje de gran tamaño en servicios modulares e inteligentes para poder ajustar el rendimiento (y se basa en la gran variedad de opciones compatibles que proporciona vLLM). Analicemos cada una de estas tecnologías para entender cómo las utiliza llm-d, con algunos ejemplos prácticos.

Aumento del rendimiento con una latencia más baja gracias a la desagregación

La diferencia fundamental entre las fases de prellenado y decodificación de la inferencia en los modelos de lenguaje de gran tamaño presenta un desafío para asignar los recursos de forma uniforme. La fase de prellenado, que procesa la petición de entrada, suele depender de los recursos informáticos y requiere una gran capacidad de procesamiento para crear las entradas iniciales de la caché de clave-valor. Por otro lado, la fase de decodificación, en la que se generan los tokens uno por uno, suele depender del ancho de banda de la memoria, ya que en esencia implica leer y escribir en la memoria caché de clave-valor con relativamente poco procesamiento informático.

Al implementar la desagregación, llm-d permite que estos dos perfiles informáticos distintos se ejecuten en pods de Kubernetes independientes. Esto significa que puedes preparar los pods de prellenado con recursos optimizados para tareas que consumen muchos recursos informáticos, y los pods de decodificación con configuraciones personalizadas para la eficiencia en el ancho de banda de la memoria.

Funcionamiento de la puerta de enlace de inferencia con conocimientos sobre el modelo de lenguaje de gran tamaño

El enrutador de programación inteligente, que organiza el lugar y el modo en que se procesan las solicitudes de inferencia, es uno de los aspectos más importantes de las mejoras en el rendimiento de llm-d. Cuando una solicitud de inferencia llega a la puerta de enlace de llm-d (basada en kgateway), no solo se reenvía al siguiente pod disponible. En cambio, el selector de extremos (EPP), uno de los elementos principales del programador de llm-d, evalúa varios factores en el momento para determinar el destino óptimo:

  • Conocimiento de la memoria caché de clave-valor: el programador mantiene un índice del estado de la memoria caché de clave-valor en todas las réplicas de vLLM en ejecución. Si una solicitud nueva comparte un prefijo con una sesión que ya está almacenada en caché en un pod específico, el programador prioriza el enrutamiento a ese pod. Esto aumenta de modo considerable las tasas de aciertos de la memoria caché, lo que evita los procesamientos de prellenado redundantes y reduce de forma directa la latencia.
  • Conocimiento de la carga: el programador no solo cuenta las solicitudes, sino que también evalúa la carga real en cada pod de vLLM. Para ello, tiene en cuenta el uso de la memoria de la GPU y las colas de procesamiento, lo cual ayuda a evitar los bloqueos.
llm-d’s inference gateway routes requests to separate prefill tokenization and decode generation stages, both accessing a shared KV cache.

Este enfoque desarrollado en Kubernetes proporciona la capa de políticas, seguridad y capacidad de supervisión para la inferencia de inteligencia artificial generativa. Además de ayudar con el manejo del tráfico, esto permite registrar y auditar las peticiones (para el control y el cumplimiento normativo) e incorporar las medidas de seguridad antes del envío a la inferencia.

Empieza a usar llm-d

El proyecto llm-d está en pleno desarrollo. Si bien vLLM es ideal para las configuraciones con un solo servidor, llm-d está diseñado para los operadores que gestionen un clúster, con el objetivo de que la inferencia de inteligencia artificial sea eficiente y rentable. Si quieres explorar esta opción por tu cuenta, consulta el repositorio de llm-d en GitHubparticipa en la conversación sobre el tema en Slack. Es el lugar perfecto para hacer preguntas e involucrarte.

El futuro de la inteligencia artificial se basa en principios abiertos y colaborativos. Red Hat, junto con comunidades como vLLM y proyectos como llm-d, trabaja para que la inteligencia artificial sea más accesible, asequible y potente para los desarrolladores de todo el mundo.

Recurso

Introducción a la inteligencia artificial para las empresas: Guía para principiantes

Acelere su proceso de adopción de la inteligencia artificial con Red Hat OpenShift AI y Red Hat Enterprise Linux AI. Obtenga más información al respecto en esta guía para principiantes.

Sobre los autores

Cedric Clyburn (@cedricclyburn), Senior Developer Advocate at Red Hat, is an enthusiastic software technologist with a background in Kubernetes, DevOps, and container tools. He has experience speaking and organizing conferences including DevNexus, WeAreDevelopers, The Linux Foundation, KCD NYC, and more. Cedric loves all things open-source, and works to make developer's lives easier! Based out of New York.

Christopher Nuland is a Principal Technical Marketing Manager for AI at Red Hat and has been with the company for over six years. Before Red Hat, he focused on machine learning and big data analytics for companies in the finance and agriculture sectors. Once coming to Red Hat, he specialized in cloud native migrations, metrics-driven transformations, and the deployment and management of modern AI platforms as a Senior Architect for Red Hat’s consulting services, working almost exclusively with Fortune 50 companies until recently moving into his current role. Christopher has spoken worldwide on AI at conferences like IBM Think, KubeCon EU/US, and Red Hat’s Summit events.

UI_Icon-Red_Hat-Close-A-Black-RGB

Navegar por canal

automation icon

Automatización

Las últimas novedades en la automatización de la TI para los equipos, la tecnología y los entornos

AI icon

Inteligencia artificial

Descubra las actualizaciones en las plataformas que permiten a los clientes ejecutar cargas de trabajo de inteligecia artificial en cualquier lugar

open hybrid cloud icon

Nube híbrida abierta

Vea como construimos un futuro flexible con la nube híbrida

security icon

Seguridad

Vea las últimas novedades sobre cómo reducimos los riesgos en entornos y tecnologías

edge icon

Edge computing

Conozca las actualizaciones en las plataformas que simplifican las operaciones en el edge

Infrastructure icon

Infraestructura

Vea las últimas novedades sobre la plataforma Linux empresarial líder en el mundo

application development icon

Aplicaciones

Conozca nuestras soluciones para abordar los desafíos más complejos de las aplicaciones

Virtualization icon

Virtualización

El futuro de la virtualización empresarial para tus cargas de trabajo locales o en la nube