“Rodar uma IA” cobre duas necessidades que não pedem o mesmo tamanho de servidor. Uma aplicação que chama um modelo por API se dimensiona como qualquer aplicação web; um modelo executado no próprio servidor se dimensiona antes de tudo pela memória. Este guia separa os dois casos, mostra quanto ocupam os modelos mais usados e como fazer a conta.
A maioria das aplicações que “usam IA” (assistentes, agentes, resumos, extração de dados, busca em documentos) chama um modelo hospedado pelo fornecedor, por meio de uma API. O cálculo acontece do lado dele; seu servidor prepara a requisição, aguarda a resposta e a processa. Ele se dimensiona então como qualquer aplicação web: pela linguagem, pelo banco de dados e pelo número de usuários simultâneos.
O outro caso é o modelo executado no próprio servidor, com Ollama, llama.cpp ou uma biblioteca Python. Os motivos são conhecidos: dados que ficam em sua infraestrutura, um custo fixo seja qual for o número de requisições, um processamento em segundo plano sobre grandes volumes, um modelo especializado. Aqui, o modelo inteiro precisa caber na memória, e é ele que define o tamanho.
| O que o servidor faz | O recurso que decide | Ponto de partida |
|---|---|---|
| Chama um modelo por API (assistente, agente, chatbot) | A memória da aplicação | 2 vCPU, 4 GB |
| Também calcula os embeddings e consulta uma base vetorial (pgvector) | A memória dos vetores e do índice deles | 2 a 4 vCPU, 6 a 8 GB |
| Executa um modelo pequeno de 1 a 4 bilhões de parâmetros, em segundo plano | A memória, depois o processador | 4 vCPU, 8 GB |
| Executa um modelo de 7 a 8 bilhões de parâmetros para alguns usuários | A memória e a largura de banda dela | 6 a 8 vCPU, 16 GB |
| Executa um modelo de 12 a 14 bilhões de parâmetros, com contexto longo | A memória | 8 vCPU, 24 GB |
Uma requisição a um modelo por API dura de um a várias dezenas de segundos, sobretudo quando a resposta é transmitida aos poucos (streaming). Durante esse tempo, seu servidor quase não calcula nada: ele espera. O que conta é a capacidade de manter muitas requisições em espera sem bloquear as outras:
proxy_read_timeout).A memória a prever é a da aplicação e do banco dela: 4 GB cobrem uma aplicação Python ou Node.js com PostgreSQL no lançamento. Uma configuração comum, com interface Next.js, API FastAPI e banco PostgreSQL chamando um modelo por API, cabe em 6 a 8 GB, build da interface incluído.
Uma aplicação que faz buscas em seus documentos (RAG, retrieval-augmented generation) transforma cada trecho em vetor e depois encontra os mais próximos de uma pergunta. Dois itens a dimensionar:
O tipo halfvec do pgvector armazena cada dimensão em 2 bytes em vez de 4: metade da memória, com uma qualidade de busca que continua muito próxima.
Um modelo de linguagem é um arquivo de pesos, carregado inteiro na memória para responder. O tamanho dele depende do número de parâmetros e da quantização, a precisão com que cada peso é armazenado. O formato GGUF, usado pelo llama.cpp e pelo Ollama, oferece quantizações de 2 a 16 bits; a variante Q4_K_M, em torno de 4 bits, é o meio-termo mais comum entre tamanho e qualidade.
| Tamanho do modelo | Exemplos | 4 bits (Q4_K_M) | 8 bits (Q8_0) | 16 bits |
|---|---|---|---|---|
| 1 a 3 bilhões de parâmetros | Llama 3.2 3B, Qwen2.5 3B | 1 a 2 GB | 1,3 a 3,5 GB | 2,5 a 6,5 GB |
| 7 a 8 bilhões | Mistral 7B, Llama 3.1 8B, Qwen2.5 7B | 4,4 a 5 GB | 7,7 a 8,5 GB | 14,5 a 16 GB |
| 12 a 14 bilhões | Mistral Nemo 12B, Qwen2.5 14B | 7,5 a 9 GB | 13 a 16 GB | 25 a 30 GB |
| 32 bilhões | Qwen2.5 32B | cerca de 20 GB | cerca de 35 GB | cerca de 65 GB |
| 70 bilhões | Llama 3.3 70B | cerca de 43 GB | cerca de 75 GB | cerca de 140 GB |
A esse peso somam-se dois itens:
Exemplo. Llama 3.1 8B em 4 bits, duas conversas simultâneas de 8.000 tokens e uma pequena aplicação: 5 GB de modelo, 2 GB de contexto, 2 GB para a aplicação e o sistema, ou seja, 9 GB, e cerca de 12 GB com 25% de margem.
Para produzir cada token, o modelo relê todos os pesos na memória. Em CPU, a velocidade de geração é limitada, portanto, pela largura de banda da memória mais do que pelo número de núcleos: um modelo de 5 GB, em uma máquina que lê 25 GB por segundo, fica em torno de 5 tokens por segundo, antes mesmo de contar o cálculo.
Duas fases se distinguem:
Na prática, com alguns vCPU, um modelo de 7 a 8 bilhões de parâmetros quantizado em 4 bits produz alguns tokens por segundo. É confortável para um processamento em segundo plano (classificar mensagens, extrair campos de um documento, resumir durante a noite o que chegou durante o dia) e para um assistente interno. Os usos interativos em grande escala, e os modelos de várias dezenas de bilhões de parâmetros, rodam em placa de vídeo (GPU).
A medição decide: o llama-bench, que acompanha o llama.cpp, mostra a velocidade das duas fases em seu servidor, para seu modelo.
llama-bench -m modelo-Q4_K_M.gguf -p 512 -n 128
Um modelo ocupa em disco mais ou menos o que ocupa na memória: 5 GB para um modelo de 8 bilhões de parâmetros em 4 bits. Reserve espaço para dois ou três modelos ou versões, os índices vetoriais, os documentos de origem e o banco de dados. Um SSD NVMe carrega um modelo em poucos segundos quando o serviço inicia, o que conta a cada reinicialização.
Ordem de grandeza: 50 GB para uma aplicação que chama um modelo por API, 80 a 120 GB quando um modelo e os documentos dele ficam no servidor.
Com o Ollama, a instalação cabe em dois comandos:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
O Ollama escuta por padrão em 127.0.0.1:11434, ou seja, apenas a partir do próprio servidor. Mantenha essa configuração: a API do Ollama não exige nenhuma autenticação, e uma instância aberta na internet atende qualquer pessoa, com seus recursos. Sua aplicação, no mesmo servidor, conversa com ele localmente; se outro servidor precisar consultá-lo, passe por um proxy que autentique as requisições ou por uma rede privada.
Depois, ajuste o tamanho do contexto (num_ctx) ao que suas requisições realmente precisam: é ele que faz crescer a memória ocupada, conversa por conversa.
O VPS Pro roda em processadores Intel Xeon, memória ECC e SSD NVMe espelhados, com acesso root para instalar Ollama, llama.cpp, pgvector ou sua própria stack. A Assistência integral está incluída: conte sobre seu projeto, API ou modelo no servidor, recomendamos o tamanho e, a cada dúvida, diagnosticamos e indicamos o que fazer, do sistema até o código de sua aplicação.
Sim. O llama.cpp e o Ollama executam modelos quantizados em CPU. Um modelo de 7 a 8 bilhões de parâmetros em 4 bits pede cerca de 5 GB de memória e produz alguns tokens por segundo com alguns vCPU, o que atende processamentos em segundo plano e assistentes internos.
Cerca de 5 GB para o modelo quantizado em 4 bits (Q4_K_M), mais 1 GB por conversa de 8.000 tokens, mais a aplicação e o sistema. Um servidor de 8 GB roda o modelo sozinho; 16 GB deixam espaço para a aplicação, o banco de dados e várias conversas.
A API dá acesso aos modelos mais poderosos, sem servidor específico, com um custo por requisição. O modelo no servidor mantém os dados com você e fixa o custo, com um modelo mais compacto. Muitas aplicações combinam os dois: embeddings e classificação no servidor, redação por API.
Cerca de 50 GB para uma aplicação que chama um modelo por API. Quando um modelo fica no servidor, reserve 80 a 120 GB: um modelo de 8 bilhões de parâmetros em 4 bits pesa 5 GB, e muitas vezes se mantêm várias versões, junto com os documentos e os índices vetoriais deles.
Simafri
Vamos falar de seu site
Conte para a gente sobre seu projeto em poucas palavras: responderemos rapidamente.
Obrigado! O seu pedido foi enviado. Responderemos em breve.
Prefere o e-mail? Escreva para a gente em support@simafri.com.