Rodando Dois Modelos em uma Única GPU: A Matemática por trás dos LLMs Locais

Eu rodo uma stack de agentes em uma workstation. Os modelos residem em um DGX Spark via LAN. Eu utilizo o vLLM em vez do Ollama para gerenciar melhor a memória.

O objetivo é rodar dois modelos simultaneamente:

Ambos os modelos acessam uma única URL através de um proxy LiteLLM. Essa configuração falhou várias vezes antes de eu encontrar a matemática correta.

Aqui estão as lições dessa luta.

A Armadilha da Memória A configuração gpu_memory_utilization não é um alvo para memória livre. É uma fração da memória total da GPU.

Se você tem uma placa de 120 GB e define a utilização para 0.80, o vLLM tenta reivindicar 96 GB da capacidade total. Ele não observa o que está livre no momento. Se você tentar rodar dois processos, as porcentagens deles devem somar menos de 0.95. Você deve deixar espaço para o overhead do framework CUDA.

O Que Aconteceu com os Modelos Eu tentei usar a versão Thinking do modelo 80B. Falhou. O modelo raciocinava dentro das tags , mas nunca chegava a acionar uma chamada de ferramenta (tool call). Ele simplesmente parava.

Tive que trocar o backbone do 80B para a versão Instruct. Isso permitiu que o agente usasse ferramentas adequadamente.

A Matemática Real Após os testes, descobri que estes números funcionam para o meu setup:

• Qwen3-Next-80B (com alvo de 0.80): Usa ~87.8 GiB de memória real. • Qwen3-4B (com alvo de 0.10): Usa ~13.8 GiB de memória real. • Uso total: ~101.6 GiB. • Margem livre (headroom): ~18 GiB.

Se eu aumentasse o 80B para 0.85, o modelo 4B não conseguia iniciar. O 80B reivindicaria demais, não deixando espaço para as necessidades mínimas do 4B.

Meu Guia para Modelos Co-residentes

  1. Carregue o maior modelo primeiro.
  2. Deixe-o estabilizar.
  3. Execute nvidia-smi para ver a memória real utilizada.
  4. Defina o tamanho do modelo menor com base na memória livre restante menos 5 GB para overhead.
  5. Reinicie ambos os modelos duas vezes para garantir a estabilidade.

Não tente adivinhar suas configurações de memória. Use este comando para ver a sua realidade: nvidia-smi --query-gpu=memory.used --format=csv

Se a sua alocação alvo e o seu uso real diferirem em mais de 10%, sua matemática está errada. Corrija-a antes de implantar sua stack de agentes.

Source: https://dev.to/ric03uec/two-qwen3-models