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.

LiteRT 2.x enthält die neueste Runtime-API, die CompiledModel API, die die Interpreter API (auch bekannt als TensorFlow Lite APIs) verbessert, insbesondere durch Hardwarebeschleunigung und die Gesamtleistung für On-Device-ML- und KI-Anwendungen. Die CompiledModel API ist in der Betaversion verfügbar und kann sowohl in Kotlin als auch in C++ verwendet werden.

Wichtige LiteRT-Funktionen

Unterstützte Modelle

LiteRT unterstützt die optimierte Konvertierung von Pytorch-, TensorFlow- und JAX-Frameworks in das Format „.tflite“ oder „.litertlm“.

Entwicklung mit LiteRT optimieren

Automatische Beschleunigerauswahl im Vergleich zur expliziten Delegat-Erstellung. Einfache NPU-Laufzeit und Modellverteilung. Effiziente Verarbeitung von E/A-Puffern und asynchrone Ausführung für eine hervorragende Leistung.

Erstklassige GPU-Leistung

ML Drift unterstützt jetzt sowohl ML- als auch generative KI-Modelle in GPU-APIs.

Einheitliche NPU-Beschleunigung

Beschleunigen Sie Ihr Modell durch vereinfachten NPU-Zugriff von großen Chipherstellern.

Vereinfachte LLM-Unterstützung mit LiteRT

Sie können LiteRT-LM verwenden, das auf LiteRT basiert. LiteRT-LM unterstützt die neuesten LLMs und nützliche Funktionen wie Multimodalität und eingeschränktes Decodieren.

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).

Informationen zu Modellen für maschinelles Lernen und generative KI-Modelle finden Sie in der Dokumentation zur Ai-Edge-Quantisierung.

Voraussetzungen für den Einstieg

  • Python 3.10–3.12
  • .tflite-Modelldatei
  • Weitere Informationen finden Sie im jeweiligen Plattformabschnitt.

Modell in Ihre App auf Edge-Plattformen einbinden

Sie können Ihre LiteRT-Modelle so implementieren, dass Inferenzvorgänge vollständig auf dem Gerät ausgeführt werden, und zwar auf Android-, iOS-, Web-, IoT- und Desktop-Geräten. LiteRT enthält APIs für Python, Java und Kotlin für Android, Swift für iOS und C++ für Mikrogeräte.

In den folgenden Leitfäden erfahren Sie, wie Sie ein LiteRT-Modell auf Ihrer bevorzugten Plattform implementieren:

Modell-Framework Beispielmodelle Konvertierungstool
Auf Android-Geräten ausführen Android-Mobilgeräte C++/Kotlin-APIs
Auf iOS ausführen iOS-Mobilgeräte C++/Swift*-APIs
Im Web mit LiteRT.js ausführen Gerät mit Chrome, Firefox oder Safari JavaScript APIs
Auf Micro ausführen Eingebettete Geräte C++-APIs

*Demnächst verfügbar

Kotlin-Codebeispiel

// 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()

C++-Codebeispiel

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));

Backend auswählen

Die einfachste Möglichkeit, Backends in LiteRT einzubinden, besteht darin, sich auf die integrierte Intelligenz der Laufzeit zu verlassen. Durch die neuesten Änderungen wird die Einrichtung von LiteRT deutlich vereinfacht, da das Ziel-Backend als Option angegeben werden kann.

Das Herzstück von LiteRT v2.x ist das CompiledModel-Objekt. Wenn Sie ein Modell laden, wählt LiteRT das optimale Backend anhand der verfügbaren Hardware des Systems und der internen Prioritätslogik aus, ohne dass eine manuelle Konfiguration erforderlich ist. Weitere Informationen

Android Computer 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
- - - - -

Zusätzliche Dokumentation und Support

LiteRT v2.x-Beispiel-App Siehe LiteRT Image Segmentation Sample App

Für bestehende Nutzer von TensorFlow Lite Migrationsleitfaden

Ops Coverage Kompatible Operatoren

Unterstützte LLM-Modelle LiteRT Hugging Face und Gen API – Beispiele

Tools LiteRT-Toolseite – Leistung, Profilerstellung, Fehlerberichte usw.