CoolFace
Modelpublic

tokimoa/llm-jp-4-vl-9b-beta-mlx-8bit

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes151downloads
Model Card

llm-jp-4-vl-9b-beta (MLX 8bit, verified)

LLM勉強会(llm-jp)の llm-jp-4-vl-9b-beta(日英対応9B VLM。InternVL型グルー×SigLIP×llm-jp-4-8bの構成)をMLX 8bit(group size 64、実効8.843bpw)に量子化したものです。

当方で移植したMLX実装はmlx-vlm本体にマージ済み(0.6.8で標準対応)です(llmjpvl/ディレクトリ)。mlx-vlm 0.6.8以降ではそのまま使えます。

検証セットでの出力がbf16版と全問文字列一致した、品質劣化の見えない構成です。速度はbf16の約2倍・メモリは6割です。

導入手順

mlx-vlm 0.6.8以降なら追加手順は不要です(この移植実装は#1738で本体にマージされ、0.6.8に収録されました。0.6.8での動作を実測確認済み):

bash
pip install mlx-vlm

<details><summary>0.6.7以前を使う場合(旧手順)</summary>

repo同梱のllmjpvl/をmlx_vlm/models/へコピーしてください(詳細は旧版カード参照)。

</details>

使い方

python
from mlx_vlm import load, generate

model, processor = load("tokimoa/llm-jp-4-vl-9b-beta-mlx-8bit", trust_remote_code=True)

text = processor.apply_chat_template(
    [{"role": "user", "content": "<image>この請求書の合計金額はいくらですか?"}],
    tokenize=False, add_generation_prompt=True,
)
out = generate(model, processor, text, image=["invoice.png"], max_tokens=256, temperature=0.0)
print(out.text)

変換品質の検証(tokimoa)

同梱のMLX実装は、bf16変換版でtransformers公式実装(bf16・MPS)とのgreedy出力一致検証を実施済みです(前処理・後処理を揃えた条件で、日本語ビジネス文書QA 6問すべて文字列レベルで完全一致)。

この8bit版の検証:

  • —日本語ビジネス文書5種(請求書・議事録・契約条項・チェックシート・技術文書)の正解既知QA 6問で 6/6問正解・bf16版とgreedy出力が文字列レベルで完全一致
  • —議事録の長文説明(約200トークン生成)でも事実関係(数値・担当変更・期日)を正確に抽出

実測速度(M4 Max 36GB)

  • —生成: 38.7 tok/s / プロンプト処理: 504 tok/s(画像3,370トークン・512px×最大12タイル)
  • —ピークメモリ: 12.5GB(重み9.3GB)

変換情報

  • —変換元: llm-jp/llm-jp-4-vl-9b-beta(公式BF16、commit 783c4a9)
  • —MLX実装: mlx-vlm 0.6.7の部品(InternVL型グルー+SigLIP+Llama)を組み合わせた移植パッケージllmjpvl(このrepoに同梱)
  • —量子化: mlx-vlm 0.6.7 convert -q --q-bits 8(group size 64 affine、実効8.843bpw)
  • —兄弟repo: bf16(参照一致検証済み・20.6GB)/ 4bit(GT 6/6正解・8.2GB・61.7 tok/s)
  • —変換者: tokimoa

ライセンス

Apache-2.0(元モデルに準拠)