← 最新の論文
🤖 machine learning

Efficient On-Device Diffusion LLM Inference with Mobile NPU

本論文は、モバイルハードウェアの制限を克服し、CPUベースラインと比較して最大42倍のレイテンシ削減を実現するために、マルチブロック投機的デコーディング、デュアルパス・プログレッシブ・リビジョン、およびスワップ最適化メモリランタイムを採用した、オンデバイス拡散LLMを加速する初のNPU対応推論フレームワークであるllada.cppを導入する。

原著者: Tuowei Wang, Yanfan Sun, Ju Ren

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

原著者: Tuowei Wang, Yanfan Sun, Ju Ren

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたのスマートフォンを、忙しいキッチンだと想像してみてください。そして、シェフ(AI)は物語を書こうとしています。

問題点:一言ずつ進む、遅すぎるシェフ

従来のAIモデル(スマートフォンに搭載されているようなもの)は、一単語ずつ物語を書いていきます。これは、シェフが玉ねぎを刻み、その後コンロが温まるのを待ち、次にニンジンを刻み、また待つ……というようなものです。たとえコンロの火力が高くても、一度に一つのことしかできないため、シェлоフはゆっくりと作業を進めることを余儀なくされます。これが、スマートフォンでの長いテキスト生成を鈍重に感じさせ、バッテリーを消耗させる原因となります。

新しいアイデア:「ディフュージョン」シェフ

Diffusion Large Language Model (dLLM) と呼ばれる新しいタイプのAIは、これとは異なる方法を試みています。一単語ずつ書く代わりに、ページ全体に「ノイズ」(ランダムなデタラメ)を配置し、それを一気にリアルな文章へと整えていくのです。これは、シェフが大量の食材をカウンターに投げ込み、それらを同時に完璧なサラダへと整えていくようなものです。

これは、スマートフォンの強力な「NPU」(大規模な並列計算に特化した専用チップ)をより効果的に活用できるため、非常に優れたアイデアに聞こえます。しかし、そこには落とし穴があります。

  1. 「空のフライパン」問題: シェフがサラダを完成に近づけるにつれ、修正すべき食材が少なくなっていきます。すると、強力なNPUはやるべき仕事が足りなくなり、手持ち無沙汰になってしまいます。これは、そのスピードを無駄にしている状態です。
  2. 「やっぱり気が変わった」問題: 時として、シェフがある単語を配置したものの、「待てよ、次の文章と合わないぞ」と気づくことがあります。AIは、それを修正するために戻らなければなりません。この作業を高速なNPUで行うのは非効率であり、すべてを停滞させてしまいます。
  3. 「小さな冷蔵庫」問題: NPUには、調理中の食材を準備しておくための非常に小さく特別な「冷蔵庫」(メモリ)があります。もしレシピが大きすぎると、シェフは食材を出し入れするために絶えず冷蔵庫を開け閉めしなければならず、非常に時間がかかり、エネルギーを浪費します。

解決策:llada.cpp

著者たちは、これら3つの問題を解決するために、llada.cpp という新しいシステムを構築しました。これは、シェフが強力なNPUを効率的に使えるようにするための、新しい「キッチンのルール」だと考えてください。

1. マルチブロック投機的デコーディング:「次のレシピを先読みする」

比喩: シェフが現在のサラダ(ブロックA)を仕上げている最中、最後の葉っぱを一つ刻むだけなのでNPUが退屈しているとします。そこでシステムは、「おい、念のために今のうちに『次のサラダ(ブロックB)』の材料の下準備を始めておこう」と指示を出します。
仕組み: 現在のブロックが100%完成していなくても、システムはこっそりと未来の単語の準備を開始します。これにより、強力なNPUが暇になることなく、常にフル稼働し続けることができます。もし未来の単語が間違っていたとしても、システムは単にそれらを破棄して次に進むだけです。

2. デュアルパス漸進的リビジョン:「高速レーン vs 低速レーン」

比喩: NPUはフォーミュラ1のレーシングカーのようなものです。信じられないほど速いですが、カーブを曲がるのは苦手です。一方、CPUは信頼できる低速なSUVのようなものです。小回りの利いた、トリッキーな調整を得意としています。
仕組み: AIがある単語に対して自信を持っているときは、NPUがそのまま保持します。しかし、AIが単語に対して確信が持てず、「修正」が必要になった場合、llada.cpp は高速なN型NPUのレースを止めません。代わりに、その「修正作業」をバックグラウンドで、より柔軟なCPU(SUV)へと静かに送り込みます。NPUは新しい単語と共にレースを続行し、その間にCPUが古い部分を静かに直していくのです。

3. スワップ最適化メモリ・ランタイム:「整理されたパントリー(食品庫)」

比喩: NPUの小さな冷蔵庫は非常に小さいため、食材をランダムに放り込むと、出し入れのためにドアを開け閉めすることに時間を取られてしまいます。
仕組み: llada.cpp は、超整理されたパントリーマネージャーのように機能します。レシピ全体を事前に確認し、どの食材が「今」冷蔵庫にあるべきで、どれが後回しにできるかを正確に判断します。また、シェフが現在調理している間に、次のバッチの食材を準備しておくことで、ドアが閉まっている時間を最小限に抑えます。これにより、データの移動によって発生する「待ち時間」を排除します。

結果

著者たちは、実際のスマートフォン(OnePlus Ace5 Proなど)でこれらをテストしました。

  • スピード: llada.cpp を使用することで、従来の方式よりもAIが17倍から42倍高速になることが分かりました。
  • 品質: 書かれる物語の質は以前と変わらず、スピードを上げても正確性が損なわれることはありませんでした。
  • バッテリー: NPUが仕事を迅速に終え、アイドル状態(手持ち無沙汰)になることがなかったため、スマートフォン全体の消費電力が抑えられました。

要約すると、llada.cpp は、スマートフォンのAIが交通渋滞に巻き込まれることなく、その超高速な脳(NPU)を使いこなせるように教える、賢いマネージャーなのです。これにより、モバイルAIは瞬時かつレスポンシブに感じられるようになります。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →