Del portátil al servidor: cómo elegir, asegurar y dimensionar tu propio stack de LLM
Correr un modelo en un portátil toma cinco minutos. Servirlo a 200 colegas con una latencia aceptable, sin exponer un puerto a internet, es otro trabajo. Este es el stack que recomendamos en septiembre de 2026 y la forma de dimensionarlo.
Ollama, LM Studio y llama.cpp son excelentes para una persona o un equipo pequeño; vLLM y SGLang están hechos para muchos usuarios simultáneos en GPU. La brecha viene de las técnicas de servicio, no del modelo: en una prueba de Red Hat con una A100, vLLM llegó a 793 tokens por segundo y Ollama por defecto, a 41.
Autoalojar también te vuelve operador: SentinelLABS y Censys contaron 175.108 hosts Ollama expuestos, y 2026 trajo fallas críticas en Ollama, vLLM y llama.cpp. Nuestra recomendación para 20 a 200 personas: un motor tras una pasarela autenticada en red privada, monitoreado desde el primer día, dimensionado por concurrencia y mantenido mientras el volumen o la residencia de datos lo justifiquen.
Cuatro motores, tres escenarios
Versiones al 26 de septiembre de 2026; estos proyectos publican cada pocas semanas.
| Motor | Versión | Qué aporta | Para quién |
|---|---|---|---|
| Ollama | v0.34.4 (23 sept.) | Instalación simple, biblioteca de modelos, API compatible con OpenAI y Anthropic; por defecto, una petición por modelo | Una persona, prototipos |
| LM Studio | 0.4.25 (19 sept.) | App sobre llama.cpp y MLX; demonio llmster con batching continuo | Escritorios, equipos con Mac |
| llama.cpp (llama-server) | v0.5.0 (23 sept.) | Casi cualquier hardware, GGUF, batching continuo, modo router multimodelo | Una máquina, concurrencia moderada |
| vLLM | v0.30.0 (22 sept.) | PagedAttention, batching continuo, caché de prefijos, decodificación especulativa, FP8 y FP4 | Producción multiusuario en GPU |
| SGLang | v0.5.20 (18 sept.) | RadixAttention, desagregación prefill/decode, paralelismo de expertos | Agentes, RAG, modelos MoE grandes |
| TensorRT-LLM | v1.2.1 (20 abr.) | El motor de NVIDIA, solo para GPU NVIDIA | Flotas NVIDIA con equipo de ingeniería |
Ollama, LM Studio y llamafile comparten llama.cpp por dentro, y para un solo usuario la configuración pesa más que la aplicación, según la comparativa de Mozilla.ai de septiembre de 2026. La frontera real es la concurrencia. Evita empezar con TGI de Hugging Face (en mantenimiento desde diciembre de 2025), mlx_lm.server o TabbyAPI, que sus propios autores no recomiendan para producción.
Cuatro técnicas que hacen a un servidor
Explican por qué una misma GPU puede atender a un usuario o a cincuenta.
- Batching continuo. El motor agrega y retira peticiones en cada paso de generación en vez de esperar a que termine un lote, así que la GPU nunca queda ociosa. Es la clave del resultado de Red Hat con Llama 3.1 8B en una A100: vLLM llegó a 793 tokens por segundo con una latencia P99 de 80 ms, y Ollama por defecto a 41 y 673 ms. Red Hat cofundó llm-d, basado en vLLM, y probó Ollama 0.9.2 (2025): léelo como un orden de magnitud.
- PagedAttention. La caché KV se guarda en páginas pequeñas, como la memoria virtual, en vez de un bloque por petición. Su artículo (SOSP 2023) reportó un desperdicio casi nulo y de 2 a 4 veces el rendimiento de los sistemas anteriores a igual latencia.
- Caché de prefijos. Si las peticiones comparten el comienzo (prompt de sistema, herramientas, documentos), el motor reutiliza la caché ya calculada. vLLM la activa por defecto y RadixAttention de SGLang gira en torno a ella; SGLang v0.5.20 subió la tasa de aciertos de 43,8 % a 60,8 % en su propia prueba. En agentes y RAG suele ser la mayor ganancia.
- Decodificación especulativa. Un modelo borrador o cabezas adicionales (EAGLE-3, MTP) proponen varios tokens que el modelo grande verifica en una pasada. Según la documentación de vLLM, gana mucho con poca carga y menos con mucha: ayuda sobre todo a la latencia de pocos usuarios.
API compatibles con OpenAI, una pasarela y versiones de modelos
Tus aplicaciones no deberían saber qué motor les responde.
vLLM, SGLang, llama-server, LM Studio y Ollama (en parte) hablan la API de OpenAI, y varios la API Messages de Anthropic. Cambiar entre un modelo local y un proveedor se reduce a la URL base, pero herramientas, salida estructurada y algunos parámetros difieren: prueba cada ruta.
Pon una pasarela (gateway) entre aplicaciones y motores. Un proxy compatible con OpenAI como LiteLLM Proxy agrega llaves por equipo, presupuestos, límites, enrutamiento, respaldo hacia un proveedor contratado y registros; un proxy inverso (nginx, Envoy) es el mínimo. En clústeres, llm-d (Sandbox de la CNCF desde marzo de 2026) y NVIDIA Dynamo (v1.5.0) enrutan según la caché sobre vLLM o SGLang.
Versionar los modelos
- Fija el hash del archivo, la cuantización, la plantilla de chat, la versión del motor y los parámetros de muestreo.
- Expón alias estables en la pasarela (por ejemplo chat-default) para cambiar de modelo sin tocar el código.
- Prevé los arranques en frío: Ollama descarga los modelos inactivos a los 5 minutos por defecto; el modo router de llama-server mantiene hasta 4 cargados.
Qué medir: latencia p95, tokens por segundo y cola
Si solo miras el uso de la GPU, tus usuarios te avisarán primero de la saturación.
| Señal | Por qué importa | Métrica en vLLM |
|---|---|---|
| Tiempo al primer token (p50, p95) | Velocidad percibida en un chat | vllm:time_to_first_token_seconds |
| Latencia entre tokens (p95) | Fluidez del streaming | vllm:inter_token_latency_seconds |
| Latencia de punta a punta (p95) | Agentes y lotes | vllm:e2e_request_latency_seconds |
| Profundidad de la cola | Falta de capacidad | vllm:num_requests_waiting |
| Uso de la caché KV | Saturación de memoria | vllm:kv_cache_usage_perc |
| Tokens generados | Rendimiento y costo | vllm:generation_tokens |
llama-server solo expone /metrics con --metrics, con indicadores como llamacpp:requests_deferred para su cola; para Ollama y lo demás, mide en la pasarela. Antes de lanzar, haz pruebas de carga con tu concurrencia objetivo y prompts reales, por ejemplo con GuideLLM, que usó Red Hat.
Si la cola no vuelve a cero entre picos o el p95 del tiempo al primer token supera tu objetivo (digamos 2 segundos en un chat), falta capacidad. Revisa slots, contexto y cuantización antes de comprar GPU.
Seguridad: un puerto de inferencia nunca da a internet
Local no significa seguro; significa que la seguridad es tuya.
En 2024, Wiz reveló Probllama (CVE-2024-37032), una falla de Ollama que podía llevar a ejecución remota de código, y recordó que Ollama viene sin autenticación. En enero de 2026, SentinelLABS y Censys reportaron 175.108 hosts Ollama expuestos en 130 países, casi la mitad con llamadas a herramientas activadas.
Los motores también traen fallas críticas. En 2026: la CVE-2026-7482 en Ollama (antes de 0.17.1, CVSS 9,1), donde un GGUF manipulado enviado a /api/create, sin autenticación, filtra memoria que puede contener llaves de API y conversaciones ajenas; la CVE-2026-48746 en vLLM (corregida en 0.22.0, CVSS 9,1), que saltaba la llave de API; y la CVE-2026-34159 en llama.cpp (antes de b8492, CVSS 9,8), ejecución remota de código por el backend RPC con solo acceso TCP.
Su guía de seguridad es tajante: --api-key solo protege algunos prefijos de ruta, otros endpoints no tienen autenticación y el tráfico entre nodos va sin cifrar, así que debe ir en una red aislada. Recomienda un proxy inverso que solo deje pasar los endpoints necesarios. Ollama y llama-server escuchan en 127.0.0.1 por defecto: déjalo así.
Los archivos de modelo exigen el mismo cuidado. Pickle, formato clásico de PyTorch, puede ejecutar código al cargarse (JFrog halló unos 100 modelos maliciosos en Hugging Face en 2024); safetensors pasó una auditoría de Trail of Bits sin fallas críticas de ejecución de código. GGUF no contiene código, pero sus lectores han tenido desbordamientos y sus plantillas pueden esconder instrucciones (ver seguridad de la cadena de suministro de IA).
- Motores en localhost o una subred privada, en contenedores sin privilegios ni salida a internet; la única puerta es la pasarela, con TLS, SSO o llaves por aplicación.
- Bloquea en producción la descarga y creación de modelos (en Ollama, /api/pull, /api/create, /api/push); carga modelos solo desde un registro interno con hashes verificados.
- Parches cada mes: NVD registra decenas de vulnerabilidades de 2026 en vLLM, llama.cpp y Ollama.
- Registra metadatos por defecto (usuario, modelo, tokens, latencia) y prompts completos solo si hace falta, con retención definida.
Arquitectura de referencia para 20 a 200 personas
Seis capas dentro de tu red, con una sola salida controlada hacia un proveedor.
| Capa | Qué recomendamos | Por qué |
|---|---|---|
| Interfaces | Open WebUI o un chat interno, asistentes en el IDE, aplicaciones por API | Una sola entrada para el equipo |
| Identidad | SSO corporativo en la interfaz, una llave por aplicación en la pasarela | Saber quién usó qué; revocar en un solo lugar |
| Pasarela | Proxy compatible con OpenAI detrás de TLS | Cuotas, alias, registros, respaldo hacia un proveedor contratado |
| Inferencia | vLLM o SGLang en un servidor GPU, más un segundo por redundancia; llama-server u Ollama para desarrollo | Concurrencia en producción, simplicidad en desarrollo |
| Modelos | Un modelo general, uno de embeddings y, si hace falta, uno pequeño y rápido, desde un registro interno | Reproducibilidad y vuelta atrás |
| Operación | Métricas Prometheus, alertas de cola y p95, parches mensuales, evaluación antes de cada cambio | Sin sorpresas para los usuarios |
Ojo con la licencia: Open WebUI solo permite quitar su marca hasta 50 usuarios en 30 días; por encima, se conserva o se compra una licencia empresarial. Modelos en modelos de pesos abiertos en 2026, máquinas en hardware para IA local y, si quieres que lo construyamos, software a la medida.
Un método de dimensionamiento en cinco pasos
Dimensiona por peticiones simultáneas y contexto; luego mide.
- Estima la concurrencia. Peticiones en curso ≈ usuarios activos en el pico × peticiones por usuario por minuto × duración media en minutos. Supuestos ilustrativos: 60 de 200 personas activas en el pico, una petición cada dos minutos, 15 segundos cada una: 60 × 0,5 × 0,25 ≈ 8.
- Mide el contexto como el p95 de tokens de entrada más salida en prompts reales, no como el máximo del modelo.
- Suma la memoria: pesos (parámetros × bits ÷ 8), caché KV (tamaño por token × contexto × peticiones) y margen. Qwen3-32B en FP8 ocupa unos 33 GB y su caché, 256 KiB por token en 16 bits: 8 peticiones de 16.384 tokens suman 32 GiB, o 16 GiB en FP8. Cabe con holgura en una GPU de 80 GB (ver cuantización sin mitos).
- Haz pruebas de carga con el motor y la cuantización elegidos, a esa concurrencia, y compara el p95 del tiempo al primer token y de la latencia entre tokens con tus objetivos.
- Deja margen y vuelve a medir. Nuestra regla: planea para 1,5 veces el pico medido y revisa la cola cada mes con tráfico real.
Cuándo dejar de autoalojar
Autoalojar es un medio, no un fin, y los números suelen favorecer a una API.
Las API de modelos abiertos son baratas: el 26 de septiembre de 2026, OpenRouter listaba gpt-oss-120b a USD 0,15 por millón de tokens de entrada y USD 0,60 de salida en proveedores conocidos. Un análisis de Pan y colegas (2025) ve viable el autoalojamiento sobre todo por encima de 50 millones de tokens al mes o con reglas estrictas de residencia, aunque un modelo pequeño en una RTX 5090 se paga en unos tres meses. Y un estudio de caso de 2026 encontró que la caché de prompts bajaba la factura de la API en 88,6 %, por debajo de una GPU local compartida.
Nuestra regla: deja la carga en un proveedor si el volumen está por debajo de unos 50 millones de tokens al mes sin exigencia de residencia, si necesitas capacidad de frontera (Epoch AI ubica a los modelos abiertos unos cuatro meses atrás en 2026), si las GPU pasarían ociosas o si nadie puede asumir parches y guardias. Si los datos no pueden salir o el volumen es alto y estable, local. Lo habitual: un híbrido enrutado por la pasarela.
Colombia y Europa. En Colombia, enviar datos personales a un proveedor extranjero es una transferencia o transmisión internacional (Ley 1581 de 2012, Decreto 1377 de 2013); Estados Unidos figura en la lista de países adecuados de la SIC, con responsabilidad demostrada. En la Unión Europea, el RGPD exige contrato de encargo (artículo 28) y base de transferencia (capítulo V). Un servidor local evita esas preguntas para los datos sensibles, no el resto de obligaciones. Más en el costo real de la IA.
Lo esencial
- Ollama, LM Studio y llama-server sirven a una persona o un equipo pequeño; vLLM (v0.30.0) y SGLang (v0.5.20), a producción multiusuario en GPU.
- Batching continuo, PagedAttention y caché de prefijos explican brechas como 793 frente a 41 tokens por segundo; la decodificación especulativa ayuda sobre todo con poca carga.
- Nunca expongas un puerto de inferencia: se observaron 175.108 hosts Ollama expuestos y 2026 trajo fallas de CVSS 9 o más en Ollama, vLLM y llama.cpp.
- Dimensiona por peticiones simultáneas, contexto p95 y caché KV; vigila desde el primer día el p95 del tiempo al primer token y la cola.
- Por debajo de unos 50 millones de tokens al mes y sin exigencia de residencia, una API suele salir más barata; la pasarela facilita el híbrido.
Fuentes
- vLLM v0.30.0 release notes
- Security guide
- Production metrics
- Ollama vs. vLLM: a deep dive into performance benchmarking
- Efficient Memory Management for Large Language Model Serving with PagedAttention
- SGLang repository and release notes (v0.5.20)
- llama-server README (options, metrics, defaults)
- Ollama FAQ (network binding, concurrency, keep-alive)
- Silent Brothers: Ollama hosts form anonymous AI network beyond platform guardrails
- CVE-2026-7482: Ollama GGUF heap out-of-bounds read
- Pickle scanning
- A Cost-Benefit Analysis of On-Premise Large Language Model Deployment: Breaking Even with Commercial LLM Services
Nota editorial: este análisis refleja la información pública disponible en la fecha de revisión. Modelos, precios y normas cambian rápido; cada dato de terceros enlaza a su fuente y nuestras opiniones se presentan como tales. ¿Ves un error? Escríbenos a contact@slash-digital.io.
Las preguntas que escuchamos a menudo
¿Puedo usar Ollama en producción para mi equipo?
Para pocos usuarios, con cuidado: por defecto procesa una petición por modelo a la vez y deja hasta 512 en cola. Para decenas de usuarios simultáneos, un motor con batching continuo como vLLM o SGLang atiende muchísimo más por GPU.
¿Basta el --api-key de vLLM para exponerlo?
No. La guía de seguridad de vLLM dice que la llave solo protege algunos prefijos de ruta, y la CVE-2026-48746 permitía saltársela hasta la versión 0.22.0. Deja el motor en una red privada, detrás de una pasarela con TLS y una lista de endpoints permitidos.
¿Cuántas GPU necesita una empresa de 100 personas?
Depende de las peticiones simultáneas y de la longitud de contexto, no del número de empleados. Estima la concurrencia, suma pesos y caché KV, y haz pruebas de carga. Recomendamos empezar con un servidor dimensionado así y agregar un segundo por redundancia cuando el uso esté probado.
¿GGUF es más seguro que pickle?
GGUF y safetensors guardan datos, no código, mientras que pickle puede ejecutar código al cargarse. Pero los lectores de GGUF han tenido fallas de memoria y las plantillas de chat pueden llevar instrucciones ocultas: verifica publicadores y hashes, y mantén los motores actualizados.
¿Cuándo sale más barato autoalojar que usar una API?
Con volumen alto y estable (Pan y colegas apuntan a 50 millones de tokens al mes o más), GPU bien aprovechadas y un equipo para operarlas, o cuando la residencia de datos es obligatoria. Si no, las API de modelos abiertos, de unos centavos a cerca de un dólar por millón de tokens, son difíciles de superar.
Más análisis para seguir
IA local en 2026: qué hardware comprar y qué corre en cada uno
RTX 5090, RTX PRO 6000, DGX Spark, Ryzen AI Max+ y Mac Studio M5: cálculo de memoria, qué modelo cabe dónde, comprar o alquilar y opciones por tamaño de equipo.
IA local y open sourceCuantización sin mitos: GGUF, AWQ, FP8 y FP4
Qué cuestan de verdad 4, 5 u 8 bits en calidad, memoria y velocidad, qué formato corre dónde (GGUF, AWQ, EXL3, FP8, NVFP4) y cómo validar un cuantizado.
CiberseguridadSeguridad de la cadena de suministro de IA: modelos, paquetes y servidores MCP
Modelos que ejecutan código, paquetes alucinados, servidores MCP y skills maliciosos: incidentes 2025–2026, controles que funcionan y deberes de la CRA.
¿Y después de esto?
Pongámoslo en producción
Cuéntanos tu reto. Respondemos en menos de 24 horas laborales con una primera lectura honesta: si podemos ayudarte, te diremos cómo; si no, te diremos quién puede.
Contesto personalmente. Sin formularios eternos ni respuestas automáticas.