LiteRT è il framework on-device di Google per l'implementazione di ML e GenAI ad alte prestazioni su piattaforme edge, utilizzando conversione, runtime e ottimizzazione efficienti.
LiteRT 2.x contiene l'API runtime più recente, l'API CompiledModel, che migliora l'API Interpreter (ovvero le API TensorFlow Lite), in particolare tramite l'accelerazione hardware e le prestazioni complessive per le applicazioni ML e AI on-device. L'API CompiledModel è in versione beta e disponibile sia in Kotlin che in C++.
Funzionalità principali di LiteRT
Modelli supportati
LiteRT supporta la conversione semplificata dai framework Pytorch, TensorFlow e JAX al formato .tflite o .litertlm.
Semplificare lo sviluppo con LiteRT
Selezione automatica dell'acceleratore rispetto alla creazione esplicita del delegato. Runtime NPU e distribuzione dei modelli semplici. Gestione efficiente dei buffer I/O ed esecuzione asincrona per prestazioni superiori.
Prestazioni della GPU all'avanguardia
Basato su ML Drift, ora supporta sia i modelli ML che quelli di AI generativa sulle API GPU.
Accelerazione NPU unificata
Accelera il tuo modello utilizzando l'accesso semplificato alla NPU dei principali fornitori di chipset.
Supporto semplificato degli LLM con LiteRT
Puoi utilizzare LiteRT-LM, basato su LiteRT. LiteRT-LM supporta gli LLM più recenti e funzionalità utili come la multimodalità, la decodifica vincolata e così via.
Flusso di lavoro di sviluppo
LiteRT esegue le inferenze completamente sul dispositivo su Android, iOS, web, IoT e su computer/laptop. Indipendentemente dal dispositivo, il seguente è il flusso di lavoro più comune, con link a ulteriori istruzioni.

Identificare la soluzione più adatta alla sfida ML
LiteRT offre agli utenti un elevato livello di flessibilità e personalizzazione quando si tratta di risolvere problemi di machine learning, il che lo rende adatto agli utenti che richiedono un modello specifico o un'implementazione specializzata. Gli utenti che cercano soluzioni plug-and-play potrebbero preferire MediaPipe Tasks, che fornisce soluzioni pronte all'uso per attività di machine learning comuni come il rilevamento degli oggetti, la classificazione del testo e l'inferenza LLM.
Ottenere e preparare il modello
Un modello LiteRT è rappresentato in un formato portatile efficiente noto come
FlatBuffers, che utilizza l'estensione
.tflite.
Puoi ottenere un modello LiteRT nei seguenti modi:
Ottieni un modello preaddestrato:per carichi di lavoro di ML popolari come la segmentazione delle immagini, il rilevamento degli oggetti e così via.
L'approccio più semplice consiste nell'utilizzare un modello LiteRT già nel formato
.tflite. Questi modelli non richiedono passaggi di conversione aggiuntivi.Tipo di modello Origine del modello preaddestrato ML classico
(formato.tflite)Visita Kaggle o HuggingFace
Ad es. modelli di segmentazione delle immagini e app di esempioAI generativa
(formato.litertlm)Pagina Hugging Face di LiteRT
Ad es. Famiglia GemmaConverti il modello PyTorch, TensorFlow o JAX scelto in un modello LiteRT se scegli di non utilizzare un modello preaddestrato. [PRO USER]
Framework modello Modelli di esempio Strumento di conversione PyTorch Hugging Face
TorchvisionLink TensorFlow Kaggle Models
Hugging FaceLink Jax Faccina che abbraccia Link Crea il tuo LLM per un'ulteriore ottimizzazione utilizzando l'API Generative [UTENTE PRO]
La nostra libreria di API generative fornisce blocchi predefiniti di PyTorch per comporre modelli Transformer come Gemma, TinyLlama e altri utilizzando astrazioni ottimizzate per il mobile, tramite le quali possiamo garantire la conversione e l'esecuzione efficiente sul nostro runtime mobile, LiteRT. Consulta la documentazione dell'API generativa.
Quantizzazione [UTENTE PRO]
AI Edge Quantizer per sviluppatori avanzati è uno strumento per quantizzare i modelli LiteRT convertiti. Il suo scopo è quello di consentire agli utenti avanzati di ottenere prestazioni ottimali su modelli che richiedono molte risorse (ad es. modelli di AI generativa).
Per i modelli di machine learning e di AI generativa, consulta la documentazione relativa alla quantizzazione AI-Edge.
Prerequisiti per iniziare
- Python 3.10-3.12
.tflitefile del modello- Ulteriori dettagli disponibili nella sezione della piattaforma pertinente
Integrare il modello nell'app sulle piattaforme edge
Puoi implementare i tuoi modelli LiteRT per eseguire inferenze completamente sul dispositivo su dispositivi Android, iOS, web, IoT e desktop. LiteRT contiene API per Python, Java e Kotlin per Android, Swift per iOS e C++ per microdispositivi.
Utilizza le seguenti guide per implementare un modello LiteRT sulla tua piattaforma preferita:
| Framework modello | Modelli di esempio | Strumento di conversione |
|---|---|---|
| Eseguire su Android | Dispositivi mobili Android | API C++/Kotlin |
| Esegui su iOS | Dispositivi mobili iOS | API C++/Swift* |
| Esegui sul web utilizzando LiteRT.js | Dispositivo con Chrome, Firefox o Safari | API JavaScript |
| Esegui su Micro | Dispositivi incorporati | API C++ |
*Disponibile a breve
Esempio di codice Kotlin
// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))
// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
val outputBuffers = compiledModel.createOutputBuffers()
// Execute model
compiledModel.run(inputBuffers, outputBuffers)
// Access model output
val output = outputBuffers.get(0).readFloat()
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()
Esempio di codice C++
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
Scegli un backend
Il modo più semplice per incorporare i backend in LiteRT è fare affidamento sull'intelligenza integrata del runtime. Con le ultime modifiche, LiteRT semplifica notevolmente la configurazione grazie alla possibilità di specificare il backend di destinazione come opzione.
Il fulcro di LiteRT v2.x è l'oggetto CompiledModel. Quando carichi un modello,
LiteRT utilizza l'hardware disponibile del sistema e la logica di priorità interna per
selezionare il backend ottimale senza configurazione manuale. Consulta il backend
per ulteriori dettagli.
| Android | Desktop | Web | iOS | macOS | IoT | |
|---|---|---|---|---|---|---|
| CPU | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack |
| GPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU | WebGPU Metal |
WebGPU Metal |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - | - |
Documentazione e assistenza aggiuntive
App di esempio LiteRT v2.x Consulta App di esempio per la segmentazione delle immagini LiteRT
Per gli utenti esistenti di TensorFlow Lite Consulta la guida alla migrazione
Copertura di Ops Operatori compatibili
Modelli LLM supportati LiteRT Hugging Face e API Gen - esempi
Strumenti Pagina degli strumenti LiteRT - Rendimento, Profilazione, segnalazione errori e così via.