tokimoa/stockmark-nemotron-3-nano-omni-japandocreader-mlx-4bit
082
Stockmark-Nemotron-3-Nano-Omni-JapanDocReader (MLX 4bit, verified)
Stockmarkの Stockmark-Nemotron-3-Nano-Omni-JapanDocReader(NVIDIA Nemotron-3-Nano-Omni-30B-A3Bベースの日本語文書読解特化・Mixed SFT+DAPOの2段訓練)をMLX 4bit(group size 64、実効4.76bpw)に量子化したものです。
30B級MoE(アクティブ約3B)なので、18GBの重み・ピークメモリ約23GBで動作し、生成約110 tok/sと高速です。32GB以上のApple Siliconを推奨します。
必要バージョン: mlx-vlm main(#1743修正込み)
mlx-vlm 0.6.8リリース版には、変換済みNemotron Omni系MLXモデルのロードで音声エンコーダ重みが二重転置されて壊れるバグがあります(当方が発見し Blaizzy/mlx-vlm#1743 で修正・本体へマージ済み)。0.6.8を超えるリリースが出るまでは、mainからインストールしてください:
pip install "git+https://github.com/Blaizzy/mlx-vlm.git"次期リリース以降は通常のpip install mlx-vlmで動作します。
使い方
プロンプトに<image>プレースホルダを明示するのがポイントです:
python -m mlx_vlm generate \
--model tokimoa/stockmark-nemotron-3-nano-omni-japandocreader-mlx-4bit \
--image invoice.png \
--prompt "<image>この請求書の合計金額はいくらですか?" \
--max-tokens 700 --temperature 0.0 --trust-remote-codePython APIの場合:
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config
repo = "tokimoa/stockmark-nemotron-3-nano-omni-japandocreader-mlx-4bit"
model, processor = load(repo, trust_remote_code=True)
config = load_config(repo, trust_remote_code=True)
prompt = apply_chat_template(processor, config, "<image>この請求書の合計金額はいくらですか?", num_images=1)
out = generate(model, processor, prompt, image=["invoice.png"], max_tokens=700, temperature=0.0)
print(out.text)変換品質の検証(tokimoa)
日本語ビジネス文書5種(請求書・議事録・契約条項・チェックシート・技術文書)の正解既知QA 6問で検証:
- 6/6問正解(合計金額・表内の数量単価・×項目の特定・担当変更・条項の存続期間・数値指標の読み取り)— 余計な文を付けず簡潔に正答のみ返すスタイル
- 同一入力の反復で出力完全一致(決定論的)
- 参考: 同一ランタイムでベースモデル(mlx-community変換のNemotron-3-Nano-Omni-30B-A3B-Reasoning-4bit)も請求書正答を確認済み=ランタイム検証済み
- 検証はthinking無効(mlx-vlm既定)で実施。上流はthinking有効・英語推論トレースで訓練されていますが、無効でも文書読解は簡潔・正確でした
注記: 6bit量子化も試しましたが出力が破綻したため(先頭<unk>+縮退ループを実測)、検証を通過した4bitのみ公開しています。音声入力(Omni機能)はこの検証のスコープ外です。
実測速度(M4 Max 36GB)
- 生成: 約110 tok/s / プロンプト処理: 約460 tok/s(画像タイル込み約1,930トークン)
- ピークメモリ: 23.2GB(重み18GB)
変換情報
- 変換元:
stockmark/Stockmark-Nemotron-3-Nano-Omni-JapanDocReader(公式BF16、commit 5f8c45f) - 変換: mlx-vlm main(#1743修正込み)
convert -q --q-bits 4(group size 64 affine、実効4.76bpw) - 変換者: tokimoa
ライセンス
NVIDIA Open Model Agreement(元モデルに準拠。全文)
