Liquid AI、オンデバイス推論に対応した最小モデル「LFM2.5-230M」を llama.cpp や MLX などと共に公開
Liquid AI は、エッジデバイス向けに最適化された最小モデル「LFM2.5-230M」を公開し、大規模モデルを上回る指示従順性とデータ抽出性能を発揮した。
キーポイント
エッジ特化のハイブリッドアーキテクチャ
14 レイヤー構成(8 つの双ゲート LIV 畳み込みブロックと 6 つの GQA ブロック)を採用し、CPU での推論速度を最大化する設計となっている。
大規模モデルを上回る特定タスク性能
0.8B〜1B パラメータクラスと比較して、IFEval や IFBench などの指示従順性とデータ抽出ベンチマークで顕著なスコアを記録した。
広範な推論フレームワーク対応
llama.cpp, MLX, vLLM, SGLang, ONNX に対応し、Galaxy S25 Ultra で 213 tok/s、Raspberry Pi 5 でも 42 tok/s の高速動作を実現した。
大規模モデルからの蒸留による品質維持
より大きな LFM2.5-350M からの知識蒸留と多段階のポストトレーニング(SFT, DPO, RL)により、小規模ながら競合他社モデルに匹敵する挙動を獲得した。
適したユースケースと非推奨領域
複雑な推論やコード生成には不向きだが、大規模データ抽出やオンデバイスエージェント機能に適している。
ツール呼び出しの仕組み
システムプロンプトで定義されたツールのJSONに基づき、特殊トークン間にPython形式の関数呼び出しを生成して実行する。
推奨の設定値と実装
Transformers 5.0.0以上で使用可能で、温度0.1、top_k 50、repetition_penalty 1.05のサンプリング設定が推奨される。
影響分析・編集コメントを表示
影響分析
このリリースは、LLM がクラウド依存からエッジデバイスへの完全移行を果たすための重要なマイルストーンとなる。特に、小規模モデルが大規模モデルを上回る特定タスク性能を発揮することは、プライバシー保護と低遅延が求められる産業用ロボットやモバイル端末での AI エージェント実装を加速させる。
編集コメント
「小さければ性能が落ちる」という常識を、特定のタスクに特化しアーキテクチャと学習手法で逆転させた事例として注目すべきです。
Liquid AI は LFM2.5-230M を出荷しました。これは同社迄今为止の最も小さなモデルです。このリリースは、スマートフォン、ロボット、自動化デバイス上でエージェントタスクを実行するという特定の目的に焦点を当てています。ベースモデルと指令微調整済みチェックポイントの両方が、Hugging Face でオープンウェイトとして公開されています。
その訴求点は意図的に限定的です。これは汎用的な推論モデルではありません。エッジハードウェア上でのデータ抽出およびツール使用のために構築されたものです。
TL;DR(要約)
Liquid AI の LFM2.5-230M は、同社迄今为止の最小モデルです:パラメータ数は 230M、オープンウェイト、LFM2 アーキテクチャに基づいています。
Galaxy S25 Ultra では秒間 213 トークン、Raspberry Pi 5 では秒間 42 トークンの速度でオンデバイス実行が可能です。
命令の遵守およびデータ抽出において、より大きなモデル(Qwen3.5-0.8B、Gemma 3 1B)を上回ります。
ツール使用と抽出に最適化されており、数学、コード生成、または創作ライティングには向けられていません。
llama.cpp、MLX、vLLM、SGLang、ONNX に対応した Day-one サポートを提供し、フットプリントは 293〜375 MB です。
LFM2.5-230M とは何か?
LFM2.5-230M は、2 億 3000 万パラメータのテキスト専用モデルです。これは LFM2 アーキテクチャに基づいて構築されています。このモデルには合計 14 レイヤーがあり、そのうち 8 つはダブルゲート型 LIV コンボリューションブロック(double-gated LIV convolution blocks)で構成され、残りの 6 つはグループ化クエリアテンション(grouped-query attention: GQA)ブロックです。このハイブリッドレイアウトは、高速な CPU 推論を目的としています。
コンテキスト長は 32,768 トークンです。語彙サイズは 65,536 です。知識の更新カットオフ日は 2024 年半ばです。英語、中国語、アラビア語、日本語を含む 10 か国語に対応しています。
Liquid AI チームは 2 つのチェックポイントを出荷しました。LFM2.5-230M-Base はファインチューニング用の事前学習済みモデルです。一方、LFM2.5-230M は汎用性の高い指令微調整済みバージョンです。ライセンスは lfm1.0 です。
トレーニングとポストトレーニング
このモデルは 19 トリリオンのトークンで事前学習されました。この総数には 32K のコンテキスト拡張フェーズが含まれています。その後、ポストトレーニングのレシピが 3 つの段階で実行されます。
まず、より大規模な LFM2.5-350M からの蒸留を用いた教師ありファインチューニングが行われます。次に直接選好最適化(DPO)です。最後に多領域強化学習です。これにより、下流タスクへの専門化に対する柔軟性が保たれます。
この蒸留ステップこそが、230M モデルをより大規模なチェックポイントと競合させる要因となっています。これは、特定のタスクにおいてより大きな LFM2.5-350M の振る舞いを継承するものです。
ベンチマーク
Liquid AI チームは 10 のベンチマークにわたって LFM2.5-230M を評価しました。これらは知識、指令の遵守、データ抽出、ツール使用を網羅しています。
指令遵守の結果はこの点を裏付けています。IFEval では LFM2.5-230M が 71.71 のスコアを獲得し、Qwen3.5-0.8B(59.94)や Gemma 3 1B IT(63.49)を上回りました。IFBench では 38.40 を記録し、両者を上回っています。臨床データ抽出テストである CaseReportBench では 22.51 のスコアを獲得しました。
モデルパラメータIFEvalIFBenchCaseReportBenchBFCLv4MMLU-Pro
LFM2.5-230M230M71.7138.4022.5121.0320.25
LFM2.5-350M350M76.9640.6932.4521.8620.01
Granite 4.0-H-350M350M61.2717.2212.4413.2813.14
Qwen3.5-0.8B (Instruct)800M59.9422.8713.8318.7037.42
Gemma 3 1B IT1B63.4920.332.287.1714.04
LFM2.5-230M は指示の追従とデータ抽出において首位を走りますが、広範な知識においては Qwen3.5-0.8B の 37.42 を下回る MMLU-Pro で 20.25 と後れを取っています。また、一部のエージェント型ツール使用においても弱みがあります。τ²-Bench Telecom ではわずか 5.26 というスコアです。
Liquid AI はこのモデルの限界について率直に述べています。推論を要するワークロードには推奨していません。具体的には高度な数学、コード生成、そして創造的なライティングが該当します。
ユースケースと事例
このモデルは 2 つの業務に特に適しています。
1 つ目は大規模なデータ抽出パイプラインです。10 万件の臨床報告書を構造化されたフィールドへ解析するパイプラインを想像してください。4 ビット版であれば、汎用 CPU 上で 293〜375 MB のメモリフットプリントで実行可能です。ローカルでデータを抽出でき、トークンごとの API 利用料も発生しません。
2 つ目は軽量なオンデバイス型エージェントワークロードです。音声を入力としてツール呼び出しに変換するホームオートメーションハブや、リクエストを適切な機能へルーティングするスマートフォンアシスタントが例として挙げられます。
初期の信号として、Liquid AI はこのモデルを Unitree G1 人形ロボットにデプロイしました。これはロボットのオンボード NVIDIA Jetson Orin 上で完全に動作しています。ここではモデルがスキル選択層として機能し、1 つの自然言語指示をツール呼び出しの一連に変換しました。これらの呼び出しは、NVIDIA の SONIC フレームワークから低レベルのスキルを呼び出します。
ツール使用:仕組みについて
LFM2.5 は 4 つのステップで関数呼び出しをサポートしています。まず、システムプロンプト内でツールを JSON 形式として定義します。次に、モデルが特殊なトークンの間に Python 風の関数呼び出しを記述します。その後、その呼び出しを実行して結果を返却し、最後にモデルがプレーンテキストの回答を記述します。
デフォルトでは、呼び出しは Python のリスト形式です。これは <|tool_call_start|> と <|tool_call_end|> トークンの間に位置します。以下に、ツール JSON を省略したドキュメント化されたパターンを示します:
Copy CodeCopiedUse a different Browser
<system>
List of tools: [{"name": "get_candidate_status",
"parameters": {"candidate_id": {"type": "string"}}}]</system>
What is the current status of candidate ID 12345?
<|tool_call_start|>[get_candidate_status(candidate_id="12345")]<|tool_call_end|>Checking the current status of candidate ID 12345.
システムプロンプトを通じて、JSON 形式の呼び出しを強制することも可能です。
実行例:最小限のサンプル
本モデルは Transformers 5.0.0 以降で動作します。推奨される生成設定は、温度(temperature)0.1、top_k 50、反復ペナルティ(repetition_penalty)1.05 です。これらのサンプリング設定を適用するためには、do_sample=True フラグが必要である点にご注意ください。
Copy CodeCopiedUse a different Browser
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "LiquidAI/LFM2.5-230M"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
dtype="bfloat16",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
inputs = tokenizer.apply_chat_template(
[{"role": "user", "content": "What is C. elegans?"}],
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
output = model.generate(
**inputs,
do_sample=True,
temperature=0.1,
top_k=50,
repetition_penalty=1.05,
max_new_tokens=512,
)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
Liquid AI はまた、Unsloth と TRL を介した LoRA による SFT(Supervised Fine-Tuning: 教師あり微調整)、DPO(Direct Preference Optimization: 直接選好最適化)、GRPO のためのファインチューニングレシピも公開しています。これらはそれぞれ Colab ノートブックとして提供されています。
インタラクティブな解説機能
(function(){
window.addEventListener("message",function(e){
if(e.data&&e.data.type==="lfm-resize"){
var f=document.getElementById("lfm25-frame");
if(f&&e.data.height){f.style.height=e.data.height+"px";}
}
});
})();
Hugging Face のモデル重み、技術詳細、およびドキュメントをご覧ください。また、Twitter でフォローすることもできますし、150,000 人以上のメンバーがいる ML サブレディットに参加したり、ニュースレターを購読したりするのもご自由です。待ってください!Telegram をご利用ですか?今なら Telegram でも私たちに参加できるようになりました。
GitHub リポジトリや Hugging Face ページ、製品リリース、ウェビナーなどのプロモーションのためにパートナーシップをご検討の場合は、ぜひご連絡ください。
本記事「Liquid AI が llama.cpp、MLX、vLLM、SGLang、ONNX に対応したオンデバイス推論向け LFM2.5-230M を出荷」は、MarkTechPost で最初に公開されました。
原文を表示
Liquid AI shipped LFM2.5-230M, it’s the company’s smallest model to date. The release targets a specific job: running agentic tasks on phones, robots, and automation devices. Both the base and instruction-tuned checkpoints are open-weight on Hugging Face.
The pitch is narrow on purpose. This is not a general reasoning model. It is built for data extraction and tool use on edge hardware.
TL;DR
Liquid AI’s LFM2.5-230M is its smallest model yet: 230M params, open-weight, built on LFM2.
Runs on-device at 213 tok/s on a Galaxy S25 Ultra and 42 on a Raspberry Pi 5.
Beats larger models (Qwen3.5-0.8B, Gemma 3 1B) on instruction following and data extraction.
Tuned for tool use and extraction; not for math, code generation, or creative writing.
Day-one support across llama.cpp, MLX, vLLM, SGLang, and ONNX, with a 293–375 MB footprint.
What is LFM2.5-230M?
LFM2.5-230M is a 230-million-parameter, text-only model. It is built on the LFM2 architecture. The model has 14 layers total. Eight are double-gated LIV convolution blocks. The remaining six are grouped-query attention (GQA) blocks. The hybrid layout targets fast CPU inference.
The context length is 32,768 tokens. The vocabulary size is 65,536. The knowledge cutoff is mid-2024. It supports ten languages, including English, Chinese, Arabic, and Japanese.
Liquid AI team ships two checkpoints. LFM2.5-230M-Base is the pre-trained model for fine-tuning. LFM2.5-230M is the general-purpose instruction-tuned version. The license is lfm1.0.
Training and Post-Training
The model was pre-trained on 19 trillion tokens. That total includes a 32K context extension phase. The post-training recipe then runs in three stages.
First comes supervised fine-tuning with distillation from the larger LFM2.5-350M. Second is direct preference optimization (DPO). Third is multi-domain reinforcement learning. This preserves flexibility for downstream specialization.
The distillation step is what keeps a 230M model competitive with larger checkpoints. It inherits behavior from the bigger LFM2.5-350M on targeted tasks.
Benchmark
Liquid AI team evaluated LFM2.5-230M across ten benchmarks. They span knowledge, instruction following, data extraction, and tool use.
The instruction-following results support that. On IFEval, LFM2.5-230M scores 71.71. That beats Qwen3.5-0.8B (59.94) and Gemma 3 1B IT (63.49). On IFBench it scores 38.40, ahead of both. On CaseReportBench, a clinical data-extraction test, it scores 22.51.
ModelParamsIFEvalIFBenchCaseReportBenchBFCLv4MMLU-Pro
LFM2.5-230M230M71.7138.4022.5121.0320.25
LFM2.5-350M350M76.9640.6932.4521.8620.01
Granite 4.0-H-350M350M61.2717.2212.4413.2813.14
Qwen3.5-0.8B (Instruct)800M59.9422.8713.8318.7037.42
Gemma 3 1B IT1B63.4920.332.287.1714.04
LFM2.5-230M leads on instruction following and data extraction. It trails on broad knowledge: MMLU-Pro is 20.25, behind Qwen3.5-0.8B’s 37.42. It is also weak on some agentic tool use. On τ²-Bench Telecom it scores just 5.26.
Liquid AI is direct about the limits. It does not recommend the model for reasoning-heavy workloads. That means advanced math, code generation, and creative writing.
Use Cases With Examples
The model fits two jobs well.
The first is large-scale data extraction pipelines. Picture a pipeline parsing 100,000 clinical reports into structured fields. A 4-bit build with a 293–375 MB memory footprint runs that on commodity CPUs. You extract locally, with no per-token API bill.
The second job is lightweight on-device agentic workloads. Think a home automation hub that turns speech into tool calls. Or a phone assistant that routes a request to the right function.
As an early signal, Liquid AI deployed the model on a Unitree G1 humanoid robot. It ran entirely on the robot’s onboard NVIDIA Jetson Orin. There the model acted as a skill-selection layer. It turned one natural-language instruction into a sequence of tool calls. Those calls invoked low-level skills from NVIDIA’s SONIC framework.
Tool Use: How It Works
LFM2.5 supports function calling in four steps. You define tools as JSON in the system prompt. The model writes a Pythonic function call between special tokens. You execute the call and return the result. The model then writes a plain-text answer.
By default the call is a Python list. It sits between the <|tool_call_start|> and <|tool_call_end|> tokens. Here is the documented pattern, with the tool JSON abbreviated:
Copy CodeCopiedUse a different Browser
<|im_start|>system
List of tools: [{"name": "get_candidate_status",
"parameters": {"candidate_id": {"type": "string"}}}]<|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|>
You can also force JSON-formatted calls through the system prompt.
Running It: A Minimal Example
The model works with Transformers 5.0.0 and up. The recommended generation settings are temperature 0.1, top_k 50, and repetition_penalty 1.05. Note the do_sample=True flag, which is required for those sampling settings to apply.
Copy CodeCopiedUse a different Browser
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "LiquidAI/LFM2.5-230M"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
dtype="bfloat16",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
inputs = tokenizer.apply_chat_template(
[{"role": "user", "content": "What is C. elegans?"}],
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
output = model.generate(
**inputs,
do_sample=True,
temperature=0.1,
top_k=50,
repetition_penalty=1.05,
max_new_tokens=512,
)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
Liquid AI also publishes fine-tuning recipes. They cover SFT, DPO, and GRPO with LoRA, via Unsloth and TRL. Each ships as a Colab notebook.
Interactive Explainer
(function(){
window.addEventListener("message",function(e){
if(e.data&&e.data.type==="lfm-resize"){
var f=document.getElementById("lfm25-frame");
if(f&&e.data.height){f.style.height=e.data.height+"px";}
}
});
})();
Check out the Model weight on HF, Technical details and Docs. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us
The post Liquid AI Ships LFM2.5-230M with llama.cpp, MLX, vLLM, SGLang, and ONNX Support for On-Device Inference appeared first on MarkTechPost.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み