diff --git a/lfm/models/lfm25-vl-3b.mdx b/lfm/models/lfm25-vl-3b.mdx
new file mode 100644
index 00000000..72a8a7a9
--- /dev/null
+++ b/lfm/models/lfm25-vl-3b.mdx
@@ -0,0 +1,63 @@
+---
+title: "LFM2.5-VL-3B"
+description: "Most capable vision-language model with grounding, screen understanding, and function calling"
+---
+
+import { VlTransformers } from "/snippets/quickstart/vl-transformers.mdx";
+import { VlVllm } from "/snippets/quickstart/vl-vllm.mdx";
+import { VlSglang } from "/snippets/quickstart/vl-sglang.mdx";
+import { VlLlamacpp } from "/snippets/quickstart/vl-llamacpp.mdx";
+
+
β Back to Vision Models
+
+LFM2.5-VL-3B is Liquid AI's most capable vision-language model, with strong grounding, screen and document understanding, and function calling. It builds on the LFM2.5-2.6B backbone with a SigLIP2 NaFlex image encoder, and answers directly for low-latency inference on-device and in the cloud.
+
+
+
+## Specifications
+
+| Property | Value |
+|----------|-------|
+| Parameters | 3B |
+| Context Length | 32K tokens |
+| Architecture | LFM2.5-VL (Dense) |
+
+
+
+
+
+ Object detection and localization from natural-language queries
+
+
+
+ Digital screens, full-page OCR, and layout-aware parsing
+
+
+
+ Tool use from text-only and vision-text inputs
+
+
+
+
+
+## Quick Start
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lfm/models/vision-models.mdx b/lfm/models/vision-models.mdx
index eede24b4..aa72387a 100644
--- a/lfm/models/vision-models.mdx
+++ b/lfm/models/vision-models.mdx
@@ -1,6 +1,6 @@
---
title: "Vision Models"
-description: "Liquid's LFM vision models pair our lightweight LFM text backbones with dynamic SigLIP2 image encoders, delivering fast multimodal inference on-device while matching larger VLMs in quality."
+description: "Liquid's LFM vision models pair our lightweight LFM text backbones with SigLIP2 image encoders, delivering fast multimodal inference on-device while matching larger VLMs in quality."
icon: "eye"
---
@@ -30,7 +30,13 @@ icon: "eye"
LFM2.5-VL builds on LFM2-VL with extended reinforcment learning training for higher performance while maintaining the same architecture and deployment footprint.
-
+
+
+
+ 3B Β· Most capable
+
+ Strongest grounding, screen understanding, and function calling.
+
1.6B Β· Recommended
@@ -46,18 +52,6 @@ icon: "eye"
-## LFM2 Models
-
-
-
-
- 3B
-
- Highest-capacity multimodal model with enhanced visual reasoning.
-
-
-
-
## Examples
Explore practical implementations using vision models:
diff --git a/link-snapshot.yaml b/link-snapshot.yaml
index a35d58d6..fe095da7 100644
--- a/link-snapshot.yaml
+++ b/link-snapshot.yaml
@@ -140,6 +140,7 @@ active:
- /lfm/key-concepts/chat-template
- /lfm/key-concepts/text-generation-and-prompting
- /lfm/key-concepts/tool-use
+ - /lfm/key-concepts/vision-capabilities
- /lfm/models/audio-models
- /lfm/models/complete-library
- /lfm/models/lfm2-1.2b
@@ -178,6 +179,7 @@ active:
- /lfm/models/lfm25-encoder-350m
- /lfm/models/lfm25-vl-1.6b
- /lfm/models/lfm25-vl-1.6b-extract
+ - /lfm/models/lfm25-vl-3b
- /lfm/models/lfm25-vl-450m
- /lfm/models/lfm25-vl-450m-extract
- /lfm/models/liquid-nanos
diff --git a/snippets/quickstart/vl-sglang.mdx b/snippets/quickstart/vl-sglang.mdx
index 2c6e8d0a..eb5d2949 100644
--- a/snippets/quickstart/vl-sglang.mdx
+++ b/snippets/quickstart/vl-sglang.mdx
@@ -1,4 +1,4 @@
-export const VlSglang = ({ modelId }) => (
+export const VlSglang = ({ modelId, samplingArgs = "temperature=0.0" }) => (
Install:
@@ -26,7 +26,7 @@ response = client.chat.completions.create(
{"type": "text", "text": "Describe what you see in this image."},
],
}],
- temperature=0.0,
+ ${samplingArgs},
max_tokens=256,
)
diff --git a/snippets/quickstart/vl-transformers.mdx b/snippets/quickstart/vl-transformers.mdx
index 4a111b29..808569d9 100644
--- a/snippets/quickstart/vl-transformers.mdx
+++ b/snippets/quickstart/vl-transformers.mdx
@@ -1,4 +1,4 @@
-export const VlTransformers = ({ modelId }) => (
+export const VlTransformers = ({ modelId, samplingArgs = "temperature=0.1, min_p=0.15, repetition_penalty=1.05" }) => (
Install:
@@ -39,7 +39,7 @@ inputs = processor.apply_chat_template(
tokenize=True,
).to(model.device)
-outputs = model.generate(**inputs, do_sample=True, temperature=0.1, min_p=0.15, repetition_penalty=1.05, max_new_tokens=256)
+outputs = model.generate(**inputs, do_sample=True, ${samplingArgs}, max_new_tokens=256)
response = processor.batch_decode(outputs, skip_special_tokens=True)[0]
print(response)`}
diff --git a/snippets/quickstart/vl-vllm.mdx b/snippets/quickstart/vl-vllm.mdx
index 6b130619..bed4c7ae 100644
--- a/snippets/quickstart/vl-vllm.mdx
+++ b/snippets/quickstart/vl-vllm.mdx
@@ -1,4 +1,4 @@
-export const VlVllm = ({ modelId }) => (
+export const VlVllm = ({ modelId, samplingArgs = "temperature=0.1, min_p=0.15, repetition_penalty=1.05" }) => (
Install:
@@ -18,12 +18,7 @@ llm = LLM(
max_model_len=1024,
)
-sampling_params = SamplingParams(
- temperature=0.1,
- min_p=0.15,
- repetition_penalty=1.05,
- max_tokens=256,
-)
+sampling_params = SamplingParams(${samplingArgs}, max_tokens=256)
messages = [{
"role": "user",