1

Pitch: 🔀Openllm: de roteador de LLMs a plataforma multimodal 🤖 - Texto, Imagem, Áudio/Música e vídeo por centavos (e como aproveitar a VRAM que sobra) - VastAI

No artigo anterior apresentei o openllm: CLI + daemon em Go que aluga GPUs no Vast.ai, sobe Ollama, expõe tudo por túnel SSH com watchdog de auto-destruição. Desde então o projeto cresceu de "roteador de LLMs" para orquestrador de IA multimodal — e tudo foi validado em produção com dinheiro real. Repositório: github.com/MrJc01/crom-openllm-vastai

O que mudou desde o último artigo

  • Um modelo de cada tipo: catálogo interno resolve automaticamente engine + VRAM pelo nome do modelo (texto → Ollama/vLLM, imagem/vídeo → ComfyUI, áudio → faster-whisper/XTTS, etc.)
  • Escala horizontal: openllm scale --model X --instances 3 sobe N máquinas atrás do mesmo endpoint com load balancer (round-robin/least-connections, health-check por instância)
  • Swap sem re-aluguel: openllm swap baixa o novo modelo na máquina que já está paga, mantendo o antigo no ar, e troca o LB quando fica pronto — validamos llama3.2:3b → qwen2.5:0.5b em ~80s (vs ~15 min de redeploy completo)
  • Stacks multimodais: openllm stack up multimodal.yaml sobe texto + imagem + áudio + vídeo num único endpoint com roteamento por path
  • Engines sem recompilar: um JSON em ./engines/ (docker image + cmd + porta + health) ou --custom-image/--custom-cmd ad-hoc
  • Endurecimento de produção: chaves ed25519 (hosts novos recusam RSA), anti-vazamento (deploy que falha se auto-destrói — mesmo após crash do daemon), timeout de deploy configurável, seleção de oferta por banda de rede e guarda de label (nunca destrói instância de outros projetos na mesma conta)

VRAM que sobra = velocidade de graça

Um Qwen-3B usa ~4GB de uma RTX 4070 de 12GB — os 8GB restantes não precisam ficar parados. Com OLLAMA_NUM_PARALLEL (via env/custom-cmd da engine) você aumenta requisições simultâneas no mesmo container; sobra vira contexto maior (KV cache) ou workers sidecar — réplicas ou serviços distintos convivendo na mesma GPU, cada um na sua rota do proxy. Como tudo é config (JSON/flags), mexer é trivial.

Comparativo real por tipo (fontes verificadas em ago/2026)

Vídeo (clipe de 5s):

Opção$/clipe1.000 clipes
Runway Gen-4.5 (API)$1,15$1.150
Replicate Wan 2.1 14B 720p (mesmo modelo que rodamos!)$1,25$1.250
Nosso: Wan 14B na 4090 alugada~$0,09$94
Nosso: LTX-Video 2B na 4070S~$0,002$2

(OpenRouter: 0 modelos de vídeo — verificado via API deles)

Música (completa, com vocais):

Opção$/músicaPegou
Suno v5.5$0,012–0,016downloads limitados a 20–60/mês
ElevenLabs Music~$0,60créditos compartilhados com TTS
Nosso: ACE-Step (Apache 2.0) na 4070S~$0,002sem caps, prompts privados, fine-tune livre

Imagem/Áudio/Texto: SD1.5 na 4070S ≈ $0,0001/imagem (vs $0,03–0,09 nas APIs); whisper-small ≈ $0,0005/transcrição (vs $0,006+/min); texto na 4070S fica na casa de $0,001–0,01 por milhares de tokens dependendo do modelo — e com openllm search você vê o custo/hora da GPU antes de alugar.

O padrão se repete: volume é 10–500× mais barato local, API vence no clique único de qualidade SOTA. Custo ocioso? openllm stop --all mata tudo na hora — e o watchdog cobre se você esquecer.

Conclusão

O projeto virou o que eu queria ter: qualquer modelo, qualquer modalidade, um endpoint, centavos — com privacidade total e configuração 100% editável (catálogo JSON, engines JSON, custom engine, perfis). Testes com -race, CI no push e incidents reais viraram testes de regressão.

⭐ Repo: github.com/MrJc01/crom-openllm-vastai — PRs e issues abertos.

Carregando publicação patrocinada...