Volver
Kevin Riedl

12 min de lectura · 16 de agosto de 2026
Última revisión

Siguiente
Se crea en tu dispositivo, sin conectar con Instagram. Copiamos el enlace para su sticker de enlace.

El stack vLLM y Triton de Netflix: 7 lecciones de producción

La versión viral de esta historia es sencilla: Netflix dejó de pagar a un proveedor de IA y lo construyó todo por su cuenta. La versión útil exige más precisión. Los equipos de AI Platform de Netflix describieron una vía interna para servir LLM con NVIDIA Triton y vLLM. Explicaron por qué encajaba con sus cargas, dónde falló bajo concurrencia real y qué tuvieron que construir alrededor.

Esa diferencia importa si estás decidiendo una arquitectura de inferencia. Copiar la lista de componentes te da software. Copiar los límites de decisión te da un modelo operativo. Este artículo extrae esos límites y deja el coste, la residencia de datos y el equilibrio general en su página propietaria: nuestra guía sobre cuándo compensa autoalojar un LLM en la UE.

¿Netflix usa OpenAI?

No es correcto concluir que Netflix nunca usa OpenAI. En otro sistema de Netflix, MediaFM, el equipo dice que utilizó text-embedding-3-large de OpenAI para texto temporizado y metadatos de títulos. El artículo de serving demuestra que Netflix opera una vía interna con vLLM y Triton para cargas seleccionadas. No demuestra una prohibición corporativa de modelos alojados.

La lección para un comprador es más fuerte que el titular absoluto: una cartera de IA madura puede usar distintas vías de inferencia para trabajos distintos. Las APIs alojadas sirven para experimentos rápidos o capacidades caras de reproducir. El serving interno sirve para modelos propios, reglas de decoding propietarias, carga predecible o mayor control. La arquitectura debe seguir el límite de la carga, no un eslogan para toda la empresa.

¿Cómo es la arquitectura de serving LLM de Netflix?

El diseño público tiene cuatro capas. Las aplicaciones existentes llaman por gRPC a un sistema de serving unificado sobre JVM. Ese sistema controla el routing, la asignación A/B, la obtención de features y el preprocesado y posprocesado. Los modelos grandes se delegan a Model Scoring Service, el backend común de inferencia. Debajo, NVIDIA Triton gestiona la carga de modelos y la ejecución en GPU, mientras vLLM es el motor preferente para las cargas LLM.

  1. Contrato del consumidor: los servicios usan la misma abstracción de scoring para ML clásico y LLM.
  2. Flujo de serving: routing, experimentos y preparación de datos quedan fuera del motor.
  3. Plano de control: despliegue, salud, autoscaling, versiones y rollout multirregión siguen siendo responsabilidades de plataforma.
  4. Plano de inferencia: Triton aloja los backends y vLLM controla scheduling, batching y decoding.

Las aplicaciones LLM nuevas también pueden usar un frontend HTTP compatible con OpenAI. Es una decisión de interfaz, no una prueba de que OpenAI aloje el modelo. Separar protocolo y proveedor permite conservar un cliente conocido mientras la plataforma cambia el motor que hay detrás.

¿Por qué eligió Netflix vLLM en vez de TensorRT-LLM?

Netflix empezó con TensorRT-LLM. Para el verano de 2025, su equipo consideró que los motores open source habían reducido la brecha de rendimiento para su mezcla de cargas. El encaje operativo pasó a decidir. vLLM cargaba arquitecturas propias sin el anterior proceso de compilación en varios pasos, ofrecía hooks para decoding propio, facilitaba inspeccionar estados intermedios y ya era conocido por los investigadores.

FactorPor qué importabaPregunta para tu equipo
Ritmo de cambioLos modelos propios llegaban a serving sin otro flujo de artefactos compilados¿Con qué frecuencia cambian las capas o formas del modelo?
DepuraciónEl estado y los fallos eran más fáciles de inspeccionar¿Quién diagnostica una carga fallida a las 02:00?
Extensión del decodingLos logits processors propios eran centrales¿Necesitas reglas que una API de salida estructurada no expresa?
FamiliaridadLos investigadores ya usaban vLLM¿Pueden reproducir el comportamiento de producción antes del handover?
Benchmark máximoImportante, pero no decisivo de forma aislada¿Tu prueba refleja modelos, batches y restricciones reales?

No es un veredicto universal sobre vLLM y TensorRT-LLM. Ambos proyectos siguen cambiando. Es un método repetible: mide tu carga real y después valora el camino de ingeniería entre investigación, despliegue, depuración y rollback. Unos tokens más por segundo no compensan una plataforma que tu equipo no puede cambiar con seguridad.

¿Por qué chocó el decoding restringido con el GIL de Python?

El decoding restringido impide tokens inválidos durante la generación en lugar de reparar una salida malformada después. Netflix modeló cada restricción como una máquina de estados que producía una máscara de tokens permitidos en cada paso. En vLLM V0, el procesador Python propio se ejecutaba por petición. La GPU producía logits en batch y después la lógica de CPU procesaba cada petición en serie. El tiempo de CPU crecía con el batch porque el Global Interpreter Lock de Python impedía paralelizar el camino crítico.

vLLM V1 añadió un modelo a nivel de batch. Netflix reescribió el procesador sobre estructuras de batch y llevó el camino crítico a C++ multihilo. La documentación actual de vLLM también define una interfaz de logits processors a nivel de batch cuya función apply recibe el tensor de logits completo.

La dificultad no desapareció. Los batches dinámicos requieren actualizaciones explícitas de estado. Un prefill dividido puede durar varios pasos. Bajo presión de memoria, la preemption puede expulsar el KV cache y reprogramar la petición con un historial más corto. Netflix añadió seguimiento del prefill parcial y reinició la máquina de estados cuando el historial se reducía. El tiempo plano llegó de un nuevo modelo de estado, no de cambiar de versión sin más.

Siete lecciones de producción que sí conviene copiar

1. Elige por encaje operativo y después mide

Usa modelos, concurrencia, longitud de prompts y respuestas y restricciones representativas. Mide time to first token, latencia entre tokens, throughput y cola de latencia. Incluye el tiempo de empaquetar, diagnosticar y actualizar. Un motor forma parte de un sistema de release.

2. Mantén el contrato del consumidor por encima del motor

Netflix no obligó a cada caller a entender vLLM. Su capa existente siguió controlando routing, experimentos y lógica de flujo. Un contrato interno estable permite cambiar de motor sin reescribir cada integración. El mismo principio aparece en nuestra arquitectura de producción para una plataforma LLM con estado: el comportamiento duradero del producto no debe depender de un runtime.

3. Fija todo el conjunto compatible

El backend vLLM de Triton depende de una superficie concreta de vLLM. Netflix informó de un backend que dejó de cargar cuando las versiones divergieron. NVIDIA publica una matriz de compatibilidad de Triton y vLLM. Trata imagen de Triton, versión de vLLM, CUDA, driver y plugins como una unidad probada. No permitas que un paquete de modelo sustituya una pieza por separado.

4. Prueba la semántica de API, no solo el código 200

Netflix descubrió que el frontend compatible con OpenAI aceptaba response_format, pero lo descartaba antes de vLLM. La llamada terminaba bien y la restricción prometida desaparecía. Netflix corrigió la traducción. La documentación del frontend OpenAI para Triton muestra cómo se compone con vLLM, pero tus contract tests deben verificar el efecto de cada campo del que dependa el producto.

5. Ajusta el rollout al riesgo de interfaz

Netflix usa Red-Black cuando la interfaz del modelo es estable. La versión nueva arranca junto a la anterior, supera health checks y recibe tráfico por fases. Un cambio de forma de tensor rompe esa coordinación. Los despliegues versionados mantienen ambas interfaces hasta que migren los consumidores. El coste temporal de GPU compra una ventana segura.

6. Coloca los pesos en una ruta de arranque asumible

Las descargas grandes desde object storage alargaban demasiado los cold starts, así que Netflix materializó modelos anunciados en Amazon FSx. AWS explica que un archivo de FSx for Lustre enlazado a S3 paga latencia en el primer acceso salvo que el equipo precargue su contenido. La regla general no depende del proveedor: la colocación de pesos forma parte del despliegue, se verifica antes de readiness y se mide en un nodo vacío.

7. Une la observabilidad del motor y del servidor

El bridge de Triton mostraba solo parte de las métricas vLLM que Netflix necesitaba. El equipo fusionó las métricas de Triton y los archivos Prometheus de vLLM en un endpoint. Tu panel mínimo debe conectar tasa, cola, time to first token, latencia entre tokens, throughput, uso del KV cache, prefix-cache hits, preemption, estado de carga, errores y saturación de GPU. Una GPU verde puede convivir con un camino de logits en CPU roto.

¿Debe tu empresa copiar a Netflix o usar una API alojada?

SeñalInferencia alojada o gestionadaPlataforma interna vLLM y Triton
DemandaBaja, incierta o irregularEstable para planificar capacidad GPU
ModeloModelos y funciones estándarArquitecturas, plugins o decoding propios
CambiosEl proveedor opera las actualizacionesUn equipo fija, prueba y revierte el stack
DatosEl procesamiento contratado es aceptableLa inferencia queda en infraestructura controlada
ObservabilidadLas métricas del proveedor bastanNecesitas evidencia de tokens, caché y scheduler
FallosPrefieres el failover del proveedorPuedes operar varias versiones y guardias

Elige una plataforma interna solo si al menos un requisito diferenciador sobrevive una evaluación seria de servicios gestionados. El decoding propio, una carga alta y estable o un límite estricto de datos pueden justificarla. No querer facturas por token no es, por sí solo, una arquitectura.

Un plan práctico de validación en 90 días

  1. Semanas 1 y 2, contrato: fija prompts, schemas, objetivos de latencia, evaluaciones y fallos. Registra el baseline alojado.
  2. Semanas 3 a 5, benchmark real: prueba motores con concurrencia, restricciones y variantes representativas. Incluye CPU y cold starts.
  3. Semanas 6 a 8, operaciones: fija imágenes, precarga pesos, unifica métricas y ensaya fallo de carga y rollback.
  4. Semanas 9 y 10, tráfico sombra: compara calidad, latencia y cumplimiento de schema sin respuestas visibles.
  5. Semanas 11 a 13, decisión comercial: compara el coste completo de plataforma con la factura alojada, incluyendo ingeniería, redundancia, soporte y upgrades.

Si la latencia es el problema principal, separa la arquitectura de serving de la propiedad del modelo. Nuestro análisis de una KV cache compartida que redujo el time to first token muestra cuánto puede aportar una mejora concreta sin sustituir toda la vía.

Preguntas sobre Netflix, vLLM y Triton

¿Netflix ejecuta toda su inferencia LLM internamente?
Netflix ha documentado una vía interna con vLLM y Triton, pero también describe embeddings de OpenAI en otro sistema llamado MediaFM. La evidencia muestra una arquitectura por cargas, no que toda su IA sea autoalojada.
¿Por qué prefirió Netflix vLLM a TensorRT-LLM?
Para la mezcla reevaluada en 2025, Netflix priorizó arquitecturas propias, extensión del decoding, depuración y familiaridad del equipo después de que el rendimiento open source fuera competitivo. Es una decisión específica, no un ranking permanente.
¿Qué causó el cuello de botella del decoding restringido?
vLLM V0 ejecutaba el procesamiento Python de logits por petición después del batch de GPU. El trabajo de CPU crecía con el batch y el GIL impedía paralelizar. Netflix pasó al nivel de batch de vLLM V1 y a un camino crítico C++ multihilo.
¿Hace falta NVIDIA Triton para usar vLLM?
No. vLLM puede servir una API compatible con OpenAI. Triton interesa si necesitas un repositorio común, varios backends, integración con un plano de control u operaciones consolidadas. También añade una superficie de compatibilidad que debes fijar y probar.
¿Cuándo debería una empresa menor autoalojar la inferencia?
Cuando decoding o modelos propios, límites estrictos de datos o utilización estable aporten una ventaja medible y un equipo pueda asumir upgrades, observabilidad, rollback y guardias. Para demanda baja, irregular o estándar, la inferencia gestionada suele ser el inicio más simple.

El límite que debes poseer es el operativo

La mejor lección de Netflix no es una lista de marcas. Es el orden de propiedad: contrato estable, selección con cargas reales, runtime fijado, pruebas semánticas de API, rollout según riesgo, pesos en la ruta de despliegue y una vista común de CPU, caché, scheduler y GPU.

El trabajo de AI enablement y arquitectura de inferencia de Wavect cubre esa evaluación desde el benchmark hasta el handover. El caso Twinsoft AI muestra cómo convertimos decisiones de IA en un flujo de producto probado. Usa nuestra guía del prototipo a producción para dimensionar el resto de la plataforma, o solicita una revisión de arquitectura de inferencia con tus restricciones de tráfico, datos y modelos.

Construye el producto, no solo el backlog

Si este artículo conecta con una decisión real de producto, Wavect puede ayudarte a definir, construir, endurecer o liderar el trabajo de software con criterio senior de founder.

Rutas de servicio útiles:

Tu bandeja, sin ruido

Sigue el trabajo que te importa

Recibe un correo breve cuando publiquemos algo nuevo. Sigue todo el blog o solo los temas que te interesan.

¿Qué quieres recibir?
Elige tus temas

Gratis, doble opt-in y sin píxeles de seguimiento.

Volver
Kevin Riedl

12 min de lectura · 16 de agosto de 2026
Última revisión

Siguiente

Recibe nuevos artículos por correo

Un correo breve cuando publicamos. Gratis y sin seguimiento.

Gratis, doble opt-in y sin píxeles de seguimiento.