Hugging Face博客披露LFM2.5-DSpark模型通过某优化技术实现推理加速,最高可达3.2倍性能提升。
更快的推理:在 GPU 上吞吐量提升最高达 3.18 倍,端侧设备上最高达 2.87 倍。
面向端侧 agent 推理:LFM2.5-2.6B 的函数调用延迟平均降低 57%。
发布首日即支持 llama.cpp 和 SGLang:LFM 兼容的 DSpark 集成已开源至上游
LLM 推理中的 decode 阶段传统上是内存受限的。大部分延迟来自将权重从 DRAM 流入 SRAM,而非密集计算。投机解码(Speculative decoding)通过使用一个轻量级 draft 模型来生成候选 token,然后让目标模型在单次前向传播中验证所有候选 token,在加载权重时将成本分摊到所有待验证的 token 上。
多年以来,学界提出了多种投机方法,其中最突出的包括 EAGLE-3、DFlash,以及最近的 DSpark——它结合了三个组件:
DFlash 风格的并行 backbone,以目标模型的上下文特征为条件,在单次前向传播中为所有 draft token 生成隐藏状态。
轻量级顺序 head,建模为相邻 token 之间的马尔可夫链,引入 token 间依赖,提升后续位置的接受率。
置信度调度的验证器,预测每个 token 的存活概率,并在验证成本超过收益时剪枝低置信度后缀。

我们遵循 DSpark 配方,使用更大、更多样化的数据混合,涵盖 SFT、chat、code 和 function-calling 数据。基于我们的消融实验,draft 模型的初始版本是简化的纯注意力(attention-only)draft 模型,共 5 层,每 block 9 个 token。对于每个 draft 模型,我们在整个数据集上运行 15 个 epoch,选择接受率最高的 epoch,而非损失最低的 epoch。
最终得到的 draft 模型相对较小,每个约 3 亿参数。
在贪婪解码下,draft token 只有在与目标模型分布一致时才会被接受。拒绝时,目标模型自己的 token 会替代其位置。因此输出的序列在构造上与基线贪婪解码完全相同,基准准确率(pass@1 或精确匹配)保持不变。
我们的 LFM2.5 DSpark draft 模型随附发布首日即支持 llama.cpp(实现基于官方代码库,我们以实验性 Metal 内核运行)和 SGLang(实现基于官方 SGLang 的 DSpark 实现)。
我们在配备 M4 Max MacBook Pro 上使用 llama.cpp 和 Metal 测量端侧吞吐量,采用 FP16 GGUF 权重,最多 256 个输出 token。在单张 H100 80 GB 上使用 SGLang 测量 GPU 吞吐量,采用 BF16。两种配置均使用 DSpark block size 为 9,batch size 为 1,temperature 为 0。我们在五个基准数据集上评估它们。
三个 draft 模型在大规模加速器(H100)和边缘部署(M4 Max MacBook)上都带来了显著的吞吐量提升。
对于 LFM2.5-2.6B,在 MacBook 上的加速效果尤为明显,它将用户可享受的交互性水平远远超越了大多数私有云模型提供的吞吐量(约 140 tok/s,因数据集而异)。
在各种多工具场景中,DSpark 将 LFM2.5-2.6B 的延迟平均降低 57%。

对于 LFM2.5-1.2B-Instruct,数据集接受率的方差更大,因此加速效果因底层文本分布不同而异,差距高达 52%。
对于 LFM2.5-8B-A1B,接受率相比两个 dense 模型有所提升,但端侧平均仅提升 18%。这一差距源于 llama.cpp Metal 后端当前的 MoE 实现,以及验证 k 个 token 会激活更多 expert,从而产生更多权重流量——相比单次 decode 步骤而言成本更高。
使用 SGLang 运行 DSpark draft 模型需要支持 LFM2 目标 DSpark 的 SGLang 构建(PR #31041)。启动目标模型并附加 draft:
python -m sglang.launch_server \
--model-path LiquidAI/LFM2.5-2.6B \
--speculative-algorithm DSPARK \
--speculative-draft-model-path LiquidAI/LFM2.5-2.6B-DSpark \
--speculative-draft-attention-backend flashinfer \
--disable-radix-cache --mem-fraction-static 0.75 --port 30000
然后在 http://localhost:30000/v1 查询 OpenAI 兼容端点。block size 从 draft 的 config.json 中读取;基线是相同命令但不带三个 --speculative-* 参数。
使用 llama.cpp 运行需要相应的 llama.cpp 构建(PR#27383)。
llama-server -m LFM2.5-2.6B-F16.gguf \
-md LFM2.5-2.6B-DSpark-F16.gguf \
--spec-type draft-dspark --spec-draft-n-max 10 --spec-draft-n-min 0 \
-fa on -ngl 99
block size 从 sidecar 元数据中读取(n-max 被限制在其范围内)。投机解码是精确的:目标模型验证每个提议的 token,因此贪婪输出与目标模型单独输出一致;每个响应的计时报告 draft_n / draft_n_accepted。
DSpark draft 模型 checkpoint 在 Hugging Face 上提供,格式为 Safetensors 和 GGUF:
Safetensors:LFM2.5-2.6B-DSpark、LFM2.5-1.2B-Instruct-DSpark 和 LFM2.5-8B-A1B-DSpark
GGUF:LFM2.5-2.6B-DSpark-GGUF、LFM2.5-1.2B-Instruct-DSpark-GGUF、LFM2.5-8B-A1B-DSpark-GGUF
迫不及待想看到你们用它构建出什么。
引用请使用以下参考或 BibTeX:
Liquid AI, "LFM2.5-DSpark: Up to 3.2x Faster Inference from H100 to MacBook", Liquid AI Blog, Aug 2026.
@article{liquidAI2026dspark,
author = {Liquid AI},
title = {LFM2.5-DSpark: Up to 3.2x Faster Inference from H100 to MacBook},
journal = {Liquid AI Blog},
year = {2026},
note = {www.liquid.ai/blog/lfm2.5-dspark},
}