Google ha annunciato LiteRT.js, un nuovo runtime JavaScript che porta nel browser LiteRT, la libreria di inferenza on-device utilizzata dall’azienda per l’esecuzione di modelli di machine learning su dispositivi locali. Con LiteRT.js gli sviluppatori possono eseguire modelli AI direttamente nelle applicazioni web, sfruttando CPU, GPU e, progressivamente, anche le NPU (Neural Processing Unit) disponibili sul dispositivo e riducendo il ricorso ai servizi cloud.

LiteRT.js rappresenta, secondo Google, anche l’evoluzione naturale di TensorFlow.js per l’esecuzione dei modelli nel formato TensorFlow Lite (.tflite). A differenza dell’approccio adottato finora, basato principalmente su kernel implementati in JavaScript, il nuovo runtime utilizza la stessa infrastruttura nativa impiegata da LiteRT sulle piattaforme Android, iOS e desktop, resa disponibile nel browser attraverso WebAssembly. In questo modo le applicazioni web possono beneficiare delle stesse ottimizzazioni sviluppate per l’inferenza locale sugli altri sistemi operativi.

L’annuncio si inserisce in una fase di rapida evoluzione dell’intelligenza artificiale eseguita sul dispositivo. La crescente disponibilità di browser compatibili con WebGPU, il progressivo sviluppo di WebNN e la diffusione di notebook dotati di NPU (Neural Processing Unit) stanno infatti creando le condizioni per spostare una parte crescente dell’inferenza direttamente sul client, riducendo latenza, traffico verso il cloud e costi di elaborazione.

A che cosa serve LiteRT.js

L’interesse di LiteRT.js non riguarda soltanto le prestazioni. Eseguire una parte dell’inferenza direttamente nel browser permette infatti di ripensare l’architettura economica e operativa delle applicazioni AI.

Per attività come riconoscimento di immagini, trascrizione audio, ricerca semantica, object detection o image enhancement, il modello può essere eseguito sul dispositivo dell’utente invece che in un data center. Questo riduce il numero di richieste verso servizi cloud, abbassa la latenza e limita il trasferimento dei dati, aspetti particolarmente rilevanti quando le applicazioni elaborano informazioni riservate o devono rispondere in tempo reale.

L’esecuzione locale modifica anche la scalabilità economica delle applicazioni web. Nei servizi basati esclusivamente sul cloud, ogni nuovo utente aumenta il consumo di risorse di inferenza nel data center. Con LiteRT.js, invece, una parte del carico viene distribuita sui dispositivi dei client, sfruttando CPU, GPU e, progressivamente, NPU già disponibili su notebook, workstation e dispositivi mobili. Il cloud continua a svolgere un ruolo centrale per i modelli più grandi e i servizi condivisi, ma non è più necessariamente coinvolto in ogni fase dell’elaborazione.

Per gli sviluppatori questo significa poter distribuire applicazioni nelle quali ogni componente viene eseguito nell’ambiente più adatto. Operazioni come classificazione, ricerca semantica, riconoscimento di immagini o trascrizione audio possono essere elaborate direttamente sul dispositivo, mentre il cloud rimane disponibile per modelli linguistici di grandi dimensioni, orchestrazione degli agenti o servizi condivisi. LiteRT.js non sostituisce quindi il cloud, ma contribuisce a distribuirne il carico, rendendo più sostenibile lo sviluppo di applicazioni AI accessibili direttamente dal browser.

Un runtime condiviso tra browser, mobile e desktop

La caratteristica principale di LiteRT.js è l’utilizzo dello stesso runtime impiegato da LiteRT sulle altre piattaforme. Invece di mantenere un’implementazione specifica per il browser, Google ha scelto di estendere al web la propria libreria di inferenza on-device, condividendo con Android, iOS e desktop lo stesso stack software per l’esecuzione dei modelli.

Questa unificazione consente alle applicazioni web di ereditare automaticamente i miglioramenti introdotti nel runtime LiteRT, dalle ottimizzazioni delle prestazioni alle nuove tecniche di quantizzazione, fino al supporto dei diversi acceleratori hardware. Gli sviluppatori possono così mantenere un’unica pipeline di distribuzione dei modelli per browser, dispositivi mobili e desktop, riducendo le differenze tra le varie piattaforme.

LiteRT.js mantiene inoltre la compatibilità con il formato .tflite, permettendo di riutilizzare modelli già sviluppati per LiteRT. Per i progetti che utilizzano già TensorFlow Lite, il passaggio al browser non richiede quindi la conversione dei modelli verso un formato differente, ma soltanto l’integrazione del nuovo runtime nelle applicazioni web.

Accelerazione hardware con CPU, GPU e NPU

LiteRT.js seleziona automaticamente il backend di esecuzione più adatto all’hardware disponibile sul dispositivo. Il runtime può utilizzare CPU, GPU o, progressivamente, anche NPU (Neural Processing Unit) per eseguire lo stesso modello senza richiedere modifiche all’applicazione.

Per l’esecuzione sulla CPU, LiteRT.js utilizza XNNPACK, la libreria open source sviluppata da Google per accelerare le reti neurali sui processori general purpose. XNNPACK supporta l’elaborazione multi-thread e una versione “relaxed” delle estensioni SIMD (Single Instruction, Multiple Data), progettata per migliorare le prestazioni anche nei browser.

Quando è disponibile una GPU, il runtime si basa su ML Drift, il nuovo motore di esecuzione GPU introdotto da Google in LiteRT. ML Drift sostituisce il precedente GPU Delegate di TensorFlow Lite e introduce un nuovo compilatore, una diversa organizzazione dei tensori in memoria e ottimizzazioni specifiche per il calcolo parallelo. Nel browser queste funzionalità vengono esposte attraverso WebGPU.

Per i sistemi dotati di NPU, LiteRT.js introduce inoltre il supporto alla Web Neural Network API (WebNN), ancora sperimentale in Chrome ed Edge, che consente di utilizzare gli acceleratori AI dedicati attraverso un’interfaccia standardizzata.

Nei benchmark pubblicati da Google, applicazioni come object tracking, trascrizione audio ed elaborazione delle immagini risultano da 5 a 60 volte più veloci utilizzando WebGPU e WebNN rispetto alla sola CPU. L’entità dell’accelerazione varia in funzione del tipo di modello e dell’hardware disponibile. I test sono stati eseguiti su un Apple MacBook Pro M4 in un ambiente browser controllato.

Conversione e ottimizzazione dei modelli

Oltre al runtime di inferenza, Google ha aggiornato anche gli strumenti per preparare i modelli destinati al browser. Con LiteRT Torch è possibile convertire in un unico passaggio modelli sviluppati con PyTorch, uno dei framework open source più diffusi per l’addestramento delle reti neurali, nel formato .tflite (TensorFlow Lite), utilizzato da LiteRT per distribuire modelli ottimizzati per l’esecuzione su dispositivi locali. I modelli ottenuti possono quindi essere utilizzati direttamente da LiteRT.js e dagli altri runtime della piattaforma LiteRT.

Per ottimizzare ulteriormente i modelli, Google mette a disposizione AI Edge Quantizer, uno strumento che permette di applicare schemi di quantizzazione differenti ai vari livelli della rete neurale. La quantizzazione consiste nella riduzione della precisione numerica utilizzata per rappresentare pesi e attivazioni del modello, per diminuirne dimensioni, consumo di memoria e tempi di inferenza mantenendo, nei limiti del possibile, la qualità dei risultati. AI Edge Quantizer consente di applicare strategie diverse alle singole parti del modello, bilanciando prestazioni e accuratezza in funzione del caso d’uso.

Conversione, quantizzazione ed esecuzione vengono così ricondotte a una pipeline comune. Lo stesso modello può essere preparato una sola volta e distribuito su applicazioni web, dispositivi mobili e sistemi desktop utilizzando il runtime LiteRT appropriato per ciascuna piattaforma.

Prestazioni: fino a 3× rispetto ad altri runtime web

Nei benchmark pubblicati da Google, LiteRT.js raggiunge prestazioni fino a tre volte superiori rispetto ad altri runtime di inferenza per il web, tra cui TensorFlow.js, ONNX Runtime Web e Transformers.js, nell’esecuzione di modelli di computer vision e di elaborazione audio.

Google ha misurato separatamente anche l’impatto dei diversi backend disponibili nel runtime. Utilizzando WebGPU o WebNN al posto della sola CPU, applicazioni come object tracking, trascrizione audio ed elaborazione delle immagini risultano da 5 a 60 volte più veloci. L’entità dell’accelerazione dipende dal tipo di modello e dall’hardware disponibile.

I benchmark sono stati eseguiti su un Apple MacBook Pro M4 in un ambiente browser controllato. Come avviene per questo tipo di misurazioni, le prestazioni possono variare in base all’hardware, ai driver e al livello di supporto offerto dal browser.

Dai modelli di visione agli LLM

Per illustrare le possibilità offerte da LiteRT.js, Google ha pubblicato una serie di applicazioni dimostrative che coprono tre categorie principali: ricerca semantica, computer vision ed elaborazione delle immagini. Gli esempi mostrano come lo stesso runtime possa essere utilizzato per carichi di lavoro molto diversi, mantenendo un’infrastruttura comune di inferenza.

Tra questi figura una ricerca vettoriale eseguita interamente nel browser utilizzando EmbeddingGemma, il modello di embedding sviluppato da Google per trasformare testi in rappresentazioni numeriche utilizzabili nelle ricerche semantiche.

Le demo comprendono anche applicazioni di computer vision. Grazie all’integrazione ufficiale con Ultralytics, gli sviluppatori possono esportare i modelli della famiglia YOLO26 (You Only Look Once) direttamente verso LiteRT, semplificando il deployment su browser, dispositivi mobili e sistemi edge. Google mostra inoltre un’applicazione basata su Depth Anything V2 che ricostruisce in tempo reale una mappa tridimensionale a partire dal flusso video di una normale webcam, sfruttando l’accelerazione offerta da WebGPU.

Un terzo esempio riguarda Real-ESRGAN, un modello open source per il super-resolution delle immagini. Nella dimostrazione pubblicata da Google, LiteRT.js esegue nel browser l’ingrandimento di immagini fino a quattro volte la risoluzione originale, elaborando progressivamente blocchi dell’immagine senza ricorrere a servizi cloud.

Google anticipa infine l’arrivo di LiteRT-LM.js, estensione della piattaforma destinata ai Large Language Model (LLM). LiteRT-LM.js porta lo stesso approccio adottato per i modelli di machine learning anche ai modelli linguistici generativi, sfruttando l’accelerazione hardware disponibile direttamente sul dispositivo.

La roadmap di LiteRT.js

Google indica che LiteRT.js rappresenta il primo passo di un programma di sviluppo più ampio. Tra le priorità figura l’estensione del supporto a WebNN, che dovrebbe consentire di utilizzare in modo più efficace le NPU integrate nei PC e nei dispositivi mobili man mano che il supporto dell’API verrà esteso dai browser. L’azienda prevede inoltre di ampliare il numero di modelli compatibili e di migliorare ulteriormente gli strumenti dedicati agli sviluppatori.

La roadmap comprende anche nuovi modelli preaddestrati, strumenti di conversione e ottimizzazione e il supporto alle pipeline già sviluppate con TensorFlow.js, così da consentire agli sviluppatori di riutilizzare il codice esistente e migrare progressivamente verso il nuovo runtime senza riprogettare le applicazioni web.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome