资讯详情

资讯详情

Model-Optimizer 中的 DFlash 训练与部署实战:基于 Block Diffusion 的并行推测解码完整指南

人工智能大模型模型优化模型量化模型压缩【免费下载链接】Model-OptimizerA unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning models for downstream deployment frameworks like TensorRT-LLM, TensorRT, vLLM, etc. to optimize inference speed.项目地址https://gitcode.com/GitHub_Trending/te/Model-Optimizer点击查看免费下载DFlashBlock Diffusion for Flash Speculative Decoding是一种块级并行推测解码技术它让轻量级草稿模型在单次前向传播中同时预测一整块blocktoken并通过 KV 注入复用目标大模型frozen base model的多层隐藏状态从而以远低于自回归草稿模型如 EAGLE3的成本完成高质量草稿生成。本文以 Model-Optimizer 仓库中 dflash.md 为核心主线结合 DFlash 训练配方、HF 插件源码、launcher 示例 与测试用例系统讲解 DFlash 的架构原理、训练配置、损失函数设计、导出与 vLLM 部署全流程。读完本文你将掌握 DFlash 从 0 到 1 的训练方法、关键超参数block size / anchors / 损失权重的调优依据以及如何在 vLLM 中把推测解码跑起来并获得数倍吞吐提升。DFlash 的核心思想用一次前向预测一整块 token传统推测解码如 EAGLE3的草稿模型逐 token 自回归生成草稿每步只有一次前向传播对应一个 tokenDFlash 则把逐 token 预测升级为块级并行预测位置 0 放置anchor上一个已被目标模型验证接受的 token已知且正确位置 1..B-1 填充特殊的mask token类似 BERT 的[MASK]草稿模型在单次前向传播中一次性预测全部 B-1 个未知位置。因此一次前向产生 B-1 个草稿 token是 DFlash 与 EAGLE3 最本质的差别。整体架构如下Target Model (frozen) │ ├─ hidden_states[layer 1, 9, 17, 25, 33] ──► concat ──► FC RMSNorm ──► target_hidden │ │ │ K/V injection │ │ └─ embed([anchor, mask, mask, ...]) ──► noise_embedding ──► DFlash Decoder (5 layers) │ lm_head ──► draft tokens从源码角度看该架构由 HFDFlashModel注册在DFlashDMRegistry中和 DFlashModel 基类实现。DFlashModel.modify()会读取dflash_block_size、dflash_loss_decay_factor、dflash_loss_objective、dflash_dpace_alpha、dflash_num_anchors、dflash_self_logit_distillation等全部关键配置见 dflash_model.py并在dflash_loss_objective dpace时给出decay factor 被忽略的明确告警与文档说明完全一致。三个关键设计组件Parallel Drafting并行草稿位置 0 是 anchor已知且正确位置 1..B-1 填充 mask token草稿模型一次性预测全部未知位置。收益是一次前向传播产出 B-1 个草稿 token相比 EAGLE3 逐 token 预测大幅提升草稿生成效率。Feature Fusion特征融合把目标模型多层隐藏状态例如 layer 1、9、17、25、33拼接后经Linear(num_layers × hidden_size, hidden_size) RMSNorm压缩为融合特征为草稿模型提供更丰富的上下文思路与 EAGLE3 的 fused feature 类似。KV InjectionKV 注入草稿模型对目标模型上下文的条件化方式。在每个草稿 decoder 层中K 和 V 由目标模型融合隐藏状态 块自身 embedding拼接投影得到Q 仅由块 embedding 投影得到。这是实现并行预测的一种方案备选方案包括 cross-attention 与 prefix conditioning。KV 注入的 token 级示例以上下文The answer is、block_size4、anchor 为is为例Target model hidden states (from frozen base model): h[The] h[answer] h[is] ← target_hidden (ctx_len3) │ │ │ └──── FC RMSNorm ────┘ │ fused context features Block input (draft token embeddings): embed(is) embed(MASK) embed(MASK) embed(MASK) ← noise_embedding (block_size4) pos3 pos4 pos5 pos6 In each DFlash decoder layer: Q q_proj(noise_embedding) ← shape [4, head_dim] only the block tokens generate queries K concat( ← shape [7, head_dim] k_proj(fused_context), ← from target hidden [3 positions: The,answer,is] k_proj(noise_embedding) ← from block tokens [4 positions: is,MASK,MASK,MASK] ) V concat(v_proj(fused_context), v_proj(noise_embedding)) ← same shape as K Attention: Q (4 tokens) attends to K/V (7 tokens) K/V: The answer is │ is MASK MASK MASK pos0 pos1 pos2 │ pos3 pos4 pos5 pos6 ───────────────────────────┼────────────────────────── Q pos3 is : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ Q pos4 MASK : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ Q pos5 MASK : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ Q pos6 MASK : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ ─── context ─── │ ──── block ──────────── (bidirectional within block, no attention mask at inference) Output → lm_head → predictions: pos3: skip (anchor, already known) pos4: predict token after is → 5 pos5: predict token after is 5 → . pos6: predict token after is 5. → [EOS]要点推理阶段块内是双向注意力、不加 attention mask块内每个 mask 位置都能自由看到上下文与块内其他位置anchor 位置不产生预测已知。整个流程的核心价值在于——草稿模型通过 KV 注入看到目标模型对上下文的内部表示却无需为起草稿而重跑目标模型昂贵的目标模型前向只用于验证草稿轻量草稿模型则复用其隐藏状态。训练 vs 推理的注意力差异训练时多个块在一次前向内同时处理靠 attention mask 控制可见性推理时逐块处理、不加 mask。以下以 2 个 anchor、block_size4为例说明TRAINING (2 anchors, block_size4): Context tokens: The answer is 5 . Block 0 (anchorThe): [The, MASK, MASK, MASK] Block 1 (anchoris): [is, MASK, MASK, MASK] All blocks processed in ONE forward pass. Attention mask controls visibility: K/V (context) K/V (block 0) K/V (block 1) The ans is 5 . The M M M is M M M c0 c1 c2 c3 c4 b0 b1 b2 b3 b4 b5 b6 b7 Q ───────────────────────────────────────────────────────────────────────── b0 The : ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ b1 MASK : ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ b2 MASK : ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ b3 MASK : ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ b4 is : ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ b5 MASK : ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ b6 MASK : ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ b7 MASK : ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✓ ✓ ✓ ✓ ── context ────── ── block 0 ────── ── block 1 ────── Block 0: first block sees NO context (✗), only its own block (bidirectional ✓) Block 1: sees context before anchor is (c0,c1 ✓), NOT its own anchor or later plus its own block (bidirectional ✓) Loss: computed on all non-anchor positions simultaneously. No verification — ground truth labels known from training data. INFERENCE (one block at a time, NO attention mask): Step 1: target forward(The answer is) → base_token 5 block [5, MASK, MASK, MASK] K/V: The ans is │ 5 MASK MASK MASK Q ─────────────────────────────────┼────────────────────────── 5 : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ MASK : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ MASK : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ MASK : ✓ ✓ ✓ │ ✓ ✓ ✓ ✓ All ✓ — no mask at inference. Block sees full context freely. Target verifies → accept 3 → sequence: The answer is 5 . [EOS] Step 2: next block with grown context (5 tokens) ...训练时块的可见性约束前块不见上下文、后块只见 anchor 之前的上下文防止了信息泄漏推理时由于块是逐个构建的上下文始终完整因此无需 mask。草稿模型组件基于 Qwen3复用 transformers 的Qwen3MLP、Qwen3RMSNorm、Qwen3RotaryEmbedding通过config.layer_types支持 sliding window attention已实现尚未端到端验证草稿模型与目标模型架构解耦——只要目标模型能提供 hidden states任何目标模型都可用。源码中 hf_dflash.py 模块文档字符串明确记载了这一设计并给出了扩展方向要支持 Qwen3MoE 草稿将Qwen3MLP替换为Qwen3MoeMLP或 MLAMulti-head Latent Attention如 DeepseekV3 / Kimi-K2需将 K/V 压缩到低秩潜空间再注入的具体改造步骤。训练 DFlash快速开始官方 launcher 示例提供一键训练入口对应 Qwen3-8B 在线训练uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_online_dflash.yaml --yes该 launcher 配置 是一个三阶段 pipelinetask_0在线 DFlash 训练common/specdec/dflash_online_training.sh→task_1vLLM 冒烟测试common/specdec/vllm_smoke_test.shSPEC_METHOD: dflash、NUM_SPEC_TOKENS: 7→task_2MT-Bench 分类别 HF AR 评估common/specdec/ar_eval_mtbench.sh。文件头部还给出了收敛基线8x B200、batch_size1、seq_len4096、5 层草稿、block_size16 下 100K 样本单 epoch 约 12500 步最终 loss≈3.82、acc≈0.20平均 train_loss4.493、训练耗时约 5094s以及回归判据MAX_FINAL_LOSS: 5.0、MIN_FINAL_ACC: 0.15。Recipe 与全部参数训练配置以 dflash.yaml 为蓝本通过 OmegaConf dotlist 在 CLI 覆盖。该配方在 metadata 中声明为modelopt.recipe.config.ModelOptDFlashRecipemodel/data/training/dflash四段分别映射到main.py的ModelArguments/DataArguments/TrainingArguments和modelopt/torch/speculative/config.py中的DFlashConfig。核心 DFlash 参数默认值以 dflash.yaml 与 config.py 为准ParameterDefaultDescriptiondflash.dflash_block_size8并行预测的块大小草稿模型每块预测这么多 tokendflash.dflash_num_anchors512每个样本随机 anchor 位置数见下文dflash.dflash_loss_decay_factor4.0指数衰减 gamma0 表示禁用仅decay目标时生效dflash.dflash_loss_objectivedpace位置加权方式decay静态或dpace动态见下文dflash.dflash_dpace_alpha0.5D-PACE 平滑因子取值 (0, 1]仅dpace目标时使用dflash.dflash_self_logit_distillationtrue用目标模型 logits 作软标签替代硬 CEdflash.dflash_mask_token_idauto掩码位置所用 token ID见下方注意dflash.dflash_architecture_config.num_hidden_layers5草稿 decoder 层数training.answer_only_lossfalse是否掩掉非 assistant token 上的 loss在 DFlashConfig 中还可以看到更多底层细节dflash_block_size默认 8配方的默认值launcher 示例可按需覆盖为 16dflash_loss_decay_factor的字段描述给出了推荐取值——block_size16 用 7、block_size10 用 5、block_size8 用 4与文档建议一致dflash_loss_objective明确区分静态指数衰减DFlash 论文 Eq.4与基于置信度的动态加权D-PACE 论文 Eq.8。训练段常用参数还包括training.training_seq_len4096、per_device_train_batch_size1、learning_rate6.0e-4、warmup_steps100、num_train_epochs10、bf16true、tf32true、save_strategysteps、save_steps5000、report_totensorboard以及cp_size上下文并行与dp_shard_sizeFSDP2 分片等并行相关配置。关于dflash_mask_token_id的注意点草稿模型复用目标模型的embed_tokens因此 mask id 必须是目标词表中真实存在的 token。请将其固定到某个保留 token id例如 MiniMax-M2.7 使用200054其 embedding 共 200064 行token 0..200053 为真实 token200054 起为保留位。Qwen3-8B 示例中固定为151669见 hf_online_dflash.yamlQwen3.5-4B 示例中为248070。关于answer_only_loss与 chat template当answer_only_losstrue时tokenizer 的 chat template必须包含{% generation %}/{% endgeneration %}标签包裹 assistant 内容。HuggingFace 通过apply_chat_template(return_assistant_tokens_maskTrue)依据这些标签产出assistant_masks。需要注意大多数模型 tokenizerQwen3、Llama3 等默认不带这些标签必须通过data.chat_templatepath/to/template.jinja提供自定义模板仓库已为 Qwen3 提供现成模板chat_template_train.jinjaQwen3.5-4B 也有对应模板见 Qwen3.5-4B launcher为其他模型自制模板的步骤① 从tokenizer_config.json复制原chat_template② 在 assistant 内容前加{% generation %}、后加{% endgeneration %}③ 验证 tokenize 结果与原模板一致无多余/缺失 token。随机 anchor 采样num_anchors训练时 anchor 位置从每个 batch 中有效的assistant 响应token 中随机采样而不是按固定间隔切分序列。每个 anchor 开启一个长度为block_size的块草稿模型预测位置 1..B-1。文档用如下示例说明其效率优势Sequence: [SYS] You helpful [USR] What 23? [AST] The answer is 5 Position: 0 1 2 3 4 5 6 7 8 9 10 loss_mask: 0 0 0 0 0 0 0 1 1 1 1 ^^^^^^^^^^^^^^^^ assistant response Fixed blocks (block_size4): Block 0: pos [0,1,2,3] anchor0 → predict 1,2,3 → loss_mask0,0,0 → ZERO LOSS Block 1: pos [4,5,6,7] anchor4 → predict 5,6,7 → loss_mask0,0,1 → 1/3 useful Block 2: pos [8,9,10,—] anchor8 → predict 9,10,— → loss_mask1,1,— → 2/2 useful Efficiency: 3/8 38% Random anchors (num_anchors3, sampled from loss_mask1): Anchor 7: pos [7,8,9,10] → predict 8,9,10 → loss_mask1,1,1 → 3/3 useful Anchor 9: pos [9,10,—,—] → predict 10,—,— → loss_mask1,—,— → 1/1 useful Anchor 8: pos [8,9,10,—] → predict 9,10,— → loss_mask1,1,— → 2/2 useful Efficiency: 6/6 100%随机 anchor 保证每个预测都落在 assistant token 上固定块则会把算力浪费在loss_mask0的 prompt token 上示例中固定块利用率仅 38%随机 anchor 达 100%。权衡num_anchors越高每个样本的训练信号越多但算力越大越低则迭代更快但数据效率下降。在seq_len4096、block_size8时num_anchors512意味着模型每个样本看到约 512 个块覆盖约 4096 个位置。按num_anchors ≈ seq_len / block_size缩放即可获得完整覆盖。Loss Decay指数衰减加权指数衰减因子gamma给块内靠前位置更高的权重。原因在于推测解码中块内位置 1 一旦预测错误后续所有位置都会被拒绝因此损失加权应当与影响接受率的关键位置对齐。weight[k] exp(-(k-1).clamp(min0) / gamma) for k 0..B-1位置 0anchor被 loss mask 排除和位置 1 获得全权重1.0越靠后衰减越强例如gamma4、block_size8时位置 7 的权重只有位置 1 的约 22%。论文建议block_size16用gamma7block_size8用gamma4源码字段描述还补充了block_size10用 5。注意这与 EAGLE3 的eagle_loss_decay_factor不同EAGLE3 是跨 TTT step 按alpha^step乘损失而 DFlash 的衰减作用于单个块内部因为块内靠前位置把关了后续所有位置的接受与否。D-PACEDynamic Position-Aware Cross-Entropy默认目标D-PACE 是默认的位置加权目标dflash_loss_objective: dpace。与静态衰减使用固定调度不同D-PACE根据草稿模型自身的逐位置置信度动态调整把训练信号导向当前限制接受率的位置随草稿模型变强而持续演进。设置dflash_loss_objective: decay可回退到静态调度。对每个块令q_i exp(-CE_i)为草稿模型在预测位置 i 对目标 token 的置信度D-PACE 平滑Eq.7并按前缀积的后缀和Eq.8加权q~_i (1 - alpha) * q_i alpha w_j sum_{m j} prod_{i m} q~_i # detached; multiplies the per-token CE权重因子可拆解为前缀接受概率prod_{ij} q~_i× 剩余接受长度价值因此直接针对期望接受长度优化。权重从梯度中分离detached——D-PACE 只重塑 credit assignment不改变草稿架构与推理训练开销仅约 2.3%。源码 hf_dflash.py 中的_dpace_position_weights实现了这一机制平滑后的置信度q~_i alpha (1-alpha)*q_i保证下限q~_i alpha所有权重严格为正用torch.cumprod求累积置信度 C_jEq.8再以总和减前缀和的方式实现后缀和w_j sum_{mj} C_m全程在torch.no_grad()下计算以确保权重脱离梯度。关键细节dflash_dpace_alpha是非对称平滑下限q~_i alpha防止靠后位置权重消失。稳定区间[0.3, 0.7]alpha0会被拒绝累积乘积坍塌alpha → 1则退化为均匀加权。默认0.5且 DFlashConfig 在构造时会校验0 alpha 1D-PACE 与dflash_loss_decay_factor互斥目标为dpace时 decay factor 被忽略DFlashModel.modify 会打印相应 warning。Checkpoint ResumeDFlash 支持透明的 checkpoint 恢复。Rotary embedding 在首次前向时惰性初始化与 EAGLE3 的_maybe_init_rope模式一致避免from_pretrained构建 meta tensor 时的相关问题。导出python examples/speculative_decoding/scripts/export_hf_checkpoint.py \ --model_path /path/to/training/output \ --export_path /path/to/exported/model导出为 z-lab 兼容的 HF 格式config.jsonmodel.safetensors可被 vLLM 与 z-lab benchmark 直接加载。此外仓库还提供配套脚本examples/speculative_decoding/scripts/convert_to_vllm_ckpt.pyvLLM 检查点转换、examples/speculative_decoding/scripts/quantize_drafter.py草稿模型量化等。实验结果Qwen3-8B文档记录的结果基于 nvidia/Nemotron-Post-Training-Dataset-v22M 样本、64 GPU、10 epochs 的训练。训练配置ParameterValueBlock Size8Sequence Length4096Anchors512LossKD decay (gamma4)Total Steps306,620Final Per-Token Acc67.0%HuggingFace AR 评估AR接受率通过 ar_validate.py 评估其调用pseudo_speculative_generate并使用在线上下文相关ground truth流程为用基础模型跑input_ids→ 得到 base token hidden states构建草稿块[base_token, MASK, MASK, ...]跑 DFlash 草稿前向 → 得到block_size-1个草稿 token根据目前已接受的序列而非预计算的固定参考逐 token 验证草稿与基础模型预测是否一致接受连续匹配的 token在第一个不匹配处追加目标模型的修正 tokenAR 累计接受 token 数 / 推测步数。python examples/speculative_decoding/scripts/ar_validate.py --model_path /path/to/checkpoint --per_category --osl 512 --steps 7--per_category按 MT-Bench 类别分别统计--osl为输出序列长度--steps为推测步数。launcher 的 task_2 使用--osl 512 --steps 15的配置见 hf_online_dflash.yaml。vLLM 部署结果使用 vLLM nightlyv0.19.1、H100、MT-Bench 80 prompts、1024 max tokensBaselinez-lab (bs16)ModelOpt (bs8)TP1 tok/s145422443TP8 tok/s3779191053Speedup (TP1)1.0x2.9x3.1x分类别TP8对比CategoryModelOpt Acceptz-lab AcceptModelOpt TPSz-lab TPSmath5.144.2412381098coding4.033.5212991269writing3.993.971002903reasoning3.893.4911881020roleplay3.883.371069923extraction3.603.021002789stem3.553.631027914humanities3.052.68786672ALL1053919ModelOpt 在 8 个类别中的 7 个上取得更高接受长度、8/8 类别取得更高 TPS。部署时可用 vLLM 的 speculative-config 直接启用vllm serve Qwen/Qwen3-8B \ --speculative-config {method: dflash, model: path/to/checkpoint, num_speculative_tokens: 7} \ --max-num-batched-tokens 32768launcher 示例中对应SPEC_METHOD: dflash、NUM_SPEC_TOKENS: 7并配MIN_ACCEPTANCE_LENGTH: 1.4作为冒烟测试阈值。关键发现FindingEvidence相对 baseline 3.1x 加速TP1vLLM 上 443 vs 145 tok/s比 z-lab 快 15%TP1: 443 vs 422TP8: 1053 vs 919更高效的草稿44% vs 16.5% 草稿接受率草稿更少、接受更多Loss decay 提升 AR55K 步时 0.12 ARgamma7, bs16多个 checkpoint 一致更长序列有帮助seq4096 vs 512AA-Synthetic 上 0.49 AR现状与已知边界尚未实现离线训练DFlash 需要所有位置的多层 hidden states用于 KV 注入相对 EAGLE3 单层方案约 5 倍存储。候选方案存储融合后的 hidden states、预采样 anchor、或 hybrid CPU base GPU draft。仓库中存在tests/regression/torch/speculative/test_dflash_offline.py与tests/unit/torch/speculative/plugins/test_hf_dflash_offline.py等离线相关测试说明该方向仍在演进Qwen3MoE 草稿通过 config flag 将Qwen3MLP换成Qwen3MoeMLP具体步骤见 hf_dflash.py 模块文档MLA 支持DeepseekV3 / Kimi-K2需要 MLA-aware 的 KV 注入压缩 K/V改造要点已在 hf_dflash.py 文档字符串中给出Docker 本地测试launcher 示例依赖 Slurm需要hf_local路径映射的本地 Docker 示例。已实现但未端到端验证Sliding window attention代码读取config.layer_types并逐层设置sliding_window有单元测试但未在滑动窗口模型的完整训练中验证FP8 / NVFP4 量化导出流程支持经 hf_ptq.py 量化的 checkpointPTQ 已测试成功流程为 train(bf16) →mtq.quantize(model, quant_cfg)→export_hf_checkpoint.py但量化对 AR 的影响尚未测量Checkpoint resume惰性 rotary embedding 初始化对齐 EAGLE3 模式已在 DDP 与 FSDP2 的 trainresume E2E 测试中验证。已验证在线训练sample-1K 与 sample-10K 上的 E2E 管线train → export → eval多节点 DDP全量数据集 8 节点64 GPU10 epochs 训练AR 评估ar_validate.py 配合在线 GT、MT-Bench 分类别vLLM 部署vllm/vllm-openai:nightlyv0.19.1推测解码相对 baseline 3.1x 加速MT-Bench 分类别基准FSDP2 训练dp_shard_size8且支持 checkpoint resume导出z-lab 兼容 HF 格式vLLM 与 z-lab benchmark 可直接加载Loss decaygamma7bs16验证 0.12 AR 提升Qwen3.5-4Btrain → export → vLLM serve 的 E2E 管线验证通过。vLLM 部署 Qwen3.5 的专项注意点Qwen3.5 系列具有非标准架构维度head_dim160、num_attention_heads16被 DFlash 草稿模型继承后会在 vLLM 的 KV cache 分页上引发报错。三个关键问题与修复方案M-RoPE 不兼容Qwen3.5 使用 M-RoPE多模态 RoPE带mrope_section而 DFlash 草稿用标准 Qwen3 RoPE。继承基础模型的rope_scaling会触发 vLLM 的NotImplementedError: Speculative Decoding does not support M-RoPE yet。修复草稿不继承基础模型的rope_scaling改用标准 RoPEHead 维度不匹配Qwen3.5-4B 的head_dim1602560/16 heads非标准引发 vLLM KV cache 的page size not divisible错误。修复覆盖草稿架构为 z-lab 的维度——num_attention_heads32、num_key_value_heads8、head_dim128、intermediate_size9728、rope_theta10000000具体见 Qwen3.5-4B launcher 示例MTP 替代方案Qwen3.5 自带 MTPMulti-Token Prediction头可原生配合 vLLM无需草稿模型--speculative-config {method: mtp, num_speculative_tokens: 1}。MTP-1 在 Qwen3.5-4B 上达到 91% 接受率而 DFlash 在充分训练后能提供更高加速z-lab 的 checkpoint 平均接受长度为 3.84。相关代码地图想要深入源码的读者可以沿以下路径继续探索训练配方与配置modelopt_recipes/general/speculative_decoding/dflash.yaml、DFlashConfig 定义核心实现HFDFlashModel 插件、DFlashModel 基类、modeling_dflash.pyLauncher 示例Qwen3-8B 在线训练、Qwen3.5-4B 在线训练、Kimi-K2.5 在线/流式示例评估与导出脚本ar_validate.py、export_hf_checkpoint.py测试用例HF DFlash 插件测试、回归测试DFlash 以块级并行 KV 注入 随机 anchor 动态位置加权的组合在 Qwen3-8B 上实现了 3.1x 的 vLLM 端到端吞吐提升相对无推测 baseline并以轻量草稿模型复用目标隐藏状态的方式为高吞吐 LLM 服务提供了又一个可直接落地的推测解码方案。赞分享人工智能大模型模型优化模型量化模型压缩【免费下载链接】Model-OptimizerA unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning models for downstream deployment frameworks like TensorRT-LLM, TensorRT, vLLM, etc. to optimize inference speed.项目地址https://gitcode.com/GitHub_Trending/te/Model-Optimizer点击查看免费下载相关推荐DFlash 块扩散投机解码Model-Optimizer 中从并行草稿训练到 vLLM 部署的完整实战指南DFlash 块扩散投机解码Model Optimizer 中从并行草稿训练到 vLLM 部署的完整实战指南 DFlashBlock Diffusion f人工智能大模型模型优化模型量化模型压缩Model-Optimizer 投机解码Speculative Decoding端到端实战EAGLE3 / DFlash 训练、验证与 TRT-LLM / vLLM / SGLang 部署指南Model Optimizer 投机解码Speculative Decoding端到端实战EAGLE3 / DFlash 训练、验证与 TRT LLM /人工智能大模型模型优化模型量化模型压缩DSpark 草稿模型训练指南基于 DFlash 骨干与 Markov 头的半自回归投机解码Model-OptimizerDSpark 草稿模型训练指南基于 DFlash 骨干与 Markov 头的半自回归投机解码Model Optimizer 本文是 NVIDIA Mode人工智能大模型模型优化模型量化模型压缩创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →