Caso de éxito · Cliente empresarial confidencial (sector regulado)

Despliegue privado de LLM en el dispositivo para una empresa sensible a la privacidad (Ollama + llama.cpp)

Cómo reemplazamos una factura de OpenAI de $4.2K/mes por un flujo de trabajo LLM totalmente local con Ollama, llama.cpp y una capa de orquestación FastAPI — manteniendo el 100% de los datos de los clientes en el portátil del usuario y ofreciendo respuestas en menos de un segundo.

  • SectorEmpresa / Salud
  • Año2025
  • PaísCanadá
  • Duración3 meses
Private, On-Device LLM Deployment for a Privacy-Sensitive Enterprise (Ollama + llama.cpp) hero screenshot

Resultados de un vistazo

  • 100%Inferencia en el dispositivo: ningún dato de clientes sale del portátil
  • $4.2K/moGasto en OpenAI eliminado, sustituido por un coste marginal de inferencia de $0
  • <800msLatencia p95 del primer token en MacBook M2 para el modelo de chat
  • 1stLa entrega superó la revisión de seguridad del cliente

El reto

Un cliente empresarial de un sector regulado usaba un LLM alojado a través de sus herramientas internas, pero cada trimestre su equipo de revisión de seguridad señalaba el mismo obstáculo: texto identificable de clientes se enviaba a un endpoint en la nube de EE. UU. Legal había pausado el despliegue más amplio, la factura de OpenAI había superado los $4,200/mes con solo una fracción de la base de usuarios prevista, y al equipo de producto le habían planteado la pregunta imposible: "¿podemos conservar toda esta capacidad de IA sin que ningún dato salga del portátil del usuario?"

No necesitaban un proyecto de investigación. Necesitaban un flujo de trabajo entregable que un empleado interno pudiera instalar en una tarde, que se ejecutara íntegramente en sus MacBooks de la serie M y sus ThinkPads con Windows existentes, y que rindiera lo bastante bien como para que nadie lamentara la mejora de privacidad.

Nuestra solución

Diseñamos y entregamos un stack LLM totalmente local: Ollama como entorno de ejecución del modelo, llama.cpp por debajo para inferencia cuantizada en GPU/CPU, una pequeña capa de orquestación FastAPI para el uso de herramientas y la recuperación, y una interfaz de escritorio Next.js distribuida mediante un ligero contenedor Tauri. Cada byte de contexto permanece en el dispositivo. No hay inferencia remota, ni callback de telemetría, ni proxy.

Evaluamos siete modelos de pesos abiertos (Llama 3.1 8B, Qwen 2.5 7B/14B, Phi-3, Mistral y dos variantes ajustadas a dominios) con los prompts reales del cliente y entregamos un enrutador de modelos por tarea: un modelo pequeño y rápido para clasificación y chat, y un modelo de razonamiento más grande bajo demanda. RAG se ejecuta sobre un índice local de ChromaDB construido a partir de los propios documentos del usuario, con todos los embeddings calculados en el dispositivo.

El resultado es un flujo de trabajo que es medible más rápido que la versión en la nube en el prompt mediano (sin viaje de ida y vuelta por la red), supera la revisión de seguridad del cliente en el primer envío y escala a todos los portátiles de la empresa sin costo de inferencia por puesto.

  • Entorno Ollama con enrutador de modelos por tarea (pequeño para chat, grande para razonamiento)
  • Inferencia cuantizada con llama.cpp ajustada para Apple Silicon y CPU modernas de Intel/AMD
  • RAG local sobre los propios archivos del usuario con ChromaDB y embeddings en el dispositivo
  • Capa de orquestación FastAPI con API HTTP estable para la interfaz de escritorio Next.js / Tauri
  • Lista de permitidos de red verificable — ningún tráfico LLM sale jamás del dispositivo
  • Arnés de evaluación integrado para puntuar cada actualización de modelo antes del despliegue
  • Instaladores firmados y notarizados para macOS (M1/M2/M3) y Windows
  • Panel de privacidad dentro de la app que muestra exactamente qué puede leer el modelo
  • Canal opcional de actualización de modelos que respeta el proxy corporativo y la política de red

Cómo lo construimos

  1. 01

    Descubrimiento: auditoría de prompts y línea base de dispositivos

    Reunimos un conjunto representativo de unos 400 prompts reales de los registros existentes de OpenAI (sanitizados) y luego evaluamos modelos de pesos abiertos candidatos en la mezcla de hardware real del cliente —MacBooks M1, M2 y M3 más un ThinkPad con Windows de referencia—, midiendo tokens por segundo, latencia del primer token en p95 y calidad frente a la línea base de GPT-4 con una rúbrica propiedad del cliente.

  2. 02

    Arquitectura: enrutador de modelos + RAG local

    Elegimos Ollama como runtime (ciclo de vida limpio, versionado de modelos, cuantización con soporte de GPU) y luego construimos una capa delgada de orquestación con FastAPI que enruta cada tarea al modelo adecuado, gestiona la recuperación contra un índice local de ChromaDB y expone una API HTTP estable que la interfaz de escritorio puede invocar. Todo el stack se ejecuta como tres procesos locales administrados por la aplicación de escritorio.

  3. 03

    Desarrollo: UX de escritorio, ingesta RAG, evaluaciones

    La ingeniería se realizó en sprints de dos semanas con un arnés de evaluación real: cada cambio se puntuaba frente a un conjunto de prompts reservado, de modo que las regresiones de calidad aparecían de inmediato. Añadimos un flujo de ingesta en un clic para los documentos propios del usuario, un canal de actualización de modelos que respeta la política de red del usuario y un panel de privacidad que muestra exactamente a qué tiene acceso el modelo.

  4. 04

    Revisión de seguridad, empaquetado, despliegue

    Empaquetamos la pila como un instalador firmado (notarizado en macOS, firmado en Windows), redactamos un breve modelo de amenazas que el equipo de seguridad podía leer en 20 minutos y lo entregamos a un piloto de 25 usuarios antes del despliegue en toda la empresa. La revisión de seguridad se aprobó en el primer envío: la función clave fue una lista de permitidos de red verificable que demuestra que ningún tráfico LLM sale jamás del dispositivo.

Stack tecnológico

  • Ollama
  • llama.cpp
  • Llama 3.1
  • Qwen 2.5
  • LangChain
  • Python
  • FastAPI
  • Next.js
  • SQLite
  • ChromaDB
  • Desarrollo de agentes de IA
  • Desarrollo de IA y ML
  • Python y FastAPI
  • Ciberseguridad
“Pensábamos que la IA privada significaba un producto peor. La solución de UnlockLive es más rápida que la versión en la nube en la mayor parte de lo que hace nuestro equipo, y nuestra revisión de seguridad tardó 20 minutos en lugar de tres meses.”
Director de Producto · Cliente empresarial (nombre confidencial)

Preguntas frecuentes

¿Puede un LLM local reemplazar realmente a GPT-4 en flujos de trabajo de producción?

Para la mayoría de las tareas empresariales —clasificación, resumen, RAG sobre los documentos del propio usuario, extracción estructurada—, sí: un modelo de pesos abiertos bien elegido, en el rango de 7B a 14B, iguala o supera a GPT-3.5 y se queda a un 10-15 % de GPT-4 en calidad. La clave es una evaluación honesta: siempre puntuamos los modelos candidatos con los prompts reales del cliente, no con benchmarks genéricos.

¿Qué modelos de pesos abiertos recomiendan para despliegue en el dispositivo en 2025?

Por defecto usamos Llama 3.1 8B para chat general y Qwen 2.5 14B para tareas de razonamiento intensivo, con Phi-3 mini para clasificación ultrarrápida. La elección final depende del hardware del usuario (los Mac M2/M3 manejan 14B con holgura; los portátiles Intel antiguos funcionan mejor con 7B cuantizado) y de la mezcla de cargas de trabajo.

¿Está Ollama listo para producción en un sector regulado?

Ollama tiene una licencia permisiva, un ciclo de vida de modelos estable, cuantización consciente de la GPU y una API HTTP limpia. Lo combinamos con una capa delgada de orquestación en FastAPI propia, un instalador firmado y notarizado y una lista de permitidos de red verificable; esa combinación ha superado múltiples revisiones de seguridad empresariales en el primer envío.

¿Cómo mantienen alta la calidad del modelo cuando no se pueden actualizar los modelos en cada llamada a la API?

Entregamos junto con el despliegue un arnés de evaluación por tenant. Cada actualización de modelo se puntúa contra un conjunto de prompts reservado que pertenece al cliente, y solo se promueve si cumple un umbral de calidad. Las actualizaciones de modelos se despliegan a través de un canal canary que controla el usuario.

¿Cuánto cuesta un despliegue privado de LLM frente a seguir usando OpenAI / Anthropic?

El punto de equilibrio típico es de 6 a 9 meses. El desarrollo es un costo de ingeniería único (8 a 14 semanas para un flujo de trabajo concreto), y después el costo de inferencia por usuario cae a cero. Las API alojadas ganan en usos esporádicos y de bajo volumen; lo on-device gana en herramientas empresariales de uso diario.

¿Quiere un resultado como este?

Hable con el mismo equipo que construyó Despliegue privado de LLM en el dispositivo para una empresa sensible a la privacidad (Ollama + llama.cpp). Definiremos el alcance de su proyecto, le daremos una propuesta a precio fijo y le mostraremos el caso más parecido de nuestro portafolio.

Reservar una llamada estratégica