Views
No views yet


| Model | Parameters | Description |
|---|---|---|
| LFM2.5-1.2B-Base | 1.2B | Pre-trained base model for fine-tuning |
| LFM2.5-1.2B-Instruct | 1.2B | General-purpose instruction-tuned model |
| LFM2.5-1.2B-Thinking | 1.2B | General-purpose reasoning model |
| LFM2.5-1.2B-JP | 1.2B | Japanese-optimized chat model |
| LFM2.5-VL-1.6B | 1.6B | Vision-language model with fast inference |
| LFM2.5-Audio-1.5B | 1.5B | Audio-language model for speech and text I/O |
temperature: 0.05top_k: 50repetition_penalty: 1.05| Model | Description |
|---|---|
| LFM2.5-1.2B-Thinking | Original model checkpoint in native format. Best for fine-tuning or inference with Transformers and vLLM. |
| LFM2.5-1.2B-Thinking-GGUF | Quantized format for llama.cpp and compatible tools. Optimized for CPU inference and local deployment with reduced memory usage. |
| LFM2.5-1.2B-Thinking-ONNX | ONNX Runtime format for cross-platform deployment. Enables hardware-accelerated inference across diverse environments (cloud, edge, mobile). |
| LFM2.5-1.2B-Thinking-MLX | MLX format for Apple Silicon. Optimized for fast inference on Mac devices using the MLX framework. |
<|startoftext|><|im_start|>system
You are a helpful assistant trained by Liquid AI.<|im_end|>
<|im_start|>user
What is C. elegans?<|im_end|>
<|im_start|>assistanttokenizer.apply_chat_template() to format your messages automatically.tokenizer.apply_chat_template() function with tools.<|tool_call_start|> and <|tool_call_end|> special tokens), as the assistant answer. You can override this behavior by asking the model to output JSON function calls in the system prompt.<|startoftext|><|im_start|>system
List of tools: [{"name": "get_candidate_status", "description": "Retrieves the current status of a candidate in the recruitment process", "parameters": {"type": "object", "properties": {"candidate_id": {"type": "string", "description": "Unique identifier for the candidate"}}, "required": ["candidate_id"]}}]<|im_end|>
<|im_start|>user
What is the current status of candidate ID 12345?<|im_end|>
<|im_start|>assistant
<|tool_call_start|>[get_candidate_status(candidate_id="12345")]<|tool_call_end|>Checking the current status of candidate ID 12345.<|im_end|>
<|im_start|>tool
[{"candidate_id": "12345", "status": "Interview Scheduled", "position": "Clinical Research Associate", "date": "2023-11-20"}]<|im_end|>
<|im_start|>assistant
The candidate with ID 12345 is currently in the "Interview Scheduled" stage for the position of Clinical Research Associate, with an interview date set for 2023-11-20.<|im_end|>| Name | Description | Docs | Notebook |
|---|---|---|---|
| Transformers | Simple inference with direct access to model internals. | Link | ![]() |
| vLLM | High-throughput production deployments with GPU. | Link | ![]() |
| llama.cpp | Cross-platform inference with CPU offloading. | Link | ![]() |
| MLX | Apple's machine learning framework optimized for Apple Silicon. | Link | — |
| LM Studio | Desktop application for running LLMs locally. | Link | — |
1from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
2
3model_id = "LiquidAI/LFM2.5-1.2B-Thinking"
4model = AutoModelForCausalLM.from_pretrained(
5 model_id,
6 device_map="auto",
7 dtype="bfloat16",
8# attn_implementation="flash_attention_2" <- uncomment on compatible GPU
9)
10tokenizer = AutoTokenizer.from_pretrained(model_id)
11streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
12
13prompt = "What is C. elegans?"
14
15input_ids = tokenizer.apply_chat_template(
16 [{"role": "user", "content": prompt}],
17 add_generation_prompt=True,
18 return_tensors="pt",
19 tokenize=True,
20).to(model.device)
21
22output = model.generate(
23 input_ids,
24 do_sample=True,
25 temperature=0.1,
26 top_k=50,
27 top_p=0.1,
28 repetition_penalty=1.05,
29 max_new_tokens=512,
30 streamer=streamer,
31)| Name | Description | Docs | Notebook |
|---|---|---|---|
| CPT (Unsloth) | Continued Pre-Training using Unsloth for text completion. | Link | ![]() |
| CPT (Unsloth) | Continued Pre-Training using Unsloth for translation. | Link | ![]() |
| SFT (Unsloth) | Supervised Fine-Tuning with LoRA using Unsloth. | Link | ![]() |
| SFT (TRL) | Supervised Fine-Tuning with LoRA using TRL. | Link | ![]() |
| DPO (TRL) | Direct Preference Optimization with LoRA using TRL. | Link | ![]() |
| GRPO (Unsloth) | GRPO with LoRA using Unsloth. | Link | ![]() |
| GRPO (TRL) | GRPO with LoRA using TRL. | Link | ![]() |
| Model | GPQA Diamond | MMLU-Pro | IFEval | IFBench | Multi-IF | GSM8K | MATH-500 | AIME25 | BFCLv3 |
|---|---|---|---|---|---|---|---|---|---|
| LFM2.5-1.2B-Thinking | 37.86 (± 0.83) | 49.65 (± 0.18) | 88.42 (± 0.35) | 44.85 (± 0.73) | 69.33 (± 0.09) | 85.60 (± 0.00) | 87.96 (± 0.72) | 31.73 (± 1.81) | 56.97 (± 0.30) |
| Qwen3-1.7B (thinking mode) | 36.93 (± 2.07) | 56.68 (± 1.29) | 71.65 (± 0.13) | 25.88 (± 0.30) | 60.33 (± 0.02) | 85.60 (± 1.13) | 81.92 (± 2.99) | 36.27 (± 1.24) | 55.41 (± 0.04) |
| LFM2.5-1.2B-Instruct | 38.89 | 44.35 | 86.23 | 47.33 | 60.98 | 64.52 | 63.20 | 14.00 | 49.12 |
| Qwen3-1.7B (instruct mode) | 34.85 | 42.91 | 73.68 | 21.33 | 56.48 | 33.66 | 70.40 | 9.33 | 46.30 |
| Granite-4.0-H-1B | 24.34 | 27.64 | 80.08 | 24.93 | 47.56 | 69.60 | 47.20 | 1 | 50.69 |
| Granite-4.0-1B | 24.24 | 33.53 | 79.61 | 21 | 43.65 | 73.42 | 44.80 | 3.33 | 52.43 |
| Gemma 3 1B IT | 24.24 | 14.04 | 63.25 | 20.47 | 44.31 | 42.15 | 45.20 | 1 | 16.64 |
| Llama 3.2 1B Instruct | 16.57 | 20.80 | 52.37 | 15.93 | 30.16 | 39.04 | 23.40 | 0.33 | 21.44 |
temperature=0.6 for thinking models. For instruct models, we report scores using greedy decoding.

| Device | Inference | Framework | Model | Prefill (tok/s) | Decode (tok/s) | Memory |
|---|---|---|---|---|---|---|
| AMD Ryzen AI 395+ | NPU | FastFlowLM | LFM2.5-1.2B-Thinking | 1487 | 60 | 1600MB (full context) |
| AMD Ryzen AI 9 HX 370 | NPU | FastFlowLM | LFM2.5-1.2B-Thinking | 1487 | 57 | 1600MB (full context) |
| AMD Ryzen AI 9 HX 370 | CPU | llama.cpp (Q4_0) | LFM2.5-1.2B-Thinking | 2975 | 116 | 856MB |
| Qualcomm Snapdragon® X Elite | NPU | NexaML | LFM2.5-1.2B-Thinking | 2591 | 63 | 0.9GB |
| Qualcomm Snapdragon® Gen4 (ROG Phone9 Pro) | NPU | NexaML | LFM2.5-1.2B-Thinking | 4391 | 82 | 0.9GB |
| Qualcomm Dragonwing IQ9 (IQ-9075) (IoT) | NPU | NexaML | LFM2.5-1.2B-Thinking | 2143 | 53 | 0.9 GB |
| Qualcomm Snapdragon® Gen4 (Samsung Galaxy S25 Ultra) | CPU | llama.cpp (Q4_0) | LFM2.5-1.2B-Thinking | 335 | 70 | 719MB |
1@article{liquidAI2026thinking,
2 author = {Liquid AI},
3 title = {LFM2.5-1.2B-Thinking: On-Device Reasoning Under 1GB},
4 journal = {Liquid AI Blog},
5 year = {2026},
6 note = {www.liquid.ai/blog/lfm2-5-1-2b-thinking-on-device-reasoning-under-1gb},
7}1@article{liquidai2025lfm2,
2 title={LFM2 Technical Report},
3 author={Liquid AI},
4 journal={arXiv preprint arXiv:2511.23404},
5 year={2025}
6}