この記事ではLLMの推論最適化に特化して解説します。LLM全般は LLMとは?仕組みからローカル実行まで徹底解説【2026年完全ガイド】 をご覧ください。

この記事のポイント
  • DFlashはZ Labが2026年5月に公開した投機的デコーディング向けブロック拡散ドラフトモデル。MITライセンスで2,705 starを獲得
  • Qwen3-8Bで最大6倍・EAGLE-3比約2.5倍の高速化をlossless(greedy decoding)で達成。サンプリング時・推論モード時も性能を維持
  • vLLM mainline / SGLang / Transformers / MLXの4バックエンドに統合済みで、Gemma-4・Qwen3.5/3.6・Llama-3.1など主要モデルで即運用可能

DFlashとは:ブロック拡散で投機的デコーディングを再定義

DFlash(Block Diffusion for Flash Speculative Decoding)は、Z Lab が2026年5月に公開した投機的デコーディング向けの軽量ブロック拡散ドラフトモデルだ。著者はJian Chen、Yesheng Liang、Zhijian Liuの3名で、論文は arXiv 2602.06036 として公開されている。GitHubリポジトリは公開直後から急速にスター数を伸ばし、執筆時点で2,705 starに到達している。

投機的デコーディング(Speculative Decoding)は、軽量なドラフトモデルで複数トークンを先読み生成し、ターゲットモデル(本番LLM)で並列検証することで推論速度を引き上げる技術として広く知られている。代表的な手法であるEAGLEシリーズ・Medusa・Lookahead Decodingなどはいずれも、自己回帰的にトークンを1つずつドラフトする構造を持つ。これに対しDFlashは、ブロック拡散モデルを用いて1回のフォワードパスでブロック全体(例:16トークン)を同時生成する点で根本的に異なる。

公式ブログによると、DFlashは「Diffusion drafters generate all tokens in a single parallel forward pass(拡散ドラフターは全トークンを単一の並列フォワードパスで生成する)」という設計哲学を採用している。これにより、自己回帰ドラフトに付随する線形コストの増加が解消され、ドラフトモデルを深くしてもレイテンシのペナルティが発生しにくいという利点が生まれる。

投機的デコーディングの基礎
投機的デコーディングでは「軽量ドラフトモデル」が複数トークンを推測し、「重いターゲットモデル」が並列に検証する。受理されたトークンはそのまま採用され、不一致が発生した位置以降は破棄される。受理率(acceptance rate)が高く、ドラフトコストが低いほど全体の高速化倍率が伸びる。
DFlashの最大の意義は、これまで「ドラフトモデルは軽量でなければならない」という暗黙の前提を覆した点にある。

並列デコーディングが可能になったことで、より表現力の高いドラフトモデルを使ってもオーバーヘッドが直線的に増えなくなり、結果として受理率と速度の両立が実現している。


技術アーキテクチャ:3つのコア機構

DFlashの内部構造は、Z Lab公式ブログで「Feature Fusion」「KV Injection」「Parallel Drafting」の3層構造として説明されている。それぞれが投機的デコーディングのボトルネックを解消するために設計されている。

コア機構 目的 実装
Feature Fusion ターゲットモデルの中間特徴を再利用 複数層の隠れ特徴を抽出し軽量プロジェクションで融合
KV Injection 融合特徴をドラフト全層に伝搬 各ドラフト層のKey/Value射影に注入しKVキャッシュへ保存
Parallel Drafting ブロック全体を1回で生成 拡散ドラフターが単一フォワードパスで全トークンを出力
Embedding/LM Head共有 学習・推論コスト削減 ターゲットの埋め込みと言語モデルヘッドを再利用
中間層のみ学習 パラメータ最小化 ドラフター中間層のみ学習対象、軽量化に貢献

Feature Fusion:ターゲットモデルの知識を引き継ぐ

ドラフトモデルが受理率を稼ぐためには、ターゲットモデルの分布をできるだけ正確に近似する必要がある。DFlashはターゲットモデルの複数のレイヤーから隠れ状態を抽出し、軽量な線形プロジェクションを通して単一の融合特徴に圧縮する。これにより、浅い層の語彙的情報と深い層の意味的情報が両方ドラフターに伝わる。

KV Injection:永続的なコンディショニング

融合された特徴は各ドラフト層のKey/Value射影に注入され、ドラフトモデル内のKVキャッシュに保存される。これにより、ブロック生成中の全トークンが一貫してターゲットモデルの「文脈」を参照しながら生成できる。単一トークンごとに条件付けし直す必要がなく、これがブロック並列生成を成立させている設計の核だ。

Parallel Drafting:1パスでブロック全体を出力

従来手法ではブロックサイズ16のドラフトを生成するために最低16回のフォワードパスが必要だった。DFlashは拡散ベースの生成プロセスで、16トークンを単一のフォワードパスで並列に生成する。論文ではこの並列生成が、自己回帰ドラフトと比較して受理率を犠牲にせずレイテンシを大幅に削減することが示されている。

アーキテクチャの全体像をMermaidで整理する。

flowchart TD A["入力プロンプト"] --> B["ターゲットモデル
(例:Qwen3-8B)"] B --> C["複数層の隠れ特徴を抽出"] C --> D["Feature Fusion
軽量プロジェクションで融合"] D --> E["DFlashドラフター
(中間層のみ学習)"] E --> F["KV Injection
各層のK/V射影に注入"] F --> G["ブロック拡散生成
16トークンを1パスで並列出力"] G --> H["ドラフトブロック
t1, t2, ..., t16"] H --> I["ターゲットモデルで並列検証"] I --> J{"全トークン受理?"} J -->|"Yes"| K["全16トークン採用
大幅高速化"] J -->|"一部不一致"| L["不一致位置までを採用
残りは破棄"] K --> M["次ブロック生成へ"] L --> M

ベンチマーク性能:EAGLE-3比2.5倍の高速化

公式ブログとリポジトリREADMEで公開されているベンチマーク結果を整理する。Qwen3-8Bにおいて、greedy decoding(temperature=0)でlosslessに最大6倍の高速化を達成している。これは投機的デコーディングの最先端手法であるEAGLE-3と比べてもほとんどのベンチマークで約2.5倍高速だ。

ベンチマーク条件 DFlash速度向上 比較対象 備考
Qwen3-8B / greedy decoding 最大6倍 バニラ自己回帰 lossless
主要ベンチ平均 / temperature=0 約2.5倍 EAGLE-3 同条件比較
sampling(temperature=1) 強い高速化を維持 バニラ 受理率劣化少
reasoning mode有効 強い高速化を維持 バニラ 思考連鎖でも有効
GSM8K / MATH500 / HumanEval / MBPP / MT-Bench 5データセット全てで安定 EAGLE-3 リポジトリのbenchmarkスクリプトで再現可能

ベンチマークデータセットは gsm8kmath500humanevalmbppmt-bench の5種類で、初回実行時にJSONLとして cache/ 配下に自動ダウンロードされる。性能評価のスクリプトは dflash.benchmark モジュールに集約されており、各バックエンドで一貫した条件で計測できる。

「lossless」の意味
投機的デコーディングにおける「lossless」とは、ターゲットモデル単体での生成結果と確率的に同等のトークン分布を保証することを指す。greedy decodingでは出力が完全一致し、samplingでも分布が一致する。DFlashは検証ステップでこの保証を維持しているため、品質を犠牲にせず速度だけを引き上げられる。

対応モデル一覧:Gemma-4からQwen3.6まで

DFlashはターゲットモデルごとに事前学習済みのドラフターをHugging Face z-lab コレクションで公開している。執筆時点で対応している主要モデルは以下の通りだ。

ターゲットモデル DFlashドラフト 用途
Gemma-4-26B-A4B-it z-lab/gemma-4-26B-A4B-it-DFlash 汎用対話
Gemma-4-31B-it z-lab/gemma-4-31B-it-DFlash 高品質対話
Qwen3.6-27B z-lab/Qwen3.6-27B-DFlash 最新世代汎用
Qwen3.6-35B-A3B z-lab/Qwen3.6-35B-A3B-DFlash MoE高速
Qwen3.5-27B / 35B-A3B / 122B-A10B z-lab/Qwen3.5-*-DFlash 大規模MoE
MiniMax-M2.5(プレビュー) z-lab/MiniMax-M2.5-DFlash エージェント特化
Kimi-K2.5 z-lab/Kimi-K2.5-DFlash 1兆級MoE
Qwen3-Coder-Next / 30B-A3B z-lab/Qwen3-Coder-*-DFlash コーディング
gpt-oss-20b / 120b z-lab/gpt-oss-*-DFlash OpenAI互換OSS
Qwen3-4B / 8B(非thinking) z-lab/Qwen3-*-DFlash-b16 軽量推論
Llama-3.1-8B-Instruct z-lab/LLaMA3.1-8B-Instruct-DFlash-UltraChat 標準ベースライン
DeepSeek-V4-Flash / Pro Coming soon 次世代対応

軽量モデル(Qwen3-4B/8B)からKimi-K2.5やQwen3.5-122B-A10Bのような超大規模MoEまで一貫したドラフター設計でカバーされている点が、運用面での大きな魅力だ。コーディング特化のQwen3-Coderやエージェント特化のMiniMax-M2.5にもドラフターが用意されており、ユースケースに合わせて選択できる。

DFlashシリーズの活用例として、長時間自律エージェント実行で注目される Kimi K2.6|Moonshot AIの1兆パラメータLLM — 300エージェント並列でGPT-5.4超えのコーディング性能 のような大規模MoEの推論高速化との組合わせも有効だ。


バックエンド別セットアップ:vLLM / SGLang / Transformers / MLX

DFlashは4種類のバックエンドに対応している。それぞれ仮想環境を分けてインストールするのが推奨される。

vLLMでの利用(推奨:本番運用)

vLLMはmainlineにDFlashが統合済みのため、追加のソースインストールは不要だ。新しいSWAドラフトモデル(例:Qwen3.6シリーズ)やGemma-4モデルを使う場合のみ、対応PRから一時的にインストールする。

# 標準のvLLMで利用
pip install vllm

# 最新のSWAドラフトモデル対応版
uv pip install -U --torch-backend=auto \
  "vllm @ git+https://github.com/vllm-project/vllm.git@refs/pull/40898/head"

# Gemma-4 DFlash対応版
uv pip install -U --torch-backend=auto \
  "vllm @ git+https://github.com/vllm-project/vllm.git@refs/pull/41703/head"

サーバー起動コマンドは以下の通り。speculative-config にDFlashドラフターのHugging Face IDを渡すだけで、投機的デコーディングが有効化される。

vllm serve Qwen/Qwen3.5-27B \
  --speculative-config '{"method": "dflash", "model": "z-lab/Qwen3.5-27B-DFlash", "num_speculative_tokens": 15}' \
  --attention-backend flash_attn \
  --max-num-batched-tokens 32768

num_speculative_tokens がブロックサイズに相当する。15〜16が推奨レンジで、極端に大きくすると検証コストが増えて受理率が低下するためトレードオフを意識する必要がある。

SGLangでの利用

SGLangもDFlashネイティブ対応済みで、Modal Labsチームの貢献によりブロック並列生成が高効率に実装されている。

export SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1
export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1

python -m sglang.launch_server \
    --model-path Qwen/Qwen3.5-35B-A3B \
    --speculative-algorithm DFLASH \
    --speculative-draft-model-path z-lab/Qwen3.5-35B-A3B-DFlash \
    --speculative-num-draft-tokens 16 \
    --tp-size 1 \
    --attention-backend trtllm_mha \
    --speculative-draft-attention-backend fa4 \
    --mem-fraction-static 0.75 \
    --mamba-scheduler-strategy extra_buffer \
    --trust-remote-code

注目すべきは --speculative-draft-attention-backend fa4(FlashAttention 4)の指定で、ドラフター側のアテンションを最新バックエンドで高速化できる点だ。mem-fraction-static 0.75 でドラフターとターゲットの両方をGPUメモリに収める設定にしている。

Transformersでの利用(研究・実験)

Hugging Face Transformersでは Qwen3とLlama-3.1のみが対応している。研究目的やオフライン評価に向く構成だ。

from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer

draft = AutoModel.from_pretrained(
    "z-lab/Qwen3-8B-DFlash-b16",
    trust_remote_code=True,
    dtype="auto",
    device_map="cuda:0",
).eval()

target = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-8B",
    dtype="auto",
    device_map="cuda:0",
).eval()

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B")

messages = [{"role": "user", "content": "How many positive whole-number divisors does 196 have?"}]
input_ids = tokenizer.apply_chat_template(
    messages,
    return_tensors="pt",
    add_generation_prompt=True,
    enable_thinking=False,
).to(draft.device)

output = draft.spec_generate(
    input_ids=input_ids,
    max_new_tokens=2048,
    temperature=0.0,
    target=target,
    stop_token_ids=[tokenizer.eos_token_id],
)
print(tokenizer.decode(output[0], skip_special_tokens=False))

spec_generate メソッドがDFlashのコア呼び出しで、target 引数でターゲットモデルを渡すと自動的に投機的デコーディングが起動する。Transformers 4.57.3以降が必要だ。

MLXでの利用(Apple Silicon)

DFlashはApple Silicon向けにMLX実装も提供する。M5 Proで Qwen3、Qwen3.5、Gemma-4の動作確認が公式に行われている。

from dflash.model_mlx import load, load_draft, stream_generate

model, tokenizer = load("Qwen/Qwen3.5-4B")
draft = load_draft("z-lab/Qwen3.5-4B-DFlash")

messages = [{"role": "user", "content": "How many positive whole-number divisors does 196 have?"}]
prompt = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True, enable_thinking=True,
)

tps = 0.0
for r in stream_generate(model, draft, tokenizer, prompt,
                         block_size=16, max_tokens=2048, temperature=0.6):
    print(r.text, end="", flush=True)
    tps = r.generation_tps

print(f"\nThroughput: {tps:.2f} tok/s")

block_size=16 がDFlashのドラフトブロックサイズに相当する。stream_generate のジェネレータは1トークンずつではなく、ブロック単位で受理結果がストリーミングされる挙動になる。MacBook Pro(M5 Pro)レベルのデバイスでも、Qwen3.5-4Bクラスならインタラクティブ用途に耐えるスループットが得られる。


ベンチマーク再現:5データセットで一貫評価

DFlashは公式ベンチマークスクリプト dflash.benchmark を提供しており、4種類のバックエンドで同一条件の評価を再現できる。データセットは gsm8k / math500 / humaneval / mbpp / mt-bench の5種で、初回実行時に自動ダウンロードされ cache/ ディレクトリにJSONLとしてキャッシュされる。

# vLLM
python -m dflash.benchmark --backend vllm \
    --base-url http://127.0.0.1:8000 --model Qwen/Qwen3.5-27B \
    --dataset gsm8k --num-prompts 128 --concurrency 1 --enable-thinking

# SGLang
python -m dflash.benchmark --backend sglang \
    --base-url http://127.0.0.1:30000 --model Qwen/Qwen3.5-35B-A3B \
    --dataset gsm8k --num-prompts 128 --concurrency 1 --enable-thinking

# Transformers (Qwen3 / Llama-3.1のみ)
torchrun --nproc_per_node=8 -m dflash.benchmark --backend transformers \
    --model Qwen/Qwen3-8B --draft-model z-lab/Qwen3-8B-DFlash-b16 \
    --dataset gsm8k --max-samples 128

# MLX
python -m dflash.benchmark --backend mlx \
    --model mlx-community/gemma-4-31b-it-4bit \
    --draft-model z-lab/gemma-4-31B-it-DFlash \
    --dataset gsm8k --max-samples 128 --enable-thinking

--enable-thinking フラグはQwen3.5/3.6シリーズの推論モードを有効化する設定で、思考連鎖(chain-of-thought)を含む長文生成での速度向上を測定できる。reasoning mode有効時もDFlashの高速化倍率はほぼ維持されることが、公式ブログで実証されている。


既存手法との比較:Medusa・EAGLE・Lookahead

投機的デコーディング分野は2023年以降急速に進化してきた。代表的な手法とDFlashを比較する。

手法 ドラフト方式 受理率 速度向上 特徴
Vanilla Speculative Decoding 小型LLMで自己回帰ドラフト 1.5〜2倍 別モデル必要・コスト高
Medusa 複数ヘッドで並列予測 2〜2.5倍 学習が比較的単純
Lookahead Decoding n-gramベースの推測 低〜中 1.5〜2倍 学習不要
EAGLE-2 / EAGLE-3 自己回帰小型ドラフター 3〜4倍 業界標準
DFlash ブロック拡散で並列生成 最大6倍 EAGLE-3比2.5倍

DFlashの位置づけは「EAGLE-3の品質を維持しつつ、ブロック並列化でドラフトレイテンシを大幅削減した次世代手法」と言える。学習コストはEAGLE-3と比較して若干高いが、ドラフター中間層のみを学習対象とすることで実用的な範囲に収まっている。

ローカルLLMの推論最適化には BitNet b1.58|Microsoft発の1.58ビット量子化LLM完全解説 のような量子化アプローチもあるが、DFlashは品質劣化なしの高速化という別軸の選択肢を提供する。両者を組み合わせることで、メモリ効率と推論速度の両方を改善することも理論上は可能だ。


運用上の注意点と落とし穴

ブロックサイズの選定

num_speculative_tokens(vLLM)あるいは --speculative-num-draft-tokens(SGLang)で指定するブロックサイズは、受理率と検証コストのトレードオフを決定する重要パラメータだ。

  • 小さすぎる(〜8): 並列性のメリットが活きず、速度向上が頭打ち
  • 適正範囲(15〜16): 公式推奨。ほとんどのモデルで最良のスループット
  • 大きすぎる(〜32): 受理率が低下し検証時の破棄コストが増加

KVキャッシュ容量

DFlashドラフターは中間層のKVキャッシュを保持するため、ターゲット単体運用と比べてGPUメモリ使用量が増える。SGLangの例では --mem-fraction-static 0.75 のように静的メモリ予約割合を引き下げ、ドラフター用の余白を確保している。実運用ではこの値の調整が安定動作の鍵となる。

サンプリング時の挙動

Greedy decoding(temperature=0)では受理率が最も高くなるが、サンプリング(temperature>0)では確率的に不一致が発生しやすい。DFlashはサンプリング条件下でも検証ステップで分布の一致性が保たれる設計のため品質劣化は発生しないが、速度向上倍率は若干低下する。多様性の高い創作タスクではこの影響を考慮する必要がある。

vLLM mainlineへの統合
DFlashは2026年5月時点でvLLM mainlineに統合されている。これは投機的デコーディング手法としては最速のmainline採用ペースの1つで、研究コードで終わらず本番運用に直結する形でリリースされたことを示す。NVIDIAのbenchislett氏とModal LabsチームがvLLMおよびSGLangへの移植を支援した点も、エコシステム全体での採用を後押ししている。

想定ユースケース:本番運用とローカル推論

高スループットLLMサービング

vLLMやSGLangで大量のリクエストを処理するLLMサービスにとって、DFlashの導入は実質的にGPU時間の削減として機能する。例えば1日100万トークンを生成するサービスで2.5倍の高速化が実現すれば、同じ品質を維持したまま必要なGPU台数を約4割削減できる試算となる。Z Labコレクションにはコーディングモデルやエージェントモデルのドラフターもラインナップされており、ChatGPT風サービス・コーディングアシスタント・エージェントオーケストレーションまで適用範囲は広い。

Apple Siliconでのインタラクティブ推論

MLXバックエンドのおかげで、M3〜M5 Pro搭載のMacBook Pro上で4Bクラスのモデルがインタラクティブな速度で動作する。手元のラップトップで実用的な対話品質を得たい開発者にとって、DFlash対応モデルは実質的な「最速ローカルLLM」として位置づけられる。

エージェント長時間実行

長時間自律実行を行うAIエージェントは生成トークン量が多く、DFlashのような高速化技術が直接コスト削減に効く。MiniMax-M2.5やKimi-K2.5など、複数ターン・複数ツール呼び出しを伴う大規模エージェント向けのドラフターが提供されている点は、これらワークロードを意識した設計だ。


まとめ:投機的デコーディングの新しいスタンダード

記事のまとめ
  • DFlashは ブロック拡散モデルでドラフトトークンを並列生成する投機的デコーディング新手法。Z Labが2026年5月にMITライセンスでリリース
  • Qwen3-8Bでlossless最大6倍、EAGLE-3比約2.5倍の速度向上を達成。Feature Fusion・KV Injection・Parallel Draftingの3層構造で実現
  • vLLM mainline・SGLang・Transformers・MLX に対応。Gemma-4・Qwen3.5/3.6・Llama-3.1・gpt-oss など主要モデルでドラフターが公開済み
  • 本番運用でGPU台数削減・スループット向上に直結し、ローカル推論でもApple Silicon向けMLX実装で実用速度を実現

DFlashは投機的デコーディング分野における「ブロック並列化×拡散モデル」という新しい組合せを実証した重要な進展だ。EAGLE-3を明確に上回るベンチマーク結果、そして主要バックエンドへの即時統合という運用面での完成度から、今後しばらくは投機的デコーディングのスタンダードとなる可能性が高い。Hugging Face z-lab コレクションのドラフターは継続的に追加されており、DeepSeek-V4対応も予告されている。LLM推論最適化の現場ではすぐにキャッチアップしておきたいフレームワークだ。

LLM全体像から学びたい場合は LLMとは?仕組みからローカル実行まで徹底解説【2026年完全ガイド】 をあわせて参照してほしい。


参照ソース