Ejecución de LLM en el navegador: cómo utilizamos WebGPU y WebLLM para la edición de currículums priorizando la privacidad
Todas las herramientas de currículum impulsadas por IA en el mercado actual envían sus datos a un servidor. Te dirán que es “seguro”. Señalarán las insignias de cumplimiento SOC 2. Pero aquí está la realidad de la ingeniería: si su currículum sale de su dispositivo, ya no es exclusivamente suyo. Vive en una base de datos, en un archivo de registro, en un proceso de capacitación o en una filtración de datos esperando a ocurrir.
Nos negamos a aceptar esa compensación. Así que construimos algo diferente: una reescritura de currículums con IA totalmente del lado del cliente que ejecuta un modelo de lenguaje de 500 millones de parámetros directamente en su navegador usando WebGPU y Transformers.js. Sin claves API. Sin inferencia de nubes. Sin servidor.
En esta inmersión técnica profunda, aprenderá:
- Por qué la IA sin servidor es la única arquitectura verdaderamente privada para documentos confidenciales
- Cómo WebGPU desbloquea la inferencia acelerada por GPU en el navegador
- La pila exacta que utilizamos (Astro, Transformers.js, Xenova/Qwen1.5-0.5B-Chat)
- Los desafíos de ingeniería de enviar un modelo de 300 MB a una pestaña del navegador
- Puntos de referencia de rendimiento y cifras de latencia en el mundo real
La paradoja de la privacidad de las herramientas modernas de IA
Los reescritores de currículums con IA se han disparado en popularidad. Herramientas como Teal, Resume.io y Jobscan ofrecen una “reescritura de viñetas impulsada por IA” que suena mágica, hasta que lees la letra pequeña. Casi todos operan en una arquitectura cliente-servidor:
- Pegas tu currículum en un formulario web
- Tus datos están cifrados en tránsito (TLS)
- Está descifrado en un servidor en la nube.
- Una API LLM (OpenAI, Anthropic o un modelo autohospedado) lo procesa
- El texto reescrito se devuelve
Esto parece seguro en la superficie. Pero la superficie de ataque es enorme:
- Los registros del servidor pueden conservar su currículum completo para su depuración
- Las API LLM de terceros pueden entrenarse con sus datos a menos que pague por niveles empresariales
- Las filtraciones de datos exponen currículums que contienen direcciones particulares, números de teléfono, historial laboral y datos salariales.
- Deficiencias de cumplimiento: la mayoría de las herramientas no cumplen con el RGPD para los usuarios de la UE porque no pueden garantizar la eliminación
El resultado final: Si su currículum llega a un servidor, está confiando en que un tercero no leerá, registrará, filtrará ni monetizará su documento profesional más confidencial. Esa no es una apuesta que estemos dispuestos a pedir a nuestros usuarios que hagan.
Por qué la IA del lado del cliente lo cambia todo
La IA del lado del cliente cambia la arquitectura por completo. En lugar de enviar sus datos al modelo, enviamos el modelo a sus datos. El LLM se descarga directamente en la memoria de su navegador, se ejecuta en su GPU o CPU local y nunca transmite el texto de su currículum desde su dispositivo.
Las implicaciones de privacidad son absolutas:
- Cero llamadas de red que contengan los datos de su currículum
- Cero registros del servidor con su información personal
- Cero API LLM de terceros con políticas de datos opacas
- Riesgo cero de violación de datos de nuestra infraestructura, porque no tenemos una infraestructura que toque sus datos
Pero la IA del lado del cliente no es solo un juego de privacidad. También ofrece beneficios de rendimiento tangibles:
- Sin latencia en viajes de ida y vuelta a un centro de datos distante
- Sin límites de tarifas ni cuotas API
- Sin puertas de suscripción para funciones de IA
- Capacidad sin conexión una vez que el modelo está almacenado en caché
WebGPU: el navegador como Compute Engine
Hasta hace poco, ejecutar LLM en el navegador era computacionalmente inviable. WebGL era la única API de GPU disponible y fue diseñada para gráficos, no para computación de uso general. Entonces llegó WebGPU.
¿Qué es WebGPU?
WebGPU es un estándar web de próxima generación que expone las capacidades modernas de GPU (Vulkan, Metal, DirectX 12) directamente a JavaScript. A diferencia de WebGL, admite sombreadores de cálculo de GPU de uso general, lo que lo hace ideal para operaciones con uso intensivo de matrices, como la inferencia de redes neuronales.
Capacidades clave que hacen posibles los LLM sobre navegadores:
- Canalizaciones de cómputo: ejecuta núcleos de multiplicación de matrices en paralelo de forma masiva
- Modelo de memoria unificada: acceso directo al búfer de GPU sin costosas copias de CPU-GPU
- Lenguajes de sombreado: escriba WGSL (lenguaje de sombreado WebGPU) para núcleos de inferencia personalizados.
- Multiplataforma: funciona en Chrome, Edge, Firefox y Safari con rendimiento nativo
WebGPU frente a WebGL para inferencia LLM
| Característica | WebGL | WebGPU |
|---|---|---|
| Sombreadores de cálculo | ❌ No | ✅ Sí |
| Operaciones matriciales | Lento (simulado) | Nativo, paralelo |
| Eficiencia de la memoria | Alta sobrecarga de CPU-GPU | Unificado, bajos gastos generales |
| Velocidad de inferencia LLM | ~10-20 fichas/seg | ~50-100 fichas/seg |
| Soporte del navegador | Universales | Navegadores modernos (94%+) |
Para nuestro caso de uso (reescribir viñetas de currículum con un modelo de 500M de parámetros), WebGPU ofrece una inferencia entre 4 y 5 veces más rápida que un respaldo solo de CPU y 2 y 3 veces más rápido que un enfoque basado en WebGL.
Nuestra pila: Astro + Transformers.js + Xenova/Qwen1.5
La creación de una reescritura de IA del lado del cliente requirió elecciones tecnológicas cuidadosas. Necesitábamos un marco que fuera rápido, mínimo y compatible con la computación pesada del lado del navegador. Aquí está la arquitectura exacta en la que aterrizamos.
Framework: Astro
Elegimos Astro por su filosofía zero-JS-by-default. La mayoría de las herramientas de currículum son aplicaciones React infladas que envían más de 500 KB de JavaScript antes de que el usuario pueda siquiera pegar su currículum. Astro nos permite entregar HTML estático para la página de destino y el blog, y luego hidratar solo los componentes interactivos (el editor, el panel de IA) cuando sea necesario.
Por qué Astro es importante para la IA del lado del cliente:
- La carga de la página inicial es inferior a 50 KB de JavaScript.
- El modelo de IA pesado se carga bajo demanda cuando el usuario hace clic en “Reescribir con IA”
- Sin sobrecarga de hidratación para contenido estático como nuestro blog o páginas de marketing
AI Runtime: Transformers.js
Hugging Face’s Transformers.js es el puente que hace esto posible. Es una adaptación de la biblioteca Python Transformers a ONNX Runtime Web, que permite que modelos previamente entrenados se ejecuten en el navegador a través de respaldos de WebGPU o WebGL.
Detalles técnicos clave:
- Los modelos están cuantificados a INT8 para reducir el tamaño y la huella de memoria.
- Usamos el backend ONNX Runtime Web con un proveedor de ejecución WebGPU
- La canalización maneja tokenización, inferencia y decodificación de extremo a extremo en el navegador
Elección de modelo: Xenova/Qwen1.5-0.5B-Chat
Evaluamos varios modelos antes de decidirnos por Qwen1.5-0.5B-Chat a través de los puertos Xenova ONNX:
Criterios de selección:
- Lo suficientemente pequeño como para descargar (~300 MB cuantificados) sin destruir la experiencia del usuario
- Seguimiento estricto de instrucciones para mensajes de “reescribe esta viñeta para que tenga más impacto”
- Licencia permisiva para uso comercial
- Inferencia rápida en GPU de consumo (generación inferior a 3 segundos para reescrituras de viñetas cortas)
Probamos Llama-2-7B, Mistral-7B y Phi-2. Todos eran demasiado grandes (más de 1,5 GB) o demasiado lentos para la inferencia del navegador en tiempo real. Qwen1.5-0.5B alcanza el punto ideal: lo suficientemente pequeño para ser práctico, lo suficientemente capaz para ser útil.
Los desafíos de ingeniería de los que nadie habla
Enviar un modelo de 300 MB a una pestaña del navegador suena simple en teoría. En la práctica, fue un esfuerzo de ingeniería que duró meses. Estos son los tres problemas más difíciles que resolvimos.
Desafío 1: Descargas progresivas de modelos
Una descarga de 300 MB en una conexión 4G tardaría entre 2 y 3 minutos y probablemente provocaría un tiempo de espera del navegador. Implementamos un sistema de descarga fragmentada progresiva:
- El modelo se divide en fragmentos de 10 MB.
- Cada fragmento se descarga con lógica de reintento y retroceso exponencial
- Una interfaz de usuario de barra de progreso personalizada flota en la esquina superior derecha y muestra los MB descargados en tiempo real
- El modelo se almacena en caché en IndexedDB después de la primera descarga, por lo que las visitas posteriores se cargan instantáneamente
Resultado: Los usuarios nuevos ven una descarga de ~45 segundos en banda ancha promedio. Los usuarios que regresan obtienen una carga del modelo en menos de 2 segundos desde la memoria caché.
Desafío 2: Gestión del ciclo de vida del contexto WebGPU
Los contextos de los dispositivos WebGPU son complicados. Si un usuario cambia de pestaña, minimiza el navegador o pone su computadora portátil en suspensión, se puede perder el contexto de la GPU. Tuvimos que construir un sistema de recuperación de contexto robusto:
- Detectar eventos
gpu.losty reinicializar elegantemente el proceso de inferencia - Recurrir a la inferencia de CPU (WASM) si WebGPU deja de estar disponible
- Proporcione mensajes de interfaz de usuario claros: “Cambiar al modo CPU; la reescritura puede tardar un poco más”.
Resultado: La reescritura de IA funciona de manera confiable en Chrome, Edge y Firefox, incluso en sistemas con una administración de energía agresiva.
Desafío 3: Presión de memoria en máquinas con 8 GB de RAM
Un modelo de 500 M de parámetros en INT8 todavía consume ~600 MB de memoria GPU/CPU. Combinado con el análisis de PDF, el editor de texto enriquecido Quill y nuestro tablero Kanban, estábamos superando los límites de las computadoras portátiles económicas.
Nuestras optimizaciones:
- Carga diferida: el modelo solo se descarga cuando el usuario hace clic explícitamente en “Reescribir”
- Desalojo del modelo: si el usuario no ha utilizado el panel de IA en 10 minutos, liberamos el modelo de la memoria (permanece en IndexedDB para una recarga rápida).
- Inferencia fuera del hilo principal: todas las operaciones de LLM se ejecutan en un Web Worker para evitar que la interfaz de usuario se congele
Resultado: El escáner funciona sin problemas en máquinas con 8 GB de RAM, incluidas las Chromebook de gama media.
Puntos de referencia de rendimiento: números reales
Comparamos nuestro reescritor de IA del lado del cliente con alternativas basadas en la nube en condiciones idénticas. Esto es lo que encontramos:
| Métrica | Nuestra IA del lado del cliente | API de nube (GPT-4o-mini) | API de nube (Claude Haiku) |
|---|---|---|---|
| Latencia de primera inferencia | 45s (descargar) + 2,3s | 1,2 s | 1,8s |
| Latencia de inferencia posterior | 2,3s | 1,2 s | 1,8s |
| Privacidad | Absoluta (red cero) | Registros del servidor + retención de API | Registros del servidor + retención de API |
| Capacidad sin conexión | Sí | No | No |
| Límites de tarifas | Ninguno | Sí (límites de RPM/TPM) | Sí (límites de RPM/TPM) |
| Costo para el usuario | Gratis | Suscripción de $5-20/mes | Suscripción de $5-20/mes |
| Propiedad de los datos | 100% usuario | Dependiente de la plataforma | Dependiente de la plataforma |
La compensación es clara: Los usuarios nuevos sacrifican ~45 segundos para descargar el modelo. Después de eso, cada reescritura es gratuita, privada, ilimitada y sin conexión. Para una herramienta que maneja datos profesionales confidenciales, creemos que es la compensación correcta.
Por qué esta arquitectura es importante para el futuro de la IA web
No solo estamos construyendo un escáner de currículums. Estamos demostrando que el futuro de la IA no requiere entregar sus datos.
Todas las principales empresas de IA están impulsando la inferencia en la nube porque es rentable. Pero la capacidad técnica para una IA potente, privada y del lado del cliente ya está aquí. WebGPU está maduro. Transformers.js está listo para producción. Los modelos cuantificados son sorprendentemente capaces.
Qué significa esto para los usuarios:
- Puede obtener ayuda para su currículum con tecnología de inteligencia artificial sin confiarle a un tercero su historial laboral
- Puede utilizar herramientas de inteligencia artificial en Wi-Fi de aviones, firewalls corporativos o redes restrictivas
- Usted es dueño de sus datos, los pesos de su modelo y sus resultados de inferencia
Lo que esto significa para los desarrolladores:
- El navegador es un objetivo legítimo de implementación de IA.
- Puede crear funciones sofisticadas de PNL sin facturas de API
- La arquitectura que prioriza la privacidad es un diferenciador competitivo, no una limitación
Cómo probar nuestra reescritura de IA del lado del cliente
Nuestro escáner ATS privado incluye la reescritura de IA como característica incorporada. Así es como funciona:
- Sube tu currículum (PDF o DOCX): analizado completamente en el navegador, nunca cargado
- Seleccione cualquier viñeta en el editor de texto enriquecido
- Haga clic en “Reescribir con IA”: el modelo se descarga (solo la primera vez) y genera una versión más potente y optimizada para palabras clave.
- Compare, edite y acepte la sugerencia, todo sin una sola llamada de red que transporte sus datos
→ Pruebe la reescritura de currículums de IA privada en nuestro escáner del lado del cliente
Conclusiones clave
- IA del lado del cliente que utiliza WebGPU y Transformers.js está listo para producción para reescritura de currículums y tareas de PNL
- WebGPU ofrece una inferencia entre 4 y 5 veces más rápida que los enfoques de solo CPU y es compatible con más del 94 % de los navegadores modernos.
- Un modelo de 500M de parámetros (Qwen1.5-0.5B-Chat) es suficiente para reescribir viñetas de alta calidad manteniendo menos de 300MB
- Las descargas progresivas, el almacenamiento en caché de IndexedDB y los trabajadores web son esenciales para enviar modelos grandes a dispositivos de consumo.
- Los beneficios de privacidad son absolutos: cero registros del servidor, cero retención de API, cero riesgo de violación de datos
El navegador web ya no es solo un visor de documentos. Es un entorno informático de IA privado y seguro. Y apenas estamos comenzando.
¿Quieres verlo en acción? Inicie nuestro escáner ATS privado con reescritura de IA integrada →