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 形式への効率的な変換をサポートしています。モデル変換のドキュメントをご覧ください。
開発ワークフロー
LiteRT は、Android、iOS、ウェブ、IoT、パソコン/ノートパソコンで推論を完全にオンデバイスで実行します。デバイスにかかわらず、最も一般的なワークフローは次のとおりです。詳細な手順へのリンクも記載しています。

ML の課題に対する最適なソリューションを特定する
LiteRT は、ML の問題の解決に関してユーザーに高い柔軟性とカスタマイズ性を提供します。そのため、特定のモデルや特殊な実装を必要とするユーザーに適しています。プラグ アンド プレイ ソリューションをお探しのユーザーは、オブジェクト検出、テキスト分類、LLM 推論などの一般的な ML タスク用の既製ソリューションを提供する MediaPipe Tasks を選択することをおすすめします。
モデルの取得と準備
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 リンク 生成 API を使用してさらに最適化するために LLM を作成する [PRO ユーザー]
Generative API ライブラリは、モバイル フレンドリーな抽象化を使用して Gemma、TinyLlama などの Transformer モデルを構成するための PyTorch 組み込みのビルディング ブロックを提供します。これにより、変換を保証し、モバイル ランタイム LiteRT でパフォーマンスの高い実行を実現できます。生成 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 |
| Run on Micro | 組み込みデバイス | 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 | WebGPU OpenCL |
WebGPU Metal |
WebGPU | WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - |
その他のドキュメントとサポート
その他の LiteRT サンプルアプリについては、LiteRT-Samples GitHub リポジトリをご覧ください。
TensorFlow Lite の既存のユーザーは、移行ガイドをご覧ください。
パフォーマンス、プロファイリング、エラーレポートなどの LiteRT ツールページ