TensorFlow Lite — なにか、主な機能と応用

著者: IT Sectr 公開日: 2026-07-17 読了時間: 6 分

TensorFlow Liteは、TensorFlowフレームワークのライトバージョンであり、計算リソースが制限されたモバイルおよびエンベデッドデバイスでマシンラーニングモデルを実行するためにGoogleが開発したものです。完全なTensorFlowとは異なり、TFLiteは専用インタプリタと.tfliteフォーマットを使用し、トレーニングサポートなしで高速インファレンスに最適化されています。TensorFlow Lite Guide, 2025によると、このフレームワークはAndroid、iOS、Linuxで動作し、40億以上のデバイスで使用されています。TensorFlow Liteは量子化、NNAPI、GPU、Core MLデリゲートを通じたハードウェア加速をサポートしています。

ポイント

  • TensorFlow Liteは、モバイルおよびエンベデッドデバイス向けのオンデバイスMLのためのライトウェイトフレームワークです。
  • モデルはTensorFlow SavedModelまたはKerasからTFLiteコンバータを通じて.tfliteフォーマットに変換されます。
  • INT8、FP16量子化および動的量子化をサポートし、サイズを削減します。
  • GPU Delegate、NNAPI、Core ML Delegateを通じたハードウェア加速が利用可能です。
  • TFLiteはAndroid、iOS、Linuxで動作し、Java、C++、Swift、PythonのAPIを提供しています。

TensorFlow Liteとは

TensorFlow Liteは、リソースが制限されたデバイスでマシンラーニングモデルを実行するための専用ランタイムです。完全なTensorFlowとは異なり、TFLiteはトレーニングや逆伝播をサポートせず、インファレンスのみを行います。これにより、ライブラリのバイナリサイズを最小限に保つことができます(200 KB、Androidのベースインタプリタ)。

TFLiteのアーキテクチャは.tfliteフォーマットを中心に構築されており、FlatBuffersを基にしています。FlatBuffersは解析ステージなしでデータへの直接アクセスを提供し、メモリが制限されたモバイルデバイスにとって重要です。.tflite形式のモデルには、計算グラフ、ウェイト、メタデータが1つのバイナリファイルに含まれています。

Google I/O 2024によると、TFLiteはGoogle Photos、Gboard、YouTube、その他のGoogleアプリで使用され、合計40億以上のデバイスで利用されています。このフレームワークは、CNN、RNN、LSTM、Transformer、およびデリゲートを通じたカスタムオペレーションといった主要なアーキテクチャをすべてサポートしています。

TensorFlow Liteのアーキテクチャ

TFLiteランタイムは4つのコンポーネントから構成されています。TFLite ConverterはTensorFlow(SavedModel、Keras、ConcreteFunction)からモデルを取り、オプションの最適化を付けて.tflite形式に変換します。TFLite Interpreterは.tfliteファイルをロードし、テンソルとメモリを管理しながらインファレンスを実行します。

デリゲートは、オペレーションの実行を専用ハードウェアに移すコンポーネントです。GPU DelegateはOpenGL ESとMetalを使用し、NNAPI DelegateはAndroid Neural Networks APIを使用し、Core ML DelegateはApple Core MLを使用します。XNNPACK DelegateはARM CPU上の実行を最適化します。各デリゲートは特定のオペレーターセットをサポートしています。

4つ目のコンポーネントはTask Libraryで、画像分類、オブジェクト検出、セグメンテーション、NLUといった典型的なタスクのためのハイレベルAPIを提供します。Task LibraryはInterpreterの上で動作し、テンソル管理の詳細を隠します。

モデル最適化と量子化

TFLiteは3つの量子化レベルをサポートしています。完全整数INT8量子化は、ウェイトとアクティベーションをFP32から8ビット整数に変換します。モデルサイズが4倍減少し、INT8サポートデバイスでのインファレンス速度く3倍まで向上します。FP16量子化は最小限の精度ロスでサイズを半分にします。

動的量子化はウェイトをINT8に保持しますが、計算はFP32で実行します。このモードは精度に敏感なモデルに適しており、品質を維持しながら4倍までサイズを削減できます。Google ML Performance Benchmarksによると、動的量子化はNLPモデルに推奨されています。

TFLite量子化モードの比較

モードウェイト種類アクティベーション種類サイズ削減
FP32(量子化なし)FP32FP321x
FP16FP16FP322x
動的INT8INT8FP324x
完全INT8INT8INT84x

AndroidおよびiOSでのハードウェア加速

Androidでの主な加速メカニズムはNNAPI Delegateで、Android Neural Networks APIを通じてオペレーションの実行をNPU、DSP、またはGPUに移します。NNAPIはAndroid 8.1+のデバイスで利用可能で、INT8およびFP16計算をサポートしています。Android用GPU DelegateはOpenGL ES 3.1+およびVulkanを使用します。

iOSでの加速はCore ML Delegateを通じて提供され、TFLiteオペレーションをCore MLフォーマットに変換し、Apple Neural Engineで実行します。Apple ML Benchmarkingによると、Core ML Delegateを使用すると、iPhone 15 ProでのインファレンスがCPU比く4倍まで加速されます。iOS用GPU DelegateはMetal Performance Shadersを使用します。

XNNPACK DelegateはARM CPU向けのクロスプラットフォームソリューションで、モバイルプロセッサーに最適化されています。XNNPACKはFP32、FP16、INT8オペレーションをサポートし、専用ハードウェアを必要としません。すべてのデバイスのベースラインデリゲートとして推奨されています。

TFLiteでのモデルデプロイ

デプロイプロセスは3つのステップで構成されています。まずTFLite Converterを通じてモデルを.tfliteに変換します。次に.tfliteファイルをアプリケーションリソースに含めます。Androidの場合はassetsにファイルを配置し、iOSの場合はXcodeを通じてアプリバンドルに含めます。最後にInterpreterを初期化してインファレンスを実行します。

動的なモデル更新には、GoogleはFirebase ML Model Downloadingまたはクラウドからのカスタムダウンロード機構を推奨しています。更新された.tfliteファイルはローカルストレージに保存され、次回起動時にInterpreterにロードされます。

デプロイ時には.tfliteファイルのサイズを考慮することが重要です。Google PlayはAPKサイズを200 MBに制限しています。50 MBを超えるモデルの場合は、Android App Bundleを使用するか、Play Asset Deliveryを通じてモデルを別途ダウンロードすることを推奨します。

コードでのTFLite使用例

AndroidのJava APIでモデルをロードして実行する例。assetsから.tfliteをロードするにはInterpreter.create()を、インファレンスにはrun()を使用します。入力と出力データは多次元配列またはByteBufferとして渡されます。

java
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;

MappedByteBuffer model = new FileInputStream(
    getAssets().openFd("model.tflite")
).getChannel().map(
    FileChannel.MapMode.READ_ONLY, 0, fc.size()
);

Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();

ハードウェア加速のためのAndroidでのGPU Delegateの使用例。依存関係com.android.support:tensorflow-lite-gpuを追加し、Interpreter作成時にデリゲートを指定します。

java
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;

GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);

// Run inference on the input data
interpreter.run(input, output);

// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();

よくある質問

TensorFlowとTensorFlow Liteの違いは何ですか?

TensorFlowはトレーニングとインファレンスのための完全なフレームワークです。TensorFlow Liteはモバイルデバイス上でのインファレンスのみのためです。TFLiteは.tfliteフォーマットを使用し、逆伝播をサポートしていません。

TFLiteで利用可能な加速デリゲートは何がありますか?

サポートされているデリゲートには、GPU Delegate(OpenGL/Metal)、NNAPI Delegate(Android)、Core ML Delegate(iOS)、XNNPACK Delegate(ARM CPU)があります。各デリゲートは特定のハードウェアに最適化されています。

.tfliteモデルのサイズを削減するにはどうすればいいですか?

量子化を使用します。FP16はサイズを2倍、INT8は4倍に削減します。また、動的量子化、ウェイトプラーニング、変換前のモデル蒸留も利用可能です。

TFLiteはオンデバイストレーニングをサポートしていますか?

はい、TFLite Model MakerおよびオンデバイストレーニングAPI(実験的)を通じてサポートしています。ユーザーのデバイス上で直接ファインチューニングやモデルのパーソナライズが可能です。

TFLiteはどんなタイプのモデルをサポートしていますか?

TFLiteはCNN、RNN、LSTM、Transformer、モバイルアーキテクチャ(MobileNet、EfficientNet、YOLO、BERT)、およびカスタムオペレーションをサポートしています。制限は、ターゲットデリゲートで利用可能なオペレーターによります。

まとめ

  • TensorFlow Liteは、Googleによるモバイルおよびエンベデッドデバイス向けのオンデバイスML用のライトウェイトフレームワークです。
  • モデルはTFLite Converterを通じてTensorFlow SavedModelまたはKerasから.tflite形式に変換されます。
  • INT8およびFP16量子化はモデルサイズを4倍まで削減し、インファレンスを3倍まで加速します。
  • GPU、NNAPI、Core ML、XNNPACKデリゲートを通じたハードウェア加速が利用可能です。
  • ランタイムはAndroidで約300 KBで、40億以上のデバイスで動作します。
  • Task Libraryは分類、検出、セグメンテーション、NLUのための即座に使えるソリューションを提供します。
  • 動的な更新にはFirebase MLまたはPlay Asset Deliveryを使用してください。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください