Liquid AIは、decision model「d1-omni-600M」をApple Silicon向けに8-bit MLX形式へ変換したLiquidAI/d1-omni-600M-MLX-8bitをHugging Faceで公開しました。サイズは0.73 GBで、float32基準との照合では175件中175件で最多回答が一致しています。
Liquid AIはMITの計算機科学・人工知能研究所から生まれた基盤モデル開発企業で、パソコンや携帯端末への実装を対象にしています。
d1-omni-600Mとは
d1-omni-600Mは、テキスト、JSON、画像、音声の状態(state)に対し、名前付き・型付きの質問へ1回のforward passで回答するモデルです。回答時にトークンを生成せず、戻り値は{"answers": {name: answer}, "usage": {"input_tokens": n, "output_tokens": 0}}の形になります。質問の型はchoice(ラベルとprobabilities、metadata.confidence)、score(期待レベルとlegend)、noul/bool(yesの確率)です。音声入力は16 kHzモノラルで最大30秒です。
精度検証
8-bit量子化の対象はtrunkとaudio encoderで、vision towerとdecision scorerはfloat16のままです。検証はmlx-vlmでfloat32実行した元チェックポイントを基準に、テキスト104、画像41、音声30の計175回答で行っています。
| リポジトリ | サイズ | 最多回答一致 | Max Δp | Mean Δp |
|---|---|---|---|---|
d1-omni-600M-MLX-fp16 |
1.17 GB | 175/175 | 0.007 | 0.0010 |
d1-omni-600M-MLX-8bit |
0.73 GB | 175/175 | 0.060 | 0.0083 |
推奨精度はfloat16です。bfloat16は原モデルカードが非推奨としており、この検証でも175件中2件の最多回答が変わったためエクスポートしていません。4-bitも回答の変化が多く、提供していません。Liquid AIはこの検証を精度ベンチマークではなく回答一致のスモークテストと位置づけています。
試し方
mlx-vlmの0.7.6より後のバージョンが必要です。次のリリースまではGitHubからインストールします。
pip install -U git+https://github.com/Blaizzy/mlx-vlm.git
- Python:
from mlx_vlm import load, predictの後、load("LiquidAI/d1-omni-600M-MLX-8bit")でモデルとプロセッサを読み込み、predictに状態と質問辞書を渡します。画像はimages=[...]、音声はaudio=(パス、URL、サンプル配列)で指定します。 - CLI:
python -m mlx_vlm decide --model LiquidAI/d1-omni-600M-MLX-8bit --state "..." --questions '{...}'。--stateは任意で、1つ以上の--imageまたは1つの--audioを指定できます。 - サーバー:
python -m mlx_vlm server --decision-model LiquidAI/d1-omni-600M-MLX-8bitで起動し、http://127.0.0.1:8080/v1/decisionsへ同じリクエスト形式でPOSTします。画像・音声はURL、パス、base64 data URIに対応します。
変換手順
元モデルのリビジョン02b55d7076f1を、mlx-vlmのコミット952d4f6bc65bで次のコマンドにより変換しています。
python -m mlx_vlm convert --hf-path LiquidAI/d1-omni-600M --mlx-path d1-omni-600M-MLX-8bit -q --q-bits 8 --q-group-size 64 --dtype float16
ライセンスはotherです。

まだコメントはありません。