La guía práctica para autoalojar sistemas LLM compuestos
Organizado durante SF #TechWeek, el meetup mensual de Zilliz “Unstructured Data Meetup” reunió a más de 800 builders, fundadores y VCs para debatir los últimos avances en el ecosistema de IA. La segunda charla, impartida por Chaoyu Yang (Fundador/CEO de BentoML), ofreció consejos prácticos para quienes prefieren el control y la personalización de autoalojar modelos de lenguaje grandes (LLMs) mientras intentan lograr el rendimiento de simplemente llamar a una API gestionada. BentoML comparte sus conocimientos de investigación en orquestación de IA, demostrando soluciones que desarrolló para optimizar problemas comunes de rendimiento al autoalojar modelos.
En esta publicación, recapitularemos los puntos clave de la charla de Chaoyu y analizaremos los principales desafíos, consideraciones y prácticas para autoalojar tus LLMs. También exploraremos cómo integrar BentoML y Milvus para construir aplicaciones GenAI más potentes.
El LLM Doom Stack
Como alguien relativamente nuevo en IA, me resultó más fácil entender BentoML y Milvus dentro del contexto del stack moderno de LLM. Sin ningún orden en particular—solo porque suena genial—exploremos lo que llamo el 'LLM DOOM Stack.'
Datos: Preparar, almacenar y procesar conjuntos de datos a gran escala para entrenamiento e inferencia de alta calidad. Estas tecnologías incluyen pipelines de datos, modelos de embeddings, y bases de datos vectoriales (como Zilliz/Milvus, ¡woo!)
Operaciones: Monitorear, escalar y mantener la salud y el rendimiento de los modelos desplegados. Observabilidad en tiempo real para depuración activa con el fin de mantener la fiabilidad.
Orquestación: Desplegar y escalar modelos en distintas infraestructuras, gestionando el flujo entre LLMs, sistemas externos y usuarios. (Aquí es donde BentoML desempeña un papel clave.)
Modelos de IA: El corazón de las aplicaciones LLM: entrenar, ajustar finamente y optimizar modelos para tareas específicas, ya sea usando APIs, modelos de código abierto o modelos preentrenados.
Figure- The LLM Doom Stack.png
Figura: El LLM Doom Stack (adaptado de esta imagen.)
Toda startup de infraestructura de IA encaja dentro de este marco DOOM. Milvus y su servicio en la nube gestionado, Zilliz Cloud, son bases de datos vectoriales creadas para almacenar, indexar y recuperar datos no estructurados en representaciones numéricas llamadas embeddings vectoriales en un espacio de alta dimensionalidad. Son componentes fundamentales de diversos sistemas impulsados por LLM, particularmente la generación aumentada por recuperación (RAG). BentoML proporciona optimizaciones operativas para los flujos de trabajo actuales de LLM. Al tomar prestados conceptos que han demostrado funcionar con sistemas operativos y combinarlos con investigación respaldada por datos, BentoML ha demostrado ofrecer un rendimiento superior para construir y desplegar LLMs—y su fundador, Chaoyu, ha compartido sus secretos en esta charla.
El dilema de los LLM: ¿autoalojar o simplemente llamar a la API?
Una de las decisiones más críticas al desplegar LLMs es si autoalojarlos o depender de APIs gestionadas. Ambas opciones vienen con sus propias compensaciones, por lo que es esencial sopesar la comodidad frente al control. Las APIs gestionadas resultan atractivas por su facilidad de uso, menor sobrecarga de mantenimiento y capacidad de escalado rápido, mientras que el autoalojamiento ofrece control total y flexibilidad, permitiendo una personalización más profunda. En última instancia, la decisión para la mayoría de los equipos se reduce a equilibrar la velocidad de despliegue a corto plazo con los objetivos de escalabilidad y rendimiento a largo plazo.
Figura- Beneficios y desafíos del autoalojamiento de LLMs.png
Figura: Beneficios y desafíos del autoalojamiento de LLMs
¿Quién debería autoalojar LLMs?
Chaoyu comenzó su charla con una encuesta rápida sobre LLMs gestionados frente a autoalojados. La mayoría de los asistentes levantaron la mano por las APIs gestionadas, y es comprensible: construir, escalar y mantener la infraestructura mientras desarrollas simultáneamente tu aplicación no es una tarea fácil.
Chaoyu destacó que los servicios gestionados, aunque convenientes, a menudo priorizan el rendimiento sobre la optimización para casos de uso específicos. El autoalojamiento, por otro lado, permite el ajuste fino personalizado de los modelos, estrategias avanzadas de inferencia y calidad y latencia predecibles.
Sin embargo, el autoalojamiento no es la opción adecuada para todos. Entonces, ¿quién debería considerar exactamente autoalojar LLMs? Estas son las razones clave para explorar este enfoque:
Figura- ¿Quién debería autoalojar LLMs? .png
Figura: ¿Quién debería autoalojar LLMs?
Control: El autoalojamiento te permite ejecutar LLMs bajo tus propios términos, cumpliendo con la seguridad de los datos, las normativas de privacidad y las necesidades organizativas específicas. Esto es especialmente cierto para industrias con requisitos estrictos de protección de datos, donde los datos sensibles no pueden salir de tu infraestructura.
Personalización: Con el autoalojamiento, puedes ajustar finamente los modelos y optimizar las estrategias de inferencia para tu caso de uso específico, logrando mejor rendimiento, velocidad y precisión que lo que pueden ofrecer las APIs gestionadas. También obtienes la flexibilidad de experimentar con técnicas avanzadas de inferencia como la decodificación Chain of Thought (CoT) o Equilibrium Search, que solo son posibles con control total sobre la capa de inferencia.
Beneficios de costes a largo plazo: Aunque el autoalojamiento puede conllevar costes iniciales más altos en términos de infraestructura y mantenimiento, puede ofrecer ahorros de costes a largo plazo. Puedes optimizar los costes con el tiempo y escalar aprovechando plataformas de código abierto como BentoML y OpenLLM sin quedar atado a los modelos de precios de los proveedores.
Desafíos clave y optimizaciones para autoalojar LLMs
Autoalojar LLMs proporciona un mayor control, pero conlleva una serie de desafíos técnicos, particularmente en torno al escalado, la optimización de inferencia y el problema del arranque en frío. BentoML ofrece un conjunto de soluciones para abordar estos problemas, permitiendo a los equipos optimizar sus despliegues de manera eficiente. Chaoyu compartió los enfoques clave que utilizaron para abordar dichos desafíos.
Optimización de inferencia
Al autoalojar LLMs, optimizar la inferencia es crucial para mejorar el rendimiento y reducir los costes. Chaoyu destacó varias técnicas clave:
Figura- Optimización de inferencia de LLM- Las pilas de la tabla.png
Figura: Optimización de inferencia de LLM: Las pilas de la tabla
Agrupación de solicitudes
Como una de las estrategias más impactantes, la agrupación de solicitudes puede aumentar el rendimiento hasta 23 veces. Al procesar múltiples solicitudes en paralelo en lugar de secuencialmente, puedes maximizar la utilización de los recursos de la GPU, reduciendo el tiempo de inactividad y mejorando la eficiencia, especialmente para aplicaciones de alto tráfico.
Transmisión de tokens
Otra optimización esencial es la transmisión de tokens, que devuelve tokens de forma incremental a medida que se generan. Este enfoque mejora significativamente la latencia percibida, particularmente en aplicaciones en tiempo real como los chatbots, donde tiempos de respuesta más rápidos mejoran la experiencia del usuario.
Cuantización
Además, la cuantización reduce el uso de memoria y la latencia de inferencia al disminuir la precisión del modelo (por ejemplo, de 32 bits a 8 bits). Aunque este enfoque puede causar una ligera reducción en la calidad de salida para ciertas tareas, la compensación vale la pena por las mejoras de rendimiento.
Optimizaciones de kernel
Optimizar a nivel de kernel permite optimizaciones de GPU de bajo nivel adaptadas a las cargas de trabajo de LLM, garantizando que las tareas computacionales se gestionen de la manera más eficiente posible. Sin embargo, estas optimizaciones pueden reducir la portabilidad entre diferentes plataformas de hardware.
Paralelismo de modelos
Para modelos extremadamente grandes (más de 70B parámetros), distribuir la carga de trabajo entre múltiples GPU permite una inferencia más eficiente. Si bien esto mejora el rendimiento, introduce cierta sobrecarga de comunicación entre GPU.
Escalado de la inferencia de LLM: autoescalado basado en concurrencia
Un desafío común en entornos autoalojados es gestionar la escala. Las métricas de escalado tradicionales, como la utilización de CPU/GPU y las consultas por segundo (QPS), son insuficientes para los LLM, que tienen demandas de recursos variables según la complejidad de la entrada.
Chaoyu explicó que el escalado basado en concurrencia es un enfoque más eficaz. Este método monitorea la cantidad de solicitudes concurrentes para determinar la carga del sistema y ajusta dinámicamente los recursos en función del tamaño del lote. Este método garantiza que el sistema escale con precisión cuando sea necesario, evitando el sobreaprovisionamiento y reduciendo los costos, a la vez que mantiene un alto rendimiento durante los picos de tráfico.
Caché de prefijos para ahorrar costos
Una de las formas más eficaces de reducir costos y mejorar el rendimiento en entornos de autoalojamiento es mediante el caché de prefijos, que puede generar más del 90% de ahorro de costos. Esta estrategia funciona almacenando en caché las partes comunes de los prompts, como instrucciones del sistema o contenido estático, para evitar cálculos redundantes.
Al colocar la información estática al comienzo de las solicitudes, aumentas la probabilidad de aciertos de caché, lo que reduce la carga computacional para solicitudes posteriores con estructuras similares. Esto es especialmente útil para aplicaciones que gestionan consultas frecuentes y repetidas, donde la mayor parte del prompt permanece igual. El caché de prefijos reduce la latencia y disminuye el uso de recursos, optimizando significativamente el rendimiento y los costos de la inferencia de LLM.
El problema del arranque en frío
Otro desafío importante en el autoalojamiento es el problema del arranque en frío: el retraso que se produce cuando las nuevas instancias tardan en estar listas para gestionar tráfico. Chaoyu analizó dos estrategias clave para superar este problema.
Una solución es tener modelos precalentados en espera. Esto garantiza que los modelos estén listos al instante para gestionar solicitudes cuando se produzca un aumento repentino, minimizando los retrasos de inicio.
Otra optimización crítica es reducir el tamaño de las imágenes de contenedor. Al reducir las dependencias innecesarias, puedes disminuir drásticamente el tiempo necesario para extraer imágenes al escalar servicios dinámicamente. Por ejemplo, una imagen de 154MB se cargará mucho más rápido que una imagen voluminosa de 6.7GB, reduciendo significativamente el tiempo de inicio.
Además, transmitir los pesos del modelo progresivamente a la memoria de la GPU en lugar de cargarlos secuencialmente reduce aún más el tiempo de inicialización. Esto garantiza que tu sistema pueda gestionar picos repentinos de tráfico sin largos retrasos de inicio, mejorando la capacidad de respuesta general de tus modelos autoalojados.
Integración de BentoML y Milvus para aplicaciones de LLM más potentes
BentoML optimiza los sistemas de serving en línea para aplicaciones de IA e inferencia de modelos. Su servicio gestionado, BentoCloud, ofrece una gama de modelos de IA de código abierto de última generación, incluidos Llama 3, Stable Diffusion, CLIP y Sentence Transformers. Estos modelos preconstruidos se pueden desplegar con un solo clic en la plataforma.
Milvus es una base de datos vectorial de código abierto creada para almacenar, indexar y buscar datos no estructurados a escala de miles de millones mediante embeddings vectoriales de alta dimensión. Es ideal para aplicaciones modernas de IA como RAG, búsqueda semántica, búsqueda multimodal y sistemas de recomendación.
BentoCloud se integra sin problemas con Milvus y su servicio gestionado, Zilliz Cloud, lo que permite el desarrollo sencillo de potentes aplicaciones impulsadas por LLM, en particular Retrieval Augmented Generation (RAG). RAG es una técnica para mejorar la salida de los LLM proporcionando al modelo conocimiento externo al que no tenía acceso.
Puedes usar BentoCloud para servir modelos de embeddings y convertir datos no estructurados en embeddings vectoriales, que luego pueden almacenarse y recuperarse en Milvus (o Zilliz Cloud). Milus luego recupera los resultados más relevantes y los proporciona como contexto al LLM para generar resultados más precisos.
Figure- RAG workflow.png
Para obtener más información sobre cómo crear RAG u otros tipos de aplicaciones GenAI, consulta los tutoriales y blogs a continuación:
Tutorial: Retrieval-Augmented Generation (RAG) with Milvus and BentoML | Milvus Documentation
Blog | Infrastructure Challenges in Scaling RAG with Custom AI Models
Video | RAG as a service with BentoML
Resumen
Implementar LLMs implica decisiones y desafíos críticos, desde elegir entre autoalojamiento y APIs gestionadas hasta optimizar el rendimiento y escalar. Aunque las APIs gestionadas ofrecen comodidad y simplicidad, el autoalojamiento proporciona mayor control, flexibilidad y eficiencia de costes a largo plazo para equipos que necesitan soluciones personalizadas. La plataforma de BentoML aborda muchas de las complejidades del autoalojamiento, ofreciendo herramientas potentes para optimizar la inferencia, escalar de manera eficiente y superar obstáculos técnicos como el problema del arranque en frío.
Al aprovechar BentoML, Milvus o sus servicios gestionados, los equipos pueden integrar sin problemas las capas de Datos y Operaciones de sus aplicaciones LLM, creando sistemas de alto rendimiento que satisfacen sus necesidades específicas.
Si estás listo para sumergirte en el autoalojamiento de LLMs y crear aplicaciones LLM, herramientas como BentoML, OpenLLM y Milvus facilitan comenzar y optimizar para tu caso de uso único.
Forma equipo con personas dedicadas a optimizar su capa de la pila DOOM. Apóyate en los hombros de gigantes, aprovecha el mundo como Arquímedes y mantén el impulso.
Sigue leyendo

Top 10 Context Engineering Techniques You Should Know for Production RAG
A practical guide to context engineering for production LLM systems, covering RAG, context processing, memory, agents, and multimodal context.

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.



