Apple Silicon(M4/M5 Max など)搭載の Mac で、ローカル LLM を最大 4.1 倍高速化する新技術「DFlash」のオープンソース実装が公開されました。精度を落とさずに推論速度だけを大幅に向上できる点が注目されています。

DFlash とは

DFlash(Block Diffusion for Flash Speculative Decoding)は、投機的デコード(Speculative Decoding)を発展させた推論加速技術です。論文「Block Diffusion for Flash Speculative Decoding」で提案された手法を、Apple の MLX フレームワーク向けに実装したものが dflash-mlx として公開されています。

仕組み

推測デコード(Speculative Decoding)

通常の推測デコードでは、小さな「ドラフトモデル」が次のトークンを予測し、大きな「ターゲットモデル」がそれを検証します。ドラフトの予測が正しければそのまま採用するため、検証パスを有効活用してスループットを上げます。

ブロック拡散(Block Diffusion)

DFlash では、ドラフトモデルが 1 トークンずつではなく 16 トークンをまとめて並列生成します。ターゲットモデルは 1 回のフォワードパスでこれらをまとめて検証するため、大幅なスループット向上が実現します。

Apple Silicon / MLX への最適化

  • Apple 独自の MLX フレームワークをフル活用
  • ロールバック処理は「イノベーションテープ」を記録・再生する Metal カーネル で実装し、長い生成でもオーバーヘッドを最小化
  • 精度を落とさない exact speculative decoding(ロスレス)

ベンチマーク

Qwen3.5-9B モデルで 4.1 倍のスループット向上が確認されています。27B の大規模モデルでもクラウド API に匹敵する速度で動作するとされています。

インストールと使い方

インストール

1
2
3
git clone https://github.com/aryagm/dflash-mlx.git
cd dflash-mlx
uv sync

CLI で実行

1
uv run dflash-mlx --max-new-tokens 128

Python から利用

1
2
3
4
from dflash_mlx import DFlashGenerator

runner = DFlashGenerator()
result = runner.generate("Write a quicksort in Python.", max_new_tokens=128)

対話型チャット

1
uv run dflash-mlx-chat

対応モデル

ターゲットモデルドラフトモデル
mlx-community/Qwen3-4B-bf16z-lab/Qwen3-4B-DFlash-b16
mlx-community/Qwen3.5-4B-MLX-bf16z-lab/Qwen3.5-4B-DFlash

活用シナリオ

  • 機密情報の要約: クラウドに送らずローカルで高速処理
  • コーディング支援: 大規模モデルを使いながらリアルタイムに近いレスポンス
  • コスト削減: API 利用料ゼロで高品質な推論

まとめ

DFlash は Apple Silicon の性能を最大限に引き出す投機的デコード技術です。MLX の最適化と組み合わせることで、プライバシーを守りながらクラウド並みの速度でローカル LLM を活用できるようになります。M4/M5 Mac ユーザーにとって試す価値の高いツールです。

関連リンク