Instructions to use tokimoa/Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use tokimoa/Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("tokimoa/Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit") config = load_config("tokimoa/Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit
llm-jpの日本語VLM Jagle-VL-2.2B-Jagle-FineVision(Qwen3-1.7B + siglip2ビジョンエンコーダ・InternVL型・llmjpvlアーキテクチャ)のMLX 8bit量子化版です。Apple Silicon Macで約2.5GB・実測142 tok/s(M4 Max)・ピークメモリ約4.3GBで動きます。
検証(正解既知の日本語文書QA 6問)
請求書・議事録・契約書・チェックシート等の実写風文書画像で、6問すべて内容正解を確認しています(合計金額880,000円・担当変更「鈴木から田中」・Recall@5で0.92 など)。決定論的設定(temperature 0)で検証。
重要: mlx-vlmへの3行パッチが必要です(2026-08-05時点)
本モデルのテキスト側はQwen3バックボーンですが、mlx-vlm 0.6.8のllmjpvl実装はllama/qwen2のみ対応です。以下のパッチで動きます(上流PR: Blaizzy/mlx-vlm#1801・マージ後は不要になります):
mlx_vlm/models/llmjpvl/language.py のAttentionに qwen3 のq/k RMSNormを追加:
# __init__ 内(head_dim算出後)
self.use_qk_norm = config.model_type == "qwen3"
if self.use_qk_norm:
self.q_norm = nn.RMSNorm(head_dim, eps=config.rms_norm_eps)
self.k_norm = nn.RMSNorm(head_dim, eps=config.rms_norm_eps)
# __call__ 内(reshape/transpose後・rope前)
if self.use_qk_norm:
queries = self.q_norm(queries)
keys = self.k_norm(keys)
あわせて LanguageModel.__init__ の対応リストに "qwen3" を追加し、config.py の TextConfig に head_dim: Optional[int] = None を追加してください(head_dim = getattr(config, "head_dim", None) or hidden_size // n_heads)。
使い方
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config
repo = "tokimoa/Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit"
model, processor = load(repo, trust_remote_code=True)
config = load_config(repo, trust_remote_code=True)
prompt = apply_chat_template(processor, config, "この画像に何が写っていますか。", num_images=1)
out = generate(model, processor, prompt, image=["doc.png"], max_tokens=400, temperature=0.0)
text = out.text
# 出力冒頭にチャネルトークンが付くため剥がす(上流READMEと同じ後処理)
for tok in ["<|channel|>final<|message|>", "<|return|>"]:
text = text.replace(tok, "")
print(text.strip())
補足
- 4bit量子化は非公開としました。 手元の検証で応答の冗長化・思考トークン混入・QA誤答の増加が見られたためです(このアーキテクチャは量子化感度が高め)。8bitは上記のとおり安定しています。
- ベースモデルの学習データ(FineVision)にはプロプライエタリモデル出力由来のデータが含まれる旨が上流カードに記載されています。利用時はその点に留意してください。
ライセンスと帰属
- 元モデル: llm-jp/Jagle-VL-2.2B-Jagle-FineVision(Apache-2.0・LLM-jp: 国立情報学研究所 大規模言語モデル研究開発センター)
- 論文: Jagle: Building a Large-Scale Japanese Multimodal Post-Training Dataset for Vision-Language Models
- 変換: mlx-vlm(+上記qwen3パッチ)
Converted by tokimoa — データを外に出さないAI活用を支援しています
- Downloads last month
- 16
8-bit
Model tree for tokimoa/Jagle-VL-2.2B-Jagle-FineVision-MLX-8bit
Base model
llm-jp/Jagle-VL-2.2B-Jagle-FineVision