mlx-community/LFM2.5-1.2B-Thinking-4bit
Run locally on Apple devices with Mirai
- Type
- local
- From
- LiquidAI
- Quantization
- MLX 4-bit
- Parameters
- 1.2B
- Size
- 632.8 MB
A 4-bit quantized version of LiquidAI's LFM2.5-1.2B-Thinking model, converted to Apple's MLX format for efficient on-device inference on Apple Silicon hardware. This conversion was performed by the mlx-community using mlx-lm v0.30.4.
Origin & Architecture
LFM2.5-1.2B-Thinking is part of Liquid AI's LFM2.5 family of edge-optimized language models. The "Thinking" variant is designed to support chain-of-thought reasoning, enabling more structured and deliberate problem-solving despite its compact 1.2 billion parameter size. Built on Liquid AI's proprietary architecture, this model targets deployment scenarios where computational resources are constrained but reasoning quality still matters.
Multilingual Support
The model supports eight languages: English, Arabic, Chinese, French, German, Japanese, Korean, and Spanish — making it a versatile choice for multilingual edge applications.
Key Highlights
- 4-bit quantization dramatically reduces memory footprint, enabling the model to run efficiently on MacBooks, iMacs, and other Apple Silicon devices
- Reasoning-enhanced "Thinking" variant provides structured chain-of-thought capabilities at the edge
- MLX-native format ensures optimized performance within Apple's MLX ecosystem via the `mlx-lm` library
- Chat-template ready with built-in support for conversational turn formatting
Use Cases
This model is well-suited for on-device text generation, conversational AI, lightweight reasoning tasks, and multilingual applications where privacy, latency, or offline capability is important. Its small size and quantized format make it particularly appealing for developers building local-first applications on Apple hardware without relying on cloud APIs.
License
Released under Liquid AI's LFM 1.0 license. Users should review the license terms for specific usage conditions.
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: "mlx-community/LFM2.5-1.2B-Thinking-4bit") 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 | } |