Android 用 LiteRT

LiteRT を使用すると、TensorFlow 機械学習(ML)モデルを Android アプリ。LiteRT システムは事前構築済みのカスタマイズ可能なシステムを提供します。 Android でモデルを迅速かつ効率的に実行するための実行環境 ハードウェアアクセラレーションのオプションも含まれます

機械学習モデル

LiteRT は、TensorFlow モデルを よりポータブルで効率的な ML モデル フォーマットです事前構築済みのモデルを 独自の TensorFlow モデルをビルドしたり、 LiteRT 形式に変換できます

このページでは、構築済みの ML モデルの使用について説明します。ここでは、 モデルの構築、トレーニング、テスト、変換について 説明します詳細: ML モデルの選択、修正、構築、変換を [モデル] ページの LiteRT。

Android でモデルを実行する

Android アプリ内で実行される LiteRT モデルは、データ、プロセス、 データを処理し、モデルのロジックに基づいて予測を生成します。TensorFlow Lite モデルを実行するには特別なランタイム環境が必要です。また、 モデルに渡すデータは、特定のデータ形式、つまり テンソル。モデルがデータを処理すると、 生成され、推論を実行することで、新しい予測結果が テンソルを読み込み、Android アプリに渡して、 ユーザーに結果を表示したり、追加のビジネス ロジックを実行したりできます。

Android での LiteRT モデルの機能実行フロー
アプリ

図 1. Android での LiteRT モデルの機能実行フロー 。

機能設計レベルでは、Android アプリに次の要素が必要です。 LiteRT モデルを実行します。

  • モデルを実行するための LiteRT ランタイム環境
  • データをテンソルに変換するモデル入力ハンドラ
  • 出力結果テンソルを受け取って解釈するモデル出力ハンドラ 使用できます。

以降のセクションでは、LiteRT のライブラリとツールが、 これらの機能要素を提供します。

LiteRT でアプリを作成する

このセクションでは、推奨される最も一般的な実装方法について説明します。 Android アプリで LiteRT を使用する。最も注意すべき点は、 ランタイム環境開発ライブラリのセクション。条件 カスタムモデルを開発した場合は、「高度な開発」コースの あります。

ランタイム環境のオプション

ランタイム環境を有効にしてモデルを実行する方法はいくつかあります。 追加できます推奨オプションは次のとおりです。

  • Google Play 開発者サービス ランタイムでの LiteRT 環境(推奨)
  • スタンドアロン LiteRT ランタイム環境

通常は、Google Play が提供するランタイム環境を使用する必要があります。 スタンダード環境よりもスペース効率に優れ、 動的に読み込まれるため、アプリのサイズが小さくなります。Google Play 開発者サービスは LiteRT の最新の安定版リリースが自動的に使用されます。 追加機能が提供されるため、時間の経過とともにパフォーマンスが向上します。条件 Google Play 開発者サービスを含まないデバイス、または ML ランタイム環境を厳密に管理する必要がある場合は、 標準 LiteRT ランタイムを使用できます。このオプションでは追加のコードが より効率的にアプリの ML ランタイムをコントロールできます。 費用が増大します

Android アプリでこれらのランタイム環境にアクセスするには、TensorFlow を追加します。 Lite 開発ライブラリをアプリ開発環境に追加する。詳細情報 標準ランタイム環境の使用方法の詳細については、次をご覧ください。 。

ライブラリ

Interpreter API へのアクセスは、Google Play サービス。こちらの LiteRT コアsupport ライブラリを使用できます。対象 LiteRT ライブラリとランタイムの使用に関するプログラミングの詳細 Android 用開発ツールをご覧ください。

モデルを取得する

Android アプリでモデルを実行するには、LiteRT 形式のモデルが必要です。マイページ 事前構築済みのモデルを使用することも、TensorFlow でモデルを構築して Lite モデルに変換することもできます。 使用できます。Android アプリ用のモデルを取得する方法の詳細については、 LiteRT の [モデル] ページ。

入力データを処理する

ML モデルに渡すデータは、特定のデータを含むテンソルであること テンソルの「形状」と呼ばれることもあります。モデルでデータを処理するには アプリのコードで、画像、テキスト、音声、動画などのネイティブ形式から モデルに必要な形状のテンソルに変換します。

推論を実行する

モデルでデータを処理して予測結果を生成することを、 推論の実行。Android アプリで推論を実行するには、 LiteRT ランタイム環境モデル入力 できます

特定のデバイスでモデルが推論を生成する速度 処理されるデータのサイズ、モデルの複雑さ、 使用可能なコンピューティング リソース(メモリや CPU、専用プロセッサなど) アクセラレータと呼ばれます。機械学習モデルは 画像処理装置(GPU)やテンソルなどの専用プロセッサ プロセッシング ユニット(TPU)のプロセッシング ユニット(TPU)です。 代理人。デリゲートとハードウェア アクセラレーションに関する詳細については、 モデル処理については、ハードウェア アクセラレーション 概要をご覧ください。

出力結果を処理する

モデルは予測結果をテンソルとして生成しますが、これはテンソルとして Android アプリでアクションを実行したり、結果を表示したりする。モデル出力 結果は 1 つの結果に対応する数値だけにすることもできます(0 = 犬、 1 = 猫、2 = 鳥)という非常に複雑な結果になります。 たとえば、画像内で分類された複数のオブジェクトに対して、複数の境界ボックスがあり、 0 ~ 1 の予測信頼度評価。

高度な開発パス

より高度でカスタマイズされた LiteRT モデルを使用する場合は、 前述のものよりも高度な開発アプローチを使用する必要がある。 以降のセクションでは、モデルを実行するための高度な手法と Android アプリでの LiteRT 向けに開発することもできます。

高度なランタイム環境

標準ランタイムと Google Play 開発者サービス ランタイムのほかに、 別のランタイム環境を使用できます。 使用できますこれらの環境で最も可能性が高いのは、 サポートされていない ML オペレーションを使用する ML モデルがある LiteRT の標準ランタイム環境が使用されます。

LiteRT Flex ランタイムでは、以下を含めることができます。 モデルに必要な特定の演算子です高度なオプションとして LiteRT for Android を作成して、演算子と TensorFlow ML モデルの実行に必要なその他の機能も備えています。 詳細については、Android 用 LiteRT のビルドをご覧ください。

C / C++ API

LiteRT には、C と C++ を使用してモデルを実行するための API も用意されています。お使いの Android NDK を使用している場合、 この API の使用を検討してくださいまた、次の場合はこの API の使用も検討してください。 複数のプラットフォーム間でコードを共有したいと考えています。詳細情報 詳細については、Development ツールのページをご覧ください。

サーバーベースのモデルの実行

一般に、Android デバイスのアプリでモデルを実行して、 レイテンシの短縮とデータ プライバシーの向上が実現します。ただし、 クラウド サーバー上で(デバイス外の)モデルを実行する方が 説明します。たとえば、圧縮が容易でない大規模なモデルの場合、 ユーザーの環境に合わせてまたは、Android デバイスで動作することも、 妥当なパフォーマンスが得られます。このアプローチは、 広範囲にわたってモデルのパフォーマンスが安定している場合に 最優先です。

Google Cloud は、TensorFlow マシンを稼働させるためのフルパッケージを提供 学習します詳細については、Google Cloud の AI と ML の プロダクトのページをご覧ください。

カスタムモデルの開発と最適化

より高度な開発パスには、カスタムマシンの開発が含まれる可能性が高い そのモデルを Android デバイス用に最適化する方法を学びます。もし カスタムモデルの構築を計画している場合は、量子化 手法をモデルに適用し、 メモリと処理にかかる費用を節約できます。Cloud Build を使用して LiteRT で使用する高性能モデルについては、パフォーマンス ベスト プラクティスをご覧ください。