Liquid AI、蒸留でQ4_0精度97%に回復

Liquid AIはHugging Face上で、LFM2.5シリーズの新しいチェックポイント群を公開した。フォーマットはGGUF Q4_0、学習手法はQAD(quantization-aware distillation、量子化を意識した蒸留)と呼ばれるものだ。230M、350M、1.2B-Instruct、2.6Bの4サイズそれぞれで、ベンチマーク上BF16基準の97.1%、96.5%、97.4%、96.6%のスコアを回復したという。

ローカル推論に縁がない人にはピンとこない数字かもしれない。その意味を理解するには、まずllama.cppのエコシステムでQ4_0がどんな立ち位置にあったかを知る必要がある。

コミュニティに見捨てられたフォーマット

Q4_0は最も初期の4ビット量子化方式の一つで、ルールはいたってシンプルだ。重み32個ごとに1つのスケール係数を共有し、残りはそのまま4ビット整数へ圧縮する。その後コミュニティはK-quant系列(Q4_K_M、Q5_K_Mなど)を生み出した。テンソルの重要度に応じてビット幅を配分する方式で、同じサイズでも精度が明らかに高い。その結果Q4_0はほぼ引退状態となり、古いデバイスや古いランタイムにだけ生き残っていた。

それでもQ4_0には他に代えがたい利点が一つある。構造が規則的で、Arm CPUのint8ドット積命令に直接マッピングできる点だ。K-quantのブロック分割やルックアップテーブルはスマートフォンCPU上では余計な手間がかかるが、Q4_0にはそれがない。今回Liquid AIが示した速度データもここが根拠になっている。同じモデル群で比較すると、Q4_0チェックポイントはQ5_K_Mより4〜33%、Q4_K_Mより3〜14%高速だったという。

つまりQ4_0を足止めしていたのは常に精度の問題だった。QADが狙うのはまさにそこだ。

量子化を学習プロセスに組み込む

従来の手法はPTQ(post-training quantization、学習後量子化)だ。まずフルサイズで学習を終え、その後圧縮し、どれだけ精度が落ちたかを確認して、落ちすぎていれば別のフォーマットに切り替える。QADの発想はその逆で、モデルが学習段階からあらかじめ自分がどう圧縮されるかを織り込む。高精度な教師モデルが量子化済みの生徒モデルへ蒸留を行い、量子化の制約を学習に組み込むことで、重みの分布を前もって4ビットのグリッドへ寄せておく。Liquid AIは公式ブログでQADはQ4_0チェックポイントを大幅に改善すると説明している。

これ自体は新しい概念ではない。量子化を意識した学習は画像系モデルで長年使われてきた手法だ。それを言語モデルに持ち込む際のネックはコストにある。目標とするフォーマット1つごとに、専用の学習を1回走らせる必要があるのだ。それでもこのコストを払う意思を示したということは、採算が取れると判断したということだろう。端末上で動くモデルのダウンロード数や呼び出し数は、フォーマット専用に1回学習を回すだけの価値があるという判断だ。

4台のマシンで検証

テストは2種類のハードウェアで行われた。MacBook ProとNucBox EVO-X2はGPU推論、Samsung Galaxy S26 Ultraとラズベリーパイ5はArm CPU推論だ。ラズベリーパイ5がリストに入っている点は興味深い。GPUを持たず、メモリにも余裕のないデバイス群を代表する存在で、Q4_0の優位性が最も大きく出る条件でもある。

サイズをざっくり計算すると、2.6Bパラメータを4ビットで保存した場合、重みだけで1.4GB強になる。KVキャッシュとランタイムのオーバーヘッドを加えても、メモリ8GBのスマートフォンに収まり、他の処理にも余裕を残せる計算だ。230Mモデルはさらに小さく数百MB程度で、アプリに組み込んでローカル機能として使うのも十分現実的な規模だ。

このチェックポイント群が賭けているもの

今回興味深いのはトレードオフの方向性そのものだ。この2年間、端末上推論の主流戦略はモデルを小さくすることだった。パラメータ数を減らして蒸留するか、より賢い量子化フォーマットに切り替えるか、のどちらかだ。Liquid AIは今回、第三の道を選んだ。フォーマットもパラメータ数もそのままに、最適化の負荷をすべて学習側に移すというやり方だ。

その代償は、この手法が自社モデルにしか効かないという点だ。コミュニティがこの方法を使って他社が公開したQ4_0の重みを救うことはできない。それには元の学習パイプラインが必要になるからだ。これはモデル提供元だけが用意できるものであり、端末向け小型モデルの競争の中で数少ない差別化ポイントの一つでもある。同じ2.6B、同じllama.cpp上で動かして、4ビット化しても精度の落ちが少ない側が一勝を挙げる、という構図だ。

開発者から見たハードルは変わっていない。GGUF Q4_0は最も広く対応したフォーマットであり、llama.cppをはじめQ4_0対応の任意のランタイムでそのまま読み込め、コード変更も新しい演算子の追加も不要だ。Liquid AIが独自フォーマットではなくこれを選んだ理由もそこにある。互換性そのものが配布力になるということだ。

参考資料: Liquid AI公式ブログ、CocoLoop、Hugging Faceモデルページ。4サイズの精度回復率と2種類の速度データは公式発表の数値と照合済み。