Skip to content
Reduciendo la latencia en frío para la inferencia de LLM con NVIDIA Run:ai Model Streamer
Source: developer.nvidia.com

Reduciendo la latencia en frío para la inferencia de LLM con NVIDIA Run:ai Model Streamer

Sources: https://developer.nvidia.com/blog/reducing-cold-start-latency-for-llm-inference-with-nvidia-runai-model-streamer, https://developer.nvidia.com/blog/reducing-cold-start-latency-for-llm-inference-with-nvidia-runai-model-streamer/, NVIDIA Dev Blog

TL;DR

  • NVIDIA Run:ai Model Streamer es un SDK de Python de código abierto que lee concurrentemente los pesos del modelo desde el almacenamiento y los transmite a la memoria de la GPU para reducir la latencia de arranque en frío en la inferencia de LLM. NVIDIA Dev Blog
  • Los benchmarks en diferentes tipos de almacenamiento muestran reducciones significativas en el tiempo de preparación total al usar Model Streamer, especialmente en storages de mayor rendimiento; en algunos casos, los tiempos caen más del 70% frente a cargas como HF Safetensors Loader o Tensorizer. NVIDIA Dev Blog
  • El estudio enfatiza que la elección del almacenamiento y la concurrencia son palancas clave para lograr una inferencia más rápida en implementaciones en la nube. NVIDIA Dev Blog

Contexto y antecedentes

La inferencia de grandes modelos de lenguaje (LLMs) en producción enfrenta un cuello de botella persistente: la latencia de arranque en frío. Cargar los pesos del modelo en la memoria de la GPU puede llevar mucho tiempo, especialmente cuando los modelos requieren decenas o cientos de gigabytes. En entornos en la nube, el flujo de descarga hacia la memoria de la CPU añade retardo adicional. NVIDIA presenta Run:ai Model Streamer, un SDK de código abierto que busca mitigar estos retrasos mediante streaming de pesos a la GPU y lectura concurrente de tensores. NVIDIA Dev Blog

Qué hay de nuevo

  • La arquitectura de Model Streamer permite concurrencia: múltiples hilos leen tensores desde el almacenamiento hacia la memoria de la CPU mientras otros tensores se transfieren a la memoria GPU, superponiendo I/O y cómputo para reducir el tiempo total de carga. Este enfoque aprovecha la separación física entre CPU y GPU para minimizar la intervención de la CPU y maximizar el ancho de banda de streaming. NVIDIA Dev Blog
  • Mantiene compatibilidad con el formato Safetensor, evitando conversiones de pesos en flujos de trabajo comunes. En los benchmarks, Model Streamer se comparó con HF Safetensors Loader y CoreWeave Tensorizer usando vLLM. NVIDIA Dev Blog
  • Los tests utilizaron GP3 SSD, IO2 SSD y Amazon S3, destacando que el throughput del almacenamiento es el límite práctico para Gain con Model Streamer y otros loaders. NVIDIA Dev Blog
  • En la nube, Model Streamer demostró ventajas claras en el tiempo total de preparación frente a HF Safetensors Loader y Tensorizer, incluidas ganancias en S3. NVIDIA Dev Blog

Por qué importa (impacto para desarrolladores/empresas)

  • Una menor latencia de arranque en frío mejora la experiencia del usuario y la eficiencia operativa para servir LLMs en producción. Arranques más rápidos permiten chatbots más receptivos y escalabilidad ante picos de demanda. NVIDIA Dev Blog
  • En entornos en la nube, la habilidad de saturar el throughput del storage y superponer lecturas con transferencias a GPU ayuda a reducir el tiempo total hasta la inferencia, afectando acuerdos de nivel de servicio y estrategias de autoescalado. NVIDIA Dev Blog
  • El estudio subraya que las elecciones de almacenamiento y la configuración de concurrencia influyen significativamente en el rendimiento del servicio de LLMs, guiando decisiones de infraestructura en empresas que operan modelos grandes. NVIDIA Dev Blog

Detalles técnicos o Implementación

Model Streamer de NVIDIA está diseñado para acelerar la carga de pesos grandes en la memoria GPU desde diversas fuentes de almacenamiento, incluyendo sistemas de archivos en red, almacenamiento en la nube y discos locales. La idea central es leer y transferir tensores de forma concurrente: al leer unos tensores de storage hacia la memoria CPU, otros tensores se mueven hacia la GPU a través de PCIe, permitiendo superposición de E/S y cómputo en tiempo real. El sistema utiliza un backend multithread para leer múltiples tensores de forma concurrente y segmentar su transferencia a la GPU sin bloquear al CPU. Los experimentos se realizaron en una instancia AWS g5.12xlarge con GPUs NVIDIA A10G y CPUs AMD EPYC de 2.ª generación. NVIDIA Dev Blog

Comparaciones y benchmarks

  • Model Streamer frente a HF Safetensors Loader y CoreWeave Tensorizer se evaluó bajo condiciones de cold-start con GP3 SSD, IO2 SSD y Amazon S3. HF Safetensors Loader usa mapeo de memoria para un cargado zero-copy en CPU y cudaMemcpy para GPU; S3 no es compatible para HF en estos tests. Tensorizer difunde los datos tensor por tensor desde HTTP/HTTPS o S3, pudiendo requerir conversiones de formato. NVIDIA Dev Blog
  • En GP3 SSD, Model Streamer alcanzó un throughput cercano a 1 GiB/s. A una threaded inicial, 1 hilo cargaba en 47,56 s; con concurrencia 16, 14,34 s. HF Safetensors Loader quedó en 47,99 s; Tensorizer pasó de 50,74 s (1 worker) a 16,11 s (16 workers), con throughput cercano al ancho de banda GP3. El cuello de botella práctico fue la capacidad de almacenamiento. NVIDIA Dev Blog
  • Con IO2 SSD, los beneficios para Model Streamer fueron mayores: 43,71 s a 1 thread; 7,53 s con concurrencia 8. HF Safetensors Loader se mantuvo alrededor de 47 s; Tensorizer alcanzó 10,36 s con ocho workers (throughput ~2 GiB/s). Se observó que los límites prácticos de throughput rondaban 2 GiB/s para Model Streamer y 1,6 GiB/s para Tensorizer, sugiriendo límites de infraestructura AWS más que límites de los cargadores. NVIDIA Dev Blog
  • En S3, dado que HF Safetensors Loader no es compatible, la comparación se centró en Model Streamer y Tensorizer. El mejor resultado de Tensorizer fue con 16 workers; Model Streamer superó en todas las concurrencias: por ejemplo, con concurrencia 4, 28,24 s para Model Streamer frente a 37,36 s para Tensorizer (con 16 workers). Se observó caching en S3 cuando se repetían pruebas, lo que subraya la necesidad de intervalos para simular cold-start. NVIDIA Dev Blog

Resultados consolidado para integraciones vLLM

  • En las pruebas con vLLM, la combinación Model Streamer redujo el tiempo total de preparación a 35,08 s en GP3 y 28,28 s en IO2, frente a 66,13 s y 62,69 s con HF Safetensors Loader. Tensorizer obtuvo 36,19 s (GP3) y 30,88 s (IO2). En S3, Model Streamer alcanzó 23,18 s frente a 65,18 s para Tensorizer. Estos resultados muestran la eficiencia de Model Streamer en escenarios de almacenamiento variados. NVIDIA Dev Blog

Lecciones prácticas y configuración

  • Los resultados subrayan dos palancas prácticas para reducir la latencia de cold-start: throughput de storage y concurrencia. Storages de mayor rendimiento combinados con una concurrencia adecuada proporcionan las mayores mejoras para Model Streamer en entornos cloud. NVIDIA Dev Blog
  • En S3, Model Streamer ofrece una ventaja notable frente a Tensorizer; sin embargo, existen efectos de caching en S3 que deben tenerse en cuenta al diseñar pruebas de cold-start. Mantener ventanas de prueba con pausas adecuadas ayuda a replicar condiciones de frío. NVIDIA Dev Blog
  • La compatibilidad con Safetensor facilita la adopción de Model Streamer sin obligar a convertir pesos para muchos flujos de trabajo. NVIDIA Dev Blog

Preguntas frecuentes (FAQ)

  • Q: ¿Qué es Model Streamer y qué problema resuelve?\n A: Es un SDK open source que lee pesos de modelos de forma concurrente desde el storage y los transmite a la memoria GPU, reduciendo la latencia de arranque en frío para la inferencia de LLMs. NVIDIA Dev Blog
  • Q: ¿Cómo afecta la concurrencia a los tiempos de carga?\n A: Incrementar la concurrencia reduce significativamente el tiempo de carga al solaparse lecturas de almacenamiento con transferencias a la GPU; GP3 y IO2 muestran mejoras notables. NVIDIA Dev Blog
  • Q: ¿Cómo se compara Model Streamer con HF Safetensors Loader y Tensorizer?\n A: En los escenarios probados, Model Streamer suele ser más rápido, especialmente con almacenamiento de alto rendimiento y en la nube (S3); los resultados varían según el almacenamiento y la concurrencia. NVIDIA Dev Blog
  • Q: ¿Existen limitaciones por el almacenamiento?\n A: Sí. Incluso con alta concurrencia, los límites prácticos de throughput de GP3/IO2 pueden limitar las ganancias; el estudio señala límites de infraestructura de AWS más que límites de los cargadores. NVIDIA Dev Blog
  • Q: ¿La compatibilidad Safetensor se mantiene?\n A: Sí, Model Streamer mantiene compatibilidad con Safetensor, evitando conversiones en muchos flujos de trabajo. NVIDIA Dev Blog

Referencias

More news