LiteRT consente di eseguire modelli TensorFlow, PyTorch e JAX nelle app per Android. Il sistema LiteRT fornisce ambienti di esecuzione predefiniti e personalizzabili per l'esecuzione di modelli su Android in modo rapido ed efficiente, incluse opzioni per l'accelerazione hardware.
Ad esempio, per le applicazioni Android che utilizzano LiteRT, consulta il repository Esempi di LiteRT.
Modelli di machine learning
LiteRT utilizza modelli TensorFlow, PyTorch e JAX convertiti in un formato di modello di machine learning più piccolo, portatile ed efficiente. Puoi utilizzare modelli predefiniti con LiteRT su Android oppure creare i tuoi modelli e convertirli nel formato LiteRT.
Questa pagina descrive l'utilizzo di modelli di machine learning già creati e non tratta la creazione, l'addestramento, il test o la conversione dei modelli. Scopri di più su come scegliere, modificare, creare e convertire i modelli di machine learning per LiteRT nella pagina Modelli.
Eseguire modelli su Android
Un modello LiteRT in esecuzione all'interno di un'app per Android riceve i dati, li elabora e genera una previsione in base alla logica del modello. Un modello LiteRT richiede un ambiente di runtime speciale per l'esecuzione e i dati passati al modello devono essere in un formato specifico, chiamato tensore. Quando un modello elabora i dati, operazione nota come esecuzione di un'inferenza, genera risultati di previsione come nuovi tensori e li trasmette all'app per Android in modo che possa intraprendere un'azione, ad esempio mostrare il risultato a un utente o eseguire una logica di business aggiuntiva.

Figura 1. Flusso di esecuzione funzionale per i modelli LiteRT nelle app per Android.
A livello di progettazione funzionale, l'app per Android deve avere i seguenti elementi per eseguire un modello LiteRT:
- Ambiente di runtime LiteRT per l'esecuzione del modello
- Gestore di input del modello per trasformare i dati in tensori
- Gestore dell'output del modello per ricevere i tensori dei risultati di output e interpretarli come risultati di previsione
Le sezioni seguenti descrivono come le librerie e gli strumenti LiteRT forniscono questi elementi funzionali.
Crea app con LiteRT
Questa sezione descrive il percorso consigliato e più comune per implementare LiteRT nella tua app per Android. Devi prestare particolare attenzione alle sezioni ambiente di runtime e librerie di sviluppo. Se hai sviluppato un modello personalizzato, assicurati di esaminare la sezione Percorsi di sviluppo avanzati.
Opzioni dell'ambiente di runtime
Esistono diversi modi per attivare un ambiente di runtime per l'esecuzione di modelli nella tua app per Android. Ecco le opzioni preferite:
- LiteRT nell'ambiente di runtime dei servizi Google Play (consigliato)
- Ambiente di runtime LiteRT autonomo
In generale, devi utilizzare l'ambiente di runtime fornito da Google Play Services perché è più efficiente in termini di spazio rispetto all'ambiente standard, in quanto viene caricato dinamicamente, mantenendo le dimensioni dell'app più ridotte. Google Play Services utilizza automaticamente anche la release più recente e stabile del runtime LiteRT, offrendoti funzionalità aggiuntive e prestazioni migliorate nel tempo. Se offri la tua app su dispositivi che non includono Google Play Services o devi gestire da vicino l'ambiente di runtime ML, devi utilizzare il runtime LiteRT standard. Questa opzione raggruppa codice aggiuntivo nella tua app, consentendoti di avere un maggiore controllo sul runtime ML nella tua app a costo di aumentare le dimensioni del download dell'app.
Puoi accedere a questi ambienti runtime nella tua app per Android aggiungendo le librerie di sviluppo LiteRT al tuo ambiente di sviluppo di app. Per informazioni su come utilizzare gli ambienti di runtime standard nella tua app, consulta la sezione successiva.
Biblioteche
Puoi accedere all'API Interpreter utilizzando i servizi Google Play. Puoi utilizzare le librerie core e support di LiteRT nella tua app per Android. Per i dettagli di programmazione sull'utilizzo delle librerie e degli ambienti di runtime di LiteRT, consulta Strumenti di sviluppo per Android.
Ottenere modelli
Per eseguire un modello in un'app per Android è necessario un modello in formato LiteRT. Puoi utilizzare modelli predefiniti o crearne uno e convertirlo nel formato Lite. Per ulteriori informazioni su come ottenere modelli per la tua app per Android, consulta la pagina Modelli di LiteRT.
Gestire i dati di input
Tutti i dati che passi a un modello ML devono essere un tensore con una struttura di dati specifica, spesso chiamata forma del tensore. Per elaborare i dati con un modello, il codice dell'app deve trasformare i dati dal formato nativo, ad esempio immagine, testo o dati audio, in un tensore nella forma richiesta per il modello.
Eseguire inferenze
L'elaborazione dei dati tramite un modello per generare un risultato di previsione è nota come esecuzione di un'inferenza. L'esecuzione di un'inferenza in un'app per Android richiede un ambiente di runtime LiteRT, un modello e dati di input.
La velocità con cui un modello può generare un'inferenza su un determinato dispositivo dipende dalle dimensioni dei dati elaborati, dalla complessità del modello e dalle risorse di calcolo disponibili, come memoria e CPU, o da processori specializzati chiamati acceleratori. I modelli di machine learning possono essere eseguiti più velocemente su questi processori specializzati, come le unità di elaborazione grafica (GPU) e le unità di elaborazione tensoriale (TPU), utilizzando driver hardware LiteRT chiamati delegati. Per ulteriori informazioni sui delegati e sull'accelerazione hardware dell'elaborazione dei modelli, consulta la panoramica sull'accelerazione hardware.
Gestire i risultati dell'output
I modelli generano risultati di previsione come tensori, che devono essere gestiti dall'app Android eseguendo un'azione o visualizzando un risultato per l'utente. I risultati dell'output del modello possono essere semplici come un numero corrispondente a un singolo risultato (0 = cane, 1 = gatto, 2 = uccello) per una classificazione delle immagini, fino a risultati molto più complessi, come più bounding box per diversi oggetti classificati in un'immagine, con valutazioni di confidenza della previsione comprese tra 0 e 1.
Percorsi di sviluppo avanzati
Quando utilizzi modelli LiteRT più sofisticati e personalizzati, potresti dover utilizzare approcci di sviluppo più avanzati rispetto a quelli descritti sopra. Le sezioni seguenti descrivono tecniche avanzate per eseguire modelli e svilupparli per LiteRT nelle app per Android.
Ambienti di runtime avanzati
Oltre agli ambienti di runtime standard e di runtime di Google Play Services per LiteRT, esistono altri ambienti di runtime che puoi utilizzare con la tua app per Android. L'uso più probabile di questi ambienti è se hai un modello di machine learning che utilizza operazioni di ML non supportate dall'ambiente di runtime standard per LiteRT.
- Runtime flessibile per LiteRT
- Runtime LiteRT personalizzato
L'ambiente di esecuzione Flex di LiteRT ti consente di includere operatori specifici richiesti per il tuo modello. Come opzione avanzata per l'esecuzione del modello, puoi creare LiteRT per Android per includere operatori e altre funzionalità necessarie per l'esecuzione del modello di machine learning TensorFlow. Per ulteriori informazioni, consulta Creare LiteRT per Android.
API C e C++
LiteRT fornisce anche un'API per l'esecuzione di modelli utilizzando C e C++. Se la tua app utilizza l'NDK Android, ti consigliamo di utilizzare questa API. Potresti anche prendere in considerazione l'utilizzo di questa API se vuoi poter condividere il codice tra più piattaforme. Per saperne di più su questa opzione di sviluppo, consulta la pagina Strumenti di sviluppo.
Esecuzione del modello basata su server
In generale, dovresti eseguire i modelli nella tua app su un dispositivo Android per usufruire di una latenza inferiore e di una maggiore privacy dei dati per i tuoi utenti. Tuttavia, in alcuni casi, l'esecuzione di un modello su un server cloud, al di fuori del dispositivo, è una soluzione migliore. Ad esempio, se hai un modello di grandi dimensioni che non si comprime facilmente fino a raggiungere una dimensione adatta ai dispositivi Android dei tuoi utenti o che può essere eseguito con prestazioni ragionevoli su questi dispositivi. Questo approccio potrebbe essere la tua soluzione preferita anche se la coerenza delle prestazioni del modello su un'ampia gamma di dispositivi è la priorità assoluta.
Google Cloud offre una suite completa di servizi per l'esecuzione di modelli di AI. Per ulteriori informazioni, consulta la pagina sui prodotti di AI e machine learning di Google Cloud.
Sviluppo e ottimizzazione di modelli personalizzati
I percorsi di sviluppo più avanzati includono probabilmente lo sviluppo di modelli di machine learning personalizzati e la loro ottimizzazione per l'utilizzo su dispositivi Android. Se prevedi di creare modelli personalizzati, assicurati di prendere in considerazione l'applicazione di tecniche di quantizzazione ai modelli per ridurre i costi di memoria ed elaborazione. Per ulteriori informazioni su come creare modelli ad alte prestazioni da utilizzare con LiteRT, consulta la sezione Best practice per le prestazioni nella sezione Modelli.
Versioni di Android supportate
| Versione LiteRT | Stato | Livello SDK minimo | Livello NDK minimo (se utilizzato) | Data di uscita |
|---|---|---|---|---|
v1.2.0 ⭐ |
✅ Attivo | 21 (Android 5 Lollipop) |
r26a |
2025-03-13 |
Importante:mantieni aggiornate le dipendenze per garantire la compatibilità con le funzionalità e gli aggiornamenti della sicurezza più recenti.