LiquidAI/LFM2-700M
Run locally on Apple devices with Mirai
- Type
- local
- From
- LiquidAI
- Quantization
- No
- Parameters
- 700M
- Size
- 1.4 GB

LFM2-700M
LFM2-700M is a 742M-parameter hybrid language model from Liquid AI, purpose-built for edge AI and on-device deployment. Part of the second-generation LFM2 family, it combines a novel architecture of multiplicative gates and short convolutions — specifically 10 double-gated short-range LIV convolution blocks and 6 grouped query attention (GQA) blocks — to deliver strong quality at minimal footprint.
Key Strengths
- Optimized for the edge — Runs efficiently on CPU, GPU, and NPU hardware, making it suitable for smartphones, laptops, and vehicles. LFM2 achieves roughly 2× faster decode and prefill on CPU compared to Qwen3.
- Competitive quality — Outperforms similarly-sized models across knowledge, math, instruction following, and multilingual benchmarks.
- Multilingual — Supports English, Arabic, Chinese, French, German, Japanese, Korean, and Spanish.
- Tool use built in — Natively supports structured function calling via special tokens and JSON schema definitions.
The model supports a 32,768-token context length, uses bfloat16 precision, and was trained on 10 trillion tokens (~75% English, 20% multilingual, 5% code). Training leveraged knowledge distillation from LFM1-7B, large-scale supervised fine-tuning, custom DPO, and iterative model merging.
Performance
LFM2-700M delivers strong results relative to its size class, scoring 49.9 on MMLU, 72.23 on IFEval, and 46.4 on GSM8K — competitive with or exceeding models like Llama-3.2-1B-Instruct and Qwen3-0.6B.



CPU inference throughput is a particular highlight, with LFM2 models outpacing alternatives in both ExecuTorch and llama.cpp runtimes.


Recommended Use
Liquid AI recommends fine-tuning LFM2-700M on narrow use cases for best results. It is well suited for agentic tasks, data extraction, RAG, creative writing, and multi-turn conversations. GGUF quantized checkpoints are also available for llama.cpp deployment. Compatible with Hugging Face Transformers v4.55+ and vLLM v0.10.2+.
spm https://github.com/trymirai/uzu.git
| 1 | import Uzu |
| 2 | |
| 3 | public func runChat() async throws { |
| 4 | let engineConfig = EngineConfig.create() |
| 5 | let engine = try await Engine.create(config: engineConfig) |
| 6 | |
| 7 | guard let model = try await engine.model(identifier: "LiquidAI/LFM2-700M") else { |
| 8 | return |
| 9 | } |
| 10 | for try await update in try await engine.download(model: model).iterator() { |
| 11 | print("Download progress: \(update.progress())") |
| 12 | } |
| 13 | |
| 14 | let messages = [ |
| 15 | ChatMessage.system().withText(text: "You are a helpful assistant"), |
| 16 | ChatMessage.user().withText(text: "Tell me a short, funny story about a robot") |
| 17 | ] |
| 18 | let session = try await engine.chat(model: model, config: .create()) |
| 19 | let stream = await session.replyWithStream(input: messages, config: .create()) |
| 20 | var message: ChatMessage? = nil |
| 21 | for try await update in stream.iterator() { |
| 22 | switch update { |
| 23 | case .replies(let replies): |
| 24 | message = replies.last?.message |
| 25 | case .error(let error): |
| 26 | print("Error: \(error)") |
| 27 | } |
| 28 | } |
| 29 | print("Text: \(message?.text() ?? "empty")") |
| 30 | } |