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.

    350MLiquid AI

    LFM2.5 350M at a Glance

    Full nameLFM2.5-350M
    DeveloperLiquid AI
    Parameters350M
    Layers16 (10 double-gated convolution blocks + 6 GQA blocks)
    Training budget28 trillion tokens
    Context length32,768 tokens
    Vocabulary size65,536
    Knowledge cutoffMid-2024
    LanguagesEnglish, Arabic, Chinese, French, German, Japanese, Korean, Portuguese, Spanish
    ReleasedMarch 31, 2026
    LicenseLFM Open License v1.0 (lfm1.0)
    GPU tier to fine-tune on ErtasT4
    Trainable on the Ertas Free planYes
    Q4_K_M export size229 MB
    Ertas mirrorErtasAI/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

    Q4_0Q4_K_MQ5_K_MQ6_KQ8_0F16BF16

    Related Resources

    Ship AI that runs on your users' devices.

    Free plan with 30 credits/mo, no card required. Paid plans from $10/mo USD.