LiteRT è il framework on-device di Google per il deployment di ML e AI generativa ad alte prestazioni sulle piattaforme edge, utilizzando conversione, runtime e ottimizzazione efficienti.
L'ultima release di LiteRT 2.x introduce l'API CompiledModel, un'interfaccia di runtime moderna progettata per massimizzare l'accelerazione hardware. Sebbene l'API Interpreter (in precedenza TensorFlow Lite) rimanga disponibile per la compatibilità con le versioni precedenti, l'API CompiledModel è la scelta consigliata per gli sviluppatori che cercano prestazioni all'avanguardia nelle applicazioni di AI on-device.
Funzionalità principali di LiteRT
Semplifica lo sviluppo con LiteRT
Selezione automatica dell'acceleratore rispetto alla creazione esplicita del delegato. Gestione efficiente dei buffer di I/O ed esecuzione asincrona per prestazioni superiori. Consulta la documentazione sull'inferenza on-device.
Prestazioni GPU di prima classe
Basato su ML Drift, ora supporta sia i modelli di ML che di AI generativa sulle API GPU. Consulta la documentazione sull'accelerazione GPU.
Accelerazione NPU unificata
Accelera il modello utilizzando l'accesso NPU semplificato dei principali fornitori di chipset. Consulta la documentazione sull'accelerazione NPU.
Supporto LLM superiore
LiteRT offre un deployment ad alte prestazioni per i modelli di AI generativa su piattaforme mobile, desktop e web. Consulta la documentazione sul deployment di AI generativa .
Supporto esteso dei framework ML
LiteRT supporta la conversione semplificata dai framework PyTorch, TensorFlow e JAX al formato .tflite o .litertlm. Consulta la documentazione sulla conversione dei modelli
.
Inizia a utilizzare l'API CompiledModel
Per i modelli di ML classici, consulta le seguenti app demo.
- App Kotlin per la segmentazione delle immagini: inferenza CPU/GPU/NPU.
- App C++ per la segmentazione delle immagini: inferenza CPU/GPU/NPU con esecuzione asincrona.
Per i modelli di AI generativa, consulta le seguenti app demo:
- App C++ per la similarità semantica EmbeddingGemma: inferenza CPU/GPU/NPU.
Flusso di lavoro di sviluppo
LiteRT esegue le inferenze completamente on-device su Android, iOS, web, IoT e su computer desktop/portatili. Indipendentemente dal dispositivo, il seguente è il flusso di lavoro più comune, con link a ulteriori istruzioni.
Identifica la soluzione più adatta alla sfida di ML
LiteRT offre agli utenti un elevato livello di flessibilità e personalizzazione per risolvere i 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 di oggetti, la classificazione del testo e l'inferenza LLM.

Ottieni e prepara il modello
Un modello LiteRT è rappresentato in un formato portatile efficiente noto come
FlatBuffers, che utilizza l'estensione del .tflite
file.
Puoi ottenere un modello LiteRT nei seguenti modi:
Ottieni un modello preaddestrato per carichi di lavoro di ML comuni come la segmentazione delle immagini, il rilevamento di oggetti e così via.
L'approccio più semplice è utilizzare un modello LiteRT già in formato
.tflite. Questi modelli non richiedono passaggi di conversione aggiuntivi.Tipo di modello Origine del modello preaddestrato ML classico
(.tfliteformato)Visita Kaggle o HuggingFace
Ad es. modelli di segmentazione delle immagini e app di esempioAI generativa
(.litertlmformato)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. [UTENTE ESPERTO]
Framework modello Modelli di esempio Strumento di conversione PyTorch Hugging Face
TorchvisionLink TensorFlow Modelli Kaggle
Hugging FaceLink Jax Hugging Face Link Crea il tuo LLM per un'ulteriore ottimizzazione utilizzando l'API Generativa [UTENTE ESPERTO]
La nostra libreria dell'API Generativa fornisce blocchi predefiniti di PyTorch per la composizione di modelli Transformer come Gemma, TinyLlama e altri utilizzando astrazioni ottimizzate per i dispositivi mobili, tramite le quali possiamo garantire la conversione, e l'esecuzione efficiente sul nostro runtime mobile, LiteRT. Consulta la documentazione dell'API Generativa.
Ottimizza [UTENTE ESPERTO]
AI Edge Quantizer per sviluppatori esperti è uno strumento per quantizzare i modelli LiteRT convertiti. Il suo obiettivo è consentire agli utenti esperti di ottenere prestazioni ottimali sui modelli che richiedono molte risorse (ad es. modelli di AI generativa).
Per ulteriori dettagli, consulta la documentazione di AI Edge Quantizer.
Integra il modello nella tua app sulle piattaforme edge
LiteRT ti consente di eseguire modelli di ML interamente on-device con prestazioni elevate su piattaforme Android, iOS, web, desktop e IoT.
Utilizza le seguenti guide per integrare un modello LiteRT sulla piattaforma che preferisci:
| Piattaforma supportata | Dispositivi supportati | API supportate |
|---|---|---|
| Esegui su Android | Dispositivi mobili Android | C++/Kotlin |
| Esegui su iOS/macOS | Dispositivi mobili iOS, MacBook | C++/Swift |
| Esegui sul web utilizzando LiteRT.js | Dispositivo con Chrome, Firefox o Safari | JavaScript |
| Esegui su Linux | Workstation Linux o dispositivi IoT basati su Linux | C++/Python |
| Esegui su Windows | Workstation o laptop Windows | C++/Python |
| Esegui su IoT | Dispositivi incorporati | C++ |
I seguenti snippet di codice mostrano un'implementazione di base in Kotlin e C++.
Kotlin
// Load model and initialize runtime
val compiledModel = CompiledModel.create(
"/path/to/mymodel.tflite",
CompiledModel.Options(Accelerator.CPU))
// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()
// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
// Invoke
compiledModel.run(inputBuffers, outputBuffers)
// Read the output
val output = outputBuffers.get(0).readFloat()
C++
// Load model and initialize runtime
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));
// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
Scegli un servizio di backend
Il modo più semplice per incorporare i backend in LiteRT è affidarsi all'intelligenza integrata del runtime. Con l'API CompiledModel, LiteRT semplifica notevolmente la configurazione grazie alla possibilità di specificare il backend di destinazione come opzione. Per ulteriori dettagli, consulta la guida all'inferenza on-device.
| Android | iOS / macOS | Web | Linux | Windows | IoT | |
|---|---|---|---|---|---|---|
| CPU | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK |
| GPU | OpenGL OpenCL |
Metal WebGPU |
WebGPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | Qualcomm | - | Qualcomm |
Documentazione e assistenza aggiuntive
Repository GitHub LiteRT-Samples per altre app di esempio di LiteRT.
Per gli utenti esistenti di TensorFlow Lite, consulta la guida alla migrazione.
Pagina degli strumenti LiteRT per prestazioni, profilazione, segnalazione di errori e così via.