alt.freeweights.lfm / LFM2.5-VL-3B-OptiQ-4bit
From: mlx-community <huggingface.co/mlx-community>Newsgroups: alt.freeweights.lfmSubject:

LFM2.5-VL-3B-OptiQ-4bit

Date: 2026-11-15Commit: b631101Signed: 2DC28CC7B26A283B ✓

Image text to text model with 2.7B parameters. Safetensors weights, 2.83 GB in all. Published by mlx-community under LFM-1.0 (custom).

2.7B params2.83GBLFM2.5-VL-3B-OptiQ-4bitsafetensorscustom terms
FactsParams2.7BSize2.83 GBFormatssafetensorsTaskimage text to textLicenseLFM-1.0 (custom)From sourcecustom termsread terms
# custom terms: read the license before you download
$ fw get mlx-community/LFM2.5-VL-3B-OptiQ-4bit
# manifest sha256 c3be34e0d355… · 2.83 GB · 14 files
$ fw verify ./LFM2.5-VL-3B-OptiQ-4bit mlx-community/LFM2.5-VL-3B-OptiQ-4bit
From sourceHosted (signed)mlx-community/LFM2.5-VL-3B-OptiQ-4bitLast check: 2026-11-15 00:21 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
2.83 GB
Weights
2.81 GB (safetensors)
Parameters
2.7B
Formats
safetensors
Task
image text to text
License
LFM-1.0 (custom) (custom)
Files
14, each with a sha256
Publisher
mlx-community
Added
2026-11-15
Section
alt.freeweights.lfm
Lineage

Original release from the publisher.

Base model: LiquidAI/LFM2.5-VL-3B

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 00:21 UTCpassed

Model card

From the publisher at commit b631101. Shown as plain text with links; images open at the publisher.

mlx-community/LFM2.5-VL-3B-OptiQ-4bit#

Built with mlx-optiq, the MLX-native toolkit to quantize, fine-tune, and serve LLMs locally on Apple Silicon, no PyTorch and no cloud. All OptiQ quants · Docs

Liquid's on-device vision-language model, quantized for a Mac. This is an OptiQ mixed-precision quant of LiquidAI/LFM2.5-VL-3B-MLX-bf16. 2.8 GB on disk, down from 6.3 GB.

LFM2.5-VL pairs a SigLIP2 encoder with the LFM2.5 hybrid language tower: short convolutional blocks alternate with full-attention blocks, and only the attention blocks carry a KV cache, so memory grows slowly as context does. OptiQ quantizes the language tower to mixed 4/8-bit and keeps the vision tower at bf16 in a sidecar, so one checkpoint does text and images.

It reads images#

Ran through this quantized model on Apple Silicon, MLX only:

InputOutput
a blue square on white"A blue square."
a green triangle on white"Green triangle."
a red circle on white"A red circle."

What it is#

PropertyValue
BaseLiquidAI/LFM2.5-VL-3B-MLX-bf16 (SigLIP2 + LFM2.5, ~3B params)
MethodOptiQ mixed-precision, sensitivity-driven (bf16 reference)
Language towerper-layer 4/8-bit: 88 layers at 4-bit, 78 at 8-bit
Vision towerbf16, kept in optiq/optiq_vision.safetensors (441 tensors)
On disk1.98 GB language + 0.85 GB vision
Resolutionnative aspect ratio; position embeddings resampled per image

The vision tower runs natively in MLX with no PyTorch and no mlx-vlm at runtime. It was checked against the reference implementation across four patch grids and matches to bf16 round-off, so image answers are the base model's rather than an approximation.

Following llama.cpp's naming for mixed quants, the "4bit" label denotes the family, not the weighted average.

Capability Score#

Six-metric mean (the standard OptiQ text eval).

MetricScore
MMLU (5-shot, 969 samples)54.3%
GSM8K (1000 samples)44.6%
IFEval (full set, strict)77.4%
BFCL-V3 simple (200 calls)0.0%
HumanEval (164 problems, pass@1)40.2%
HashHop (long-context retrieval)11.0%
Capability Score (mean of 6)37.93

It does not initiate tool calls. The 0.0% is a real result, not a harness artifact: on BFCL's prompts this model works the answer out itself rather than calling the function. Asked "find the area of a triangle with base 10 and height 5" it derives the formula and answers 25, while its text-only sibling LFM2.5-1.2B-Instruct calls calculate_triangle_area and scores 45.0%. Both were run through the same harness with the same chat template logic.

It emits correct calls when told to use a tool — <|tool_call_start|>[get_weather(city="Paris")]<|tool_call_end|> parses cleanly — so the capability is there; the model just does not reach for it unprompted. If you need agentic tool use at this size, take the text 1.2B or 2.6B instead.

Long-context retrieval also falls off quickly: 40% at one hop, near zero beyond. That is what a hybrid with few attention layers predicts, and it is the trade that keeps its KV cache small.

Run it#

pip install "mlx-optiq>=0.4.20"

For image input, serve it with an OpenAI + Anthropic-compatible endpoint:

optiq serve --model mlx-community/LFM2.5-VL-3B-OptiQ-4bit

Then send an image as image_url content. Text-only generation also loads directly:

import optiq  # registers the lfm2_vl arch + vision sidecar
from mlx_lm import load, generate

model, tok = load("mlx-community/LFM2.5-VL-3B-OptiQ-4bit")
msgs = [{"role": "user", "content": "Explain why the sky is blue."}]
prompt = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
print(generate(model, tok, prompt=prompt, max_tokens=400))

Files

14 files · 2.83 GBWeights 2.81 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 14 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md4.77 KB6a0ce018b2f4243069bcb16fcf1afd01aa8dbf0e71f5a211bd14e296c0ec2e65
chat_template.jinja5.49 KB5fcdedd081557f8bb66330f8e0a03b9c693bf73a3bf1d27e1d977c1c565eb3ca
config.json34.9 KB0a32142b090aee94416851d024792359da50d606ede24aea68a96b187b686327
generation_config.json240 B02a6da1a8f062dfd0e5da5c7434e23a365120fb72ea7031ec871c09faf4b8ac4
kv_config.json527 Bc2cec8c63cf473e602d7760af1ee5929a3f0877fcad37973ffa59b45bc7d88c7
model.safetensors1.96 GB4f7089c0d10df2b1f83c440928bc585219a86f79d9fa2990bd5affa16504d28a
model.safetensors.index.json77.1 KB865c84ce9988ed51b1823f17a6c3e772554d2967b03d74d217c0d11876115a37
optiq/metadata.json14.7 KB1149b0c27ff901daf287f7965ad3f5c462ca48a57d8e91fae550c3d167632ec2
optiq/sensitivity.json37.3 KBc0ce9fa037a1b392a9ea09d51f4707f886b8b3cf455ea72578c98d04361d9cc2
optiq_vision.safetensors853 MB18c7399bb1226a028937617a599e11eb470e171c170c23101e3addaf6a37a6cd
processor_config.json662 Bd3940a1cbf59c227232db7414261257e795fc1f93ae74c2e68bea63f1d3017e0
tokenizer.json17.9 MBc4687c0046da6579aba6f9aa713e9bed61e5fd210b0e012028ae57751d028689
tokenizer_config.json541 B6a7ea33347e1025fcfe644f56f1e68be44e083e9ed2a9f26bc7467885dbdcad7
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
b6311011d9 pinned now2026-11-15 00:21 UTC14 files · 2.83 GB

Use it

# custom terms: read the license before you download
$ fw get mlx-community/LFM2.5-VL-3B-OptiQ-4bit
# manifest sha256 c3be34e0d355… · 2.83 GB · 14 files
$ fw verify ./LFM2.5-VL-3B-OptiQ-4bit mlx-community/LFM2.5-VL-3B-OptiQ-4bit
Terms that come with these files. LFM 1.0: commercial use only for organisations under US$10M annual revenue. Keep a copy of the license with the files.
Custom license (custom). Read the license text first. Open this panel to show the commands once you accept its terms.
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/mlx-community/LFM2.5-VL-3B-OptiQ-4bit.json --dir ./LFM2.5-VL-3B-OptiQ-4bit $ python3 fw.py verify ./LFM2.5-VL-3B-OptiQ-4bit ./mlx-community__LFM2.5-VL-3B-OptiQ-4bit.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mlx-community/LFM2.5-VL-3B-OptiQ-4bit --revision b6311011d95c8894a57289bba8b916e6fbae9a61 --local-dir ./LFM2.5-VL-3B-OptiQ-4bit
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("mlx-community/LFM2.5-VL-3B-OptiQ-4bit", revision="b6311011d95c8894a57289bba8b916e6fbae9a61") model = AutoModelForImageTextToText.from_pretrained("mlx-community/LFM2.5-VL-3B-OptiQ-4bit", revision="b6311011d95c8894a57289bba8b916e6fbae9a61", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve mlx-community/LFM2.5-VL-3B-OptiQ-4bit --revision b6311011d95c8894a57289bba8b916e6fbae9a61

License

Name
LFM Open License v1.0
Id
LicenseRef-LFM-1.0
Class
Custom terms
Redistribution
click-through
Listing
Hosted (signed)
Terms
LFM 1.0: commercial use only for organisations under US$10M annual revenue. Keep a copy of the license with the files.
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
6a0ce018b2f4243069bcb16fcf1afd01aa8dbf0e71f5a211bd14e296c0ec2e65
Terms gate
Yes. The commands stay folded until you open them after reading the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: mlx-community <huggingface.co/mlx-community>Newsgroups: alt.freeweights.lfmSubject: LFM2.5-VL-3B-OptiQ-4bitDate: 2026-11-15Commit: b631101Signed: 2DC28CC7B26A283B ✓
Upstream
mlx-community/LFM2.5-VL-3B-OptiQ-4bit
Pinned commit
b6311011d95c8894a57289bba8b916e6fbae9a61
Manifest
LFM2.5-VL-3B-OptiQ-4bit.json · .minisig
Manifest sha256
c3be34e0d355697f87fa679e064dca9712a403bf9adc950ec169ae63af4a15d0
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 00:21 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/mlx-community/LFM2.5-VL-3B-OptiQ-4bit.json $ curl -O https://freeweights.allternit.com/manifests/mlx-community/LFM2.5-VL-3B-OptiQ-4bit.json.minisig $ minisign -Vm LFM2.5-VL-3B-OptiQ-4bit.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

LiquidAI/LFM2.5-VL-3B (not in this catalog) · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Read license, then download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mlx-community/LFM2.5-VL-3B-OptiQ-4bit
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. LFM2.5-VL-3B-OptiQ-4bit.json. Provenance. Takedown history: none.
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-Extract
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-RAG
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-Tool
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-2.6B
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-2.6B-Exp