A Study on Inference Latency for Vision Transformers on Mobile Devices

この論文は、190 の実世界ビジョントランスフォーマー(ViT)と 102 の CNN をモバイルデバイス上で比較分析し、その遅延に影響する要因を明らかにするとともに、合成データセットを用いて新しい ViT の推論遅延を高精度に予測できることを示しています。

Zhuojin Li, Marco Paolieri, Leana Golubchik

公開日 2026-02-20
📖 1 分で読めます☕ さくっと読める

Each language version is independently generated for its own context, not a direct translation.

📱 1. 背景:スマホで「天才 AI」を動かすのは大変!

昔、高度な画像認識(例えば、写真から猫を見つけて「ニャンコだ!」と言う機能)は、巨大なデータセンターにある強力なコンピューターしかできませんでした。しかし、最近のスマホはすごく進化して、この「天才 AI」をスマホの中(クラウドを使わずに)で動かせるようになりました。

でも、ここで大きな壁があります。

  • CNN(従来の AI): 画像を「小さな窓」で順番に見ていく、地道で確実な作業員。スマホには得意ですが、複雑なことは苦手。
  • ViT(新しい AI): 画像全体を一度に見渡して、パズルのピース同士がどう関係しているかを考える「天才」。精度は抜群ですが、頭を使う量(計算量)が凄まじく、スマホのバッテリーやメモリをすぐに枯渇させてしまいます。

この研究は、**「この『天才 AI(ViT)』をスマホで動かすとき、なぜ遅くなるのか?どうすれば速くできるのか?」**を解明しました。


🔍 2. 発見:なぜ ViT はスマホで遅いのか?(3 つの秘密)

研究者は 190 種類の実際の ViT モデルと 102 種類の CNN モデルをスマホで走らせて比較しました。その結果、3 つの重要な「遅さの原因」が見つかりました。

① 「メモリの取り回し」が下手(メモリ・ボトルネック)

  • アナロジー:
    • CNNは、作業台(メモリ)が狭くても、必要な道具をすぐに取り出して作業できる「職人」です。
    • ViTは、作業中に「あ、あの資料とこの資料を照合しないと!」と、作業台から遠く離れた棚まで何度も走り回って資料を取りに行く「天才」です。
  • 結果: ViT は計算自体は速いかもしれませんが、**「資料を取りに行く時間(メモリアクセス)」**に時間を取られすぎて、結局は遅くなります。スマホのメモリは狭いので、この「走り回り」が特に痛手になります。

② 「メモリの並べ方」で速さが変わる(メモリ・フォーマット)

  • アナロジー:
    • コンピューターはデータを「縦書き(NCHW)」か「横書き(NHWC)」で並べます。
    • ViT の仕組み上、途中でデータの並べ方を「縦→横」や「横→縦」に変える作業(転置)が必要です。
    • これは**「本を並べ替える作業」**のようなもの。スマホによっては、この並べ替えが非常に時間がかかることがあります。
  • 発見: 並べ方(フォーマット)を最適化すれば、_convolution(畳み込み)_という作業が2 倍以上速くなることがわかりました。

③ 「計算の難易度」は数字だけでは測れない(活性化関数の罠)

  • アナロジー:
    • 通常、「計算量(FLOPS)」は「作業の重さ」を表すものですが、ViT には**「入力された数字によって、作業の難易度が激変する」**という変なルールがあります。
    • 例えば、「GELU」という計算処理は、入力値が「1」のときはサクッと終わりますが、「2」のときは3 倍も時間がかかることがあります。
  • 結果: 「この AI は計算量がこれくらいだから、このくらい速いはず」という従来の予測が、ViT では全く当てにならないことがわかりました。

🛠️ 3. 解決策:1000 個の「練習用 AI」を作って予測する

「じゃあ、どうすればいいの?」という疑問に対して、研究者は素晴らしい解決策を提案しました。

  1. 1000 個の「合成 AI」を作る:
    実際の ViT モデル 190 個を分析し、その部品(ブロック)を組み合わせて、**1000 個の新しい「練習用 AI(合成 ViT)」**を自動で作りました。これには、スマホの 6 種類と、AI 開発で使われる 2 つの主要なソフトウェア(PyTorch と TensorFlow)でのテストデータが含まれています。

    • 例えるなら: 料理のレシピを研究するために、1000 種類もの「練習用の料理」を作り、それぞれの調理時間を計測してデータベース化したようなものです。
  2. AI 予測モデルを作る:
    この膨大なデータを使って、「この AI の構造なら、スマホで動かすと何秒かかるか」を予測する**「予言者(予測モデル)」**を訓練しました。

  3. 結果:
    この予言者は、新しい AI が登場したときでも、実機で動かす前に「95% 以上の精度」で遅延時間を予測できることがわかりました。


🚀 4. この研究が役立つこと

この研究成果は、以下の場面で役立ちます。

  • 自動設計(NAS): 「スマホで動く AI」を自動で設計するシステムが、**「これを作ると遅すぎるからやめよう」「こっちならサクサク動くよ」**と、無駄な試行錯誤を省いてくれます。
  • クラウドとスマホの連携: 画像処理の一部をスマホで、一部をクラウドでやる(分割推論)とき、**「どこで処理を分けるのが一番速い?」**を瞬時に判断できます。

💡 まとめ

この論文は、**「スマホで最新の AI を動かすには、単に『計算が速い』だけではダメで、『メモリの使い方』や『データの並べ方』、そして『入力値による計算のムラ』まで考慮する必要がある」**と教えてくれました。

そして、**「1000 個の練習用 AI で学習した予測モデルを使えば、新しい AI がスマホでどれくらい速く動くかを、実際に動かす前に正確に予想できる」**という画期的な成果を報告しています。

これにより、今後私たちが使うスマホのカメラ機能や AR アプリは、さらに賢く、かつサクサク動くようになるでしょう!

このような論文をメールで受け取る

あなたの興味に合わせた毎日または毎週のダイジェスト。Gistまたは技術要約を、あなたの言語で。

Digest を試す →