尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
vLLM 并行起草(PARD)投机解码:配置、在线离线用法与源码实现详解
vLLM 并行起草PARD投机解码配置、在线离线用法与源码实现详解【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm本文以 vLLM 的parallel_drafting并行起草投机解码功能为主线围绕 PARDParallel Draft Models方案完整讲解其离线与在线服务的配置方法、关键参数的源码语义、调度器槽位分配规则以及并行起草在 vLLM 内部的工作机制。读完本文你将能够正确启用 PARD 投机解码并理解其相比自回归式 draft model 的架构差异与适用前提。1. PARD 是什么从串行起草到并行起草vLLM 的投机解码speculative decoding核心思路是用一个轻量的 draft草稿模型先生成若干候选 token再由目标模型target model一次前向并行验证从而在保持采样分布一致性的前提下减少解码步数。在methoddraft_model的传统形态下draft 模型是自回归式的它逐个 token 地串行生成 K 个投机 tokendraft 阶段本身需要 K 次小模型前向。PARDParallel Draft Models则把起草过程改造为并行式draft 模型以掩码/噪声 token 填充 K 个草稿位置在一次前向中同时给出全部 K 个投机 token 的预测。vLLM 通过speculative_config中的parallel_drafting: true开启该模式并要求 draft 模型在训练时就支持并行起草。这一模式在 vLLM 配置层有明确定义见 vllm/config/speculative.py# Alternative drafting strategies parallel_drafting: bool False Enable parallel drafting, where all speculative tokens are generated in parallel rather than sequentially. This can improve performance but requires the speculative model be trained to support parallel drafting. Only compatible with EAGLE and draft model methods.从这段字段文档可以看到三条硬约束所有投机 token 并行生成而非串行生成投机模型必须经过专门训练以支持并行起草PARD 权重即属此类仅与 EAGLE 和 draft model 两种 method 兼容——本文聚焦draft_model parallel_drafting的 PARD 组合。2. 调度器槽位PARD 为什么需要 K 个额外位置并行起草不只是快一点的优化它对 vLLM 调度器的每请求槽位预算slot budget提出了不同要求。vLLM 源码在max_num_new_slots_for_drafting的文档字符串中给出了一张算法对照表见 vllm/config/speculative.pyAlgorithmMethodParallelAdditional slotsEAGLE3eagle3No0P-EAGLEeagle3YesK - 1DFlashdflashYesKDSparkdsparkYesK - 1MTPmtpNo0N-gramngramNo0Draft modeldraft_modelNo1PARDdraft_modelYesK其中 K 为num_speculative_tokens。实现逻辑可以归纳为普通自回归 draft modeldraft 输入保留一个未切分的 token只需 1 个额外槽位PARDparallel_drafting draft_model由于 PARD 不滑动shift已有输入全部 K 个查询位置都需要额外槽位因此返回num_draft_tokensK 个其余并行方法如 P-EAGLE复用已有查询位置只需 K-1 个新槽位。理解这张表的意义在于配置num_speculative_tokens: 12时调度器会为每个请求额外预留 12 个 draft 槽位max_num_batched_tokens、KV cache 等预算都会据此计算。若你对投机解码的接受率与吞吐权衡感兴趣可继续阅读 docs/features/speculative_decoding/README.md 与 docs/features/speculative_decoding/acceptance_metrics.md。3. 离线模式Python API 配置示例以下示例来自 vLLM 官方文档 docs/features/speculative_decoding/parallel_draft_model.md配置 vLLM 使用 PARDamd/PARD-Qwen3-0.6B作为草稿模型对Qwen/Qwen3-8B做离线批量生成from vllm import LLM, SamplingParams prompts [The future of AI is] sampling_params SamplingParams(temperature0.8, top_p0.95) llm LLM( modelQwen/Qwen3-8B, tensor_parallel_size1, speculative_config{ model: amd/PARD-Qwen3-0.6B, num_speculative_tokens: 12, method: draft_model, parallel_drafting: True, }, ) outputs llm.generate(prompts, sampling_params) for output in outputs: prompt output.prompt generated_text output.outputs[0].text print(fPrompt: {prompt!r}, Generated text: {generated_text!r})各参数要点model: amd/PARD-Qwen3-0.6B草稿模型权重。该 PARD 模型与 Qwen3 系列同词表满足后文第 6 节的词表一致性校验num_speculative_tokens: 12每次投机验证最多提出 12 个候选 token按第 2 节规则这将为每个请求增加 12 个 draft 槽位method: draft_model以独立草稿模型作为提议器proposerparallel_drafting: True开启并行起草使 draft 模型单次前向产出全部 12 个投机 token。4. 在线模式vllm serve 启动命令同一套配置也可以通过--speculative-configJSON 字符串传给在线服务官方文档给出的命令如下vllm serve Qwen/Qwen3-4B \ --host 0.0.0.0 \ --port 8000 \ --seed 42 \ -tp 1 \ --max-model-len 2048 \ --gpu-memory-utilization 0.8 \ --speculative-config {model: amd/PARD-Qwen3-0.6B, num_speculative_tokens: 12, method: draft_model, parallel_drafting: true}参数解读--speculative-configJSON 形式的投机解码配置键名与离线LLM(speculative_config{...})完全一致注意 JSON 中布尔值为小写true-tp 1/--max-model-len 2048/--gpu-memory-utilization 0.8单卡部署、2048 上下文、80% 显存预算是 4B 目标模型加 0.6B PARD 草稿模型的小型化演示配置实际容量请依据目标模型与 PARD 权重的显存需求调整--seed 42固定随机种子便于复现实验。启动后即为标准 OpenAI 兼容 API 服务客户端无需任何额外改动即可享受投机解码加速——验证与拒绝逻辑在引擎内部完成输出分布与不使用投机解码保持一致。5. 源码透视PARD 的掩码 token 与单次前向机制parallel_drafting开启后vLLM 的提议器proposer会执行若干关键初始化。5.1 从草稿模型 config.json 解析掩码 token并行起草要求 draft 模型在推理时把 K 个草稿位置填充为特定掩码 token。vLLM 在 _init_parallel_drafting_params 中按优先级依次探测草稿模型 HuggingFace configdflash_config.mask_token_idDFlash 专用顶层mask_token_iddspark_noise_token_idDSparkpard_tokenPARD 专用ptd_token_idPTD。若均缺失则抛出ValueError提示必须在 config.json 中指定上述字段之一。PARD 权重携带pard_token字段因此能被自动识别——这也是必须使用训练好的 PARD 权重的落地检查点。5.2 额外槽位与单次前向在同一提议器中vllm/v1/spec_decode/llm_base_proposer.pyextra_slots_per_request被设为num_speculative_tokens并行起草时与非并行时的 1 形成对比与第 2 节的调度器槽位表相互印证。此外在 llm_base_proposer.py 附近可以看到only_one_forward_pass is_graph_capturing or self.parallel_drafting即开启parallel_drafting时draft 阶段确实只需一次前向传播即可产出全部 K 个候选 token这正是 PARD 相对自回归 draft modelK 次串行前向的核心性能收益来源。6. 适用前提与限制条件从源码可以确认以下使用前提配置 PARD 前建议逐项核对词表一致性verify_equal_vocab_size_if_draft_model 会在初始化时校验目标模型与草稿模型的词表大小必须相同否则抛出ValueError不同 tokenizer 会导致投机解码时的越界错误。PARD 权重与对应目标模型同系列天然满足该条件M-RoPE 不支持llm_base_proposer.py 中明确对投机解码 draft model / 并行起草 M-RoPE组合抛出NotImplementedError即多模态 M-RoPE 目标模型暂不能搭配该模式方法兼容性parallel_drafting仅与 EAGLE 和 draft model 方法兼容字段文档见第 1 节权重要求草稿模型必须为训练支持并行起草的 PARD 类权重其 config.json 需包含pard_token等掩码 token 字段否则初始化即失败。7. 预训练 PARD 权重与延伸阅读官方文档列出 AMD 维护的预训练 PARD 权重集合Hugging Face 上的amd/pard集合其中包含本文示例使用的amd/PARD-Qwen3-0.6B适配 Qwen3 系列目标模型。相关仓库内文档与测试便于进一步深入docs/features/speculative_decoding/README.md投机解码总览与各方法选型docs/features/speculative_decoding/draft_model.md自回归 draft model 用法可与本文 PARD 对照tests/v1/e2e/spec_decode/draft_model/test_draft_model.pydraft model / PARD 的端到端测试vllm/v1/spec_decode/llm_base_proposer.py统一承载 EAGLE、draft model 与并行起草的提议器实现。小结PARD 通过speculative_config中的parallel_drafting: true在draft_model方法上启用将 K 次串行的起草前向压缩为 1 次并行前向代价是调度器需为每请求额外分配 K 个 draft 槽位且草稿权重必须是训练支持并行起草的 PARD 模型。离线LLM(...)与在线vllm serve --speculative-config两种用法共享同一套 JSON 配置键读者可直接复用本文第 3、4 节的完整示例并结合第 2、5 节的源码证据槽位表、掩码 token 解析、单次前向标志来核对部署行为是否符合预期。【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

PyTorch AOTInductor:Triton 内核 “index out of bounds“ 断言故障排查完全指南

PyTorch AOTInductor:Triton 内核 “index out of bounds“ 断言故障排查完全指南

PyTorch AOTInductor:Triton 内核 "index out of bounds" 断言故障排查完全指南 【免费下载链接】pytorch Tensors and Dynamic neural networks in Python with strong GPU acceleration 项目地址: https://gitcode.com/GitHub_Trending/py/pytorch …

📅 2026/10/26 7:56:37
苏州常熟莫城街道林内壁挂炉生活热水温度不稳,欧米到家师傅上门检查维修

苏州常熟莫城街道林内壁挂炉生活热水温度不稳,欧米到家师傅上门检查维修

核心导读壁挂炉不点火、不出热水、供暖不热、压力下降、频繁报故障代码、运行噪音大,是苏州家庭在采暖季和日常生活热水使用中比较常见的问题。壁挂炉涉及燃气、水路、电路、采暖循环及燃烧系统。如果出现明显燃气味、异常爆燃、频繁熄火或设备漏水等情况&#xff0…

📅 2026/10/31 4:12:26
网页视频死活存不下来?用资源嗅探把它抓出来

网页视频死活存不下来?用资源嗅探把它抓出来

网页视频死活存不下来?用资源嗅探把它抓出来 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 右键“视频另存为”,存下来的是…

📅 2026/9/17 21:13:19
MORE NEWS

更多资讯

📰

PLM系统:制造业数字化转型的核心枢纽与实施指南

1. PLM系统:制造业数字化转型的神经中枢第一次接触PLM系统是在2012年,当时我参与一个汽车零部件企业的信息化改造项目。设计部门主管向我抱怨:"每次图纸变更,采购和生产部门总在用旧版本,我们得挨个部门打电话确认…

📰

双图层切换与网格碰撞:小体量解谜游戏《维度逃逸2》开发实践

1. 为什么做“维度逃逸2”:从一代的三个坑说起“维度逃逸”是我去年业余时间折腾出来的一个小体量解谜项目,核心玩法一句话就能说完:同一个场景里存在两套并行地形,玩家可以在两套地形之间瞬时切换,利用另一套地形里的…

📰

操作系统期末试卷高频考点解析:进程线程、虚拟内存与死锁

简介:这份西安电子科技大学《操作系统》期末试题及答案解析PDF,面向计算机相关专业本科生及备考操作系统课程的学生,用于期末复习、考点自查与考前模拟。内容覆盖进程与线程调度、分页存储管理、虚拟内存与局部性原理、UNIX i-node结构、磁盘…

📰

元胞传输模型在高速公路拥堵分析中的应用与实践

1. 项目背景与核心价值高速公路网作为现代交通系统的核心动脉,其运行状态直接影响着区域经济活动和民生出行。当突发事件(如交通事故、恶劣天气、大型活动等)发生时,路网拥堵往往会呈现复杂的时空演化特征。传统基于静态路网模型的…

📰

安川MPE720程序下载连不上:以太网通信与伺服组态排查

简介:面向安川MPE720系列PLC调试与维护人员的实操文档,围绕PLC程序导入与SigmaWin伺服参数导入两条主线,帮助初、中级自动化工程师梳理从硬件准备到报警排查的完整流程。内容覆盖217IF-01串行通信模块拨码设定、CN6A/CN6B与IO模块接线、电脑与…

📰

项目周期管理:工作日计数与日期戳编号系统设计

1. 项目背景解析"Day27-20260123"这个看似简单的编号背后,实际上隐藏着一个完整的项目周期管理方法论。作为一名长期跟踪技术项目管理的从业者,我见过太多团队在项目记录和版本控制上栽跟头。这个编号系统完美融合了时间标记和序列管理&#x…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬