Liquid AI
Try LFM β€’ Docs β€’ Discord

LFM2.5-VL-3B-DSpark

LFM2.5-VL-3B-DSpark is an experimental speculative-decoding draft model that brings DSpark to vision-language models. It allows LiquidAI/LFM2.5-VL-3B to decode substantially faster without changing its output, for a minimal increase in memory footprint.

This is a drafter for LiquidAI/LFM2.5-VL-3B. In SGLang on a single H100, decoding runs up to 2.66Γ— faster. On Apple silicon, it reaches up to 3.13Γ— with MLX-VLM on an M5 Max and up to 2.14Γ— with llama.cpp on an M3 Ultra.

Find more information about LFM2.5-VL-3B-DSpark in our blog post.

πŸ—’οΈ Model Details

LFM2.5-VL-3B-DSpark is a DSpark speculative-decoding draft model with the following features:

  • Target model: LiquidAI/LFM2.5-VL-3B
  • Draft parameters: 279.5M (BF16)
  • Backbone: 4 full attention layers, hidden_size=2048, intermediate_size=6144 with SiLU/SwiGLU, GQA with num_attention_heads=32 / num_key_value_heads=8, head_dim=64
  • Extra heads: Markov head (rank 256) + confidence head
  • Block size: 9 during training; 8 or 9 at inference, depending on hardware
  • Vocabulary: 128,000

On Apple silicon the drafter is run at block size 8 rather than 9.

Use each drafter checkpoint with its corresponding target model:

πŸ“Š Performance

Benchmarks

Speculative decoding is exact under greedy decoding: the target verifies every proposed token, so the generated text is what the target would have produced on its own. Under matched sampling settings at non-zero temperatures, speculative decoding preserves the target model's output distribution. You get the speedup, not a different model.

See LiquidAI/LFM2.5-VL-3B for quality benchmarks.

Draft acceptance

This table reports the mean number of draft tokens accepted per target verification pass at batch size 1 and temperature 0. Higher acceptance generally enables greater acceleration, but the measured speedup also depends on hardware and runtime overhead.

Following MMSpec, the evaluation covers General VQA, Text VQA, Image Captioning, Chart VQA, Complex Reasoning, and Multi-turn Conversation.

Benchmark 1Γ—H100 (SGLang, block 9) Apple M5 Max (MLX-VLM, block 8) Apple M3 Ultra (llama.cpp, block 8)
MMMU-Pro 4.11 4.07 4.19
Multi-turn 3.46 3.24 3.31
COCO 4.57 4.21 4.50
CharXiv 4.11 4.34 4.04
TextVQA 3.74 4.08 3.58
GQA 4.14 3.77 3.93

Measured inference speedup

This table reports the resulting runtime performance relative to the same target model without DSpark. Each cell is formatted as decode / end-to-end.

Dataset 1Γ—H100 (SGLang) Apple M5 Max (MLX-VLM) Apple M3 Ultra (llama.cpp)
MMMU-Pro 2.43Γ— / 1.97Γ— 2.93Γ— / 2.62Γ— 2.03Γ— / 1.74Γ—
Multi-turn 2.04Γ— / 1.83Γ— 2.30Γ— / 1.91Γ— 1.57Γ— / 1.37Γ—
COCO 2.66Γ— / 2.27Γ— 3.13Γ— / 2.59Γ— 2.14Γ— / 1.77Γ—
CharXiv 2.39Γ— / 1.97Γ— 2.94Γ— / 1.71Γ— 1.87Γ— / 1.56Γ—
TextVQA 2.14Γ— / 1.64Γ— 2.69Γ— / 1.56Γ— 1.64Γ— / 1.33Γ—
GQA 2.35Γ— / 1.77Γ— 2.67Γ— / 1.93Γ— 1.77Γ— / 1.30Γ—

All measurements use 16-bit processing for both the vision encoder and language backbone. The H100 results use SGLang on one H100 80GB in BF16 at batch size 1, temperature 0, and block size 9. The Apple results use FP16 weights at batch size 1, temperature 0, block size 8, and up to 2,048 output tokens. Measurements were collected with Pipette.

πŸƒ Inference

LFM2.5-VL-3B-DSpark is supported by SGLang for NVIDIA GPUs and MLX-VLM for Apple silicon. For llama.cpp, use the GGUF checkpoint.

SGLang

Requires SGLang v0.5.19 or newer. Launch the target with the draft attached:

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 --mem-fraction-static 0.8 --port 30000

Then query the OpenAI-compatible endpoint at http://localhost:30000/v1. The baseline is the same command without the --speculative-* flags.

MLX-VLM

On Apple silicon, use MLX-VLM v0.7.2 or newer. The drafter is detected automatically when passed with --draft-model:

python -m mlx_vlm.generate \
  --model LiquidAI/LFM2.5-VL-3B \
  --draft-model LiquidAI/LFM2.5-VL-3B-DSpark \
  --draft-block-size 8 \
  --image /path/to/image.jpg \
  --prompt "Describe this image." \
  --max-tokens 256 \
  --temperature 0

DSpark decoding in MLX-VLM currently uses greedy sampling, so set --temperature 0.

πŸ“¬ Contact

Citation

@article{liquidAI2026VL3B,
  author  = {Liquid AI},
  title   = {LFM2.5-VL-3B: A Better and Faster Vision-Language Model for the Edge},
  journal = {Liquid AI Blog},
  year    = {2026},
  note    = {www.liquid.ai/blog/lfm2-5-vl-3b},
}
@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},
}
Downloads last month
79
Safetensors
Model size
0.3B params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for LiquidAI/LFM2.5-VL-3B-DSpark

Finetuned
(16)
this model
Finetunes
1 model
Quantizations
3 models

Paper for LiquidAI/LFM2.5-VL-3B-DSpark

Article mentioning LiquidAI/LFM2.5-VL-3B-DSpark