tokimoa/plamo-2.1-8b-vl-mlx-bf16
PLaMo 2.1-8B-VL (MLX bf16, reference-verified) — Built with PLaMo
Preferred Networksの PLaMo 2.1-8B-VL(Mamba×Attentionハイブリッドplamo2 LM+SigLIP so400mの日英VLM)のMLX bf16変換版です。
当方で移植したMLX実装はmlx-vlm本体にマージ済み(0.6.8で標準対応)です(plamo2vl/ディレクトリ)。
transformers公式実装(bf16・MPS)との突き合わせ検証の基準となる版です(ピークメモリ22.4GB=32GB Mac推奨)。通常利用には 8bit(推奨・16GB Macで動作)か 4bit をどうぞ。
このrepoは上流のtrustremotecodeをtransformers 5対応に再構成済みです(上流はtransformers<5専用。standalone configへの差し替え・torch用modelingの除去)。mlx-vlm 0.6.7(transformers 5系)でそのまま動きます。
導入手順
mlx-vlm 0.6.8以降なら追加手順は不要です(この移植実装は#1739で本体にマージされ、0.6.8に収録されました。0.6.8での動作を実測確認済み):
pip install mlx-vlm numba torch torchvision<details><summary>0.6.7以前を使う場合(旧手順)</summary>
repo同梱のplamo2vl/をmlx_vlm/models/へコピーしてください(詳細は旧版カード参照)。
</details>
使い方
チャットテンプレートではなく、processorが日本語Alpaca型(### 指示:/### 応答:)のプロンプトを内部で組み立てます。processor(images=画像, text=質問)だけで正しい形式になります。コード例は8bit版のカードと同じです(repo名を読み替えてください)。
変換品質の検証(tokimoa)
- transformers公式実装(bf16・MPS)と同一入力でのprefillロジット比較: 6プロンプト全てでtop-1トークン一致(cos類似度0.9986〜0.9996・top-10重複9〜10/10)
- 写真説明プローブで参照実装とgreedy出力が文字列レベルで完全一致(「果物市場の画像」)
- 補足: モデルが不確信な入力(高密度文書の数値読み取り等)では、torch実装↔MLX実装間でもbf16数値ゆらぎの蓄積によりgreedy出力が途中分岐します(変換品質の問題ではありません)
用途上の注意: 2B版より文書読解は改善していますが(請求書の合計金額は正答)、高密度文書の細かい数値読み取りにはまだ不確実さがあります(transformers公式実装でも同傾向)。
実測速度(M4 Max 36GB)
- 生成: 約15 tok/s / プロンプト処理: 約520 tok/s(画像2,187トークン=Eagle2タイリング3枚・384px)
- ピークメモリ: 22.4GB(重み18GB)
変換情報
- 変換元:
pfnet/plamo-2.1-8b-vl(公式BF16、commit 5823e34) - MLX実装: mlx-vlm 0.6.7の部品+mlx-lmの
plamo2実装をベースに移植したplamo2vlパッケージ(このrepoに同梱。RoPE base=1e6のplamo-2.1系対応を含む) - 変換: mlx-vlm 0.6.7ベースの手動変換(上流remote codeがtransformers<5専用のためprocessorロードを迂回。bf16キャスト)
- 兄弟repo: 8bit(推奨・9.8GB・約30 tok/s)/ 4bit(5.6GB・約49 tok/s)/ 2B版: plamo-2.1-2b-vl-mlx-bf16
- 変換者: tokimoa
ライセンス
PLaMoコミュニティライセンス(全文を同梱のLICENSE.mdに収録。本モデルの利用はその条件に従います):
- 個人・学術利用は登録不要で利用可
- 商用利用は[事前登録](https://forms.gle/mTL8tBLrMYXKNZD56)+年商10億円以下が条件(超える場合はPFNの商用ライセンスが必要)
- 再配布時はライセンス同梱・「Built with PLaMo」表示・モデル名にPLaMoを含めることが必要
