Pular para o conteúdo
brorn
Nº 027 · Base técnica

IA local e na nuvem

Um jeito de rodar modelos de IA grandes sem depender de API paga: os que cabem rodam no meu computador (llama.cpp compilado com CUDA) e os que não cabem rodam numa GPU alugada no RunPod, que liga num clique e se desliga sozinha.

No ar
Período
2026-09 → hoje
Plataformas
GPU local (8 GB) · GPU na nuvem
Papel
Sozinho: design, código e entrega
Tecnologias
Fig. 1 · Chat local

§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
  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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