Resumen clave: En entornos de comercio electrónico y desarrollo web que dependen de la automatización de datos, el uso continuo de APIs externas de IA plantea graves desafíos de privacidad y cumplimiento normativo. Desplegar un modelo de lenguaje grande (LLM) de forma privada en un VPS Linux es un paso crucial para la gobernanza de datos y la residencia local de información sensible. Desde la perspectiva de un arquitecto de sistemas, este artículo analiza cómo ejecutar el modelo ligero DeepSeek 1.3B con Ollama en un servidor de bajos recursos con solo 2 GB de RAM (un plan heredado). Aunque los VPS económicos tienen limitaciones de E/S, si evitas el thrashing de memoria y configuras un firewall estricto, podrás crear un asistente de IA privado, seguro y muy económico.
I. Adiós a la ansiedad por la privacidad de las APIs en la nube: El valor real de los modelos de IA privados
En equipos de comercio electrónico y recopilación de datos, la IA se usa ampliamente para gestionar correos de clientes, generar descripciones de productos y limpiar datos estructurados. Sin embargo, enviar información confidencial directamente a APIs de terceros cerradas cruza fácilmente las líneas rojas del cumplimiento (como el GDPR) y expone tus datos a ser usados para reentrenar modelos ajenos.
Por ello, usar técnicas de administración Linux para instalar un modelo privado en tu propio servidor es una necesidad real para proteger secretos comerciales. Es importante ser objetivos: un VPS estándar no ofrece un aislamiento físico absoluto (el proveedor sigue controlando el hipervisor), pero sí corta la ruta de datos hacia grandes empresas de IA, logrando un equilibrio excelente entre costo y cumplimiento.
Muchos creen erróneamente que se necesita un servidor con GPU costosa para ejecutar IA. Gracias al ecosistema open-source actual, incluso un VPS económico puede manejar tareas de inferencia ligera.
II. Análisis técnico: Límites de hardware para ejecutar IA en un VPS de bajos recursos
Como arquitecto acostumbrado a exprimir el rendimiento al máximo, debemos entender la lógica base: ¿por qué un servidor modesto con 2 GB de RAM puede ejecutar un modelo de lenguaje con miles de millones de parámetros?
1. Superar el límite de RAM: Cuantización de modelos (Model Quantization)
Los pesos nativos de los LLM suelen guardarse en formato FP16 (coma flotante de 16 bits). Un modelo de 1.300 millones de parámetros (1.3B) requiere casi 3 GB de RAM al cargarse, algo imposible para máquinas modestas. El framework Ollama utiliza ampliamente la cuantización de modelos (Model Quantization) en formato GGUF, comprimiendo los números de alta precisión a un formato de 4 bits. Según la ficha técnica oficial, el modelo deepseek-coder:1.3b-instruct cuantizado en q4_0 se reduce drásticamente a unos 776 MB, eliminando por completo la barrera de entrada de hardware.
2. Cambio de potencia: La realidad del rendimiento en inferencia por CPU (CPU Inference)
La gran mayoría de los VPS económicos no incluyen GPU. El motor llama.cpp integrado en Ollama está optimizado a nivel de ensamblador para conjuntos de instrucciones de CPU modernos (como AVX2 y AVX-512). Esto significa que, mediante cálculo multihilo, la inferencia por CPU (CPU Inference) funciona perfectamente. Hay que ser realistas: la velocidad ronda los 2-5 tokens/s, lejos de la fluidez de una GPU, pero para scripts asíncronos en segundo plano (traducciones masivas, formateo JSON), un retraso de unos segundos es totalmente aceptable.
3. Trampa mortal: Thrashing de memoria (Memory Thrashing) y el mito del Swap
Muchos tutoriales para principiantes sugieren «si falta RAM, usa Swap», asignando 4 u 8 GB de memoria virtual en una máquina de 2 GB. Es un error peligroso. La inferencia de IA requiere leer pesos de datos a altísima frecuencia. Si la RAM física es insuficiente y los pesos se mueven a la partición Swap, la débil E/S del disco del VPS colapsará, provocando un grave thrashing de memoria (Memory Thrashing). La carga del sistema (Load Average) se disparará, SSH dejará de responder y la inferencia caerá a cero. Por tanto, el Swap solo debe actuar como «airbag» contra un OOM (falta de memoria) que bloquee el sistema, nunca como sustituto de la VRAM. El modelo y su contexto deben residir completamente en la RAM física.
III. Despliegue práctico: Guía completa y minimalista para Ollama + DeepSeek
A continuación, desplegaremos desde cero un servicio completo de LLM privado en un VPS Linux estándar con solo 2 GB de RAM, ejecutando Debian 12 o Ubuntu 24.04.
1. Protección contra OOM: Configuración adecuada de Swap y parámetros del kernel
Configuraremos solo 2 GB de Swap como amortiguador para evitar que picos de memoria al iniciar el servicio corten la conexión SSH. Es crucial ajustar el valor vm.swappiness en /etc/sysctl.conf (por ejemplo, a 1 o 10). Esto indica al kernel que priorice la RAM física y solo use el Swap en última instancia, evitando por completo el thrashing de memoria.
# Crear archivo de intercambio de 2GB como amortiguador de seguridad
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Añadir a fstab para montaje automático al inicio
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Optimizar parámetro swappiness para reducir uso de Swap
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2. Instalación en un clic del motor Ollama
Ollama es actualmente el gestor de procesos LLM más amigable para principiantes en el ecosistema Linux. Empaqueta todas las variables de entorno y la compilación en C++, eliminando la necesidad de configurar dependencias complejas manualmente.
# Ejecutar script oficial de instalación, despliegue en un clic
curl -fsSL https://ollama.com/install.sh | sh
# Verificar estado del servicio Ollama
systemctl status ollama
3. Descarga y ejecución del modelo DeepSeek
Dado el límite estricto de RAM en máquinas modestas, descargaremos la versión ligera optimizada para razonamiento lógico y tareas de código/estructuradas: deepseek-coder:1.3b-instruct.

# La primera ejecución descargará automáticamente el modelo GGUF correspondiente (~776MB)
ollama run deepseek-coder:1.3b-instruct
Una vez en la interfaz interactiva tipo terminal, puedes escribir tus preguntas directamente. En un VPS con 2 GB de RAM y CPU de 2 núcleos, una vez que el modelo se carga por completo en la memoria, comenzará a generar texto de forma estable.

IV. Nivel avanzado: Solución de problemas y guía para evitar errores comunes
Ejecutar IA en un entorno con recursos tan limitados conlleva desafíos reales de administración. Antes de exponer la API, te recomendamos encarecidamente revisar nuestro tutorial definitivo para asegurar tu VPS. Cambia el puerto SSH por defecto (22) para evitar ataques de fuerza bruta y proteger tu capacidad de cómputo de escaneos maliciosos.
💡 Guía práctica y consejos para evitar problemas de vps1111:
- Recomendación de hardware y red: Para máquinas que solo procesan tareas de API en segundo plano, la latencia de red no es crítica. Sin embargo, cargar el modelo (casi 1 GB del disco a la RAM) depende totalmente del rendimiento del disco. Evita instancias antiguas con discos duros mecánicos (HDD) y prioriza máquinas con NVMe SSD para reducir drásticamente el tiempo de arranque en frío.
- Riesgo principal a evitar: El mayor problema de los VPS económicos es la restricción estricta de CPU (típica de proveedores no confiables). Ollama puede consumir el 100% de la CPU durante la inferencia. Muchos vendedores con sobreventa agresiva suspenderán tu servidor por «uso excesivo de CPU» y responderán lentamente a los tickets. Usa herramientas como
cpulimitpara limitar el proceso de Ollama (ej. al 80%), sacrificando un poco de velocidad a cambio de estabilidad operativa. - Valoración: ⭐⭐⭐⭐ (4 estrellas. Logra un excelente equilibrio entre gobernanza de datos y costo mínimo. Se resta una estrella por la velocidad limitada de la inferencia por CPU y la dependencia de políticas de CPU permisivas por parte del proveedor.)
V. Preguntas frecuentes (FAQ)
1. ¿Cuál es el mínimo de RAM física para desplegar un modelo de IA en un VPS modesto?
El límite absoluto de RAM debe ser mayor a la suma de: «tamaño del modelo cuantizado + ventana de contexto (Context Window) + consumo base del SO». Para la versión de 4 bits de DeepSeek 1.3B (776 MB), sumando el uso base de Linux y la memoria dinámica durante la inferencia, 2 GB de RAM física es el mínimo absoluto para un funcionamiento práctico. Con solo 1 GB, el modelo se desbordará al Swap del disco, colapsando la E/S del sistema y anulando por completo la capacidad de respuesta.
2. ¿Cómo optimizar a bajo nivel si la inferencia por CPU es demasiado lenta?
Dado que los VPS estándar carecen de GPU para aceleración de coma flotante, la optimización debe enfocarse en dos frentes: primero, usa systemctl para detener procesos en segundo plano innecesarios (monitoreo no esencial o componentes de registro pesados) y liberar ciclos de CPU y RAM. Segundo, reduce la longitud del contexto (parámetro num_ctx) en tus llamadas a la API para disminuir la carga de cálculo por cada inferencia.
3. ¿Cómo habilitar acceso remoto seguro a la API de Ollama desde internet?
Por defecto, Ollama escucha solo en la dirección de bucle local 127.0.0.1:11434 por seguridad. Exponerlo directamente a 0.0.0.0 es un error grave que deja tu capacidad de cómputo vulnerable a ataques externos. La arquitectura correcta sigue el principio de mínimo privilegio (Principle of Least Privilege): primero, bloquea todo acceso no autorizado mediante un firewall de red (ufw o iptables). Segundo, incluso si la solicitud pasa el firewall, exige autenticación en la capa de aplicación con Nginx (configurando obligatoriamente Basic Auth o validación de API Key). Esta defensa en capas es la aplicación práctica de la filosofía «Zero Trust» en servicios de IA privados.