M2 MacBook Air(8GB)でVision AIは動くのか? — mlx-vlm v0.4.3 実測レポート

目次

mlx-vlm とは

mlx-vlmは、Appleの機械学習フレームワークMLX上で動くVision Language Model(VLM)パッケージです。開発者はPrince Canuma氏。MITライセンスのOSSで、GitHub Stars 3,300超。

特徴は3つ:
– Apple Silicon(M1/M2/M3/M4)にネイティブ最適化
– 50種類以上のVisionモデルアーキテクチャに対応
– 主要モデルのリリース当日にサポート(Day-0対応)

v0.4.3(2026年4月2日リリース)では以下が追加されました:
– Gemma 4(Google DeepMind)のDay-0サポート
– Falcon-OCR(TII)— 300Mパラメータで大型モデル級のOCR
– SAM 3.1(Meta)— Object Multiplexによる高速セグメンテーション
– RF-DETR(Roboflow)— リアルタイム物体検出
– TurboQuant — KVキャッシュを最大約80%圧縮

検証環境

  • MacBook Air M2(2022年モデル)
  • メモリ: 8GB(最小構成)
  • macOS 26.3.1
  • Python 3.12.4(miniconda3)
  • mlx-vlm v0.4.3

セットアップ — 3分で完了

インストールは1行です。

uv pip install -U mlx-vlm

PyTorch(transformersの依存)も必要だったので追加インストール:

pip install torch torchvision

HuggingFaceへのログインも必要です:

python -c "from huggingface_hub import login; login()"

ここまで約3分。特にハマるポイントはありませんでした。

テスト画像

2種類の画像を用意しました。

テスト画像1(英語テキスト): 3行のシンプルなテキスト

テスト画像1: 英語テキスト

テスト画像2(日本語請求書): 実務を想定した請求書形式

テスト画像2: 日本語請求書

テスト画像3(写真): COCOデータセットの猫2匹の写真

テスト画像3: 猫2匹の写真

結果一覧

先に結論をお見せします。

動作したモデル:
– Falcon-OCR(300M): 51 tok/s、メモリ1.7GB — 余裕で動作
– Qwen2-VL-2B(4bit): 49 tok/s、メモリ1.7GB — 余裕で動作
– Qwen2.5-VL-3B(4bit): 23 tok/s、メモリ3.6GB — 動作するが速度は半減

動作しなかったモデル:
– Gemma 4 E2B(4bit): GPU Timeout
– Gemma 3n E2B(4bit): Out of Memory

8GBメモリでも動くモデルと動かないモデルがはっきり分かれました。詳しく見ていきます。

検証1: Falcon-OCR(300M)— ダークホースの登場

Falcon-OCRはアブダビのTechnology Innovation Institute(TII)が開発した、わずか300MパラメータのOCR特化モデルです。公式ベンチマークではGemini 3 Proに匹敵し、GPT 5.2を上回る精度を謳っています。

英語テスト:

mlx_vlm.generate \
  --model tiiuae/Falcon-OCR \
  --image /tmp/test.png \
  --prompt "Read all the text in this image."

結果: 完璧。3行すべて正確に読み取り。

  • Prompt処理: 565.7 tok/s
  • 生成速度: 51.3 tok/s
  • ピークメモリ: 1.673 GB

Prompt処理が565 tok/sという異常な速さ。300Mパラメータの恩恵です。

日本語請求書テスト:

結果: ほぼ完璧

請求書
日付: 2026年4月4日
請求先: 株式会社テスト
件名: A1コンサルティング業務     ← 「AI」が「A1」に
金額: ¥550,000 (税込)
内訳:
- 基本コンサルティング: ¥300,000
- 技術レピュー: ¥150,000         ← 「レビュー」が「レピュー」に
- 消費税(10%): ¥50,000
振込先: みずほ銀行 渋谷支店 普通 1234567

誤認識は2箇所のみ。金額・数値はすべて正確。300Mの超軽量モデルでこの精度は驚きです。

  • 生成速度: 44.9 tok/s
  • ピークメモリ: 2.468 GB

8GBメモリの約30%しか使っていません。

検証2: Qwen2-VL-2B — 定番の軽量VLM

Qwen2-VL-2Bはmlx-vlmで最もダウンロードされている軽量VLMです(6,600+ downloads)。

英語テスト: 完璧に読み取り。49.4 tok/s。

写真理解テスト(猫の写真):

The image shows two cats lying on a pink blanket. The blanket is placed on a red couch. The cats appear to be resting or sleeping, with one cat lying on its side and the other cat lying on its back. There are two remote controls placed on the couch near the cats.

猫2匹、ピンクのブランケット、赤いソファ、リモコン2つ——すべて正確。

日本語プロンプトでの写真理解: 認識はするものの、同じ文を繰り返すリピートバグが発生。日本語での指示は苦手のようです。

日本語OCRテスト: プロンプトをそのままオウム返しして失敗。2Bモデルの日本語対応には限界がありました。

検証3: Qwen2.5-VL-3B — 8GB Macの最適解

Qwen2.5-VL-3Bは、Qwen2-VLの後継モデル。パラメータが1.5倍になった分、品質はどう変わるか。

写真理解テスト:

The image shows two cats lying on a pink couch. The cat on the left is lying on its side with its head resting on the couch and its tail hanging down. The cat on the right is lying on its back with its legs extended and its head turned to the side. Both cats have striped patterns on their fur.

2Bモデルと比べて、猫の毛の模様(striped patterns)左右の姿勢の違いまで認識。品質が明確に上がっています。

日本語請求書 → JSON抽出テスト:

「この請求書の内容をJSON形式で抽出してください」と指示したところ:

{
  "date": "2026年4月4日",
  "requester": "株式会社テスト",
  "subject": "AIコンサルティング業務",
  "amount": "550,000円(税込)",
  "details": [
    {"item": "基本コンサルティング", "amount": "300,000円"},
    {"item": "技術レビュー", "amount": "150,000円"},
    {"item": "消費税", "amount": "50,000円"}
  ],
  "bank_account": {
    "bank": "みずほ銀行",
    "branch": "渋谷支店",
    "account_number": "1234567"
  }
}

完璧。 全項目を正確に読み取り、構造化されたJSONとして出力。Falcon-OCRが誤認識した「AIコンサルティング」も正しく読み取れています。

  • 生成速度: 23.1 tok/s(2Bモデルの約半分)
  • ピークメモリ: 3.625 GB(8GBの45%)

速度は半減しましたが、日本語の品質が段違いです。

検証4: Gemma 4 E2B — 期待の新星は動かなかった

v0.4.3の目玉であるGemma 4。Google DeepMindが開発し、Apache 2.0で公開された注目のモデルです。E2Bは「実効2Bパラメータ」の軽量版——のはずでした。

libc++abi: terminating due to uncaught exception of type std::runtime_error:
[METAL] Command buffer execution failed:
Caused GPU Timeout Error (kIOGPUCommandBufferCallbackErrorTimeout)

GPU Timeout。 モデルのロード自体は成功しましたが、推論実行時にGPUがタイムアウト。

前世代のGemma 3n E2Bも試しましたが、こちらは明確にOut of Memory:

[METAL] Command buffer execution failed:
Insufficient Memory (kIOGPUCommandBufferCallbackErrorOutOfMemory)

Gemma系はVision Encoderが大きく、「2B」と名乗っていても8GBのUnified Memoryでは収まりきらないようです。X.comでGemma 4が「45-50 tok/sで動いた」と報告していた@nayakayp氏は、M1 MacBook Air——おそらく16GBモデルだったのでしょう。

TurboQuant — 短いプロンプトでは差が出ない

v0.4.3の新機能TurboQuantも試しました。KVキャッシュを3.5ビットに圧縮する技術です。

Qwen2-VL-2Bで3パターン比較:
– ベースライン: 39.6 tok/s
– TurboQuant 3.5-bit: 40.5 tok/s
– TurboQuant 2-bit: 43.5 tok/s

差はわずか。これは想定通りで、TurboQuantは128K+トークンの長文処理でKVキャッシュが巨大になったときに効果を発揮する設計です。公式ベンチマークでは128KコンテキストでKVメモリ76%削減が報告されています。短いプロンプト(178トークン)ではKVキャッシュ自体が小さいため、圧縮効果が出ません。

まとめ — 8GB Macユーザーへの推奨

M2 MacBook Air 8GBでのVision AI、結論はこうです:

動く。ただしモデル選びが鍵。

用途別の推奨:
ドキュメントOCR: Falcon-OCR(300M)。超軽量・高速・高精度。日本語も95%以上の精度
画像理解 + 日本語タスク: Qwen2.5-VL-3B(4bit)。速度は落ちるが日本語品質が圧倒的。請求書→JSONも完璧
英語の軽量タスク: Qwen2-VL-2B(4bit)。速度と品質のバランスが良い
Gemma 4: 16GB以上のMacが必要。8GBでは動かない

驚いたのはFalcon-OCRの存在感です。たった300Mパラメータ——大規模モデルの1/100以下のサイズ——で、日本語の請求書をほぼ完璧に読み取る。大規模モデルの時代に逆行するような小ささですが、特化モデルの強さを改めて実感しました。

8GB Macでもローカル Vision AI は実用段階に入っています。ぜひ試してみてください:

uv pip install -U mlx-vlm

検証データ(全テスト結果)

動作したモデル

Falcon-OCR(300M)
– 英語OCR: 51.3 tok/s、ピーク1.673 GB、結果: 完璧
– 日本語OCR: 44.9 tok/s、ピーク2.468 GB、結果: 95%精度(2箇所の文字誤り)

Qwen2-VL-2B-Instruct-4bit
– 英語OCR: 49.4 tok/s、ピーク1.725 GB、結果: 完璧
– 写真理解(英語): 43.0 tok/s、ピーク2.216 GB、結果: 正確
– 写真理解(日本語): 42.4 tok/s、ピーク2.220 GB、結果: リピートバグあり
– 日本語OCR: 47.1 tok/s、ピーク3.339 GB、結果: 失敗

Qwen2.5-VL-3B-Instruct-4bit
– 写真理解(英語): 23.1 tok/s、ピーク3.613 GB、結果: 高品質
– 日本語請求書→JSON: 23.1 tok/s、ピーク3.625 GB、結果: 完璧

動作しなかったモデル

  • gemma-4-e2b-it-4bit: GPU Timeout(Vision Encoder過大)
  • gemma-3n-E2B-it-4bit: Out of Memory
  • granite-4.0-3b-vision-4bit: mlx-vlm v0.4.3未対応

TurboQuant(Qwen2-VL-2B、178トークン)

  • ベースライン: 39.6 tok/s、1.725 GB
  • TurboQuant 3.5-bit: 40.5 tok/s、1.725 GB
  • TurboQuant 2-bit: 43.5 tok/s、1.725 GB

参考リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次