alt.freeweights.lfm / LFM2-8B-A1B
From: LiquidAI <huggingface.co/LiquidAI>Newsgroups: alt.freeweights.lfmSubject:

LFM2-8B-A1B

Date: 2026-11-15Commit: 7ed1404Signed: 2DC28CC7B26A283B ✓

Text generation model with 8.3B parameters. Safetensors weights, 16.7 GB in all. Published by LiquidAI under LFM-1.0 (custom).

8.3B params16.7GBLFM2-8B-A1Bsafetensorscustom terms
FactsParams8.3BSize16.7 GBFormatssafetensorsTasktext generationLicenseLFM-1.0 (custom)From sourcecustom termsread terms
# custom terms: read the license before you download
$ fw get LiquidAI/LFM2-8B-A1B
# manifest sha256 310d4ce16918… · 16.7 GB · 17 files
$ fw verify ./LFM2-8B-A1B LiquidAI/LFM2-8B-A1B
From sourceHosted (signed)LiquidAI/LFM2-8B-A1BLast check: 2026-11-15 02:42 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
16.7 GB
Weights
16.7 GB (safetensors)
Parameters
8.3B
Formats
safetensors
Task
text generation
License
LFM-1.0 (custom) (custom)
Files
17, each with a sha256
Publisher
LiquidAI
Added
2026-11-15
Section
alt.freeweights.lfm
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 02:42 UTCpassed

Model card

From the publisher at commit 7ed1404. Shown as plain text with links; images open at the publisher.

Image: Liquid AI

Try LFM • Docs • LEAP • Discord

LFM2-8B-A1B#

LFM2 is a new generation of hybrid models developed by Liquid AI, specifically designed for edge AI and on-device deployment. It sets a new standard in terms of quality, speed, and memory efficiency.

We're releasing the weights of our first MoE based on LFM2, with 8.3B total parameters and 1.5B active parameters.

  • LFM2-8B-A1B is the best on-device MoE in terms of both quality (comparable to 3-4B dense models) and speed (faster than Qwen3-1.7B).
  • Code and knowledge capabilities are significantly improved compared to LFM2-2.6B.
  • Quantized variants fit comfortably on high-end phones, tablets, and laptops.

Find more information about LFM2-8B-A1B in our blog post.

📄 Model details#

Due to their small size, we recommend fine-tuning LFM2 models on narrow use cases to maximize performance. They are particularly suited for agentic tasks, data extraction, RAG, creative writing, and multi-turn conversations. However, we do not recommend using them for tasks that are knowledge-intensive or require programming skills.

PropertyLFM2-8B-A1BLFM2-24B-A2B
Total parameters8.3B24B
Active parameters1.5B2.3B
Layers24 (18 conv + 6 attn)40 (30 conv + 10 attn)
Context length32,768 tokens32,768 tokens
Vocabulary size65,53665,536
Training precisionMixed BF16/FP8Mixed BF16/FP8
Training budget12 trillion tokens17 trillion tokens
LicenseLFM Open License v1.0LFM Open License v1.0

Supported languages: English, Arabic, Chinese, French, German, Japanese, Korean, and Spanish.

Generation parameters: We recommend the following parameters:

  • temperature=0.3
  • min_p=0.15
  • repetition_penalty=1.05

Chat template: LFM2 uses a ChatML-like chat template as follows:

<|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|>assistant
It's a tiny nematode that lives in temperate soil environments.<|im_end|>

You can automatically apply it using the dedicated .apply_chat_template() function from Hugging Face transformers.

Tool use: It consists of four main steps:

  1. Function definition: LFM2 takes JSON function definitions as input (JSON objects between <|tool_list_start|> and <|tool_list_end|> special tokens), usually in the system prompt
  2. Function call: LFM2 writes Pythonic function calls (a Python list between <|tool_call_start|> and <|tool_call_end|> special tokens), as the assistant answer.
  3. Function execution: The function call is executed and the result is returned (string between <|tool_response_start|> and <|tool_response_end|> special tokens), as a "tool" role.
  4. Final answer: LFM2 interprets the outcome of the function call to address the original user prompt in plain text.

Here is a simple example of a conversation using tool use:

<|startoftext|><|im_start|>system
List of tools: <|tool_list_start|>[{"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"]}}]<|tool_list_end|><|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
<|tool_response_start|>[{"candidate_id": "12345", "status": "Interview Scheduled", "position": "Clinical Research Associate", "date": "2023-11-20"}]<|tool_response_end|><|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|>

You can directly pass tools as JSON schema or Python functions with .apply_chat_template() as shown in this page to automatically format the system prompt.

Architecture: Hybrid model with multiplicative gates and short convolutions: 18 double-gated short-range convolution blocks and 6 grouped query attention (GQA) blocks.

Pre-training mixture: Approximately 75% English, 20% multilingual, and 5% code data sourced from the web and licensed materials.

Training approach:

  • Very large-scale SFT on 50% downstream tasks, 50% general domains
  • Custom DPO with length normalization and semi-online datasets
  • Iterative model merging

🏃 How to run LFM2#

1. Transformers#

To run LFM2, you need to install Hugging Face transformers:

pip install transformers

Here is an example of how to generate an answer with transformers in Python:

from transformers import AutoModelForCausalLM, AutoTokenizer

# Load model and tokenizer
model_id = "LiquidAI/LFM2-8B-A1B"
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    dtype="bfloat16",
#    attn_implementation="flash_attention_2" <- uncomment on compatible GPU
)
tokenizer = AutoTokenizer.from_pretrained(model_id)

# Generate answer
prompt = "What is C. elegans?"
input_ids = tokenizer.apply_chat_template(
    [{"role": "user", "content": prompt}],
    add_generation_prompt=True,
    return_tensors="pt",
    tokenize=True,
).to(model.device)

output = model.generate(
    input_ids,
    do_sample=True,
    temperature=0.3,
    min_p=0.15,
    repetition_penalty=1.05,
    max_new_tokens=512,
)

print(tokenizer.decode(output[0], skip_special_tokens=False))

# <|startoftext|><|im_start|>user
# What is C. elegans?<|im_end|>
# <|im_start|>assistant
# C. elegans, also known as Caenorhabditis elegans, is a small, free-living
# nematode worm (roundworm) that belongs to the phylum Nematoda.

You can directly run and test the model with this Colab notebook.

2. vLLM#

You can run the model in vLLM by building from source:

git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e . -v

Here is an example of how to use it for inference:

from vllm import LLM, SamplingParams

prompts = [
    [
        {
            "content": "What is C. elegans?",
            "role": "user",
        },
    ],
    [
        {
            "content": "Say hi in JSON format",
            "role": "user",
        },
    ],
    [
        {
            "content": "Define AI in Spanish",
            "role": "user",
        },
    ],
]

sampling_params = SamplingParams(
    temperature=0.3,
    min_p=0.15,
    repetition_penalty=1.05,
    max_tokens=30
)

llm = LLM(model="LiquidAI/LFM2-8B-A1B", dtype="bfloat16")

outputs = llm.chat(prompts, sampling_params)

for i, output in enumerate(outputs):
    prompt = prompts[i][0]["content"]
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
3. llama.cpp#

You can run LFM2 with llama.cpp using its GGUF checkpoint. Find more information in the model card.

🔧 How to fine-tune LFM2#

We recommend fine-tuning LFM2 models on your use cases to maximize performance.

NotebookDescriptionLink
SFT (TRL)Supervised Fine-Tuning (SFT) notebook with a LoRA adapter using TRL.Colab link
DPO (TRL)Preference alignment with Direct Preference Optimization (DPO) using TRL.Colab link

📈 Performance#

1. Automated benchmarks#

Benchmarks

Compared to similar-sized models, LFM2-8B-A1B displays strong performance in instruction following and math while also running significantly faster.

ModelMMLUMMLU-ProGPQAIFEvalIFBenchMulti-IF
LFM2-8B-A1B64.8437.4229.2977.5825.8558.19
LFM2-2.6B64.4225.9626.5779.5622.1960.26
Llama-3.2-3B-Instruct60.3522.2530.671.4320.7850.91
SmolLM3-3B59.8423.9026.3172.4417.9358.86
gemma-3-4b-it58.3534.7629.5176.8523.5366.61
Qwen3-4B-Instruct-250772.2552.3134.8585.6230.2875.54
granite-4.0-h-tiny66.7932.0326.4681.0618.3752.99
ModelGSM8KGSMPlusMATH 500MATH Lvl 5MGSMMMMLU
LFM2-8B-A1B84.3864.7674.262.3872.455.26
LFM2-2.6B82.4160.7563.654.3874.3255.39
Llama-3.2-3B-Instruct75.2138.6841.224.0661.6847.92
SmolLM3-3B81.1258.9173.651.9368.7250.02
gemma-3-4b-it89.9268.3873.252.1887.2850.14
Qwen3-4B-Instruct-250768.4656.1685.673.6281.7660.67
granite-4.0-h-tiny82.6459.1458.236.1173.6856.13
ModelActive paramsLCB v6LCB v5HumanEval+Creative Writing v3
LFM2-8B-A1B1.5B21.04%21.36%69.51%44.22%
Gemma-3-1b-it1B4.27%4.43%37.20%41.67%
Granite-4.0-h-tiny1B26.73%27.27%73.78%32.60%
Llama-3.2-1B-Instruct1.2B4.08%3.64%23.17%31.43%
Qwen2.5-1.5B-Instruct1.5B11.18%10.57%48.78%22.18%
Qwen3-1.7B (/no_think)1.7B24.07%26.48%60.98%31.56%
LFM2-2.6B2.6B14.41%14.43%57.93%38.79%
SmolLM3-3B3.1B19.05%19.20%60.37%36.44%
Llama-3.2-3B-Instruct3.2B11.47%11.48%24.06%38.84%
Qwen3-4B (/no_think)4B36.11%38.64%71.95%37.49%
Qwen3-4B-Instruct-25074B48.72%50.80%82.32%51.71%
Gemma-3-4b-it4.3B18.86%19.09%62.8%68.56%
2. Inference#

LFM2-8B-A1B is significantly faster than models with a similar number of active parameters, like Qwen3-1.7B.

Decode Throughput - S24 Ultra

Decode Throughput - HX370

The following plots showcase the performance of different models under int4 quantization with int8 dynamic activations on the AMD Ryzen AI 9 HX 370 CPU, using 16 threads. The results are obtained using our internal XNNPACK-based inference stack, and a custom CPU MoE kernel.

Prefill Throughput vs Sequence Length

Decode Throughput vs Sequence Length

📬 Contact#

Citation#

@article{liquidai2025lfm2,
 title={LFM2 Technical Report},
 author={Liquid AI},
 journal={arXiv preprint arXiv:2511.23404},
 year={2025}
}

Files

17 files · 16.7 GBWeights 16.7 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 17 files with their sha256
FileSizesha256
.eval_results/gpqa.yaml155 Bb3bd7a0a593454c1bac71f6b784a491ffad85560949f4d5e4412daa9b399c32e
.eval_results/gsm8k.yaml150 Be51aaeb29b5c37954ed027459843da9dd6f28f2c0fe2e9f54dff54bd5cfad7ea
.eval_results/mmlu-pro.yaml159 B47f89cd9a119843704d85a7e974bb70c8c15f8ffcb40c8d9b17f95ede34d4fe3
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
LICENSE10.6 KB4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c
README.md15.9 KBea491a723c7c665a8920348b822dd3f1521f3aa7de28f9ada19580a881b31ef7
chat_template.jinja3.10 KB5504d163d879bfb6fd4135b7fa3d56768b2e69dd718338f7b146750289f46ab0
config.json1.08 KB3a63e1ee647926ef3c5eabb7d3a4b5feb38ccece9c624679fa34289692464fa4
generation_config.json137 Bf7de2fded96ae1d174989025d46b2351e4ded99c799ac559d8186f0e2fb6295d
model-00001-of-00004.safetensors4.99 GB927feafae7d99f40046cd365e8780fe2c36c72ba207ce3024ba54bf884599600
model-00002-of-00004.safetensors5.00 GBe41140e9841cf338ed537fad0e0d0f16fbeebe0784719188ef7f2999b531d97e
model-00003-of-00004.safetensors5.00 GB3e3b6236812186ae90f27a3d074f802d5251eab54840b8eca5eea8b730b7a789
model-00004-of-00004.safetensors1.69 GB4f3cbb6a6a853785186b259fc7b23a5706cca8e53691ab3036a539596ffe38ea
model.safetensors.index.json210 KB7793fd9fe5355a7b24c7fd8c4cc74cf547dc5643f145bbd91c3bfa0834d5171e
special_tokens_map.json434 B742aefe2b7dec496e8caffdba03a75d0c1a9925d53bd3f3e0d388c96b591b6f4
tokenizer.json4.73 MBd7a0ab0fc22e41ec8c6d7450a9ff9ce40e196ec5e5a2fa6a2105e064e0514ed7
tokenizer_config.json91.9 KB8cba5b0c7acab23a0d4cc9ac587346c9220a1b6d288fc5346fe118202fd6f43e
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
7ed1404fdf pinned now2026-11-15 02:42 UTC17 files · 16.7 GB

Use it

# custom terms: read the license before you download
$ fw get LiquidAI/LFM2-8B-A1B
# manifest sha256 310d4ce16918… · 16.7 GB · 17 files
$ fw verify ./LFM2-8B-A1B LiquidAI/LFM2-8B-A1B
Terms that come with these files. LFM 1.0: commercial use only for organisations under US$10M annual revenue. Keep a copy of the license with the files.
Custom license (custom). Read the license text first. Open this panel to show the commands once you accept its terms.
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/LiquidAI/LFM2-8B-A1B.json --dir ./LFM2-8B-A1B $ python3 fw.py verify ./LFM2-8B-A1B ./LiquidAI__LFM2-8B-A1B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download LiquidAI/LFM2-8B-A1B --revision 7ed1404fdf502a5446c1b67d4fe1533158d6f2ad --local-dir ./LFM2-8B-A1B
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("LiquidAI/LFM2-8B-A1B", revision="7ed1404fdf502a5446c1b67d4fe1533158d6f2ad") model = AutoModelForCausalLM.from_pretrained("LiquidAI/LFM2-8B-A1B", revision="7ed1404fdf502a5446c1b67d4fe1533158d6f2ad", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve LiquidAI/LFM2-8B-A1B --revision 7ed1404fdf502a5446c1b67d4fe1533158d6f2ad

License

Name
LFM Open License v1.0
Id
LicenseRef-LFM-1.0
Class
Custom terms
Redistribution
click-through
Listing
Hosted (signed)
Terms
LFM 1.0: commercial use only for organisations under US$10M annual revenue. Keep a copy of the license with the files.
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
LICENSE
Text sha256
4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c
Terms gate
Yes. The commands stay folded until you open them after reading the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: LiquidAI <huggingface.co/LiquidAI>Newsgroups: alt.freeweights.lfmSubject: LFM2-8B-A1BDate: 2026-11-15Commit: 7ed1404Signed: 2DC28CC7B26A283B ✓
Upstream
LiquidAI/LFM2-8B-A1B
Pinned commit
7ed1404fdf502a5446c1b67d4fe1533158d6f2ad
Manifest
LFM2-8B-A1B.json · .minisig
Manifest sha256
310d4ce169181d4ed61cd4b6e6865aba6d2656d05e0bec6ba73ee314a867fc75
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:42 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/LiquidAI/LFM2-8B-A1B.json $ curl -O https://freeweights.allternit.com/manifests/LiquidAI/LFM2-8B-A1B.json.minisig $ minisign -Vm LFM2-8B-A1B.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

4 models in the catalog name this one as their parent.

Quantizations
4
Get it
Read license, then download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download LiquidAI/LFM2-8B-A1B
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. LFM2-8B-A1B.json. Provenance. Takedown history: none.

Variants

4 quantized or adapter builds of LFM2-8B-A1B. Each has its own license check and page.

From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-Extract
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-RAG
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-Tool
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-2.6B
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-2.6B-Exp