Views
No views yet
mx.quantize(mode="mxfp8"), group size 32). Highest-fidelity bundle; use as the quality reference.LiquidAI/LFM2.5-VL-3B for Apple silicon (MLX).lfm2 text backbone (30 layers, 22 conv / 8 full-attention) paired
with a SigLIP2 so400m-patch16-naflex vision tower and a 2-layer projector.
Images are tiled (up to 10 tiles at 512px) into 64–256 image tokens.| Bundle | Avg bits | Size | Notes |
|---|---|---|---|
LFM2.5-VL-3B-JANG_2L | 3.14 | 1.9 GB | smallest |
LFM2.5-VL-3B-JANG_4M | 4.12 | 2.2 GB | recommended |
LFM2.5-VL-3B-JANG_6M | 6.06 | 2.9 GB | near-lossless |
LFM2.5-VL-3B-MXFP8 | 9.31 | 3.4 GB | MX FP8 reference |
chat_template.jinja and processor_config.json:<|tool_call_start|>[get_weather(city='...')]<|tool_call_end|>
into {'name': 'get_weather', 'arguments': {'city': 'Santa Clara'}}generation_config.json
and jang_config.json:| Parameter | Value |
|---|---|
temperature | 0.2 |
top_k | 50 |
top_p | 1.0 (disabled) |
repetition_penalty | 1.0 |
eos_token_id | [124900] |
top_p is not specified upstream, so it is stamped as disabled rather than
invented.<|im_start|>assistant\n generation prompt with
no <think> prefill, and no enable_thinking / thinking / preserve_thinking
kwarg changes it (verified byte-identical). preserve_thinking only governs
whether <think> in prior assistant turns is retained, which is history
handling. The bundle metadata says supports_thinking: false accordingly.1from mlx_vlm import load, generate
2from mlx_vlm.prompt_utils import apply_chat_template
3
4model, processor = load("OsaurusAI/LFM2.5-VL-3B-MXFP8")
5messages = [{"role": "user", "content": "What is in this image?"}]
6prompt = apply_chat_template(processor, model.config, messages, num_images=1)
7print(generate(model, processor, prompt, image=["photo.jpg"],
8 max_tokens=256, temperature=0.2, verbose=False))text_config.block_ff_dim — mlx_lm's lfm2 requires it; without it the FFN
dimension is computed wrong and the model fails to load.image_token_index — mirrors upstream's image_token_id; mlx_vlm reads the
_index spelling and otherwise matches zero image tokens.model.<path> and
the post-sanitize <path> spelling, because mlx_vlm looks up the latter.tool_parser_type: "pythonic" is set explicitly so mlx_lm resolves the tool
parser without relying on template string-matching.LiquidAI/LFM2.5-VL-3B terms before use.