Eseguire LLM nel browser: come utilizziamo WebGPU e WebLLM per la modifica del curriculum incentrata sulla privacy
Ogni strumento di curriculum basato sull’intelligenza artificiale oggi disponibile sul mercato invia i tuoi dati a un server. Ti diranno che è “sicuro”. Indicheranno i badge di conformità SOC 2. Ma ecco la realtà ingegneristica: se il tuo curriculum lascia il tuo dispositivo, non è più esclusivamente tuo. Vive in un database, in un file di registro, in una pipeline di formazione o in una violazione dei dati in attesa di verificarsi.
Ci siamo rifiutati di accettare questo compromesso. Quindi abbiamo creato qualcosa di diverso: un riscrittore di curriculum AI completamente lato client che esegue un modello linguistico da 500 milioni di parametri direttamente nel tuo browser utilizzando WebGPU e Transformers.js. Nessuna chiave API. Nessuna inferenza sul cloud. Nessun server.
In questo approfondimento tecnico imparerai:
- Perché l’intelligenza artificiale serverless è l’unica architettura veramente privata per documenti sensibili
- In che modo WebGPU sblocca l’inferenza accelerata dalla GPU nel browser
- Lo stack esatto che abbiamo utilizzato (Astro, Transformers.js, Xenova/Qwen1.5-0.5B-Chat)
- Le sfide ingegneristiche legate alla spedizione di un modello da 300 MB in una scheda del browser
- Benchmark delle prestazioni e numeri di latenza nel mondo reale
Il paradosso della privacy dei moderni strumenti di intelligenza artificiale
La popolarità dei riscrittori di curriculum con intelligenza artificiale è esplosa. Strumenti come Teal, Resume.io e Jobscan offrono una “riscrittura dei proiettili basata sull’intelligenza artificiale” che sembra magica, finché non leggi le scritte in piccolo. Quasi tutti operano su un’architettura client-server:
- Incolli il tuo curriculum in un modulo web
- I tuoi dati sono crittografati in transito (TLS)
- Viene decrittografato su un server cloud
- Un’API LLM (OpenAI, Anthropic o un modello self-hosted) lo elabora
- Il testo riscritto viene restituito
In apparenza sembra sicuro. Ma la superficie di attacco è enorme:
- I log del server potrebbero conservare il tuo curriculum completo per il debug
- Le API LLM di terze parti possono eseguire l’addestramento sui tuoi dati a meno che tu non paghi per i livelli aziendali
- Le Violazioni di dati espongono curriculum contenenti indirizzi di casa, numeri di telefono, precedenti lavorativi e dati sugli stipendi
- Lacune di conformità: la maggior parte degli strumenti non sono conformi al GDPR per gli utenti dell’UE perché non possono garantire l’eliminazione
In conclusione: Se il tuo curriculum tocca un server, stai confidando che una terza parte non legga, registri, trapeli o monetizzi il tuo documento professionale più sensibile. Non è una scommessa che siamo disposti a chiedere ai nostri utenti di fare.
Perché l’intelligenza artificiale lato client cambia tutto
L’intelligenza artificiale lato client capovolge completamente l’architettura. Invece di inviare i tuoi dati al modello, inviamo il modello ai tuoi dati. LLM si scarica direttamente nella memoria del tuo browser, viene eseguito sulla tua GPU o CPU locale e non trasmette mai il testo del tuo curriculum dal tuo dispositivo.
Le implicazioni sulla privacy sono assolute:
- Zero chiamate in rete contenenti i dati del tuo curriculum
- Zero log del server con le tue informazioni personali
- Zero API LLM di terze parti con policy sui dati opache
- Rischio zero di violazione dei dati dalla nostra infrastruttura, perché non disponiamo di un’infrastruttura che tocchi i tuoi dati
Ma l’intelligenza artificiale lato client non è solo un gioco di privacy. Offre inoltre vantaggi tangibili in termini di prestazioni:
- Nessuna latenza nei viaggi di andata e ritorno verso un data center distante
- Nessun limite di velocità o quota API
- Nessun limite di abbonamento per le funzionalità AI
- Funzionalità offline una volta memorizzato il modello nella cache
WebGPU: il browser come motore di calcolo
Fino a poco tempo fa, eseguire LLM nel browser era computazionalmente impossibile. WebGL era l’unica API GPU disponibile ed era progettata per la grafica, non per l’elaborazione generica. Poi è arrivata la WebGPU.
Cos’è la WebGPU?
WebGPU è uno standard web di prossima generazione che espone le moderne funzionalità GPU (Vulkan, Metal, DirectX 12) direttamente a JavaScript. A differenza di WebGL, supporta shader di calcolo GPU per scopi generici, rendendolo ideale per operazioni con utilizzo intensivo di matrici come l’inferenza della rete neurale.
Funzionalità chiave che rendono possibili i browser LLM:
- Opportunità di calcolo: esegui kernel di moltiplicazione di matrici massivamente parallele
- Modello di memoria unificato: accesso diretto al buffer GPU senza costose copie CPU-GPU
- Linguaggi shader: scrivi WGSL (WebGPU Shading Language) per kernel di inferenza personalizzati
- Multipiattaforma — Funziona su Chrome, Edge, Firefox e Safari con prestazioni native
WebGPU e WebGL per LLM Inference
| Caratteristica | WebGL | WebGPU |
|---|---|---|
| Calcola shader | ❌No | ✅ Sì |
| Operazioni su matrici | Lento (simulato) | Nativo, parallelo |
| Efficienza della memoria | Elevato sovraccarico CPU-GPU | Unificato, basso sovraccarico |
| Velocità di inferenza LLM | ~10-20 gettoni/sec | ~50-100 token/sec |
| Supporto del browser | Universale | Browser moderni (94%+) |
Per il nostro caso d’uso — riscrittura dei punti elenco del curriculum con un modello di parametri da 500 M — WebGPU offre inferenza 4-5 volte più veloce rispetto a un fallback basato solo sulla CPU e 2-3 volte più veloce rispetto a un approccio basato su WebGL.
Il nostro stack: Astro + Transformers.js + Xenova/Qwen1.5
Costruire un rewriter AI lato client ha richiesto attente scelte tecnologiche. Avevamo bisogno di un framework che fosse veloce, minimale e compatibile con i pesanti calcoli lato browser. Ecco l’architettura esatta su cui siamo arrivati.
Framework: Astro
Abbiamo scelto Astro per la sua filosofia zero-JS-per impostazione predefinita. La maggior parte degli strumenti di curriculum sono enormi app React che forniscono oltre 500KB di JavaScript prima ancora che l’utente possa incollare il proprio curriculum. Astro ci consente di fornire HTML statico per la pagina di destinazione e il blog, quindi idratare solo i componenti interattivi (l’editor, il pannello AI) dove necessario.
Perché Astro è importante per l’intelligenza artificiale lato client:
- Il caricamento iniziale della pagina è inferiore a 50 KB di JavaScript
- Il modello IA pesante viene caricato on-demand quando l’utente fa clic su “Riscrivi con IA”
- Nessun sovraccarico di idratazione per contenuti statici come il nostro blog o le pagine di marketing
AI Runtime: Transformers.js
Hugging Face’s Transformers.js è il ponte che rende tutto ciò possibile. Si tratta di un port della libreria Python Transformers su ONNX Runtime Web, che consente l’esecuzione di modelli pre-addestrati nel browser tramite fallback WebGPU o WebGL.
Dettagli tecnici principali:
- I modelli sono quantizzati su INT8 per ridurre le dimensioni e l’ingombro della memoria
- Utilizziamo il backend ONNX Runtime Web con un provider di esecuzione WebGPU
- La pipeline gestisce la tokenizzazione, l’inferenza e la decodifica end-to-end nel browser
Scelta del modello: Xenova/Qwen1.5-0.5B-Chat
Abbiamo valutato più modelli prima di optare per Qwen1.5-0.5B-Chat tramite le porte Xenova ONNX:
Criteri di selezione:
- Abbastanza piccolo da poter essere scaricato (~300MB quantizzati) senza compromettere l’esperienza dell’utente
- Seguire istruzioni precise per i suggerimenti “riscrivi questo punto elenco per avere un impatto maggiore”.
- Licenza permissiva per uso commerciale
- Inferenza rapida su GPU consumer (generazione inferiore a 3 secondi per brevi riscritture di punti)
Abbiamo testato Llama-2-7B, Mistral-7B e Phi-2. Erano tutti troppo grandi (1,5 GB+) o troppo lenti per l’inferenza del browser in tempo reale. Qwen1.5-0.5B colpisce nel segno: abbastanza piccolo da essere pratico, abbastanza capace da essere utile.
Le sfide ingegneristiche di cui nessuno parla
Inviare un modello da 300 MB a una scheda del browser sembra semplice in teoria. In pratica, si è trattato di uno sforzo ingegneristico durato mesi. Ecco i tre problemi più difficili che abbiamo risolto.
Sfida 1: Download progressivi del modello
Un download di 300 MB su una connessione 4G richiederebbe 2-3 minuti e probabilmente attiverebbe un timeout del browser. Abbiamo implementato un sistema di download progressivo a blocchi:
- Il modello è suddiviso in frammenti da 10 MB
- Ogni frammento viene scaricato con logica di ripetizione e backoff esponenziale
- Nell’angolo in alto a destra viene visualizzata un’interfaccia utente con barra di avanzamento personalizzata che mostra i MB scaricati in tempo reale
- Il modello viene memorizzato nella cache di IndexedDB dopo il primo download, quindi le visite successive si caricano istantaneamente
Risultato: Gli utenti che accedono per la prima volta vedono un download di circa 45 secondi con una banda larga media. Gli utenti di ritorno ottengono un caricamento del modello inferiore a 2 secondi dalla cache.
Sfida 2: Gestione del ciclo di vita del contesto WebGPU
I contesti dei dispositivi WebGPU sono complessi. Se un utente cambia scheda, riduce a icona il browser o mette il proprio laptop in stato di stop, il contesto della GPU può andare perso. Abbiamo dovuto costruire un robusto sistema di ripristino del contesto:
- Rilevare gli eventi
gpu.loste reinizializzare con garbo la pipeline di inferenza - Ritorna all’inferenza della CPU (WASM) se WebGPU non è più disponibile
- Fornire messaggi di interfaccia utente chiari: “Passaggio alla modalità CPU: la riscrittura potrebbe richiedere leggermente più tempo.”
Risultato: Il riscrittore AI funziona in modo affidabile su Chrome, Edge e Firefox, anche su sistemi con una gestione energetica aggressiva.
Sfida 3: Pressione della memoria su macchine con 8 GB di RAM
Un modello con parametri da 500 M in INT8 consuma ancora ~ 600 MB di memoria GPU/CPU. In combinazione con l’analisi PDF, l’editor di testo Rich Quill e la nostra lavagna Kanban, stavamo spingendo i limiti dei laptop economici.
Le nostre ottimizzazioni:
- Caricamento lento: il modello viene scaricato solo quando l’utente fa clic esplicitamente su “Riscrivi”
- Eliminazione del modello: se l’utente non utilizza il pannello AI entro 10 minuti, liberiamo il modello dalla memoria (rimane in IndexedDB per un rapido ricaricamento)
- Inferenza off-main-thread — Tutte le operazioni LLM vengono eseguite in un Web Worker per impedire il blocco dell’interfaccia utente
Risultato: Lo scanner funziona senza problemi su macchine con 8 GB di RAM, inclusi i Chromebook di fascia media.
Benchmark delle prestazioni: numeri reali
Abbiamo confrontato il nostro rewriter AI lato client con alternative basate su cloud in condizioni identiche. Ecco cosa abbiamo trovato:
| Metrico | La nostra intelligenza artificiale lato client | API cloud (GPT-4o-mini) | API cloud (Claude Haiku) |
|---|---|---|---|
| Prima latenza di inferenza | 45s (scarica) + 2,3s | 1,2s | 1,8s |
| Latenza di inferenza successiva | 2,3 | 1,2s | 1,8s |
| Privacy | Assoluto (rete zero) | Registri del server + conservazione API | Registri del server + conservazione API |
| Funzionalità offline | Sì | No | No |
| Limiti tariffari | Nessuno | Sì (limiti RPM/TPM) | Sì (limiti RPM/TPM) |
| Costo per l’utente | Gratuito | Abbonamento $ 5-20/mese | Abbonamento $ 5-20/mese |
| Proprietà dei dati | Utente al 100% | Dipendente dalla piattaforma | Dipendente dalla piattaforma |
Il compromesso è chiaro: Gli utenti alle prime armi sacrificano circa 45 secondi per il download del modello. Successivamente, ogni riscrittura è gratuita, privata, illimitata e offline. Per uno strumento che gestisce dati sensibili sulla carriera, riteniamo che sia il giusto compromesso.
Perché questa architettura è importante per il futuro della Web AI
Non stiamo semplicemente costruendo uno scanner di curriculum. Stiamo dimostrando che il futuro dell’intelligenza artificiale non richiede la cessione dei propri dati.
Tutte le principali aziende di intelligenza artificiale stanno promuovendo l’inferenza del cloud perché è redditizia. Ma la capacità tecnica per un’intelligenza artificiale potente e privata lato client è già disponibile. WebGPU è maturo. Transformers.js è pronto per la produzione. I modelli quantizzati sono sorprendentemente capaci.
Cosa significa per gli utenti:
- Puoi ottenere assistenza per il curriculum basato sull’intelligenza artificiale senza affidare a terzi la tua storia lavorativa
- Puoi utilizzare gli strumenti AI sul Wi-Fi dell’aereo, sui firewall aziendali o sulle reti restrittive
- Possiedi i tuoi dati, i pesi del tuo modello e i tuoi output di inferenza
Cosa significa per gli sviluppatori:
- Il browser è un obiettivo legittimo di distribuzione dell’intelligenza artificiale
- Puoi creare sofisticate funzionalità NLP senza fatture API
- L’architettura incentrata sulla privacy è un elemento di differenziazione competitiva, non una limitazione
Come provare il nostro riscrittore AI lato client
Il nostro scanner ATS privato include il riscrittore AI come funzionalità integrata. Ecco come funziona:
- Carica il tuo curriculum (PDF o DOCX): analizzato interamente nel browser, mai caricato
- Seleziona un punto elenco qualsiasi nell’editor rich text
- Fai clic su “Riscrivi con AI”: il modello viene scaricato (solo la prima volta) e genera una versione più potente e ottimizzata per le parole chiave
- Confronta, modifica e accetta il suggerimento, il tutto senza che una singola chiamata di rete trasporti i tuoi dati
Punti chiave
- AI lato client utilizzando WebGPU e Transformers.js è pronto per la produzione per la riscrittura di curriculum e attività di PNL
- WebGPU offre un’inferenza 4-5 volte più veloce rispetto agli approcci basati solo sulla CPU ed è supportato dal 94%+ dei browser moderni
- Un modello con parametri da 500 M (Qwen1.5-0.5B-Chat) è sufficiente per la riscrittura dei proiettili di alta qualità rimanendo sotto i 300 MB
- Download progressivi, memorizzazione nella cache IndexedDB e Web Worker sono essenziali per la spedizione di modelli di grandi dimensioni sui dispositivi consumer
- I vantaggi in termini di privacy sono assoluti: zero log del server, zero conservazione delle API, zero rischi di violazione dei dati
Il browser web non è più solo un visualizzatore di documenti. È un ambiente di elaborazione AI sicuro e privato. E siamo appena all’inizio.
Vuoi vederlo in azione? Avvia il nostro scanner ATS privato con riscrittura AI integrata →