{"id":4237,"date":"2026-09-25T16:09:56","date_gmt":"2026-09-25T07:09:56","guid":{"rendered":"https:\/\/localmodelwatch.tsuchitsuchi.com\/2026\/09\/25\/liquidai-lfm2-5-vl-dspark-released\/"},"modified":"2026-09-25T18:37:25","modified_gmt":"2026-09-25T09:37:25","slug":"liquidai-lfm2-5-vl-dspark-released","status":"publish","type":"post","link":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/2026\/09\/25\/liquidai-lfm2-5-vl-dspark-released\/","title":{"rendered":"LFM2.5-VL-3B-DSpark Draft Model for Vision-Language Models: 4GB+ VRAM"},"content":{"rendered":"<p><!-- lmw:facts --><\/p>\n<h2>At a Glance<\/h2>\n<div class=\"lmw-table-scroll\" tabindex=\"0\" style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;\">\n<table style=\"width:max-content;min-width:100%;border-collapse:collapse;\">\n<thead>\n<tr>\n<th>Item<\/th>\n<th>Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Repository<\/td>\n<td><a href=\"https:\/\/huggingface.co\/LiquidAI\/LFM2.5-VL-3B-DSpark\">LiquidAI\/LFM2.5-VL-3B-DSpark<\/a><\/td>\n<\/tr>\n<tr>\n<td>Family guide<\/td>\n<td><a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/model-liquidai-lfm2-5-vl-en\/\">LFM2.5-VL guide (1 articles)<\/a><\/td>\n<\/tr>\n<tr>\n<td>Published<\/td>\n<td>2026-09-18<\/td>\n<\/tr>\n<tr>\n<td>Formats<\/td>\n<td>safetensors<\/td>\n<\/tr>\n<tr>\n<td>Paper<\/td>\n<td><a href=\"https:\/\/arxiv.org\/abs\/2603.14989\">arXiv:2603.14989<\/a><\/td>\n<\/tr>\n<tr>\n<td>Source type<\/td>\n<td>Primary source (the publisher itself)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em>Values determined by this site&#8217;s code at collection time. Dates are JST.<\/em><\/p>\n<p><!-- \/lmw:facts --><\/p>\n<h2>Overview<\/h2>\n<p>LiquidAI has released an experimental DSpark draft model named &#8220;LFM2.5-VL-DSpark&#8221; (repository name: <code>LFM2.5-VL-3B-DSpark<\/code>) for their vision-language model (VLM) &#8220;LFM2.5-VL-3B&#8221; on the <a href=\"https:\/\/huggingface.co\/blog\/LiquidAI\/lfm2-5-vl-dspark\">Hugging Face Blog<\/a>. This model is designed as a draft model to apply Speculative Decoding to the target model. It was developed aiming to significantly improve inference speed while minimizing memory usage increases and without compromising output quality at all. Decoding speed is reported to improve by up to 3.13x on devices and up to 2.66x on H100, while end-to-end latency achieves speedups of up to 2.62x and 2.27x respectively.<\/p>\n<h2>Specifications<\/h2>\n<p>The specifications and configuration of the released draft model are as follows. The number of parameters for each configuration component listed in the documentation is also provided.<\/p>\n<ul>\n<li><strong>Total Parameters<\/strong>: Approx. 280M (279.5M, equivalent to approximately 8.9% of the 3B target model)<\/li>\n<li><strong>Architecture<\/strong>: Lightweight attention-only draft model with 4 layers (attention-only drafter)<\/li>\n<li><strong>Block Size<\/strong>: 9 (8 or 9 recommended during inference depending on hardware)<\/li>\n<li><strong>Component Breakdown<\/strong>:<\/li>\n<li>Decoder Stack (4 layers): 193.0M &#8211; Hidden-state projection: 21.0M &#8211; Markov head: 65.5M &#8211; LayerNorms + Confidence head: 6.4k<\/li>\n<\/ul>\n<p>This model adopts an architecture similar to the LFM2.5-DSpark draft model for text. It captures hidden states from specific layers of the target model and uses them as a condition to draft $k$ candidate tokens. Image patches and text tokens are projected into a shared representation prior to these layers, allowing them to be processed as hidden state vectors of the same dimension regardless of the input modality.<\/p>\n<h2>Performance<\/h2>\n<p>According to measurement results published directly by LiquidAI, applying this draft model confirms notable speedups in both CPU and GPU environments.<\/p>\n<p>Evaluations were conducted using the &#8220;MMSpec&#8221; benchmark, which includes six diverse vision tasks: general VQA, text VQA, image captioning, chart VQA, complex reasoning, and multi-turn conversation. The measurement results are as follows:<\/p>\n<h3>On-Device Inference (Apple Silicon)<\/h3>\n<ul>\n<li><strong>M5 Max (using MLX-VLM, block size 8)<\/strong>:<\/li>\n<li>Decoding speed: 2.30x to 3.13x faster per task &#8211; End-to-end latency: 1.56x to 2.62x improvement<\/li>\n<li><strong>M3 Ultra (using llama.cpp, block size 8)<\/strong>:<\/li>\n<li>Decoding speed: 1.57x to 2.14x faster per task &#8211; End-to-end latency: 1.30x to 1.77x improvement<\/li>\n<\/ul>\n<h3>GPU Inference<\/h3>\n<ul>\n<li><strong>NVIDIA H100 (using SGLang, block size 8)<\/strong>:<\/li>\n<li>Decoding speed: 20.4x to 2.66x faster (based on the notation &#8220;20.4x to 2.66x&#8221; in the original text) &#8211; End-to-end latency: 1.64x to 2.27x improvement<\/li>\n<\/ul>\n<h3>Performance Evaluation and Limitations<\/h3>\n<p>These measurement results indicate that this model can significantly accelerate decoding processing, particularly on edge devices equipped with Apple Silicon (such as M5 Max and M3 Ultra) and high-end GPU environments like the H100.<\/p>\n<p>On the other hand, limitations specific to vision-language models (VLMs) are also reported. Speculative decoding is a technology that accelerates only the &#8220;decoding (generation) stage&#8221; and cannot speed up processing by the image encoder or the prefill stage. In VLMs, after images pass through the vision encoder, the language backbone processes hundreds of visual tokens and text prompts, meaning the prefill accounts for a large portion of end-to-end latency. As Amdahl&#8217;s Law shows, because the unaccelerated prefill portion becomes a bottleneck, it is important to note that even if decoding speed improves by 3x or more, the overall end-to-end improvement remains modest (around 1.30x to 2.62x).<\/p>\n<h2>Strengths and Use Cases<\/h2>\n<p>&#8220;LFM2.5-VL-DSpark&#8221; is a draft model developed to accelerate the decoding (text generation) stage of its target vision-language model, &#8220;LFM2.5-VL-3B&#8221;.<\/p>\n<p>Specifically, it improves inference speed while maintaining output quality across diverse vision tasks combining images and text, such as image captioning, general VQA (Visual Question Answering), text VQA, chart interpretation (chart VQA), advanced multi-step reasoning, and multi-turn dialogue.<\/p>\n<p>This model is released as open weights, allowing for unrestricted downloading, fine-tuning, and deployment. It is particularly suited for use cases where users want to run vision-language models faster across a wide range of environments, from edge devices like Macs (Apple Silicon environments) to data center-grade H100 GPUs.<\/p>\n<p><!-- lmw:hardware --><\/p>\n<h2>Hardware Requirements<\/h2>\n<p><strong>Estimated requirements (calculated by Local Model Watch)<\/strong> \u2014 279M parameters<\/p>\n<div class=\"lmw-table-scroll\" tabindex=\"0\" style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;\">\n<table style=\"width:max-content;min-width:100%;border-collapse:collapse;\">\n<thead>\n<tr>\n<th>Your VRAM<\/th>\n<th>Quantization<\/th>\n<th>File size<\/th>\n<th>Est. memory needed<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>4GB (laptop iGPU \/ phone class)<\/td>\n<td>F16<\/td>\n<td>0.5GB<\/td>\n<td>0.6GB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Inference engine support<\/strong> (architecture name matched against each project&#8217;s own model registry in its source code, checked 2026-09-24): llama.cpp: registered, vLLM: not registered, MLX (mlx-lm): registered. &#8220;Not registered&#8221; means the name is absent from that registry today, not that the model cannot run.<\/p>\n<p><em>Memory estimates add a 20% runtime overhead (KV cache, etc.) to the actual size of the distributed files. Actual usage varies with context length, batch size and inference engine. These figures are computed by this site from file sizes, not published by the model&#8217;s authors. File sizes are measured from the converted build <a href=\"https:\/\/huggingface.co\/LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF\">LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF<\/a>. Compare with other models in our <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/vram-guide-en\/\">VRAM quick reference<\/a>. What the quantization names mean: <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/glossary-quantization-en\/\">glossary<\/a>.<\/em><\/p>\n<p><!-- \/lmw:hardware --><\/p>\n<h2>How to Get It<\/h2>\n<p>This model is distributed on Hugging Face in both Safetensors and GGUF formats. It is supported out-of-the-box (day-one) across SGLang, llama.cpp, and MLX-VLM inference engines.<\/p>\n<p>Execution steps and command examples for each engine are as follows:<\/p>\n<h3>Running with SGLang<\/h3>\n<p>Use a build of SGLang that includes DSpark support and launch the server with the following command:<\/p>\n<pre><code>python -m sglang.launch_server \\\n--model-path LiquidAI\/LFM2.5-VL-3B \\\n--speculative-algorithm DSPARK \\\n--speculative-draft-model-path LiquidAI\/LFM2.5-VL-3B-DSpark \\\n--speculative-draft-attention-backend flashinfer \\\n--speculative-dspark-block-size 9 \\\n--disable-radix-cache\n<\/code><\/pre>\n<p>Once launched, you can send queries via the OpenAI-compatible endpoint at <a href=\"http:\/\/localhost:30000\/v1\">http:\/\/localhost:30000\/v1<\/a>.<\/p>\n<h3>Running with llama.cpp<\/h3>\n<p>Using a build of llama.cpp that supports DSpark, load the target model and draft model (<code>-md<\/code>) with the <code>llama-server<\/code> command:<\/p>\n<pre><code>llama-server -m models\/LFM2.5-VL-3B-F16.gguf \\\n--mmproj models\/mmproj-LFM2.5-VL-3B-F16.gguf \\\n-md LFM2.5-2.6B-DSpark-F16.gguf \\\n--spec-type draft-dspark --spec-draft-n-max 8 --spec-draft-n-min 0 \\\n-fa on -ngl 99 -c 8192\n<\/code><\/pre>\n<h3>Running with MLX-VLM<\/h3>\n<p>In a build environment supporting MLX-VLM, run the <code>mlx_vlm.server<\/code> command specifying the target model and draft model:<\/p>\n<pre><code>mlx_vlm.server --model LiquidAI\/LFM2.5-VL-3B --draft-model LiquidAI\/LFM2.5-VL-3B-DSpark\n<\/code><\/pre>\n<p>Note that since speculative decoding using this draft model verifies all proposed tokens on the target model side, the output quality is completely identical to running the target model standalone.<\/p>\n<p><!-- lmw:variants --><\/p>\n<h2>Quantized and Converted Variants<\/h2>\n<div class=\"lmw-table-scroll\" tabindex=\"0\" style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;\">\n<p class=\"lmw-table-hint\" style=\"margin:0 0 4px;font-size:0.85em;opacity:0.7;\">\u2192 Scroll horizontally to see all columns<\/p>\n<table style=\"width:max-content;min-width:100%;border-collapse:collapse;\">\n<thead>\n<tr>\n<th>Added<\/th>\n<th>Publisher<\/th>\n<th>Format<\/th>\n<th>Repository<\/th>\n<th>Smallest VRAM tier (build, est. memory)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>2026-09-25<\/td>\n<td>LiquidAI<\/td>\n<td>GGUF<\/td>\n<td><a href=\"https:\/\/huggingface.co\/LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF\">LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF<\/a><\/td>\n<td>F16 0.6GB (fits in 4GB VRAM)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>File sizes of each build:<\/p>\n<ul>\n<li>Available builds in LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF: F16 0.5GB<\/li>\n<\/ul>\n<p>In addition, 2 converted build(s) from other uploaders exist on Hugging Face; this site lists only builds from the model&#8217;s publisher or established quantization maintainers.<\/p>\n<p><em>This section is appended automatically by Local Model Watch when a converted build of this model appears after publication. Memory figures are estimated from the size of the distributed files. What the quantization names mean: <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/glossary-quantization-en\/\">glossary<\/a>.<\/em><\/p>\n<p><!-- \/lmw:variants --><\/p>\n<p><!-- lmw:related --><\/p>\n<h2>Related Articles<\/h2>\n<ul>\n<li><a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/2026\/09\/22\/transformers-llama-cpp-gguf-support\/\">Run GGUF Models Directly in Transformers with llama.cpp Support<\/a><\/li>\n<li><a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/2026\/09\/21\/pruning-llms-like-a-physicist-cbo\/\">Pruning LLMs Like a Physicist: Constrained Binary Optimization<\/a><\/li>\n<\/ul>\n<p><!-- \/lmw:related --><\/p>\n<p><!-- lmw:next-steps --><\/p>\n<h2>What to Read Next<\/h2>\n<ul>\n<li><strong>Find models by VRAM<\/strong> (This model runs from the 4GB tier) \u2192 <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/vram-guide-8gb-en\/\">9 other models that run on a 8GB GPU<\/a><\/li>\n<li><strong>Explore the same model family<\/strong> \u2192 <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/model-liquidai-lfm2-5-vl-en\/\">LFM2.5-VL family overview (1 articles, 1 converted builds)<\/a><\/li>\n<li><strong>Other models for the same task<\/strong> \u2192 <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/models-by-task-en\/#task-vision\">11 other vision-language models<\/a><\/li>\n<\/ul>\n<p><!-- \/lmw:next-steps --><\/p>\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/huggingface.co\/blog\/LiquidAI\/lfm2-5-vl-dspark\">https:\/\/huggingface.co\/blog\/LiquidAI\/lfm2-5-vl-dspark<\/a><\/li>\n<\/ul>\n<p><!-- lmw:updates --><\/p>\n<h2>Update History<\/h2>\n<ul>\n<li>2026-09-25: Added converted builds to \u201cQuantized and Converted Variants\u201d: LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF<\/li>\n<li>2026-09-25: Updated the hardware requirements table with the actual file sizes of LiquidAI\/LFM2.5-VL-3B-DSpark-GGUF.<\/li>\n<li>2026-09-25: Changed the title to show what the article covers (VRAM requirements, file list, etc.).<\/li>\n<\/ul>\n<p><!-- \/lmw:updates --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>LiquidAI has released LFM2.5-VL-DSpark, an experimental DSpark draft model for LFM2.5-VL-3B, speeding up inference without losing output quality.<\/p>\n","protected":false},"author":1,"featured_media":4247,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[310],"tags":[1907,2276,2278,1073,2280,169,1547,1952],"class_list":["post-4237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-new-models","tag-hugging-face-blog-en","tag-lfm2-5-vl-dspark-en","tag-liquidai-en","tag-llama-cpp-en","tag-mlx-vlm-en","tag-sglang-en","tag-verified","tag-vlm-en"],"lang":"en","translations":{"en":4237,"ja":4235},"_links":{"self":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts\/4237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/comments?post=4237"}],"version-history":[{"count":6,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts\/4237\/revisions"}],"predecessor-version":[{"id":4434,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts\/4237\/revisions\/4434"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/media\/4247"}],"wp:attachment":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/media?parent=4237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/categories?post=4237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/tags?post=4237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}