Saltar al contenido
Todos los artículos

LLM locales en una red air-gapped: IA para tus datos más sensibles

Los documentos que más se beneficiarían de la IA son justo los que nadie puede subir a ningún sitio: contratos, expedientes de personal, historiales de pacientes, código fuente, planos de ingeniería. Con un modelo de pesos abiertos dentro de una red aislada obtienes el beneficio sin que un solo byte salga del edificio. Así lo monto, así entran los modelos sin internet, así se prueban sin conexión y esto es lo que puedes esperar de forma realista.

10 min de lectura

1. Por qué IA en air gap y para quién

La mayoría de las empresas empiezan con un servicio de IA en la nube y chocan pronto con un muro: el departamento legal no permite meter contratos, RR. HH. no puede usarlo con expedientes de personal, el hospital no puede tocar datos de pacientes e ingeniería no quiere su código propietario en registros ajenos. En mi artículo sobre LLM locales para datos sensibles describí un entorno privado con un firewall que bloquea las API públicas de IA. Un air gap va un paso más allá: no existe ninguna ruta a internet, así que incluso una herramienta mal configurada, un plugin curioso o una dependencia comprometida no tienen adónde enviar datos. Ese es el nivel que suelen necesitar los sectores regulados, el sector público, los proveedores de defensa y cualquiera con secretos comerciales serios, y con los modelos de pesos abiertos actuales es totalmente alcanzable.

2. La arquitectura en una imagen

El montaje tiene dos mitades. Fuera, en una zona conectada, alguien elige un modelo de pesos abiertos, revisa su licencia, lo descarga y registra sus huellas. Dentro del enclave ocurre todo lo demás: un registro de modelos sin conexión guarda versiones verificadas, los nodos GPU sirven el modelo aprobado, una pasarela interna de IA gestiona el inicio de sesión, las cuotas, el enmascarado de datos personales y el registro de auditoría, y un pequeño índice de búsqueda sobre tus documentos internos da al modelo el contexto para responder sobre tu negocio. Los usuarios nunca hablan con el modelo directamente, solo con la pasarela, que es donde viven tus reglas. Y hay exactamente una entrada para modelos nuevos y ninguna salida para nada.

Una entrada para los modelos y ninguna salida para los datos: así funciona un modelo de pesos abiertos sobre tus documentos más sensibles. Haz clic para verlo a tamaño completo.
LLM local en una red air-gapped: pesos del modelo elegidos y con huella en una zona conectada, movidos en una dirección al enclave, verificados y guardados en un registro de modelos sin conexión, probados sin conexión y servidos en nodos GPU con vLLM u Ollama; el personal inicia sesión con un proveedor de identidad interno, una pasarela de IA enmascara datos personales y escribe un registro de auditoría, y las respuestas usan documentos internos mediante un modelo de embeddings y PostgreSQL con pgvector; sin ruta a internet.

3. Meter un modelo sin internet

Elige el modelo por licencia y encaje, no por el ruido de las clasificaciones, y fíjalo a un commit exacto, porque «latest» no existe en un air gap. Descarga los pesos en formato safetensors: Hugging Face advierte de que el formato pickle, más antiguo, puede ejecutar código arbitrario al cargarse, y safetensors se creó precisamente para evitarlo. Después escribe un checksum SHA-256 de cada archivo, firma el manifiesto y mueve la carpeta por el mismo camino unidireccional que usas para el software, como cuento en mi artículo sobre sistemas air-gapped. Dentro, un host de cuarentena vuelve a verificar firma y checksums antes de que el modelo llegue al registro sin conexión, que puede ser algo tan simple como almacenamiento de objetos versionado. No actives nunca opciones que carguen código propio incluido con un modelo; en un enclave quieres pesos, tokenizador y configuración, nada ejecutable.

bash
# Connected zone: fetch an open-weight model pinned to one commit, no pickle files
set -euo pipefail
MODEL=Qwen/Qwen2.5-14B-Instruct      # example, pick yours by licence and fit
REV=<commit-sha-from-the-model-page>

hf download "$MODEL" --revision "$REV" --exclude "*.bin" --local-dir models/qwen2.5-14b-instruct

cd models
find qwen2.5-14b-instruct -type f -exec sha256sum {} + > qwen2.5-14b-instruct.SHA256SUMS
cosign sign-blob --key cosign.key --bundle qwen2.5-14b-instruct.bundle qwen2.5-14b-instruct.SHA256SUMS

Consejo práctico

Guarda junto a cada versión del registro una ficha de una línea: origen, commit, licencia, checksum, quién la aprobó y cuándo.

4. Servirlo: vLLM u Ollama en tus propias GPU

Para un departamento o una empresa entera uso vLLM: está hecho para el rendimiento, agrupa a muchos usuarios de forma eficiente y ofrece una API compatible con OpenAI, así que las herramientas internas pueden usarlo sin código especial. Para un equipo pequeño o una sola estación de trabajo potente, Ollama es más sencillo y puede importar pesos locales GGUF o safetensors mediante un Modelfile. En ambos casos, sirve desde una ruta local y desactiva cualquier intento de llegar a internet; en todo lo que se basa en las librerías de Hugging Face, la variable de entorno HF_HUB_OFFLINE garantiza que no se haga ninguna llamada HTTP al Hub. El hardware que necesitas depende del tamaño del modelo y de la precisión; la calculadora de GPU de mi artículo sobre LLM locales para datos sensibles te da una estimación rápida y honesta antes de pedir nada.

bash
# Enclave: serve the approved model from the offline registry
export HF_HUB_OFFLINE=1                      # never try to reach the Hub

vllm serve /models/qwen2.5-14b-instruct \
  --served-model-name internal-14b \
  --api-key "$INTERNAL_API_KEY" \
  --max-model-len 16384

# Small team alternative: Ollama with a local Modelfile
#   FROM /models/qwen2.5-14b-instruct
#   ollama create internal-14b -f Modelfile
What is Ollama? Running Local LLMs Made Simple, IBM Technology (YouTube). Se carga desde YouTube solo cuando haces clic.

5. La pasarela: inicio de sesión, enmascarado, auditoría

La pasarela es lo que convierte un modelo en un servicio que puedes defender ante el delegado de protección de datos. La gente inicia sesión con el proveedor de identidad que ya tienes dentro, como Active Directory o Keycloak, así que el acceso sigue los roles existentes. Antes de que un prompt llegue al modelo, los datos personales que el caso de uso no necesita se detectan y se enmascaran; Microsoft Presidio es un buen punto de partida de código abierto y funciona totalmente sin conexión. Cada petición se escribe en un registro de auditoría dentro del enclave: quién preguntó, qué documentos se usaron, qué versión del modelo respondió, con un plazo de conservación acordado. Las cuotas por equipo evitan que un usuario intensivo frene a todos los demás, y en esa misma pasarela añadirás después modelos nuevos sin cambiar ni un solo cliente.

Consejo práctico

Enmascara también antes de registrar. Un registro de auditoría lleno de datos personales sin enmascarar se convierte en silencio en tu base de datos más sensible.

Interactivo

¿Qué GPU necesita tu modelo?

Elige tamaño del modelo y precisión. Los pesos ocupan parámetros × bytes por parámetro; un 20 % más cubre la caché KV con contextos normales.

Tamaño del modelo (miles de millones de parámetros)

Precisión

≈ 19 GB

memoria de GPU necesaria

1×

cabe en 24 GB (RTX 4090)

  • 1× 24 GB (RTX 4090)
  • 1× 32 GB (RTX 5090)
  • 1× 48 GB (L40S)
  • 1× 80 GB (H100)
  • 1× 96 GB (RTX PRO 6000 Blackwell)
  • 1× 141 GB (H200)

Regla práctica para planificar, no un benchmark. Contextos largos y muchos usuarios en paralelo necesitan más caché KV; 4 bits cuesta algo de calidad.

Todas las calculadoras y checklists

6. Respuestas a partir de tus documentos, con permisos

Un modelo por sí solo no sabe nada de tus contratos ni de tus máquinas. La generación aumentada por recuperación lo resuelve: los documentos se dividen en fragmentos, un modelo de embeddings local los convierte en vectores, se guardan en PostgreSQL con la extensión pgvector y los fragmentos más relevantes se entregan al modelo junto con la pregunta. La parte que muchos olvidan son los permisos. Guarda junto a cada vector quién puede ver ese fragmento y filtra por ello en la consulta, para que el asistente nunca cite un expediente de personal a alguien que no podría abrirlo. Muestra las fuentes en cada respuesta; genera confianza y permite comprobar. Y vuelve a indexar automáticamente cuando cambian los documentos, o el asistente citará con total seguridad la política del año pasado.

sql
CREATE EXTENSION IF NOT EXISTS vector;

CREATE TABLE chunks (
  id             bigserial PRIMARY KEY,
  doc_id         text      NOT NULL,
  allowed_groups text[]    NOT NULL,   -- who may see this passage
  content        text      NOT NULL,
  embedding      vector(1024) NOT NULL -- size of your local embedding model
);
CREATE INDEX ON chunks USING hnsw (embedding vector_cosine_ops);

-- Only search what the asking user is allowed to read
SELECT doc_id, content
FROM chunks
WHERE allowed_groups && $1::text[]
ORDER BY embedding <=> $2
LIMIT 8;

7. Prueba sin conexión antes de cada actualización

En un air gap no puedes mirar benchmarks públicos y esperar que se apliquen a tu caso, y tampoco deberías. Crea un conjunto de referencia de 50 a 200 preguntas reales de tu dominio con las respuestas que esperan tus expertos, más unos cuantos prompts complicados: peticiones de datos que el usuario no debería obtener, intentos de saltarse las instrucciones, preguntas sin una buena respuesta. El OWASP Top 10 para aplicaciones LLM es una lista útil para eso, sobre todo la inyección de prompts y la revelación de información sensible. Ejecuta el modelo actual y el candidato en paralelo, compara precisión, rechazos y tiempo de respuesta y promociona la versión nueva solo tras la aprobación de una persona concreta. Mantén la versión anterior en el registro para que volver atrás sea un único cambio de configuración. El NIST AI Risk Management Framework te da el vocabulario para documentarlo todo ante los auditores.

Consejo práctico

Deja que la mitad de las preguntas de referencia las escriba la gente que va a usar el asistente. Saben qué respuestas te dejarían en evidencia en una reunión de verdad.

8. Lo que permite y sus límites reales

Una vez en marcha, los equipos lo usan para cosas que nunca podrían enviar a un servicio en la nube: revisar contratos frente a tus propias plantillas, responder preguntas sobre políticas de RR. HH., redactar documentación clínica o técnica, buscar en décadas de informes de ingeniería y ayudar a los desarrolladores con código propietario. Los límites también son reales. Los modelos de pesos abiertos siguen por detrás de los mejores modelos frontera en las tareas de razonamiento más difíciles, no saben nada de lo ocurrido después de su entrenamiento y las actualizaciones son más lentas por diseño. Necesitas planificar la capacidad de GPU y a alguien que se haga cargo de la plataforma. En la práctica, un modelo abierto bien elegido con una buena búsqueda sobre tus documentos responde a las preguntas del día a día que más importan, y lo hace en hardware que controlas tú. El principio también funciona en pequeño: mi pequeño robot ESP32 ejecuta reconocimiento de voz y un modelo de lenguaje en local y funciona sin ninguna red.

9. Implantación en tres fases

Implanto estas plataformas en tres fases. Primero, un piloto con un departamento y una colección de documentos, por ejemplo el equipo legal y sus plantillas de contratos, con el conjunto de preguntas de referencia acordado de antemano y un sí o no claro tras unas semanas. Segundo, más colecciones y más equipos en la misma pasarela, con permisos tomados de los grupos existentes en lugar de inventar otros nuevos. Tercero, la operación: una revisión mensual del modelo, una ventana fija de actualizaciones, comprobaciones de capacidad de las GPU y un breve informe de uso y horas ahorradas. Empezar en pequeño mantiene honesto el pedido de hardware, da a tu delegado de protección de datos algo concreto que revisar y produce el primer caso de éxito interno que hace que el siguiente departamento pida acceso.

Conclusión

Con un modelo de pesos abiertos detrás de tu propia pasarela, tus datos más sensibles por fin reciben ayuda de la IA, y nada de ellos sale nunca del edificio.

Más artículos

    Hablemos

    Cuéntame qué estás construyendo; te respondo en 1 o 2 días laborables.

    Dominik Heinrich
    Empresa
    MADO Consulting

    Disponible en todo el mundo en remoto. Presencial bajo petición, según el país.

    Te respondo en 1 o 2 días laborables. Huecos libres: mira el calendario

    Abre aquí el calendario de reservas de Calendly. Al cargarlo se envían datos a Calendly (ver aviso legal).