本文へスキップ
原文
Google Developers Blog·· 2 時間前AIスコア58

Google、エッジ向けモデル記述レイヤーLiteRT Tensor APIを公開

Native Model Authoring for Edge with LiteRT Tensor API

AIによる概要

GoogleはLiteRTスタックに、C++でモデルを演算単位で組み立てる軽量な記述レイヤー「LiteRT Tensor API」を公開した。同じグラフをCPU、GPU(ML Drift)、NPUで実行でき、XNNPACK経由ならモデルファイルなしでCPU上でも動く。SAM 2のブラウザ実装ではコーディングエージェントが10fps未満から30fps超へ改善した。

解説

LiteRT Tensor APIは、演算の種類と接続を開発者が一つずつ決められる記述レイヤーである。スケーリング付きドット積アテンション、RMSNorm、KV-cache更新といったLLM向け複合演算も扱える。重みはHugging Faceの.safetensorsなどのチェックポイントから変換スクリプトなしで読み込める。前処理、推論、後処理を同じAPIで組み、アクセラレータ上の共有バッファでつなぐため、データがCPUを往復しない。

バックエンドはTensorのテンプレート引数で指定する。TfLiteMixinTagは.tfliteを書き出してLiteRTでCPU、GPU、NPU上で動かす経路で、XnnpackMixinTagは同じコードをモデルファイルなしでXNNPACK経由のCPUで直接実行する経路である。両方のタグを付ければ両対応になる。多くのモデルでは従来どおり変換経路が既定の選択肢であり、グラフの低レベル制御やパイプライン全体のアクセラレータ上実行が必要な場合にTensor APIを使う位置づけである。

実例として、WebGPUで動くSegment Anythingアプリを公開した。Meta's SAM 2をC++で記述し、クリックまたはGemma 4 E2Bによる自然言語プロンプトで複数物体のセグメンテーションと追跡を行う。エンコーダ522演算とデコーダ269演算はすべてGPUで動き、前後処理は1フレームあたり約0.34 msである。MacBook Proでの測定では、Apple MLX(fp16、画像エンコーダとマスクデコーダ)の約1.5倍高速だった。macOSとiOSはMetal、AndroidはOpenCLで同じC++コードを実行している。出力マスクはMetaのPyTorch参照実装とピクセル単位で一致するという。

最適化にはエージェントのAntigravityが使われた。WebGPUではtrue/false出力の比較演算がCPUにフォールバックするため、Greaterを算術演算で書き換え、アテンションのスケールを重みに畳み込むなどの変更を重ね、Hugging FaceのSAM 2と照合しながら採用した。今後はML Drift(GPU)の直接バックエンド、NPU向け演算、グラフ全体の自動量子化、.tfliteを書き出すPython記述、動的シェイプ対応の拡大を進める。実装とWebアプリはLiteRT SamplesのGitHubリポジトリで公開されている。

出典: Google Developers Blog · developers.googleblog.com