«Ejecutar una IA» abarca dos necesidades que no requieren el mismo tamaño de servidor. Una aplicación que llama a un modelo por API se dimensiona como cualquier aplicación web; un modelo ejecutado en el propio servidor se dimensiona ante todo por su memoria. Esta guía separa los dos casos, da la huella de los modelos habituales y la forma de calcularla.
La mayoría de las aplicaciones que «usan IA» (asistentes, agentes, resúmenes, extracción de datos, búsqueda en documentos) llaman a un modelo alojado por su proveedor, mediante una API. El cálculo se hace en su infraestructura; su servidor prepara la petición, espera la respuesta y la procesa. Se dimensiona entonces como cualquier aplicación web: por su lenguaje, su base de datos y el número de usuarios simultáneos.
El otro caso es el modelo ejecutado en el propio servidor, con Ollama, llama.cpp o una biblioteca de Python. Los motivos son conocidos: datos que permanecen en su infraestructura, un coste fijo sea cual sea el número de peticiones, un procesamiento en segundo plano sobre grandes volúmenes, un modelo especializado. Ahí, el modelo entero debe caber en memoria, y es él quien fija el tamaño.
| Lo que hace el servidor | El recurso que decide | Punto de partida |
|---|---|---|
| Llama a un modelo por API (asistente, agente, chatbot) | La memoria de la aplicación | 2 vCPU, 4 GB |
| Calcula además los embeddings y consulta una base vectorial (pgvector) | La memoria de los vectores y de su índice | 2 a 4 vCPU, 6 a 8 GB |
| Ejecuta un modelo pequeño de 1 a 4 mil millones de parámetros, en segundo plano | La memoria y, después, el procesador | 4 vCPU, 8 GB |
| Ejecuta un modelo de 7 a 8 mil millones de parámetros para unos pocos usuarios | La memoria y su ancho de banda | 6 a 8 vCPU, 16 GB |
| Ejecuta un modelo de 12 a 14 mil millones de parámetros, con un contexto largo | La memoria | 8 vCPU, 24 GB |
Una petición a un modelo por API dura de uno a varias decenas de segundos, sobre todo cuando la respuesta se transmite a medida que se genera (streaming). Mientras tanto, su servidor casi no calcula nada: espera. Lo que cuenta es su capacidad para mantener muchas peticiones en espera sin bloquear las demás:
proxy_read_timeout).La memoria que prever es la de la aplicación y su base de datos: 4 GB cubren una aplicación Python o Node.js con PostgreSQL en el lanzamiento. Una configuración habitual, una interfaz Next.js, una API FastAPI y una base PostgreSQL que llaman a un modelo por API, cabe en 6 a 8 GB, compilación de la interfaz incluida.
Una aplicación que busca en sus documentos (RAG, retrieval-augmented generation) transforma cada fragmento en un vector y, después, encuentra los más cercanos a una pregunta. Dos partidas que dimensionar:
El tipo halfvec de pgvector almacena cada dimensión en 2 bytes en lugar de 4: la mitad de memoria, con una calidad de búsqueda muy próxima.
Un modelo de lenguaje es un archivo de pesos, que se carga entero en memoria para responder. Su tamaño depende del número de parámetros y de la cuantización, la precisión con la que se almacena cada peso. El formato GGUF, el de llama.cpp y Ollama, ofrece cuantizaciones de 2 a 16 bits; la variante Q4_K_M, en torno a 4 bits, es el equilibrio habitual entre tamaño y calidad.
| Tamaño del modelo | Ejemplos | 4 bits (Q4_K_M) | 8 bits (Q8_0) | 16 bits |
|---|---|---|---|---|
| 1 a 3 mil millones 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 mil millones | 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 mil millones | Mistral Nemo 12B, Qwen2.5 14B | 7,5 a 9 GB | 13 a 16 GB | 25 a 30 GB |
| 32 mil millones | Qwen2.5 32B | unos 20 GB | unos 35 GB | unos 65 GB |
| 70 mil millones | Llama 3.3 70B | unos 43 GB | unos 75 GB | unos 140 GB |
A este peso se suman dos partidas:
Ejemplo. Llama 3.1 8B en 4 bits, dos conversaciones simultáneas de 8000 tokens y una aplicación pequeña: 5 GB de modelo, 2 GB de contexto, 2 GB para la aplicación y el sistema, es decir, 9 GB, y unos 12 GB con un 25 % de margen.
Para producir cada token, el modelo vuelve a leer todos sus pesos en memoria. En procesador, la velocidad de generación está limitada, por tanto, por el ancho de banda de la memoria más que por el número de núcleos: un modelo de 5 GB, en una máquina que lee 25 GB por segundo, se queda en torno a 5 tokens por segundo, antes incluso de contar el cálculo.
Se distinguen dos fases:
En la práctica, con unos pocos vCPU, un modelo de 7 a 8 mil millones de parámetros cuantizado en 4 bits produce unos pocos tokens por segundo. Es cómodo para un procesamiento en segundo plano (clasificar mensajes, extraer campos de un documento, resumir por la noche lo que ha llegado durante el día) y para un asistente interno. Los usos interactivos a gran escala, y los modelos de varias decenas de miles de millones de parámetros, se ejecutan en tarjeta gráfica (GPU).
La medición decide: llama-bench, incluido en llama.cpp, da la velocidad de las dos fases en su servidor, para su modelo.
llama-bench -m modelo-Q4_K_M.gguf -p 512 -n 128
Un modelo ocupa en disco más o menos lo mismo que en memoria: 5 GB para un modelo de 8 mil millones de parámetros en 4 bits. Prevea espacio para dos o tres modelos o versiones, los índices vectoriales, los documentos de origen y la base de datos. Un SSD NVMe carga un modelo en pocos segundos al arrancar el servicio, lo que cuenta en cada reinicio.
Orden de magnitud: 50 GB para una aplicación que llama a un modelo por API, de 80 a 120 GB en cuanto un modelo y sus documentos viven en el servidor.
Con Ollama, la puesta en marcha cabe en dos comandos:
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
Ollama escucha por defecto en 127.0.0.1:11434, es decir, solo desde el propio servidor. Conserve este ajuste: su API no pide ninguna autenticación, y una instancia abierta a Internet sirve a cualquiera, con sus recursos. Su aplicación, en el mismo servidor, se comunica con él en local; si otro servidor debe consultarlo, pase por un proxy que autentique las peticiones o por una red privada.
Ajuste después el tamaño del contexto (num_ctx) a lo que necesitan sus peticiones: es lo que hace crecer la memoria ocupada, conversación tras conversación.
El VPS Pro funciona sobre procesadores Intel Xeon, memoria ECC y SSD NVMe en espejo, con acceso root para instalar Ollama, llama.cpp, pgvector o su propia pila. La Asistencia integral está incluida: descríbanos su proyecto, API o modelo en el servidor, y le aconsejamos el tamaño; después, ante cada pregunta, diagnosticamos y le indicamos qué hacer, desde el sistema hasta el código de su aplicación.
Sí. llama.cpp y Ollama ejecutan modelos cuantizados en procesador. Un modelo de 7 a 8 mil millones de parámetros en 4 bits pide unos 5 GB de memoria y produce unos pocos tokens por segundo con unos pocos vCPU, lo que conviene a los procesos en segundo plano y a los asistentes internos.
Unos 5 GB para el modelo cuantizado en 4 bits (Q4_K_M), más 1 GB por conversación de 8000 tokens, más la aplicación y el sistema. Un servidor de 8 GB ejecuta el modelo solo; 16 GB dejan espacio para la aplicación, la base de datos y varias conversaciones.
La API da acceso a los modelos más potentes, sin un servidor especial, con un coste por petición. El modelo en el servidor mantiene los datos en su infraestructura y fija el coste, con un modelo más compacto. Muchas aplicaciones combinan ambos: embeddings y clasificación en el servidor, redacción por API.
Unos 50 GB para una aplicación que llama a un modelo por API. En cuanto un modelo vive en el servidor, prevea de 80 a 120 GB: un modelo de 8 mil millones de parámetros en 4 bits pesa 5 GB, y a menudo se conservan varias versiones, con los documentos y sus índices vectoriales.
Simafri
Hablemos de su proyecto
Díganos en pocas palabras lo que necesita: le respondemos rápidamente.
¡Gracias! Su solicitud ha sido enviada. Le responderemos en breve.
¿Prefiere el correo? Escríbanos a support@simafri.com.