A dark apple logo centered on a smooth grey metallic surface
Photo by Sumudu Mohottige on Unsplash

Macで動かすローカルAIの処理をiPhoneに分散するツール「Backburner」が、GitHubで公開されました。Qwen3.8-27B IQ4_XSを使った条件では、16〜48kトークンの入力処理が29〜44%高速化し、24GBメモリのMacで保持できるコンテキストも64kから128kトークンへ拡大するとされています。

入力処理をMacとiPhoneのレイヤーに分ける

Backburnerは、Mac上でAIを実行する際に、一部の計算やデータの保管をiPhoneへ移す仕組みです。iPhoneのGPUや、AI向けの演算機構であるNeural Engineを利用し、Macと分散して処理します。利用にはMacとiPhoneの両方へのツール導入が必要です。

入力を処理する「プレフィル」では、最大64kトークンを対象に、入力を分けた各バッチを両端末でパイプライン処理します。モデルの計算段階に当たるレイヤーのうち、Macが1〜40、iPhoneが41〜64を担当し、待機時間を短縮する構成です。29〜44%という高速化率は、Qwen3.8-27B IQ4_XSをローカル実行し、入力が16〜48kトークンだった場合のプレフィルの値を指します。

プレフィルの短縮は回答が出始めるまでの待ち時間に関わる

LLM(大規模言語モデル)の推論は、入力全体を処理するプレフィルと、その後の出力を順次生成するデコードに分かれます。プレフィルでは、モデルが扱うテキストの単位であるトークンをまとめて処理し、後の生成で再利用する計算データを作ります。デコードは、それまでの出力を使って次のトークンを一つずつ生成する段階です。

Backburnerのプレフィル高速化は、回答が出始めるまでの入力処理時間を短縮します。一方、出力が始まった後の生成速度に関わるのは、トークンごとのデコード処理です。両段階は計算の特性が異なり、プレフィルでは並列計算、デコードではメモリへのアクセスが性能を左右します。

ローカルLLMで両段階を分けて測った実験でも、入力の長さによる変化には差がありました。MacBookでgemma4:e4bを実行ソフトのOllama上で動かした測定では、入力を200から9,716トークンに増やすと、プレフィル時間は1.0秒から54.8秒へ伸びた一方、生成速度は毎秒16.81から15.43トークンへ低下しました。この結果は、Backburnerの測定とは別の環境で得られたものです。

古いKVキャッシュを移し、128kトークンを保持する

Backburnerは、計算の分担に加えて、Macのメモリ容量を超える古いKVキャッシュをiPhoneへ転送します。KVキャッシュとは、処理済みのトークンについて保存するキーと値の計算データで、後続の生成時に再利用されます。コンテキストが長くなるほど増えるデータです。

24GBメモリのMacでQwen3.8-27B IQ4_XSを扱う場合、Mac単体では8bit量子化したコンテキストの上限が64kトークンですが、Backburnerでは128kトークンを保持できるとされています。iPhoneはデータを保管するだけでなく、Macからの要求に応じ、入力中の情報の関係を計算するアテンション処理なども担当できます。

10GbpsのUSB接続で分散処理を支える

対応するMacはApple Silicon搭載機で、処理を分担する端末にはiPhone 15 Pro以降、またはMチップ搭載iPadを使えます。接続には、帯域を確保するため10Gbps対応のUSB Type-Cケーブルが必要です。

端末間の接続帯域と、チップが内部メモリへアクセスする帯域には差があります。TensorFoundryによると、M2 Maxのメモリ帯域は400GB/sで、Backburnerが求めるUSB接続の10Gbpsとは規模が異なります。TensorFoundryは、ローカルLLMのデコードでは、モデルの重みをメモリから読み出す速さが生成速度を制約すると説明しています。

複数端末への分散では、計算を分担する効果に加え、転送や同期の負担も生じます。Appleの機械学習フレームワークであるMLXを使ったMac Studio間の分散推論では、モデルの各レイヤーで同期する方式において、通信の負担が理論上の性能向上を減らす要因として扱われています。Backburnerはプレフィルのレイヤー分担とKVキャッシュの移動を行う構成であり、処理の分け方が異なります。

Backburnerには、Mac単体での動作を高速化する最適化も組み込まれています。SME2ユニットを使った行列計算の分散処理、DFlash2による投機的デコーディング、SSDに入力処理用のキャッシュを保存する機能が含まれます。投機的デコーディングは、出力候補を先に生成する方式を用いた最適化です。