LiteRT (abbreviazione di Lite Runtime), precedentemente noto come TensorFlow Lite, è il runtime ad alte prestazioni di Google per l'IA on-device. Puoi trovare modelli LiteRT pronti per l'uso per una vasta gamma di attività di ML/AI oppure convertire ed eseguire modelli TensorFlow, PyTorch e JAX nel formato TFLite utilizzando gli strumenti di ottimizzazione e conversione di AI Edge.
Funzionalità principali
Ottimizzato per il machine learning on-device: LiteRT risolve cinque vincoli chiave dell'ODML: latenza (non è previsto alcun viaggio di andata e ritorno a un server), privacy (nessun dato personale esce dal dispositivo), connettività (non è richiesta la connettività a internet), dimensioni (dimensioni ridotte del modello e del file binario) e consumo energetico (inferenza efficiente e assenza di connessioni di rete).
Supporto multipiattaforma: compatibile con dispositivi Android e iOS, Linux embedded e microcontrollori.
Opzioni di modelli multi-framework: AI Edge fornisce strumenti per convertire i modelli da TensorFlow, PyTorch e JAX nel formato FlatBuffers (
.tflite
), consentendoti di utilizzare un'ampia gamma di modelli all'avanguardia su LiteRT. Hai anche accesso a strumenti di ottimizzazione dei modelli in grado di gestire la quantizzazione e i metadati.Supporto di diversi linguaggi: include SDK per Java/Kotlin, Swift, Objective-C, C++ e Python.
Elevate prestazioni: accelerazione hardware tramite delegati specializzati come GPU e Core ML per iOS.
Flusso di lavoro di sviluppo
Il flusso di lavoro di sviluppo di LiteRT prevede l'identificazione di un problema di ML/IA, la scelta di un modello che lo risolva e l'implementazione del modello sul dispositivo. I seguenti passaggi illustrano il flusso di lavoro e forniscono link a ulteriori istruzioni.
1. Identificare la soluzione più adatta al problema di ML
LiteRT offre agli utenti un elevato livello di flessibilità e personalizzazione per la risoluzione dei problemi di machine learning, il che lo rende adatto agli utenti che richiedono un modello specifico o un'implementazione specializzata. Gli utenti alla ricerca di soluzioni plug-and-play potrebbero preferire MediaPipe tasks, che fornisce soluzioni pronte all'uso per attività comuni di machine learning come il rilevamento degli oggetti, la classificazione del testo e l'inferenza LLM.
Scegli uno dei seguenti framework di IA edge:
- LiteRT: un runtime flessibile e personalizzabile che può eseguire un'ampia gamma di modelli. Scegli un modello per il tuo caso d'uso, convertilo nel formato LiteRT (se necessario) ed eseguilo sul dispositivo. Se intendi utilizzare LiteRT, continua a leggere.
- MediaPipe Tasks: soluzioni plug-and-play con modelli predefiniti che consentono la personalizzazione. Scegli l'attività che risolve il tuo problema di AI/ML e implementala su più piattaforme. Se intendi utilizzare MediaPipe Tasks, consulta la documentazione di MediaPipe Tasks.
2. Scelta di un modello
Un modello LiteRT è rappresentato in un formato portatile efficiente noto come
FlatBuffers, che utilizza l'estensione del file .tflite
.
Puoi utilizzare un modello LiteRT nei seguenti modi:
Utilizza un modello LiteRT esistente:l'approccio più semplice è utilizzare un modello LiteRT già nel formato
.tflite
. Questi modelli non richiedono alcun passaggio di conversione aggiuntivo. Puoi trovare i modelli LiteRT su Kaggle Models.Converti un modello in un modello LiteRT:puoi utilizzare TensorFlow Converter, PyTorch Converter o JAX Converter per convertire i modelli nel formato FlatBuffers (
.tflite
) ed eseguirli in LiteRT. Per iniziare, puoi trovare modelli sui seguenti siti:- Modelli TensorFlow su Kaggle Models e Hugging Face
- Modelli PyTorch su Hugging
Face e
torchvision
- Modelli JAX su Hugging Face
Un modello LiteRT può includere facoltativamente metadati contenenti descrizioni del modello leggibili da persone e dati leggibili dalla macchina per la generazione automatica di pipeline di pre- e post-elaborazione durante l'inferenza on-device. Per ulteriori dettagli, consulta Aggiungere metadati.
3. Integra il modello nella tua app
Puoi implementare i tuoi modelli LiteRT per eseguire inferenze completamente on-device su dispositivi web, incorporati e mobili. LiteRT contiene API per Python, Java e Kotlin per Android, Swift per iOS e C++ per micro-dispositivi.
Utilizza le seguenti guide per implementare un modello LiteRT sulla tua piattaforma preferita:
- Esegui su Android: esegui i modelli sui dispositivi Android utilizzando le API Java/Kotlin.
- Esegui su iOS: esegui i modelli sui dispositivi iOS utilizzando le API Swift.
- Esegui su micro: esegui i modelli sui dispositivi embedded utilizzando le API C++.
Sui dispositivi Android e iOS, puoi migliorare le prestazioni utilizzando l'accelerazione hardware. Su entrambe le piattaforme puoi utilizzare un GPU Delegate e su iOS puoi utilizzare Core ML Delegate. Per aggiungere il supporto di nuovi acceleratori hardware, puoi definire il tuo delegato.
Puoi eseguire l'inferenza nei seguenti modi in base al tipo di modello:
Modelli senza metadati: utilizza l'API LiteRT Interpreter. Supportato su più piattaforme e linguaggi, come Java, Swift, C++, Objective-C e Python.
Modelli con metadati: puoi creare pipeline di inferenza personalizzate con la libreria di supporto LiteRT.
Eseguire la migrazione da TF Lite
Le applicazioni che utilizzano le librerie TF Lite continueranno a funzionare, ma tutti i nuovi sviluppi e aggiornamenti attivi verranno inclusi solo nei pacchetti LiteRT. Le API LiteRT contengono gli stessi nomi di metodo delle API TF Lite, pertanto la migrazione a LiteRT non richiede modifiche dettagliate al codice.
Per ulteriori informazioni, consulta la guida alla migrazione.
Passaggi successivi
I nuovi utenti devono iniziare con la guida rapida di LiteRT. Per informazioni specifiche, consulta le sezioni seguenti:
Conversione del modello
- Convertire i modelli TensorFlow
- Convertire i modelli PyTorch
- Convertire i modelli di IA generativa PyTorch
- Convertire i modelli JAX
Guide della piattaforma