Skip to content
Reduzindo a Latência de Cold Start para Inferência de LLM com NVIDIA Run:ai Model Streamer
Source: developer.nvidia.com

Reduzindo a Latência de Cold Start para Inferência de LLM com 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

  • O NVIDIA Run:ai Model Streamer é um SDK Python de código aberto que lê concorrentemente os pesos do modelo da storage e faz streaming diretamente para a memória da GPU para reduzir a latência de cold-start na inferência de LLM. NVIDIA Dev Blog
  • Benchmarks em diferentes storages mostram reduções significativas no tempo total de prontidão quando se utiliza o Model Streamer, especialmente em storages de maior throughput; em alguns casos, os tempos caem mais de 70% em relação a baselines como o HF Safetensors Loader ou Tensorizer. NVIDIA Dev Blog
  • O estudo destaca que a escolha de storage e a concorrência são alavancas-chave para obter tempos de tempo-para-inferência mais rápidos em implantações na nuvem. NVIDIA Dev Blog

Contexto e antecedentes

A inferência de grandes modelos de linguagem (LLMs) em produção enfrenta um gargalo persistente: a latência de cold-start. Carregar pesos do modelo — muitas vezes dezenas a centenas de gigabytes — para a memória da GPU pode atrasar a reatividade e complicar a escalabilidade sob demanda variável. Em ambientes de nuvem, o fluxo de download para a memória da CPU adiciona mais atraso. A NVIDIA apresenta o Run:ai Model Streamer, um SDK de código aberto que busca mitigar esses atrasos fazendo streaming dos pesos para a GPU, com leitura de tensors de forma concorrente entre armazenamento, CPU e GPU. NVIDIA Dev Blog

O que há de novo

  • A arquitetura do Model Streamer permite concorrência: várias threads leem tensores do storage para a memória da CPU enquanto outros tensores são movidos para a memória da GPU, sobrepondo I/O e computação para reduzir o tempo total de carregamento. O approach utiliza a separação física entre CPU e GPU para minimizar intervenção da CPU e maximizar a largura de banda de streaming. NVIDIA Dev Blog
  • Mantém compatibilidade com o formato Safetensor, evitando conversão de pesos em fluxos de trabalho comuns. Nos benchmarks, o Model Streamer foi comparado ao HF Safetensors Loader e ao CoreWeave Tensorizer com o vLLM. NVIDIA Dev Blog
  • Os testes utilizaram GP3 SSD, IO2 SSD e Amazon S3, destacando como o throughput do storage se torna o limitante prático para ganhos com Model Streamer e loaders concorrentes. NVIDIA Dev Blog
  • Em nuvem, o Model Streamer demonstrou vantagens claras de tempo total de prontidão em relação a HF Safetensors Loader e Tensorizer, incluindo ganhos fortes em S3. NVIDIA Dev Blog

Por que isso importa (impacto para desenvolvedores/empresas)

  • Latência menor de cold-start melhora diretamente a experiência do usuário final e a eficiência operacional do serviço de LLMs em produção. Implantações mais rápidas facilitam chatbots mais responsivos, geração de conteúdo mais rápida e melhor escalabilidade sob demanda. NVIDIA Dev Blog
  • Em ambientes de nuvem, a capacidade de saturar o throughput de storage e sobrepor leituras com transferências para GPU ajuda a reduzir o tempo total até a inferência, com impactos em SLAs de latência e comportamento de autoscaling. NVIDIA Dev Blog
  • O estudo destaca que escolhas de storage e configurações de concorrência afetam de fato o desempenho de servir LLMs, orientando decisões de infraestrutura para organizações que rodam modelos grandes. NVIDIA Dev Blog

Detalhes técnicos ou Implementação

O Model Streamer da NVIDIA é projetado para acelerar o carregamento de pesos grandes na memória da GPU a partir de várias fontes de armazenamento, incluindo sistemas de files de rede, storage na nuvem e discos locais. A ideia central é ler e transferir tensores de forma concorrente: enquanto alguns tensores são lidos da storage para a memória da CPU, outros são movidos para a memória da GPU via PCIe, permitindo sobreposição de I/O e computação. O sistema usa um backend multithread e atribui um identificador único a cada tensor, permitindo leitura e transferência paralelas mantendo as fronteiras dos tensors. Os testes foram realizados em uma instância AWS g5.12xlarge com GPUs NVIDIA A10G e CPUs AMD EPYC de segunda geração. NVIDIA Dev Blog

Comparações e benchmarks

  • Model Streamer versus HF Safetensors Loader e CoreWeave Tensorizer foram comparados sob condições de cold-start em GP3 SSD, IO2 SSD e Amazon S3. HF Safetensors Loader utiliza mapeamento de memória para carregamento zero-copy na CPU e cudaMemcpy para GPU; não há suporte S3 no HF Safetensors Loader neste conjunto de testes. O Tensorizer faz streaming tensor por tensor a partir de HTTP/HTTPS ou S3, com conversões de formato quando necessário. NVIDIA Dev Blog
  • Nos testes com GP3 SSD, Model Streamer atingiu throughput próximo de 1 GiB/s; a concorrência maior mostrou ganhos: 1 thread = 47,56 s; concorrência 16 = 14,34 s. HF Safetensors Loader ficou em 47,99 s; Tensorizer passou de 50,74 s (1 worker) para 16,11 s (16 workers), com throughput próximo da largura de banda da GP3. O gargalo prático foi a capacidade de storage. NVIDIA Dev Blog
  • Com IO2 SSD, os ganhos foram ainda maiores para Model Streamer: 1 thread = 43,71 s; com concorrência 8, 7,53 s. HF Safetensors Loader manteve tempos próximos de 47 s; Tensorizer alcançou 10,36 s com oito workers (throughput aproximadamente 2 GiB/s). Observou-se que os limites práticos de throughput do IO2 ficaram próximos de 2 GiB/s para Model Streamer e 1,6 GiB/s para Tensorizer, sugerindo limitações da infraestrutura AWS. NVIDIA Dev Blog
  • Nos testes com S3, HF Safetensors Loader não foi incluído (não suporta S3). Tensorizer foi avaliado com diferentes números de workers; o melhor resultado foi com 16 workers. Model Streamer superou Tensorizer em todos os níveis de concorrência: por exemplo, 4 threads de concorrência resultaram em 28,24 s para Model Streamer, e 32 concorrência atingiu 4,88 s; Tensorizer teve 37,36 s com 16 workers. Em termos de leituras a partir do S3, Model Streamer mostrou vantagem significativa em tempo total de prontidão. NVIDIA Dev Blog

Resultados consolidados para integrações vLLM

  • Quando integrado ao vLLM, Model Streamer reduziu o tempo total de prontidão para 35,08 s no GP3 e 28,28 s no IO2, versus 66,13 s (GP3) e 62,69 s (IO2) com HF Safetensors Loader. Tensorizer obteve 36,19 s (GP3) e 30,88 s (IO2). Em S3, Model Streamer atingiu 23,18 s; Tensorizer 65,18 s. Esses números destacam a eficiência do Model Streamer em cenários de storage variados. NVIDIA Dev Blog

Aspectos práticos de configuração

  • Os resultados mostram que a combinação de storage de alto throughput com níveis adequados de concorrência oferece os maiores ganhos para Model Streamer em ambientes de nuvem. A escolha de storage adequada, juntamente com a configuração de concorrência, é crucial para reduzir o tempo de prontidão de LLMs. NVIDIA Dev Blog
  • Em ambientes S3, o Model Streamer tem vantagem clara sobre Tensorizer, embora haja efeitos de caching em repetições rápidas de testes. Configurar janelas de teste com pausas apropriadas ajuda a manter condições de cold-start. NVIDIA Dev Blog
  • A compatibilidade com o formato Safetensor permite adotar Model Streamer sem exigir conversões de peso em muitos fluxos de trabalho existentes. NVIDIA Dev Blog

Perguntas frequentes (FAQ)

  • Q: O que é o Model Streamer e qual problema ele resolve?\n A: É um SDK de código aberto que lê pesos de modelos de storage de forma concorrente e faz streaming para a memória da GPU, reduzindo a latência de cold-start na inferência de LLMs. NVIDIA Dev Blog
  • Q: Como a concorrência afeta os tempos de carregamento?\n A: Aumentar a concorrência diminui significativamente o tempo de carregamento ao sobrepor leituras de armazenamento com transferências para a GPU; resultados mostram reduções expressivas comGP3 e IO2. NVIDIA Dev Blog
  • Q: Como o Model Streamer se compara com HF Safetensors Loader e Tensorizer?\n A: Em cenários de GP3, IO2 e S3, o Model Streamer geralmente oferece tempos de prontidão mais curtos, especialmente com granularidade de concorrência adequada; o S3 mostrou vantagem clara sobre Tensorizer. NVIDIA Dev Blog
  • Q: Existem limitações de storage a considerar?\n A: Sim. Mesmo com alta concorrência, os limites práticos de throughput do storage (GP3/IO2) podem limitar os ganhos; os testes observam limites de infraestrutura AWS como o fator limitante. NVIDIA Dev Blog
  • Q: A preservação do formato Safetensor é suportada?\n A: Sim, o Model Streamer mantém compatibilidade com Safetensor, evitando conversões na maioria dos fluxos de trabalho. NVIDIA Dev Blog

Referências

More news