LiteRT は、効率的な変換、ランタイム、最適化を使用して、エッジ プラットフォームでの高性能 ML と GenAI のデプロイを行う Google のオンデバイス フレームワークです。
最新の LiteRT 2.x リリースでは、ハードウェア アクセラレーションを最大限に活用するように設計された最新のランタイム インターフェースである CompiledModel API が導入されています。Interpreter API(旧称 TensorFlow Lite)は下位互換性のために引き続き利用できますが、デバイス上の AI アプリケーションで最先端のパフォーマンスを求めるデベロッパーには CompiledModel API が推奨されます。
LiteRT の主な機能
LiteRT で開発を効率化する
アクセラレータの自動選択と明示的なデリゲート作成。優れたパフォーマンスを実現する効率的な I/O バッファ処理と非同期実行。オンデバイス推論のドキュメントをご覧ください。
クラス最高の GPU パフォーマンス
ML Drift を搭載し、GPU API で ML モデルと生成 AI モデルの両方をサポートするようになりました。GPU アクセラレーションのドキュメントをご覧ください。
統合された NPU アクセラレーション
主要なチップセット プロバイダからの簡素化された NPU アクセスを使用して、モデルを高速化します。NPU アクセラレーションのドキュメントをご覧ください。
優れた LLM サポート
LiteRT は、モバイル、デスクトップ、ウェブ プラットフォーム全体で生成 AI モデルの高性能なデプロイを実現します。GenAI デプロイのドキュメントをご覧ください。
幅広い ML フレームワークのサポート
LiteRT は、PyTorch、TensorFlow、JAX フレームワークから .tflite または .litertlm 形式への効率的な変換をサポートしています。モデル変換のドキュメントをご覧ください。
CompiledModel API を使ってみる
従来の ML モデルの場合は、次のデモアプリをご覧ください。
- 画像セグメンテーション Kotlin アプリ: CPU/GPU/NPU 推論。
- 画像セグメンテーション C++ アプリ: 非同期実行による CPU/GPU/NPU 推論。
生成 AI モデルの場合は、次のデモアプリをご覧ください。
- EmbeddingGemma セマンティック類似性 C++ アプリ: CPU/GPU/NPU 推論。
開発ワークフロー
LiteRT は、Android、iOS、ウェブ、IoT、パソコン/ノートパソコンで推論を完全にオンデバイスで実行します。デバイスにかかわらず、最も一般的なワークフローは次のとおりです。詳細な手順へのリンクも記載しています。
ML の課題に最適なソリューションを特定する
LiteRT は、ML の問題を解決する際に高い柔軟性とカスタマイズ性を提供するため、特定のモデルや特殊な実装を必要とするユーザーに適しています。プラグ アンド プレイ ソリューションをお探しのユーザーは、MediaPipe Tasks を使用することをおすすめします。これは、オブジェクト検出、テキスト分類、LLM 推論などの一般的な ML タスク用の既製ソリューションを提供します。

モデルの取得と準備
LiteRT モデルは、FlatBuffers と呼ばれる効率的なポータブル フォーマットで表されます。このフォーマットでは、.tflite ファイル拡張子が使用されます。
LiteRT モデルは次の方法で取得できます。
事前トレーニング済みモデルを取得する: 画像セグメンテーションやオブジェクト検出などの一般的な ML ワークロードの場合。
最も簡単な方法は、
.tflite形式の LiteRT モデルをすでに使用することです。これらのモデルでは、コンバージョン手順を追加する必要はありません。モデルタイプ 事前トレーニング済みモデルのソース 従来の ML
(.tflite形式)Kaggle または HuggingFace
にアクセスします。例: 画像セグメンテーション モデルとサンプルアプリ生成 AI
(.litertlm形式)LiteRT Hugging Face ページ
例: Gemma ファミリー事前トレーニング済みモデルを使用しない場合は、選択した PyTorch、TensorFlow、JAX モデルを LiteRT モデルに変換します。[PRO USER]
モデル フレームワーク サンプルモデル 変換ツール PyTorch Hugging Face
Torchvisionリンク TensorFlow Kaggle モデル
Hugging Faceリンク Jax Hugging Face リンク Generative API を使用してさらに最適化するために LLM を作成する [PRO ユーザー]
Google の Generative API ライブラリは、モバイル フレンドリーな抽象化を使用して Gemma、TinyLlama などの Transformer モデルを構成するための PyTorch 組み込みのビルディング ブロックを提供します。これにより、変換を保証し、モバイル ランタイム LiteRT でパフォーマンスの高い実行を実現できます。Generative API のドキュメントをご覧ください。
最適化 [PRO ユーザー]
高度なデベロッパー向けの AI Edge Quantizer は、変換された LiteRT モデルを量子化するツールです。この機能は、リソースを大量に消費するモデル(生成 AI モデル)。
詳細については、AI Edge Quantizer のドキュメントをご覧ください。
エッジ プラットフォームのアプリにモデルを統合する
LiteRT を使用すると、Android、iOS、ウェブ、パソコン、IoT プラットフォーム全体で、ML モデルをデバイス上で完全に実行し、高いパフォーマンスを実現できます。
次のガイドを使用して、お好みのプラットフォームに LiteRT モデルを統合します。
| 対応プラットフォーム | サポートされているデバイス | サポートされている API |
|---|---|---|
| Android で実行 | Android モバイル デバイス | C++/Kotlin |
| iOS/macOS で実行する | iOS モバイル デバイス、Macbook | C++/Swift |
| LiteRT.js を使用してウェブで実行する | Chrome、Firefox、Safari がインストールされているデバイス | JavaScript |
| Linux で実行する | Linux ワークステーションまたは Linux ベースの IoT デバイス | C++/Python |
| Windows で実行する | Windows ワークステーションまたはノートパソコン | C++/Python |
| IoT で実行する | 組み込みデバイス | C++ |
次のコード スニペットは、Kotlin と 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));
バックエンドを選択する
LiteRT にバックエンドを組み込む最も簡単な方法は、ランタイムの組み込みインテリジェンスを利用することです。CompiledModel API を使用すると、LiteRT はターゲット バックエンドをオプションとして指定できるため、設定が大幅に簡素化されます。詳しくは、オンデバイス推論ガイドをご覧ください。
| Android | iOS / macOS | ウェブ | Linux / Windows | IoT | |
|---|---|---|---|---|---|
| CPU | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK |
| GPU | OpenGL OpenCL |
WebGPU Metal |
WebGPU | WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - |
その他のドキュメントとサポート
その他の LiteRT サンプルアプリについては、LiteRT-Samples GitHub リポジトリをご覧ください。
TensorFlow Lite の既存のユーザーは、移行ガイドをご覧ください。
パフォーマンス、プロファイリング、エラーレポートなどの LiteRT ツールページ