前途科技前途科技
  • 服务
  • 关于
  • AI
    • AI 大模型
    • 具身智能
    • 算力芯片
  • 科技
    • 智能终端
    • 软件·互联网
    • 汽车·出行
    • 科学前沿
  • 资源中心
    • 深度研究
      • AI 前沿
      • 教程
      • AI 知识库
      • 案例研究
    • 行业报告
      • 白皮书
      • 行业报告
      • 研究报告
      • 技术分享
      • 专题报告
    • 精选案例
      • 金融行业
      • 医疗行业
      • 教育行业
      • 零售行业
      • 制造行业
  • 服务
  • 关于
联系我们
教程/09.27 · 11:56/10 MIN/作者:苏晚/0 阅读

解码快 3 倍,端到端只快 1.5 倍:VLM 推测解码 DSpark 的账怎么算

Liquid AI 给 LFM2.5-VL-3B 配了 280M 的专用草稿模型,llama.cpp / MLX-VLM / SGLang 首日支持。解码最高提速 3.13 倍,但端到端最低只有 1.30 倍——差距卡在 prefill 和视觉编码上。本文拆解三套硬件六个任务的实测数据、接受长度这一列说明了什么,以及什么场景下值得上。

本文编译自 Liquid AI 团队发表在 Hugging Face Blog 的《Accelerating vision-language models with LFM2.5-VL-DSpark》(2026 年 9 月 24 日),原文地址:https://huggingface.co/blog/LiquidAI/lfm2-5-vl-dspark 。文中数据与命令均出自该文及其配图。

Liquid AI 给它的 30 亿参数视觉语言模型 LFM2.5-VL-3B 配了一个专用草稿模型 LFM2.5-VL-3B-DSpark,把推测解码(speculative decoding)从纯文本场景搬到了看图的场景里。原文把这个草稿模型明确称作「实验性的 DSpark 草稿模型」(an experimental DSpark draft model)——它目前是实验性发布,不是稳定版本,下面所有数字和部署建议都要放在这个前提下看。宣传口径是解码环节最高提速 3.13 倍,代价是多加载 2.8 亿参数——相对 3B 的主模型只多出 8.9%。llama.cpp、MLX-VLM、SGLang 三个推理框架首日即可用。

这组数字看着很漂亮,但它有一个必须先说清楚的前提:3.13 倍是解码环节的倍数,不是你实际等待时间缩短的倍数。同一张表里,端到端的最好成绩是 2.62 倍,最差只有 1.30 倍。这中间的落差不是宣传注水,而是 VLM 这类模型的结构决定的。理解这个落差,比记住那个最大值有用得多。

一、推测解码搬到视觉模型上,为什么几乎没改算法

推测解码的基本盘是:用一个小得多的草稿模型一次性猜出接下来 k 个 token,再让主模型一次性验证这 k 个猜测,对的部分直接留下,错的部分丢掉重来。主模型原本要跑 k 次才能吐出 k 个 token,现在一次就能确认好几个,省下的是访存往返。

DSpark 的草稿模型并不是独立重新理解输入,而是从主模型固定的若干层上取出隐藏状态(原文称为 tapped layers),以此为条件去起草一个 k 个 token 的块。关键在于 LFM2.5-VL 的结构里,图像 patch 和文本 token 在进入这些层之前就已经被投影到同一个表征空间,维度完全一致。这意味着草稿模型拿到的永远是同一种形状的隐藏状态向量,它根本不需要知道上游是一张图还是一段文字。

所以原文那句结论才成立:推理算法和纯文本版的 DSpark 相比没有任何改动。视觉能力是在主模型里解决的,草稿模型只负责在隐藏状态上做外推。这也解释了为什么这套东西能在三个框架上同时首日支持——它没有引入新的算子,只是多挂了一个小模型。

DSpark 用于视觉语言模型的结构示意

主模型(左)处理图像 patch 与文本 token 后,通过 KV 注入把状态传给草稿模型(右);草稿模型先并行出块、再经序列块与硬件感知的前缀调度器给出候选,最终由主模型逐个判定 keep 或 drop——图中四个候选里三个被保留、一个被丢弃。图片来源:Liquid AI / Hugging Face Blog

二、草稿模型是怎么搭出来的

训练用的是视觉—语言 SFT 数据混合,配比向团队预期的实际负载倾斜。架构上做了 3 层、4 层、5 层的消融实验,最后选了 4 层的纯注意力(attention-only)草稿模型,块大小 9。在最终数据混合上跑了 10 个 epoch,每个 epoch 后都测一次接受率,接受率随训练 token 增加而提升,直到收益递减为止。

成品约 2.8 亿参数,使部署时的参数量增加 8.9%。推理阶段官方建议块大小取 8 或 9,具体看硬件。

这里有个容易被忽略的工程含义:8.9% 的参数增量在显存充裕的服务器上无所谓,但在端侧是实打实要占内存的。一个 3B 模型加一个 280M 草稿模型,意味着你的内存预算要按 3.28B 来算。对于卡在内存上限边缘的设备,这笔账要单独算。

三、三套硬件、六个任务的实测数据

评测遵循 MMSpec 基准,覆盖六类任务:通用 VQA、文字 VQA(TextVQA)、图像描述(COCO)、图表 VQA(CharXiv)、复杂推理(MMMU-Pro)和多轮对话。两种配置的块大小都固定为 8。

端侧部分:

硬件 / 框架解码提速端到端提速
Apple M5 Max + MLX2.30x ~ 3.13x1.56x ~ 2.62x
Apple M3 Ultra + llama.cpp1.57x ~ 2.14x1.30x ~ 1.77x
NVIDIA H100 + SGLang约 2.04x ~ 2.66x1.64x ~ 2.27x

(关于 H100 一行:原文正文写的是「20.4x to 2.66x」,这个区间下限明显是笔误——配图里 H100 各任务的解码倍数落在 2.04 到 2.66 之间,multi-turn 一行正是 2.04x。此处按配图取值。)

逐任务看更能说明问题。下面把配图里三套硬件的端到端倍数并排列出(括号内为解码倍数):

标签:推测解码视觉语言模型推理优化端侧部署
苏晚
苏晚Su Wan

前途科技 · 前沿主笔

关注 AI 与前沿科技的观察者,前途科技前沿内容主笔。

查看全部文章

想了解 AI 如何助力您的企业?

免费获取企业 AI 成熟度诊断报告,发现转型机会

置顶文章

把 MuJoCo 搬上 GPU:MJWarp 迁移的四道闸门与三种不报错的错误
置顶

把 MuJoCo 搬上 GPU:MJWarp 迁移的四道闸门与三种不报错的错误

解码快 3 倍,端到端只快 1.5 倍:VLM 推测解码 DSpark 的账怎么算
置顶

解码快 3 倍,端到端只快 1.5 倍:VLM 推测解码 DSpark 的账怎么算

前途科技前途科技
服务关于快讯技术商业报告
微信咨询二维码

咨询微信

扫码添加微信咨询

前途科技微信公众号

微信公众号

扫码关注

Copyright © 2026 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。|京ICP备17045010号-1|京公网安备 11010502033860号|隐私政策|服务条款
任务M5 Max / MLXM3 Ultra / llama.cppH100 / SGLang
MMMU-Pro(复杂推理)2.62x(2.93x)1.74x(2.03x)1.97x(2.43x)
COCO(图像描述)2.59x(3.13x)1.77x(2.14x)2.27x(2.66x)
multi-turn(多轮对话)1.91x(2.30x)1.37x(1.57x)1.83x(2.04x)
GQA(通用 VQA)1.93x(2.67x)1.30x(1.77x)1.77x(2.35x)
CharXiv(图表 VQA)1.71x(2.94x)1.56x(1.87x)1.97x(2.39x)
TextVQA(文字 VQA)1.56x(2.69x)1.33x(1.64x)1.64x(2.14x)

跨三套硬件真正稳定的只有两头:MMMU-Pro 与 COCO 始终排在前两位(H100 上 CharXiv 以 1.97x 与 MMMU-Pro 并列),垫底的始终是短答案任务——M5 Max 与 H100 上是 TextVQA,M3 Ultra 上是 GQA 的 1.30x。中间四项的次序则随硬件变动:CharXiv 在 M5 Max 上排倒数第二,在 H100 上却挤进了并列第二。所以选型时能借用的只有这个粗粒度结论:长输出的复杂推理与图像描述最值得上,短答案任务最不值得;中间那几类的相对次序是硬件和框架的事,必须在自己的机器上实测,照搬别人的排名会踩空。

LFM2.5-VL-3B-DSpark 端侧推理实测

Apple M5 Max(MLX)与 M3 Ultra(llama.cpp)上六个任务的单请求耗时对比,浅灰为 prefill、深灰为基线解码、紫色为 DSpark 解码,右侧三列依次是端到端倍数、解码倍数与接受长度。图片来源:Liquid AI / Hugging Face Blog

LFM2.5-VL-3B-DSpark 在 H100 上的实测

同一套任务在 NVIDIA H100 80GB HBM3 + SGLang 上的结果,COCO 拿到最高的 2.27 倍端到端提速。图片来源:Liquid AI / Hugging Face Blog

四、为什么解码快 3 倍,你只感觉快了 1.5 倍

这是整篇文章最该带走的一条,原文自己也用了一节来讲。

在纯文本大模型里,prefill(把提示词一次性喂进去、填满 KV 缓存的阶段)主要受算力约束,其开销随提示长度以次二次方增长。VLM 在这之上又多了一层:图像要先过视觉编码器,然后语言主干还要把几百个视觉 token 连同文本提示一起处理一遍。

而推测解码只加速 decode,不加速视觉编码,也不加速 prefill。当这两个阶段本来就吃掉了大半的墙钟时间,解码环节再快也顶不上去。这就是阿姆达尔定律(Amdahl's law):整体加速比被那个没被加速的部分卡住上限。

端侧设备的算力远低于数据中心 GPU,prefill 占端到端延迟的比重因此更高——这一点在上面那张端侧图里看得很直白:浅灰色的 prefill 段在 DSpark 那一行几乎没有缩短,紫色段缩短再多,总长度也只能压到那个程度。TextVQA 是最典型的例子:M5 Max 上它的解码提速有 2.69 倍,端到端却只有 1.56 倍,六个任务里垫底,原因就是它的 prefill 占比高。反过来 MMMU-Pro 输出长、prefill 占比相对小,端到端就能跑到 2.62 倍。

原文顺带提了一句值得记下的硬件趋势:M5 每个 GPU 核心内置的神经加速器缩小了这个差距。换句话说,端侧 prefill 的短板正在被硬件补,不是被算法补。

五、接受长度这一列,比倍数更能说明问题

配图右侧有一列 accept(接受长度),正文没有展开,但它其实是理解这套机制上限的钥匙。

块大小是 8,而实测接受长度落在 3.24 到 4.57 之间——也就是说,草稿模型一次猜 8 个,平均只有四成到六成能被主模型认下来,剩下的算力是白花的。这就解释了为什么解码提速停在 2 到 3 倍,而不是跟块大小同量级的 8 倍。想把接受长度往上推,要么草稿模型更强,要么任务本身更好预测。

更有意思的是把两台端侧设备横着比。同样是 MMMU-Pro 任务,M5 Max 上接受长度 4.07、解码提速 2.93 倍;M3 Ultra 上接受长度 4.19,反而略高,解码提速却只有 2.03 倍。接受长度几乎一样,收益差了将近一半——差别不在模型猜得准不准,而在草稿模型自身的运行开销相对主模型占多大比例,这完全是硬件和框架实现的事。

这给出一条实用的判断方法:接受长度决定了理论上限,硬件决定你能拿到其中多少。看到别家宣传推测解码的加速比时,先问一句是哪台机器、哪个框架、prefill 占多少——换一台设备,同一个草稿模型的价值可以差一倍。

六、三个框架怎么开

SGLang 需要带 DSpark for LFM2 支持的构建(PR #40651):

python -m sglang.launch_server \
  --model-path LiquidAI/LFM2.5-VL-3B \
  --speculative-algorithm DSPARK \
  --speculative-draft-model-path LiquidAI/LFM2.5-VL-3B-DSpark \
  --speculative-draft-attention-backend flashinfer \
  --speculative-dspark-block-size 9 \
  --disable-radix-cache

启动后在 http://localhost:30000/v1 走 OpenAI 兼容接口调用。块大小会从草稿模型的 config.json 里读取。做基线对照就是同一条命令去掉三个 --speculative-* 参数——这个对照方式值得照搬,它保证了除推测解码外其余配置完全一致。

llama.cpp 需要对应构建(PR #29339):

llama-server -m models/LFM2.5-VL-3B-F16.gguf \
  --mmproj models/mmproj-LFM2.5-VL-3B-F16.gguf \
  -md LFM2.5-2.6B-DSpark-F16.gguf \
  --spec-type draft-dspark --spec-draft-n-max 8 --spec-draft-n-min 0 \
  -fa on -ngl 99 -c 8192

MLX-VLM 需要对应构建(PR #2280),命令最短:

mlx_vlm.server --model LiquidAI/LFM2.5-VL-3B --draft-model LiquidAI/LFM2.5-VL-3B-DSpark

块大小从 sidecar 元数据里读,n-max 会被钳制到该值。

有两个细节对线上部署很关键。第一,推测解码是精确的:主模型会验证每一个被提议的 token,在贪心解码下输出与单独跑主模型完全一致。这不是近似加速,不需要重新评估输出质量。第二,每次响应的计时里会报告 draft_n / draft_n_accepted,也就是起草数与接受数——这就是上面那列接受长度的线上版本,上生产后应当把它接进监控,它是判断草稿模型在你的真实流量上是否还划算的直接指标——考虑到这还是个实验性发布,接口与块大小配置都可能变,这条监控不是可选项。

草稿模型在 Hugging Face 上提供 Safetensors 和 GGUF 两种格式。

七、什么时候值得上,什么时候别费劲

把上面的账合起来,判断标准其实很清楚。

值得上:输出较长的任务(复杂推理、多轮对话、长图像描述),decode 在总耗时里占大头,2 到 3 倍的解码提速能实打实转化成 1.9 到 2.6 倍的体感提升;同时你的内存还能容下多出来的 8.9%。

收益有限:短答案、单图、prefill 重的任务。TextVQA 那 1.56 倍和 M3 Ultra 上 GQA 的 1.30 倍就是这类场景的真实水位。1.3 倍当然也是提速,但要不要为此多背一个模型、多一套框架版本依赖,得自己权衡。

优先该做的事:如果你的端到端延迟里 prefill 和视觉编码已经占了六成以上,那么先去压视觉 token 数量、降输入分辨率、上 prefix 缓存,收益比接推测解码大得多。阿姆达尔定律是双向的——它既限制了推测解码的上限,也指明了当下真正的瓶颈在哪一边。

Transformers 直接跑 GGUF:Python 追平 llama.cpp
置顶

Transformers 直接跑 GGUF:Python 追平 llama.cpp

//

24小时热榜

Go 并发再讲清一次:关闭 channel 不等于释放资源;1.27 补上跨平台 SIMD
TOP1

Go 并发再讲清一次:关闭 channel 不等于释放资源;1.27 补上跨平台 SIMD

TikTok与阿拉巴马州就青少年成瘾指控达成至少1亿美元和解
TOP2

TikTok与阿拉巴马州就青少年成瘾指控达成至少1亿美元和解

3

斯坦福 HomeBody:让通用大模型跳过专用动作模型,直接指挥人形机器人干家务

22小时前
斯坦福 HomeBody:让通用大模型跳过专用动作模型,直接指挥人形机器人干家务
4

OpenAI Academy 升级,新增开发者与企业管理学习路径

6小时前
OpenAI Academy 升级,新增开发者与企业管理学习路径
5

OpenAI 升级 GPT-6 提示词缓存:Token 成本最高省 90%

6小时前
OpenAI 升级 GPT-6 提示词缓存:Token 成本最高省 90%
6

Airbnb深化与OpenAI合作,全面接入GPT-6 Astra加速开发

6小时前
Airbnb深化与OpenAI合作,全面接入GPT-6 Astra加速开发
7

ChatGPT广告业务拓展至东南亚及台湾地区

6小时前
ChatGPT广告业务拓展至东南亚及台湾地区
8

奥特曼联合国演讲:警惕AI失控,呼吁建立全球监管标准

6小时前
奥特曼联合国演讲:警惕AI失控,呼吁建立全球监管标准
热门标签
大模型AgentRAG微调私有化部署Prompt EngineeringChatGPTClaudeDeepSeek智能客服知识管理内容生成代码辅助数据分析金融零售制造医疗教育AI 战略数字化转型ROI 分析OpenAIAnthropicGoogle

关注公众号

前途科技微信公众号

扫码关注,获取最新 AI 资讯

免费获取 AI 落地指南

3 步完成企业诊断,获取专属转型建议

已有 200+ 企业完成诊断