使用 LFM2.5-VL-DSpark 加速视觉语言模型推理
今天,我们发布了针对视觉语言模型(VLM)LFM2.5-VL-3B 的实验版 DSpark 草稿模型。与近期发布的 LFM2.5-DSpark 草稿模型 类似,它增加了推测解码路径,在保持输出质量不变的前提下,以极小的内存占用增加换取更大的加速效果。
- 更快的推理:设备端解码加速最高达 3.13 倍,H100 上为 2.66 倍;端到端加速最高分别为 2.62 倍和 2.27 倍。
- 内存成本低:草稿模型增加 2.8 亿参数,仅占 3B 目标模型参数量的 8.9%。
- 开箱即用:支持 llama.cpp、MLX-VLM 和 SGLang 的 LFM 兼容 DSpark 集成。
推测解码在 VLM 中如何工作
视觉草稿模型采用与我们文本 LFM2.5-DSpark 草稿模型相同的架构:它捕捉目标模型在特定固定层(tapped layers)的隐藏状态,并基于这些状态起草由 k 个候选词元组成的块。图像块和文本词元在这些层之前被投影到共享表示中,因此无论输入模态如何,草稿模型处理的隐藏状态向量维度均保持一致。因此,文本模型的推理算法保持不变。

训练与架构
我们遵循 DSpark 方案,使用视觉语言 SFT 数据混合物,并针对模型预期服务的任务进行权重倾斜。基于对 3、4 和 5 层的消融实验,草稿模型是一个简化的纯注意力草稿器,包含 4 层,块大小为 9。我们在最终数据混合物上运行了 10 个 epoch,并在每个 epoch 后测量接受率,结果显示随着额外训练词元的增加,接受率提升,直至进入边际收益递减阶段。在推理时,我们建议根据硬件选择块大小为 8 或 9。
生成的草稿模型约包含 2.8 亿参数,使部署模型的参数量仅增加 8.9%。
| 组件 | LFM2.5-VL-3B |
|---|---|
| Decoder 堆栈(4 层) | 193.0M |
| 隐状态投影 | 21.0M |
| Markov head | 65.5M |
| Norms + 置信度 head | 6.4k |
| 总计 | 279.5M |
CPU 与 GPU 上的推理加速
LFM2.5-VL-3B 的 DSpark draft 模型首发即支持 llama.cpp、MLX-VLM 和 SGLang。
我们分别在端侧推理和 GPU 推理两种场景下进行了测量。两种配置均采用大小为 8 的 DSpark block,并参照 MMSpec benchmark,在六类视觉任务上评估,包括通用 VQA、文本 VQA、图像描述、图表 VQA、复杂推理和多轮对话。
端侧推理。在 M5 Max 上使用 MLX,各任务的解码速度提升 2.30x 到 3.13x,端到端延迟降低 1.56x 到 2.62x。在 M3 Ultra 上使用 llama.cpp,解码速度提升 1.57x 到 2.14x,端到端提升 1.30x 到 1.77x。
GPU 推理。在 H100 上,同一个 drafter 可将解码速度提升 20.4x 到 2.66x,端到端性能提升 1.64x 到 2.27x。
投机解码在视觉任务上的局限性
在大语言模型中,预填充(prefill)阶段主要受计算能力限制,其开销随提示词长度的增加呈(次)平方级增长。视觉语言模型(VLMs)进一步加剧了这一问题:图像先经过视觉编码器处理,随后语言主干网络需并行处理数百个视觉 Token 和文本提示词。由于边缘设备的算力远低于数据中心 GPU,预填充在端到端延迟中占据更大比例,Apple 芯片和 H100 上的首字延迟(time-to-first-token)及解码时间测量结果已证实这一点。(M5 芯片每核心 GPU 内置的神经加速器有助于缩小这一差距)。
推测解码(Speculative decoding)仅能加速解码阶段,无法提升视觉编码或预填充的速度。当这些阶段已占据大部分实际运行时间时,即便解码环节有大幅加速,端到端性能的提升也十分有限。这就是阿姆达尔定律(Amdahl's law):整体加速效果受限于未被加速的工作负载部分。
如何使用 LFM2.5-VL-DSpark
使用 SGLang 运行 DSpark 草稿模型,需要支持 LFM2 目标的 DSpark 功能的 SGLang 版本(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
随后通过 OpenAI 兼容接口 http://localhost:30000/v1 发起查询。块大小(block size)从草稿模型的 config.json 中读取;基线配置即为去掉上述三个 --speculative-* 参数后的相同命令。
使用 llama.cpp 运行则需对应的 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,因此贪心输出与仅用目标模型完全一致;每次响应的timings会报告draft_n / draft_n_accepted。
快速上手
我们的视觉 DSpark 草稿模型已在 Hugging Face 上以 Safetensors 和 GGUF 格式 发布。
凭借 LFM2.5,我们正在实现「AI 随处运行」的愿景。这些模型具备以下特点:
- 开放权重——可自由下载、微调并部署,无任何限制。
- 首日即高性能——首日即支持 llama.cpp、MLX 和 SGLang。
- 完整模型家族——从用于自定义的基座模型到专精音频和视觉的变体,一套架构覆盖多种使用场景。
我们迫不及待想看看你会创造什么。
引用格式
引用本文时,请使用以下参考条目或 BibTeX 格式:
Liquid AI, "LFM2.5-VL-DSpark: 加速边缘及更远场景的视觉-语言模型", Liquid AI Blog, 2026 年 9 月。
@article{liquidAI2026vldspark,
author = {Liquid AI},
title = {LFM2.5-VL-DSpark: Accelerating vision-language models on edge and beyond},
journal = {Liquid AI Blog},
year = {2026},
note = {www.liquid.ai/blog/lfm2-5-vl-dspark},
}

