Views
No views yet
plamo2 LM+SigLIP so400mの日英VLM)をMLX 8bit(group size 64、実効8.83bpw)に量子化したものです。plamo2vl/ディレクトリ)。mlx-vlm 0.6.8以降ではそのまま使えます。このrepoは上流のtrust_remote_codeをtransformers 5対応に再構成済みです(上流はtransformers<5専用。standalone configへの差し替え・torch用modelingの除去)。mlx-vlm 0.6.7(transformers 5系)でそのまま動きます。
pip install mlx-vlm numba torch torchvisionplamo2vl/をmlx_vlm/models/へコピーしてください(詳細は旧版カード参照)。### 指示:/### 応答:)のプロンプトを内部で組み立てます。processor(images=画像, text=質問)だけで正しい形式になります。1import mlx.core as mx
2import torch
3from PIL import Image
4from transformers import AutoProcessor
5from mlx_vlm import load
6
7repo = "tokimoa/plamo-2.1-8b-vl-mlx-8bit"
8model, _ = load(repo, trust_remote_code=True)
9processor = AutoProcessor.from_pretrained(repo, trust_remote_code=True)
10
11inputs = processor(images=Image.open("photo.png"), text="この画像に写っているものを説明してください。")
12input_ids = mx.array(inputs["input_ids"].numpy())
13pixel_values = mx.array(inputs["pixel_values"].to(dtype=torch.float32).numpy())
14
15cache = model.make_cache()
16logits = model(input_ids, pixel_values, mask=None, cache=cache).logits
17y = mx.argmax(logits[:, -1, :], axis=-1)
18tokens = []
19for _ in range(256):
20 t = int(y[0])
21 tokens.append(t)
22 if t == 1: # <|plamo:eos|>
23 break
24 logits = model(y[None], None, mask=None, cache=cache).logits
25 y = mx.argmax(logits[:, -1, :], axis=-1)
26print(processor.tokenizer.decode(tokens, skip_special_tokens=True))pfnet/plamo-2.1-8b-vl(公式BF16、commit 5823e34)plamo2実装をベースに移植したplamo2vlパッケージ(このrepoに同梱。RoPE base=1e6のplamo-2.1系対応を含む)mlx-vlm 0.6.7 convert -q --q-bits 8(group size 64 affine、実効8.83bpw)LICENSE.mdに収録。本モデルの利用はその条件に従います):