§1O problema
Os modelos mais fortes não cabem numa placa de 8 GB, e as APIs pagas cobram por uso e mandam o texto para fora. Eu queria privacidade, custo controlado e velocidade, sem deixar máquina alugada ligada esquecida.
§2O que eu construí
- Servidor localllama-server com a API de chat padrão do mercado: sobe leve, carrega o modelo na primeira requisição, dorme após 15 min parado e descarrega por chamada. Usado por outros apps meus (análise de fotos, agente de código).
- LLM no RunPodAtalho que cria o pod, baixa o modelo, abre o agente de código ligado a ele e apaga o pod ao fechar a janela. Versão leve (4 GPUs, ~US$ 2,36/h) e versão completa (756 GB, só liga depois de eu aprovar o custo por escrito).
- 3D no RunPodComfyUI com modelos de foto para 3D e de vídeo para corpo 3D, com uma trava de token na frente.
- Música com voz no RunPodModelo de música com tela própria; as músicas prontas são baixadas sozinhas para o meu computador.
- Em todosPod novo a cada uso, sem disco permanente, e apagado sozinho por ociosidade ou ao fechar o terminal.
§3As partes difíceis
6 itens- 01
Compilar CUDA sem sudo
As versões prontas do llama.cpp para Linux não trazem CUDA. Montei o toolkit a partir dos pacotes soltos da NVIDIA dentro da minha pasta de usuário, resolvi dependências ocultas (libnvvm, link simbólico lib64, rpath) e copio as bibliotecas para a pasta do binário.
- 02
Afinar modelo MoE de 35B numa placa de 8 GB
Todos os “especialistas” na CPU, cache de contexto quantizado, decodificação especulativa e visão na placa. Medido: ~370 tok/s lendo prompt e ~44 tok/s gerando, com 6,7 GB de VRAM (a versão Vulkan dava 35 tok/s gerando).
- 03
Reserva de GPU resiliente
O script de ligar tenta uma lista de GPUs em ordem de preço quando o RunPod diz “sem vaga”, filtra por versão de CUDA lida do schema da API e respeita um teto de preço por hora.
- 04
Controle de custo
Vigia dentro do pod que apaga por ociosidade ou se o modelo não ficar pronto; aviso antes de desligar; limite de tempo escolhido por sessão; trava de saldo mínimo no modelo caro.
- 05
Várias janelas no mesmo pod
2 agentes com contextos separados num cache compartilhado; o pod só é apagado quando a última janela fecha. Testado com 2 conversas de 85 mil e 150 mil tokens.
- 06
Trava de acesso
ComfyUI e o gerador de música não têm senha, então uma camada em Python (aiohttp/FastAPI) exige token por pod.
§4Resultado
- tok/s gerando, MoE de 35B em 8 GB
- ~44
- tok/s lendo o prompt
- ~370
- de VRAM
- 6,7 GB
Servidor local em uso: substituiu o Ollama e atende meus apps. A versão leve do LLM subiu em ~3 min com contexto de 262.144 tokens e 2 conversas ao mesmo tempo no teste de outubro de 2026; o pod apagou sozinho após 10 min ocioso. Os atalhos da versão completa do LLM, do 3D e da música também já rodaram em pods reais.
§5Stack
- llama.cpp (CUDA, compilado)
- vLLM
- ComfyUI
- FastAPI / aiohttp
- Bash
- Python
- API REST e GraphQL do RunPod
- pm2
- GGUF