Un developer ha preso un modello linguistico da 350 milioni di parametri, lo ha sottoposto a fine-tuning e lo ha distribuito come un assistente AI completamente funzionante che gira all'interno di qualsiasi browser web moderno: niente chiamate al server, niente chiavi API, niente costi cloud.
Il progetto distribuisce i pesi del modello insieme a una pagina web statica, permettendo all'agente di scegliere strumenti, associare argomenti, risolvere riferimenti come "il secondo" e rifiutarsi di rispondere quando mancano informazioni, il tutto mantenendo i dati sul proprio dispositivo.
Come è stato costruito l'agente basato su browser
Il punto di partenza è stata la famiglia LFM2.5 di LiquidAI, nello specifico le varianti da 230 M e 350 M di parametri.
Invece di stipare cataloghi di prodotti o tabelle dei prezzi all'interno del modello, l'addestramento gli ha insegnato dei pattern di interazione. L'agente non conosce mai un particolare SKU; impara invece come:
- Scegliere lo strumento appropriato per una determinata richiesta.
- Associare gli argomenti e gli identificatori corretti a quello strumento.
- Interpretare riferimenti ambigui ("una dozzina", "il secondo").
- Estrarre testo esterno e usarlo per rispondere alle domande.
- Rifiutare la richiesta quando le informazioni necessarie mancano.
- Mantenere la conversazione sull'argomento.
Il set di strumenti è deliberatamente statico: list_items, get_item, search_knowledge, add_to_cart, remove_from_cart, clear_cart, checkout e navigate. Congelare l'elenco impedisce al modello di memorizzare gli ID degli strumenti e mantiene ridotti i dati di fine-tuning.
Tre scelte ingegneristiche mantengono il sistema leggero:
- Elenco strumenti congelato – Il modello vede un elenco fisso di azioni, quindi non ha bisogno di un vasto vocabolario di nomi di strumenti.
- RAG come strumento – La Retrieval-augmented generation (RAG) agisce come qualsiasi altra funzione. L'agente chiama
search_knowledgeper recuperare il testo, quindi inserisce quel testo direttamente nella sua risposta, evitando una pipeline di recupero separata che aggiungerebbe latenza e sovraccarico di memoria. - Decodifica vincolata dalla grammatica – Durante la generazione, il decoder segue una grammatica semplice che forza l'output in una struttura di chiamata allo strumento valida. Il vincolo elimina lo spreco di token e riduce i comandi malformati.
L'addestramento ha utilizzato la distillazione di dati sintetici. L'autore ha definito 18 ricette di interazione, ognuna delle quali descrive uno scambio tipico tra utente e assistente. Un modello "insegnante" più grande ha generato la parte in linguaggio naturale, mentre uno script deterministico ha prodotto il formato esatto della chiamata allo strumento. L'esecuzione del fine-tuning ha consumato circa 30 milioni di token ed è stata eseguita su una singola GPU con 16 GB di memoria.
Perché l'esecuzione on-device è importante
- Privacy – Tutti i prompt dell'utente rimangono nella memoria del browser. Nessuna telemetria lascia il dispositivo, il che è fondamentale per le query sensibili.
- Capacità offline – Poiché il modello è memorizzato nella cache localmente, l'assistente funziona senza una connessione internet, aprendo possibilità per il lavoro sul campo o in viaggio.
- Costi – La distribuzione di file di modello statici elimina la necessità di server di inferenza ricorrenti basati su GPU o commissioni API per ogni chiamata.
- Accessibilità – La navigazione vocale di interfacce web complesse diventa fattibile su dispositivi con specifiche basse, ampliando la portata delle applicazioni web agli utenti che si affidano a tecnologie assistive.
Questi vantaggi spostano la conversazione da "Un modello gigante può rispondere a questo?" a "Quanto può essere piccolo un modello pur continuando a fornire un'assistenza utile?".
Potenziali limitazioni
Un modello di queste dimensioni non può trattenere fatti enciclopedici. Quando un utente chiede il prezzo di un prodotto specifico o un recente titolo di giornale, l'assistente recupera le informazioni tramite search_knowledge oppure rifiuta gentilmente. Questo design protegge la privacy ma lega anche il sistema alla qualità e alla freschezza della sua fonte di conoscenza esterna.
Cosa aspettarsi in futuro
La demo pubblica si trova a un semplice URL di GitHub Pages e il codice sorgente è liberamente disponibile.
In sintesi: Insegnando a un LLM di dimensioni modeste a seguire una grammatica rigorosa per gli strumenti e trattando il recupero come una semplice funzione, gli sviluppatori possono distribuire un utile assistente AI che vive interamente nel browser, offrendo privacy, utilizzo offline e costi cloud nulli senza sacrificare le capacità conversazionali fondamentali.
