Fine-Tune LFM2.5 350M with Ertas
LFM2.5-350M is Liquid AI's tiny edge model, trained on the full 28 trillion token budget and scoring 44.11 on BFCLv3 function calling. It exports at 229MB quantised and runs in 56MB on an iPhone 13 Mini, which makes it the pick for tool calling and structured extraction where every request stands alone.
LFM2.5 350M at a Glance
| Full name | LFM2.5-350M |
|---|---|
| Developer | Liquid AI |
| Parameters | 350M |
| Layers | 16 (10 double-gated convolution blocks + 6 GQA blocks) |
| Training budget | 28 trillion tokens |
| Context length | 32,768 tokens |
| Vocabulary size | 65,536 |
| Knowledge cutoff | Mid-2024 |
| Languages | English, Arabic, Chinese, French, German, Japanese, Korean, Portuguese, Spanish |
| Released | March 31, 2026 |
| License | LFM Open License v1.0 (lfm1.0) |
| GPU tier to fine-tune on Ertas | T4 |
| Trainable on the Ertas Free plan | Yes |
| Q4_K_M export size | 229 MB |
| Ertas mirror | ErtasAI/LFM2.5-350M |
Overview
LFM2.5-350M is the middle size in Liquid AI's LFM2.5 family, released on March 31, 2026. It shares the 1.2B's exact layer structure, 16 layers split 10 double-gated short-range convolution blocks to 6 grouped-query attention blocks, and the same 28 trillion token pre-training budget. The parameter count is where they differ, and the 350M gets the full training run rather than a reduced one.
That matters more than it sounds. Small models are usually undertrained relative to their capacity because the compute budget follows the parameter count. Putting a 28T token budget behind 350M parameters is what produces a model scoring 76.96 on IFEval, ahead of Gemma 3 1B at 63.49 and Qwen3.5-0.8B at 59.94, both larger.
The function-calling scores are the standout. BFCLv3 at 44.11 and BFCLv4 at 21.86 put the 350M ahead of Granite 4.0-H-350M at 43.07 and 13.28, ahead of Qwen3.5-0.8B at 35.08 and 18.70, and far ahead of its own LFM2-350M predecessor at 22.95 and 12.29. On CaseReportBench, a clinical structured-extraction benchmark, it takes 32.45 against 13.83 for Qwen3.5-0.8B and 2.28 for Gemma 3 1B.
The context window is 32,768 tokens, the same as the rest of the family, with a 65,536-token vocabulary. Quantised to Q4_K_M the model exports at 229MB. On an iPhone 13 Mini through the Cactus engine it runs in 56MB at 88 tokens per second of decode, which is a footprint you can put inside a mobile app without a conversation about download size.
Liquid recommends it for data extraction, structured outputs and tool use, and steers away from knowledge-intensive tasks, programming, maths and creative writing. The Ertas catalogue carries it mirrored at `ErtasAI/LFM2.5-350M`.
Key Features
Function calling at 350M parameters is the reason to reach for this model. BFCLv3 at 44.11 is within a point of what the 230M scores and close to what many 1B-class models manage, and the LFM2-350M predecessor scored 22.95 on the same benchmark a generation earlier. The model writes Pythonic calls between `<|tool_call_start|>` and `<|tool_call_end|>` tokens by default and can be switched to JSON through the system prompt.
Structured extraction is the paired strength. CaseReportBench at 32.45 measures pulling structured clinical fields out of unstructured case reports, and the 350M more than doubles Qwen3.5-0.8B's 13.83 on it. Combined with IFBench at 40.69, this describes a model that reliably produces the shape you asked for.
The deployment envelope is unusually wide for one checkpoint. Liquid published measurements across five very different targets: an Apple M5 Max through Mirai at 564 tokens per second of decode, an AMD Ryzen AI Max 395+ through llama.cpp at 313, an iPhone 13 Mini through Cactus at 88 in 56MB of memory, a Snapdragon 8 Elite NPU through RunAnywhere in 169MB, and a Raspberry Pi 5 at 30 tokens per second in 300MB. On a single H100 it reaches 40,400 output tokens per second at high concurrency, so the same model that fits on a Pi also serves a batch workload.
Nine languages are covered: English, Arabic, Chinese, French, German, Japanese, Korean, Portuguese and Spanish. Multi-IF, the multilingual instruction-following benchmark, comes in at 44.92, ahead of the 230M's 37.70 and Qwen3.5-0.8B's 41.68.
Where the size shows: MMLU-Pro at 20.01 and GPQA Diamond at 30.64. World knowledge is thin, which is the expected trade at 350M parameters. Give it the facts in the prompt.
Fine-Tuning with Ertas
LFM2.5 350M fine-tunes on the T4 tier in Ertas Studio and sits far under the Free plan's 5B parameter ceiling. The weights are bf16-native, so training runs at bf16 with no fp32 fallback.
The recipe for this size class is a learning rate between 3e-4 and 5e-4, batch size 4, gradient accumulation 2, and 8 to 16 epochs. At 350M parameters a training run finishes fast enough that you can iterate on the dataset several times in an afternoon, which is where the real work lives.
Exports come out as GGUF for llama.cpp, Ollama and LM Studio, or as safetensors LoRA adapters. A Q4_K_M export lands around 229MB, against 490MB for a Qwen 2.5 0.5B and 810MB for a Gemma 3 1B. If your product ships the model to the user, that difference is the difference between a download people accept and one they think about.
One finding from our own work is worth carrying in. While building [Chatty Valley](/blog/chatty-valley-on-device-ai-mod-stardew-valley) we fine-tuned both the 350M and the 1.2B on the same character dataset and ran the same evaluation suite over both. The 350M held the character's voice and formatting beautifully and produced single sentences that read exactly right. It then lost the thread of a casual multi-turn conversation, answering a question that had not been asked and repeating the thought in case you missed it.
What made that expensive to find is that every automated metric came back clean on both sizes. Dash-free rate, jailbreak leak rate, sentence-length distribution, degeneration and numeric-age leaks all passed. The failure was only visible by talking to it. If you are fine-tuning a 350M for anything conversational, write a scripted multi-turn probe and run it before you trust the metrics. For single-turn extraction and tool calling, which is what this model is built for, that risk does not apply.
Use Cases
Structured data extraction at volume is the strongest fit. Each document is an independent request, the facts come from the text in front of the model, and the thing that matters is emitting the right shape every time. IFBench at 40.69 and CaseReportBench at 32.45 both point at this, and at 40,400 output tokens per second on a single H100 the economics of running it across a large corpus work out.
Tool calling in an edge agent is the second. BFCLv3 at 44.11 with native Pythonic call formatting and a 32,768-token context for tool definitions means a local agent can hold a real toolset in its prompt. Pair it with retrieval and let the index carry the facts.
Mobile app features that run offline suit the footprint. 56MB of memory on an iPhone 13 Mini and 229MB of download is small enough for classification, autocomplete, summarisation of on-device content, and form-filling to run as background features rather than as the headline of the app.
Embedded and IoT deployment is realistic here. 169MB on a Snapdragon 8 Elite NPU and 300MB on a Raspberry Pi 5 covers a wide range of hardware that could not host a 1B model comfortably.
Where to look elsewhere: multi-turn conversation, character work, anything needing world knowledge, code, or maths. For conversational depth in the same family, step up to [LFM2.5 1.2B](/models/lfm2-5-1-2b). For an even smaller footprint on similar single-turn work, [LFM2.5 230M](/models/lfm2-5-230m) gives up surprisingly little.
Hardware Requirements
Inference, as measured by Liquid AI across five targets. Apple M5 Max through Mirai: 44,800 tokens per second prefill, 564 decode, 1GB. AMD Ryzen AI Max 395+ through llama.cpp: 2,900 prefill, 313 decode, 434MB. Snapdragon 8 Elite NPU through RunAnywhere: 2,800 prefill, 15 decode, 169MB. iPhone 13 Mini through the Cactus engine: 496 prefill, 88 decode, 56MB. Raspberry Pi 5 through Cactus: 200 prefill, 30 decode, 300MB. On a single H100 the model peaks at 40,400 output tokens per second at high concurrency.
Export sizes from Liquid's published GGUF builds: 219MB at Q4_0, 229MB at Q4_K_M, 260MB at Q5_K_M, 293MB at Q6_K, 379MB at Q8_0, and 712MB at BF16. At this size Q5_K_M or Q6_K are worth testing, because the absolute cost of the extra quality is only a few dozen megabytes.
For fine-tuning on Ertas, the T4 tier handles this model comfortably. It is the entry tier and the one the Free plan uses.
For local fine-tuning outside Ertas, QLoRA on a 350M fits on a 6GB consumer GPU and runs fast enough that a full training pass over a few hundred rows takes minutes.
Frequently Asked Questions
- What is LFM2.5 350M?
- LFM2.5-350M is Liquid AI's 350-million-parameter on-device language model, released on March 31, 2026. It uses 16 layers split between 10 double-gated convolution blocks and 6 grouped-query attention blocks, carries a 32,768-token context window, and was pre-trained on 28 trillion tokens, the same budget as the 1.2B in the same family.
- How good is LFM2.5 350M at function calling?
- It scores 44.11 on BFCLv3 and 21.86 on BFCLv4 in Liquid AI's published results. That puts it ahead of Granite 4.0-H-350M (43.07 and 13.28), Qwen3.5-0.8B (35.08 and 18.70), Gemma 3 1B IT (16.61 and 7.17), and roughly double its own LFM2-350M predecessor (22.95 and 12.29). Function calling is one of the two things this model is built to do well.
- How big is a fine-tuned LFM2.5 350M export?
- Around 229MB at Q4_K_M, based on Liquid AI's published GGUF build. Q5_K_M is 260MB, Q6_K is 293MB and Q8_0 is 379MB. For comparison, a Gemma 3 1B at Q4_K_M is 810MB and a Qwen 2.5 0.5B is 490MB.
- Can LFM2.5 350M hold a conversation?
- Single-turn work is where it belongs. In our own testing, a fine-tuned 350M held a character's voice and formatting perfectly and then lost the thread across a multi-turn casual conversation, producing fluent in-character answers to questions that had not been asked. Every automated metric we ran passed on both the 350M and the 1.2B, and only a scripted conversational probe surfaced the difference. For extraction, classification, structured output and tool calling, where each request stands alone, the 350M is an excellent choice. For conversation, step up to LFM2.5 1.2B.
- What hardware can run LFM2.5 350M?
- Liquid AI published measurements on five targets: an iPhone 13 Mini at 56MB of memory and 88 tokens per second of decode, a Snapdragon 8 Elite NPU at 169MB, a Raspberry Pi 5 at 300MB and 30 tokens per second, an AMD Ryzen AI Max 395+ at 434MB and 313 tokens per second, and an Apple M5 Max at 564 tokens per second. On a single H100 it reaches 40,400 output tokens per second at high concurrency.
- Is LFM2.5 350M free to fine-tune on Ertas?
- Yes. It trains on the T4 GPU tier and sits well under the Free plan's 5B parameter ceiling. Exports are available as GGUF or safetensors LoRA adapters.
Supported Quantizations
Related Resources
LFM2.5 sizes compared: 230M vs 350M vs 1.2B on-device
Chatty Valley: an on-device AI mod for Stardew Valley (Part 1)
Fine-Tuned Tool Calling for n8n and Make.com Workflows
Edge AI in 2026: Why 80% of Inference Is Moving Local
llama.cpp
LM Studio
MLX
Ollama
OpenVINO
Ship AI that runs on your users' devices.
Free plan with 30 credits/mo, no card required. Paid plans from $10/mo USD.