この記事は Android ML Platform Team による Android Developers Blog の記事 " Latest updates on Android’s custom ML stack " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
オンデバイス ML には、サーバーベースの ML に比べて、オフラインでも利用できる、待ち時間が少ない、プライバシーが向上する、推論コストが低いといったメリットがあるため、Android でのオンデバイス ML の利用はこれまでに以上に急速に拡大しています。
Android デベロッパーがオンデバイス ML ベースの機能を開発する場合、2 つのオプションから選択するのが一般的です。1 つは、ML Kit のようなトレーニングと最適化が済んでいる ML モデルが含まれた本番環境対応の SDK を使う方法。それよりも細かい制御が必要なら、2 つめの独自のカスタム ML モデルや機能をデプロイする方法です。
この記事では、2022 年 10 月 18 日にアップデートされた Android のカスタム ML スタック(Android にカスタム ML 機能をデプロイするための重要な API やサービス群)について紹介します。
スタンドアロンの TensorFlow Lite に代わる Google Play 開発者サービスの TensorFlow Lite について最初にお知らせしたのは、Google I/O '21 での早期アクセス プレビューでした。それ以降、数万個のアプリを通して、毎月数十億人のユーザーにサービスを提供するまでに至っています。9 月には、Google Play 開発者サービスの TensorFlow Lite 安定版がリリースされ、この機能が Android の公式 ML 推論エンジンになりました。
Google Play 開発者サービスの TensorFlow Lite を使えば、バイナリサイズの削減や自動アップデートによるパフォーマンス向上だけでなく、Android のカスタム ML スタックが将来提供する API やサービスを簡単に組み込めるというメリットも享受できます。このような API やサービスは、公式推論エンジンをベースに開発されるからです。
現在アプリに TensorFlow Lite をバンドルしている方は、ドキュメントを参照して移行してください。
数年前にリリースされた GPU デリゲートと NNAPI デリゲートを使うと、GPU、DSP、NPU といった専用ハードウェアの処理能力を活用できます。現在、GPU デリゲートと NNAPI デリゲートの両方が Google Play 開発者サービスで配信されています。
また、高度なユースケースでは、カスタムのデリゲートを直接利用したいと考えるデベロッパーがいることも認識しています。そこでハードウェア パートナーと連携して、Google Play 開発者サービスを通してカスタム デリゲートにアクセスしやすくします。
Android のハードウェアは多様なので、ユーザーごとに最適なデリゲートを見つけるのは複雑な作業になる可能性があります。この課題を克服するため、新しい API を開発し、実行時に TensorFlow Lite モデルに最適なハードウェア アクセラレーションを安全に設定できるようにします。
来年の早い時期に正式リリースを行うことを目指し、現在はアクセラレーション サービスの早期アクセス (英語) の申し込みを受け付けています。
私たちは、Android で高パフォーマンスなカスタム オンデバイス ML を実現するために、重要な機能を提供する作業を続けています。
今回のアップデート内容をまとめると、現在の Android のカスタム ML スタックには以下が含まれています:
アクセラレーション サービスは近日中にリリースを迎えます。これにより、実行時に最適なデリゲートを選べるようになります。
Android のカスタム ML スタックの詳細や最新情報は、developer.android.com/ml をご覧ください。