Optimización de la Utilización de GPUs con NVIDIA Run:ai y NIM

Las organizaciones que implementan modelos de lenguaje (LLMs) enfrentan desafíos relacionados con las cargas de trabajo de inferencia, que requieren diferentes recursos. Por ejemplo, un modelo de incrustación pequeño puede necesitar solo unos pocos gigabytes de memoria de GPU, mientras que un LLM de más de 70 mil millones de parámetros puede requerir múltiples GPUs. Esta diversidad a menudo resulta en una baja utilización promedio de GPU, altos costos computacionales y latencias impredecibles.

No se trata solo de aumentar la carga de trabajo en las GPUs, sino de programarlas de manera inteligente. Sin una orquestación que comprenda los patrones de carga de trabajo de inferencia, las organizaciones se enfrentan a la elección entre el sobreaprovisionamiento (desperdicio de recursos) y el subaprovisionamiento (degradación del rendimiento).

Este artículo aborda:

  • El problema de utilización de inferencia: Por qué la programación tradicional subutiliza los recursos de GPU.
  • Cómo NVIDIA NIM entrega inferencia en producción: El papel de los microservicios en contenedores para estandarizar el despliegue de modelos.
  • Estrategias de programación inteligente de NVIDIA Run:ai: Cuatro capacidades clave que mejoran el rendimiento (menor latencia, mayor TPS/GPU) mientras aumentan la utilización de GPU y reducen los costos computacionales.
  • Resultados de benchmarking: Mejora de ~2x en la utilización de GPU con mínima pérdida de rendimiento, hasta ~1.4x mayor rendimiento bajo alta concurrencia con fracciones dinámicas, y latencia de primera solicitud de 44 a 61 veces más rápida con intercambio de memoria de GPU.
  • Cómo comenzar: Orientaciones prácticas para implementar estas estrategias con NIM en NVIDIA Run:ai.

El problema de utilización de inferencia

La utilización de GPU determina cuántas cargas de trabajo se pueden ejecutar en un clúster determinado y a qué costo. En la práctica, la mayoría de los despliegues de inferencia dejan una capacidad significativa de GPU inactiva, ya que cada modelo se asigna a una GPU completa “solo para estar seguros” o porque el uso ingenuo compartido sin aislamiento de memoria provoca condiciones de falta de memoria (OOM) y picos de latencia bajo tráfico.

Sin una orquestación inteligente, los equipos deben elegir entre el sobreaprovisionamiento (desperdicio) y el subaprovisionamiento (riesgo de rendimiento).

Cómo NVIDIA NIM entrega inferencia en producción

NVIDIA NIM empaqueta optimizaciones de motores de inferencia como microservicios en contenedores con:

  • Motores de inferencia empaquetados: Runtimes de inferencia preconfigurados para mejorar el rendimiento/latencia.
  • APIs estándar de la industria: Puntos finales compatibles con OpenAI para integración.
  • Optimización de modelos: Selección automática de técnicas de cuantización, agrupamiento y aceleración.
  • Contenedores listos para producción: Preconstruidos con dependencias, probados a gran escala.
  • Seguridad y cumplimiento: Controles de seguridad de grado empresarial y firma de contenedores para despliegues.
  • Soporte empresarial: Soporte y mantenimiento de NVIDIA para despliegues en producción.

NIM estandariza la capa de despliegue, pero maximizar la utilización de GPU requiere una orquestación inteligente. Aquí es donde las capacidades de programación de NVIDIA Run:ai se vuelven esenciales.

Cómo NVIDIA Run:ai desbloquea la gestión eficiente de recursos para NVIDIA NIM

La utilización de inferencia es más que solo programación; se trata de adaptarse a cómo se comportan las cargas de trabajo. Con NVIDIA Run:ai, los despliegues de NIM obtienen priorización de inferencia, fracciones de GPU con aislamiento total de memoria, colocación más inteligente basada en las necesidades de carga de trabajo, gestión dinámica de memoria y escalado automático (incluido el escalado de réplicas y el escalado a cero). Esto permite a los usuarios seguir el tráfico y devolver GPUs cuando los modelos están inactivos.

La prioridad de inferencia protege las cargas de trabajo orientadas al usuario

NVIDIA Run:ai asigna automáticamente a las cargas de trabajo de inferencia la más alta prioridad por defecto, asegurando que los trabajos de entrenamiento nunca las interrumpan. ¿Por qué es esto importante?

  • La inferencia sirve a los usuarios: Los picos de latencia y el tiempo sin servicio impactan la experiencia del usuario y el cumplimiento de SLA.
  • El entrenamiento puede tolerar interrupciones: El entrenamiento de modelos puede guardar puntos de control y reanudar; las solicitudes de inferencia no pueden esperar.

Esta asignación automática de prioridades elimina la necesidad de ajuste manual en la mayoría de los entornos. Para las organizaciones que ejecutan cargas de trabajo mixtas, esto asegura que los trabajos de entrenamiento se adapten a las demandas de inferencia en lugar de competir con ellas. Las GPUs pueden entrenar cuando la carga de inferencia es baja, cediendo automáticamente recursos cuando llegan solicitudes orientadas al usuario.

Ilustración de un hombre mayor con auriculares y chaqueta