Hospedar um LLM (Large Language Model) localmente significa rodar o modelo na sua própria infraestrutura, sem enviar dados para APIs externas. É a escolha certa quando privacidade, latência ou custo em escala importam. Este guia mostra como fazer isso do jeito certo.
A Adentro projeta e opera infraestrutura de LLM em cloud privada — seus dados ficam no Brasil.
Por que hospedar LLM localmente
Quatro razões práticas que levam empresas a sair das APIs externas:
1. Privacidade de dados
Cada prompt enviado para OpenAI, Anthropic ou Google passa pelos servidores desses provedores. Para dados de clientes, informações médicas, comunicações jurídicas ou propriedade intelectual, isso pode violar a LGPD, políticas internas de segurança ou contratos de confidencialidade. LLM local: nenhum dado sai do seu ambiente.
2. Custo em escala
APIs de LLM cobram por token. Para aplicações com alto volume (processamento em lote de documentos, chatbot com muitos usuários, automação de fluxos), o custo mensal de API pode superar o TCO de hardware próprio em 12–18 meses.
3. Latência controlada
APIs externas têm latência variável (network + filas do servidor). LLM local tem latência determinística — útil para aplicações em tempo real como análise de documentos ao vivo ou assistentes de código integrados ao IDE.
4. Personalização e fine-tuning
Com LLM local, você pode fazer fine-tuning com dados proprietários, ajustar o comportamento do modelo e versionar os pesos junto com o código — controle total que APIs externas não permitem.
Ferramentas para hospedar LLM localmente
Ollama — a mais fácil para começar
Ollama é um servidor de LLM com interface CLI e API REST, projetado para simplicidade. Instala-se em um comando, baixa modelos do repositório oficial e expõe uma API compatível com OpenAI em localhost:11434.
# Instalar (Linux/macOS) curl -fsSL https://ollama.ai/install.sh | sh # Baixar e rodar Llama 3.1 8B ollama run llama3.1:8b # Rodar como servidor (API REST) ollama serve
Ideal para: desenvolvimento, prototipagem, uso individual. Limitação: não tem gerenciamento de concorrência avançado para produção com múltiplos usuários.
vLLM — o padrão para produção
vLLM é um servidor de inferência de alta performance com batching contínuo (PagedAttention), que processa múltiplas requisições em paralelo com alta eficiência de VRAM. Expõe API compatível com OpenAI.
# Instalar pip install vllm # Servir Llama 3.1 8B Instruct python -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3.1-8B-Instruct --tensor-parallel-size 1 --max-model-len 8192
Ideal para: produção com múltiplos usuários, alto throughput, modelos grandes com tensor parallelism.
llama.cpp — CPU e GPU mistas
llama.cpp é um runtime em C++ para modelos no formato GGUF (quantizados). Roda em CPU pura ou com aceleração parcial de GPU (CUDA/Metal). Perfeito para ambientes sem GPU dedicada ou quando o modelo não cabe inteiramente na VRAM.
# Servidor HTTP (compatível com OpenAI) ./llama-server -m models/llama-3.1-8b-instruct-q4_k_m.gguf --n-gpu-layers 35 \ # layers na GPU, resto na CPU --port 8080 --ctx-size 8192
Comparativo rápido
| Ferramenta | Facilidade | Performance | CPU support | Melhor para |
|---|---|---|---|---|
| Ollama | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | Sim | Dev, prototipagem |
| vLLM | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Não | Produção GPU |
| llama.cpp | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Sim (nativo) | CPU/GPU misto |
Requisitos por modelo (vLLM / Ollama)
| Modelo | VRAM (Q4) | RAM mín. | Tok/s (L40S) | Tok/s (RTX4090) |
|---|---|---|---|---|
| Llama 3.2 3B | 2 GB | 8 GB | ~300 | ~200 |
| Llama 3.1 8B | 5 GB | 16 GB | ~150 | ~100 |
| Qwen 2.5 14B | 9 GB | 32 GB | ~90 | ~60 |
| Llama 3.3 70B | 38 GB | 64 GB | ~45 | N/A* |
*Não cabe em 24 GB de VRAM em Q4 sem offload parcial para CPU.
Como implantar passo a passo
Setup mínimo de produção com vLLM
- SO: Ubuntu 22.04 LTS + drivers NVIDIA (driver 535+ para A100/H100, 525+ para RTX 4090)
- CUDA: CUDA 12.1+ — instalar via
aptcom o repositório NVIDIA oficial - Python: 3.10–3.11, ambiente isolado (
condaouvenv) - vLLM:
pip install vllm— instala automaticamente dependências PyTorch - Modelo: baixar de HuggingFace Hub (
huggingface-cli download) ou usar modelos GGUF com llama.cpp - Reverse proxy: nginx na frente do servidor de inferência, com autenticação por API key via header
- Monitoramento: nvidia-smi para VRAM/utilização, Prometheus + Grafana para métricas de throughput e latência
Considerações de produção
- Autenticação: nunca exponha a API do LLM sem autenticação. vLLM e Ollama têm suporte a API keys; adicione nginx com auth_request para controle fino.
- Rate limiting: implemente limits por usuário ou departamento para evitar que um uso intenso degrade a experiência de todos.
- Logging: registre prompts e respostas (com TTL de retenção definido) para auditoria e debugging. Atenção à LGPD — logs com dados pessoais têm requisitos específicos.
- Fallback: para alta disponibilidade, configure fallback para API externa (OpenAI/Anthropic) quando o servidor local estiver sobrecarregado ou indisponível.
- Atualização de modelos: use versionamento de modelos — mantenha o modelo anterior disponível por 30 dias após a atualização para rollback rápido se necessário.
Perguntas frequentes
Consigo rodar LLM sem GPU, só com CPU?
Sim, via llama.cpp. Um servidor com AMD EPYC de 64 cores e 256 GB RAM roda Llama 3.1 8B Q4 a 10–20 tokens/segundo — lento para chatbot interativo (GPT-4 gera 50–80 tok/s) mas suficiente para processamento em lote. Para equipes pequenas com budget zero de GPU e baixa frequência de uso, CPU é uma opção válida para começar.
Quanto custa em termos de computação servir 1.000 perguntas por dia?
Com Llama 3.1 8B Q4 em um RTX 4090, cada resposta de 500 tokens leva ~5 segundos (100 tok/s). 1.000 perguntas/dia = ~1,4 horas de GPU ocupada. O servidor consome ~400W nesse período: ~0,6 kWh = R$ 0,50 de energia. O custo amortizado do hardware (R$ 50.000 servidor / 26.000 horas de vida) é ~R$ 1,90/hora. Total por pergunta: menos de R$ 0,003 — compare com R$ 0,05–0,10 por pergunta em APIs premium.
Como integrar o LLM local nas aplicações existentes?
vLLM e Ollama expõem uma API compatível com OpenAI em /v1/chat/completions. Isso significa que qualquer aplicação que usa o SDK oficial da OpenAI pode apontar para o servidor local mudando apenas a base_url e a API key — zero mudança no código de negócio. Exemplo Python: openai.OpenAI(base_url=”http://localhost:8000/v1″, api_key=”sk-local”).
Como fazer backup do modelo após fine-tuning?
Veja o guia completo em Backup de modelos de IA. O resumo: guarde os pesos em safetensors ou GGUF, com backup 3-2-1 (servidor + NAS local + offsite). Para fine-tuning com LoRA, guarde apenas os adapters LoRA (100–500 MB) em vez do modelo completo — e o modelo base de onde o adapter foi derivado.


