Liquid AI 开源 LFM2.5-VL-DSpark,端到端推理最高提速 2.62 倍
Liquid AI 发布面向 LFM2.5-VL-3B 视觉语言模型的 DSpark 推测解码 drafter,3B 模…
Liquid AI 在 Hugging Face Blog 上发布了一款实验性的「推测解码 drafter」模型 LFM2.5-VL-DSpark,专门用于加速其视觉语言模型 LFM2.5-VL-3B 的推理。该方案沿用此前 LFM2.5-DSpark 文本 drafter 的思路,通过在目标模型的隐层状态上挂载一个轻量预测路径,以极小的内存代价换取显著的解码速度提升,且不改变模型输出。
核心数据
- 解码速度:在端侧设备最高提速 3.13 倍,在 H100 上最高提速 2.66 倍。
- 端到端延迟:端侧最高 2.62 倍,H100 最高 2.27 倍。
- 参数开销:drafter 约 2.795 亿参数,仅占 3B 目标模型参数量的 8.9%。
- 框架支持:llama.cpp、MLX-VLM、SGLang 均提供 day-one 集成。
技术架构与训练
视觉 drafter 与文本 LFM2.5-DSpark drafter 共享同一套架构:从目标模型的固定层位抽取隐层状态,并据此一次性 draft 出 k 个候选 token。图像 patch 与文本 token 在进入这些层之前会被投影到同一表征空间,因此 drafter 处理的是与模态无关的同维隐层向量,推理算法与纯文本版本完全一致。
训练上沿用 DSpark 配方,使用视觉-语言 SFT 混合数据,并按预期工作负载加权。基于 3 层、4 层、5 层结构的消融实验,最终选择 4 层纯注意力 drafter、block size 为 9 的简化方案,并在最终数据上训练 10 个 epoch,每轮后测量接受率。
drafter 的参数分布如下:
- 解码器栈(4 层):193.0M
- 隐层投影:21.0M
- Markov head:65.5M
- Norms + confidence head:6.4k
- 合计:约 279.5M
速度实测
评测遵循 MMSpec 基准,覆盖通用 VQA、文本 VQA、图像描述、图表 VQA、复杂推理与多轮对话六类视觉任务,DSpark block size 统一设为 8。
- 端侧 MLX(M5 Max):按任务不同,解码提速 2.30–3.13 倍,端到端提升 1.56–2.62 倍。
- 端侧 llama.cpp(M3 Ultra):解码提速 1.57–2.14 倍,端到端提升 1.30–1.77 倍。
- GPU H100:解码提速 2.04–2.66 倍(注:原文给出区间下限 20.4x,应为笔误),端到端提升 1.64–2.27 倍。
视觉负载的局限性
文章明确指出推测解码只加速解码阶段,不覆盖视觉编码与 prefill。在 VLM 场景中,图像先经过视觉编码器,再由语言主干连同数百个视觉 token 一起处理,导致 prefill 在整体延迟中占比远高于纯 LLM。在算力受限的端侧设备上,这一问题尤为突出——即便解码大幅提速,端到端增益仍受 Amdahl 定律制约。这也是 drafter 设计选择较小参数量的原因之一。
使用方式
模型已在 Hugging Face 上以 Safetensors 与 GGUF 格式开源,名称为 LiquidAI/LFM2.5-VL-3B-DSpark。三种主流推理引擎的启动方式分别如下。
- SGLang:需使用带 DSpark 支持的构建(PR #40651),通过
--speculative-algorithm DSPARK与--speculative-draft-model-path启用。 - llama.cpp:使用对应 PR#29339 构建,通过
--spec-type draft-dspark与--md指定 drafter。 - MLX-VLM:使用对应 PR#2280 构建,通过
--draft-model参数挂载 drafter。
由于推测解码是「exact」的,目标模型会逐 token 验证候选,贪心解码输出与单独运行目标模型完全一致,响应级时间报告会输出 draft_n 与 draft_n_accepted 等指标。block size 优先从 config.json 或 sidecar 元数据中读取,硬件不同时建议取 8 或 9。
