(来源:优刻得云计算)
对于大模型来说,生成一个Token,都意味着一次完整的前向计算。模型越大,推理耗时越长、成本越高,如何在不影响模型效果的前提下提升推理速度,一直是推理优化的重要方向。
传统的投机解码(Speculative Decoding)中,模型需要一个Token一个Token地生成候选内容。DFlash引入了Block Diffusion思路,不再逐Token生成,而是一次前向计算直接生成一个Token Block。在降低推理成本的同时,带来更高的吞吐表现。
优刻得正式开源首个 GLM-5.2-FP8 DFlash drafter,并同步公开完整训练数据。
开源地址
模型(HuggingFace):
huggingface.co/UCloud-org/GLM-5.2-FP8-DFlash
模型(ModelScope):
modelscope.cn/models/UCloud-AILab/GLM-5.2-FP8-DFlash
这是一个3.7B参数的轻量block-diffusion模型(独立训练参数1.8B,embed/lm_head复用target权重、不参与训练),在保持输出严格一致(lossless)的前提下,单请求场景下可实现最高4.29×的端到端加速(较无投机解码基线,MBPP 实测),已支持SGLang部署。
背景
GLM-5.2是一个743B参数(39B 激活)的超大MoE模型,每生成一个Token都需要执行一次完整的前向计算,推理成本高昂。投机解码用一个轻量drafter提前给出候选Token,由target模型一次性并行验证——验证通过则直接采用,不通过则退回逐Token生成,不改变最终输出分布。
z-lab提出的DFlash(论文:https://arxiv.org/abs/2602.06036) / GitHub (https://github.com/z-lab/dflash)已经为Qwen、Gemma、Kimi、MiniMax、gpt-oss以及GLM-5.1开源了对应drafter,论文报告在Qwen3-8B上加速比可达6×以上。优刻得本次开源补上GLM-5.2标准DFlash方法的空白:block size 16、纯CE损失、论文指定数据配方,可与论文及z-lab全系列drafter直接对标。
本工作基于SpecForge (https://github.com/sgl-project/SpecForge)训练,采用论文指定的数据配方——Nemotron-Post-Training-v2+CodeAlpaca约80万样本(代码/数学/对话,全部由GLM-5.2重新生成)、完整6 epoch。训练数据已同步开源(见文末)。
DFlash是什么?
DFlash用一个轻量block diffusion模型替代传统投机解码里逐Token自回归生成的小模型drafter,以target模型的中间层hidden states作为生成条件:
"By generating draft Tokens in a single forward pass and conditioning the draft model on context features extracted from the target model, DFlash enables efficient drafting with high-quality outputs and higher acceptance rates." —— DFlash 论文(arXiv:2602.06036)
其核心优势有两点:draft阶段单次前向生成一整个block,起草开销显著降低;同时drafter以target的中间层表征为条件,候选Token与target输出分布更一致,acceptance length因此高于纯自回归drafter。
研究表明,自回归模型生成当前Token时,其hidden states中已隐含对后续若干Token的预测信息,但通常未被显式利用(Uncovering LLMs' Multi-Token Prediction Potential https://arxiv.org/abs/2507.11851)。DFlash将target 的这部分信息直接注入drafter的KV cache,使drafter无需独立理解语言或世界知识,仅依据target提供的条件信息生成候选block——这也是本模型仅用5层 transformer、单步去噪即可达到当前效果的原因。
:DFlash (https://github.com/z-lab/dflash)(z-lab)
SGLang serving实测(greedy,与z-lab模型卡同口径),六个基准的Acceptance Length与吞吐:
基准 | DFlash AL(接受长度) | 内置 MTP AL | DFlash 吞吐 tok/s(并发1→32) |
MBPP | 8.04 | 5.23 | 478 → 4653 |
MATH500 | 7.77 | 4.91 | 477 → 5195 |
HumanEval | 6.43 | 4.42 | 383 → 4112 |
GSM8K | 4.44 | 4.01 | 236 → 1737 |
MT-Bench | 3.56 | 3.71 | 220 → 1750 |
C-Eval | 2.98 | 3.65 | 177 → 1119 |
与GLM-5.2内置MTP(官方推荐配置EAGLE steps5/topk1/draft6,已是强基线)相比,DFlash在代码与数学负载上端到端快1.4-1.5倍(GSM8K 1.51×、MATH500 1.54×、MBPP 1.46×、HumanEval 1.42×);开放对话与中文负载上两者接近(内置MTP略优)。本模型定位为代码/数学场景优化的drafter。
与无投机解码的基线相比,单请求(并发1)场景下端到端加速比为:
基准 | 无投机(vanilla) tok/s | DFlash tok/s | 加速比 |
MBPP | 111.4 | 478 | 4.29× |
MATH500 | 111.5 | 477 | 4.28× |
HumanEval | 111.3 | 383 | 3.44× |
GSM8K | 106.4 | 236 | 2.22× |
MT-Bench | 110.7 | 220 | 1.99× |
C-Eval | 109.3 | 177 | 1.62× |
快速上手
python -m sglang.launch_server \--model-path zai-org/GLM-5.2-FP8 \--speculative-algorithm DFLASH \--speculative-draft-model-path UCloud-org/GLM-5.2-FP8-DFlash \--speculative-num-draft-tokens 16 \--tp-size 8 \--trust-remote-code
from openai import OpenAIclient = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")response = client.chat.completions.create(model="zai-org/GLM-5.2-FP8",messages=[{"role": "user",- "content": "写一个快速排序"}],extra_body={"chat_template_kwargs": {"enable_thinking": False}},)
感谢DFlash (https://github.com/z-lab/dflash)(z-lab)、SpecForge (https://github.com/sgl-project/SpecForge) 与SGLang (https://github.com/sgl-project/sglang)。GLM-5.2由智谱AI开源。详细引用信息见HuggingFace模型卡。
通过补齐GLM-5.2在DFlash生态中的关键一环,优刻得希望为开发者提供开箱即用的高性能推理加速能力,进一步推动大模型推理优化生态的发展。