Willkommen bei LiteRT – Übersicht

LiteRT ist das On-Device-Framework von Google für die Bereitstellung von leistungsstarkem ML und generativer KI auf Edge-Plattformen. Es nutzt effiziente Konvertierung, Laufzeit und Optimierung.

Mit der neuesten Version von LiteRT 2.x wird die CompiledModel API eingeführt, eine moderne Laufzeitschnittstelle, die für maximale Hardwarebeschleunigung entwickelt wurde. Die Interpreter API (früher TensorFlow Lite) ist zwar weiterhin aus Gründen der Abwärtskompatibilität verfügbar, die CompiledModel API ist jedoch die empfohlene Wahl für Entwickler, die in KI-Anwendungen auf dem Gerät eine optimale Leistung erzielen möchten.

Wichtige LiteRT-Funktionen

Entwicklung mit LiteRT optimieren

Automatisierte Auswahl von Beschleunigern im Vergleich zur expliziten Erstellung von Delegaten. Effiziente Verarbeitung von E/A-Puffern und asynchrone Ausführung für eine hervorragende Leistung. Weitere Informationen finden Sie in der Dokumentation zur Inferenz auf dem Gerät.

Erstklassige GPU-Leistung

ML Drift unterstützt jetzt sowohl ML- als auch generative KI-Modelle in GPU-APIs. Weitere Informationen finden Sie in der Dokumentation zur GPU-Beschleunigung.

Einheitliche NPU-Beschleunigung

Beschleunigen Sie Ihr Modell durch vereinfachten NPU-Zugriff von großen Chipherstellern. Weitere Informationen finden Sie in der Dokumentation zur NPU-Beschleunigung.

Bessere LLM-Unterstützung

LiteRT bietet eine leistungsstarke Bereitstellung für generative KI-Modelle auf Mobilgeräten, Computern und Webplattformen. Weitere Informationen finden Sie in der Dokumentation zur Bereitstellung von generativer KI.

Umfassende Unterstützung für ML-Frameworks

LiteRT unterstützt die optimierte Konvertierung von PyTorch-, TensorFlow- und JAX-Frameworks in das .tflite- oder .litertlm-Format. Weitere Informationen finden Sie in der Dokumentation zur Modellkonvertierung.

Entwicklungsworkflow

LiteRT führt Inferenzen vollständig auf dem Gerät aus, und zwar auf Android-, iOS-, Web-, IoT- und Desktop-/Laptop-Geräten. Unabhängig vom Gerät ist der folgende Workflow am häufigsten. Links zu weiteren Anleitungen finden Sie unten.

Diagramm zum LiteRT-Entwicklungsworkflow

Die am besten geeignete Lösung für die ML-Herausforderung finden

LiteRT bietet Nutzern ein hohes Maß an Flexibilität und Anpassbarkeit bei der Lösung von Problemen im Bereich des maschinellen Lernens. Daher ist es gut für Nutzer geeignet, die ein bestimmtes Modell oder eine spezielle Implementierung benötigen. Nutzer, die Plug-and-Play-Lösungen suchen, bevorzugen möglicherweise MediaPipe Tasks. Diese Bibliothek bietet vorgefertigte Lösungen für gängige Aufgaben im Bereich maschinelles Lernen wie Objekterkennung, Textklassifizierung und LLM-Inferenz.

Modell abrufen und vorbereiten

Ein LiteRT-Modell wird in einem effizienten, portablen Format namens FlatBuffers dargestellt, das die Dateiendung .tflite verwendet.

Sie haben folgende Möglichkeiten, ein LiteRT-Modell zu erhalten:

  • Vortrainiertes Modell abrufen:für beliebte ML-Arbeitslasten wie Bildsegmentierung, Objekterkennung usw.

    Am einfachsten ist es, ein LiteRT-Modell zu verwenden, das bereits im .tflite-Format vorliegt. Für diese Modelle sind keine zusätzlichen Conversion-Schritte erforderlich.

    Modelltyp Quelle des vortrainierten Modells
    Klassisches ML
    (.tflite-Format)
    Kaggle oder HuggingFace
    z.B. Modelle zur Bildsegmentierung und Beispiel-App
    Generative KI
    (.litertlm-Format)
    LiteRT-Hugging Face-Seite
    z.B. Gemma-Familie
  • Konvertieren Sie Ihr ausgewähltes PyTorch-, TensorFlow- oder JAX-Modell in ein LiteRT-Modell, wenn Sie kein vortrainiertes Modell verwenden möchten. [PRO USER]

    Modell-Framework Beispielmodelle Konvertierungstool
    PyTorch Hugging Face
    Torchvision
    Link
    TensorFlow Kaggle-Modelle
    Hugging Face
    Link
    Jax Hugging Face Link
  • LLM erstellen, um es mit der Generative API weiter zu optimieren [PRO-NUTZER]

    Unsere Generative API-Bibliothek bietet integrierte PyTorch-Bausteine zum Erstellen von Transformer-Modellen wie Gemma, TinyLlama und anderen mithilfe von mobilfreundlichen Abstraktionen, durch die wir die Konvertierung und die leistungsstarke Ausführung in unserer mobilen Laufzeit, LiteRT, garantieren können. Dokumentation zur generativen API

Quantisierung [PRO USER]

AI Edge Quantizer für fortgeschrittene Entwickler ist ein Tool zum Quantisieren konvertierter LiteRT-Modelle. Sie soll es fortgeschrittenen Nutzern ermöglichen, eine optimale Leistung bei ressourcenintensiven Modellen zu erzielen (z.B. GenAI-Modelle).

Weitere Informationen finden Sie in der Dokumentation zum AI Edge Quantizer.

Modell in Ihre App auf Edge-Plattformen einbinden

Mit LiteRT können Sie ML-Modelle vollständig auf dem Gerät ausführen und dabei eine hohe Leistung auf Android-, iOS-, Web-, Desktop- und IoT-Plattformen erzielen.

Verwenden Sie die folgenden Anleitungen, um ein LiteRT-Modell auf Ihrer bevorzugten Plattform einzubinden:

Unterstützte Plattform Unterstützte Geräte Unterstützte APIs
Auf Android-Geräten ausführen Android-Mobilgeräte C++/Kotlin
Auf iOS/macOS ausführen iOS-Mobilgeräte, MacBooks C++/Swift
Im Web mit LiteRT.js ausführen Gerät mit Chrome, Firefox oder Safari JavaScript
Unter Linux ausführen Linux-Workstation oder Linux-basierte IoT-Geräte C++/Python
Unter Windows ausführen Windows-Workstation oder ‑Laptops C++/Python
Auf Micro ausführen Eingebettete Geräte C++

Die folgenden Code-Snippets zeigen eine einfache Implementierung in Kotlin und 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));

Hardwarebeschleuniger auswählen

Die einfachste Möglichkeit, Backends in LiteRT einzubinden, besteht darin, sich auf die integrierte Intelligenz der Laufzeit zu verlassen. Mit der CompiledModel API vereinfacht LiteRT die Einrichtung erheblich, da das Ziel-Backend als Option angegeben werden kann. Weitere Informationen

Android iOS / macOS Web Linux / Windows IoT
CPU XNNPACK XNNPACK XNNPACK XNNPACK XNNPACK
GPU WebGPU 
OpenCL
WebGPU 
Metal
WebGPU WebGPU 
OpenCL
WebGPU
NPU MediaTek
Qualcomm
- - - -

Zusätzliche Dokumentation und Support