github-trend-summarizer

DFlash: Block Diffusion for Flash Speculative Decoding

1. このリポジトリは何?

DFlash は、大規模言語モデル(LLM)の推論を高速化するための Speculative Decoding(投機的デコーディング)用の軽量「ドラフトモデル」 とその実装パッケージです。Z-Lab が公開する論文 DFlash: Block Diffusion for Flash Speculative Decoding(Chen, Liang, Liu, 2026, arXiv:2602.06036)の公式コードに該当します。

特徴は、ドラフトモデルとして従来一般的な「自己回帰型の小型モデル(EAGLE 系など)」ではなく、Block Diffusion(ブロック拡散)モデル を採用している点です。マスクトークンで埋めたブロックを並列に「拡散」的に生成(埋め直し)してドラフトトークン列を作り、それをターゲットモデルに検証させる構造になっています(dflash/model.pydflash_generatebuild_target_layer_idsextract_context_feature 等)。

提供物は次の 3 点に整理できます。

2. このリポジトリは何が嬉しいの?(既存手段との比較)

LLM 推論を速くする既存手段と並べると、ポジショニングが明確になります。

手段 アプローチ DFlash との関係
通常の自己回帰生成 1 トークンずつ逐次デコード 比較対象(最も遅い)
量子化 / KV キャッシュ最適化 1 トークンの計算コストを下げる 直交。DFlash と併用可能
Medusa / EAGLE / EAGLE-3 系ドラフト 小型「自己回帰」ドラフトモデルで先読み DFlash の主な競合
DFlash(本リポジトリ) Block Diffusion による並列ドラフト生成 1 ステップで複数トークンを並列に下書き

嬉しい点は次の通りです。

3. 使うときの流れ

典型的な利用ステップは 4 段階です。

  1. インストール(バックエンドごとに別 venv 推奨)
    • Transformers: uv pip install -e ".[transformers]"
    • SGLang: uv pip install -e ".[sglang]"
    • vLLM: uv pip install -e ".[vllm]" の後に nightly vLLM を追加インストール
    • MLX: pip install -e ".[mlx]"
  2. ターゲット LLM と対応する DFlash ドラフトを選ぶ README の対応表から、利用したい本体(例: Qwen/Qwen3.5-27B)に対応するドラフト(例: z-lab/Qwen3.5-27B-DFlash)を選択。

  3. サーバ起動 or 直接生成
    • vLLM: vllm serve <target> --speculative-config '{"method": "dflash", "model": "<draft>", "num_speculative_tokens": 15}' ...
    • SGLang: python -m sglang.launch_server --speculative-algorithm DFLASH --speculative-draft-model-path <draft> --speculative-num-draft-tokens 16 ...
    • Transformers: AutoModel.from_pretrained(<draft>, trust_remote_code=True)draft.spec_generate(..., target=target) を呼ぶ
    • MLX: dflash.model_mlx.load / load_draft を読み、stream_generate(model, draft, tokenizer, prompt, block_size=16, ...) でストリーム取得
  4. 評価 python -m dflash.benchmark --backend {vllm|sglang|transformers|mlx} --model <target> [--draft-model <draft>] --dataset gsm8k --num-prompts 128 で gsm8k / math500 / humaneval / mbpp / mt-bench を回し、スループットや受理率を比較。データセットは初回実行時に cache/ 配下に JSONL でキャッシュされる。

要するに 「ターゲット LLM はそのまま、ドラフトを DFlash に差し替えるだけ」 で速度向上を狙える、Speculative Decoding のドラフト側コンポーネント、というのがこのリポジトリの位置づけです。