ローカルLLMを始めようとして、最初の一歩でこう固まったことはありませんか?
- モデルが多すぎて、結局どれを入れればいいのか分からない
- 「VRAMに収まる一番大きいモデル」を入れたのに、遅すぎて実用にならなかった
- Qwen、Gemma、Phi…名前は知っているが、自分のマシンでどれが”賢く動く”のか判断できない
この「最初の迷い」を、たった1コマンドで解消してくれるのが whichllm です。
ひとことで言えば、whichllm は 「あなたのPCで”とりあえず動く”のではなく”一番賢く使える”ローカルLLMを、ベンチマークスコア順にランキングしてくれるCLIツール」 です。GPU・RAMを自動検出し、HuggingFaceのライブデータと突き合わせて「あなたの環境で現実的に動く中での最善手」を提示します。
この記事では、実際に Apple M5 / 16GBのMacにwhichllmをインストールして実測し、その結果をもとに次の4点を整理します。
- なぜ「VRAM最大=最適」が間違いなのか(最重要の誤解)
- whichllm と Ollama の役割の違い(選ぶツール vs 動かすツール)
- 実測ランキングの読み解き方(スコア・速度・世代・量子化)
- 速度の推定値を鵜呑みにしないための注意点
検証環境: Apple M5 / 16GB / macOS、whichllm v0.5.12(as-of 2026-06-25)
1. 【混乱の整理】「VRAM最大=最適」がなぜ間違いか
ローカルLLM選びで最も多い誤解が、これです。
「自分のVRAM(メモリ)に収まる、一番大きいモデルが一番賢い」
これは半分正しく、半分間違っています。確かにパラメータ数が多いほど賢い傾向はあります。しかし実際には、次の4つが絡み合って「実用的な賢さ」が決まります。
| 要素 | 何を意味するか | 落とし穴 |
|---|---|---|
| ベンチスコア | LiveBench / Aider 等での実力 | パラメータ数 ≠ スコア。小さくても高スコアのモデルがある |
| 生成速度(tok/s) | 体感の速さ | 大きいモデルは遅い。遅すぎると実用にならない |
| モデル世代 | 公開時期 | 同サイズでも新しい世代の方が賢いことが多い |
| 量子化(Quant) | 精度とサイズのトレードオフ | 詰め込みすぎると精度が落ちる |
つまり「収まる最大モデル」を選ぶのは、速度と世代と量子化を無視した賭けにすぎません。本当に必要なのは「収まる中で、スコア・速度・世代のバランスが最も良いモデル」を選ぶことです。
この多変数の判断を、人間が毎回HuggingFaceとベンチサイトを往復してやるのは現実的ではありません。そこを1コマンドで肩代わりするのが whichllm です。
2. whichllmとは — Ollamaとの役割分担
ここで多くの人が混同するのが、whichllm と Ollama の違いです。両者は競合ではなく、役割が違います。
| ツール | 役割 | ひとこと |
|---|---|---|
| whichllm | どのモデルを動かすべきか教える(選定) | 「あなたのMacならコレ」を提案する案内役 |
| Ollama / LM Studio | モデルを実際に動かす(実行ランタイム) | 選んだモデルをダウンロードして走らせる |
カーナビとクルマの関係に近いです。whichllm が「この道(モデル)が最適」と案内し、Ollama がそのモデルを実際に走らせます。併用するのが正しい使い方で、whichllm だけでは推論はできません(後述)。
whichllm は GitHub の Andyyyy64/whichllm(MITライセンス)で公開されています。NVIDIA / AMD / Apple Silicon に対応し、ベンチマークは 2026年5月時点のキュレーション済みスナップショットをベースに、到達可能なときは Artificial Analysis / LiveBench / Aider のライブデータをマージして判定します(モデル一覧は6時間、ベンチは24時間ごとに更新)。
3. インストール — 4つの方法(Python 3.11+)
前提は Python 3.11以上のみ。インストール方法は4通りあり、おすすめは追加セットアップ不要の uvx です。
# ① uvx(推奨・インストール不要で即実行)
uvx whichllm@latest
# ② uv tool(恒久インストール)
uv tool install whichllm
uv tool upgrade whichllm
# ③ Homebrew
brew install andyyyy64/whichllm/whichllm
# ④ pip
pip install whichllm
GPU検出用の nvidia-ml-py は標準で含まれ、AMD / Apple Silicon は自動検出されます。Apple Silicon Macなら追加ドライバ類は不要で、uvx whichllm@latest を打つだけで動きます。
4. 使い方 — 1コマンドでハードウェア自動検出
基本はコマンド名を打つだけです。
whichllm # 基本:自動検出してランキング表示
whichllm --markdown --top 12 # Markdown表で上位12件
whichllm --profile coding # コーディング用途で最適化
whichllm --json # JSON出力(スクリプト連携用)
実行すると、まず自分のハードウェアを検出した結果が表示されます。これは実際に M5 Mac で出力されたものです。
╭───────────────── Hardware Info ─────────────────╮
│ GPU 0: Apple M5 — 16.0 GB shared (budget 15.2 GB) — BW: 153 GB/s │
│ CPU: Apple M5 — 10 cores │
│ RAM: 16.0 GB │
│ Disk free: 405.5 GB │
│ OS: darwin │
│ VRAM headroom: 819 MB reserved per GPU │
╰─────────────────────────────────────────────────╯
16GBの共有メモリのうち、OSやアプリ用を差し引いた 実効予算は15.2GB——この「使える上限」を踏まえてランキングが組まれます。ここが「収まるかどうか」の判定基準になります。
5. 【実測】Apple M5 16GBでのランキング結果
ここが本記事の核心です。実際に whichllm --markdown --top 12 を実行した、M5 / 16GBでの一般プロファイル上位がこちらです(数値は実出力そのまま)。
| # | モデル | 量子化 | VRAM | 速度 | 公開 | スコア |
|---|---|---|---|---|---|---|
| 1 | Qwen/Qwen3-30B-A3B | Q3_K_M | 13.8 GB | 47.8 tok/s ? | 2025-04 | 79.2 |
| 2 | Qwen/Qwen3.6-27B | Q3_K_M | 14.7 GB | 5.2 tok/s ~ | 2026-04 | 78.6 |
| 3 | google/gemma-4-26B-A4B-it | Q3_K_M | 12.3 GB | 37.7 tok/s ? | 2026-03 | 77.6 |
| 4 | openai/gpt-oss-20b | Q4_K_M | 12.7 GB | 34.1 tok/s ? | 2025-08 | 76.0 |
| 5 | Qwen/Qwen3-14B | Q4_K_M | 10.0 GB | 8.3 tok/s ~ | 2025-04 | 70.4 |
| 8 | Qwen/Qwen3-8B | Q6_K | 7.9 GB | 9.4 tok/s ~ | 2025-04 | 62.8 |

Apple M5 / 16GB での実測スコアランキング。1位 Qwen3-30B-A3B はMoEで大型でも軽量・高速。
注目すべきは 1位の Qwen3-30B-A3B。30Bという大型でありながら 13.8GB に収まり、しかも速度が突出しています。これは MoE(Mixture of Experts)モデルで、表記の「A3B」は実際に動くアクティブパラメータが約3Bという意味です。サイズの割に速いのはこのためで、「30B=重いはず」という直感を裏切ります。まさに「VRAM最大≠最適」を体現する好例です。
コーディング用途なら結果が変わる
Claude Code やエディタ補完で使うなら --profile coding を付けます。すると顔ぶれが変わります。
| # | モデル | 量子化 | VRAM | スコア |
|---|---|---|---|---|
| 1 | Qwen/Qwen3-Coder-30B-A3B-Instruct | Q3_K_M | 13.8 GB | 79.2 |
| 3 | Qwen/Qwen2.5-Coder-14B-Instruct | Q4_K_M | 10.0 GB | 43.5 |
| 4 | Qwen/Qwen2.5-Coder-7B-Instruct | Q4_K_M | 5.6 GB | 36.9 |
コーディング特化版の Qwen3-Coder-30B-A3B-Instruct が筆頭。用途を伝えるだけで「汎用で賢い」から「コードで賢い」へ最適化されるのが、whichllm の実用性です。
6. 結果の読み解き方 — 5つの列の意味
ランキングは、次の5要素を総合して並んでいます。慣れると一目で判断できます。
- Score(スコア): ベンチマーク上の実力。高いほど賢い。まずここを見る
- Fit / VRAM: 「Full GPU」は予算内に完全に収まる=快適に動く目安
- Speed(速度): 体感の速さ。ただし後述の通り目安として扱う
- Quant(量子化):
Q3_K_M(軽いが精度妥協)〜Q6_K(高精度だが重い)。同じモデルでも量子化で性格が変わる - Published(世代): 新しいほど一般に賢い。同スコアなら新しい方を選ぶ
実用の優先順位はシンプルです。①スコアで候補を絞り → ②速度が実用ライン(おおむね15〜20 tok/s以上が快適)か確認し → ③同条件なら新しい世代を取る。この順で見れば外しません。
7. 主要オプション7選
whichllm は素の出力だけでなく、フィルタが充実しています。よく使うものを挙げます。
| オプション | 効果 |
|---|---|
--profile coding\|vision | 用途特化で最適化 |
--gpu-only / --fit gpu | VRAMに完全に収まるモデルだけ表示 |
--speed usable\|fast | 速度でフィルタ |
--gpu "RTX 4090" | 別GPUをシミュレート(買い替え検討に便利) |
--top N | 上位N件に絞る |
--markdown / --json | ブログ貼付やスクリプト連携用の出力 |
--vram-headroom | メモリ余裕の設定を調整 |
特に --gpu "..." は、「このGPUを買ったら何が動くか」を買う前にシミュレートできる点が秀逸です。
8. 判定後どう動かすか — snippet で実行へ橋渡し
ここが見落とされがちですが重要です。whichllm は選ぶだけで、推論そのものは別ランタイムが担います。橋渡しには snippet と run を使います。
whichllm snippet "qwen3 8b" # 実行スクリプトを生成
whichllm run "qwen 2.5 1.5b gguf" # 直接実行
snippet は、選んだモデルを動かすための transformers のサンプルコードを出力します(実出力を要約)。
# whichllm run 'Qwen/Qwen3-8B' でも実行可
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Qwen/Qwen3-8B"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", torch_dtype="auto", trust_remote_code=True,
)
実運用では、whichllm が出したモデル名を Ollama / LM Studio に渡して動かすのが手軽です。たとえば上位の Qwen3 系なら ollama pull qwen3:8b のように、選定結果のモデル名をそのまま自分のランタイムに流し込めば、選定から実行まで一気通貫になります。
9. やりがちなアンチパターン4選
whichllm は便利ですが、鵜呑みにすると判断を誤るポイントが4つあります。これは whichllm 自身が出力で警告している誠実な仕様でもあります。
- 速度の推定値を実測と勘違いする — 速度欄の
~は推定レンジ、?は低信頼(バックエンド依存)。あなたのマシンの実測値ではありません。最終判断は自分で1回動かして確かめましょう。 - スコアだけで決める — 今回の1位も「top pick confidence: Low(2位と+0.6差)」と表示されました。僅差なら速度や世代で選び直すのが正解です。
- 量子化を無視する —
Q3_K_Mは軽い代わりに精度を妥協しています。重要な用途ではQ4以上を選ぶなど、量子化の意味を理解して選びましょう。 - ベンチの鮮度を過信する — 判定は2026年5月のスナップショット+ライブマージです。ごく最新のモデルは反映が遅れることがあるため、話題の新モデルは公式情報も併せて確認を。
whichllm が「確信度: Low」と自己申告してくれる点こそ信頼に値します。断言しないツールほど、実は誠実です。
10. whichllm vs 手動選定 — 比較と実践チェックリスト
最後に、従来の「手動で選ぶ」やり方との比較です。
| 観点 | 手動選定 | whichllm |
|---|---|---|
| 所要時間 | HuggingFace+ベンチサイトを往復で数十分 | 1コマンド・数秒 |
| ハード適合 | 自分でVRAM計算が必要 | 自動検出 |
| 速度の目安 | 不明(動かすまで分からない) | 推定値を提示 |
| 用途最適化 | 手作業 | --profile で一発 |
| 客観性 | 主観・印象に流れがち | ベンチスコア基準 |
実践チェックリスト
- [ ]
uvx whichllm@latestで自分のマシンのランキングを取得した - [ ] 用途に合わせて
--profile coding等で絞った - [ ] スコアだけでなく 速度と量子化も確認した
- [ ] 確信度(confidence)が Low の場合は2位以下も検討した
- [ ] 選んだモデルを Ollama / LM Studio で実際に1回動かして体感を確かめた
まとめ
ローカルLLM選びの「結局どれを入れれば?」は、whichllm を使えば1コマンドで客観的な答えにたどり着けます。
この記事のポイントを振り返ります。
- 「VRAM最大=最適」は誤解 — スコア・速度・世代・量子化の4要素で決まる
- whichllm は選ぶツール、Ollama は動かすツール — 併用が正解
- Apple M5 / 16GBの実測では、MoEの Qwen3-30B-A3B が「大型なのに速い」筆頭だった
- 速度は推定値であり、確信度が Low のときは自分で1回動かして確かめる
「とりあえず動く」から「一番賢く使える」へ。次にローカルLLMを入れるときは、まず uvx whichllm@latest を打ってみてください。選定にかけていた数十分が、数秒に変わります。

コメント