
DX担当者から「社内でローカルLLMを試してみたい、何がいい?」と聞かれたとき、あなたはどう答えますか。
Hugging Faceのリーダーボードを開いて、スコア上位のモデル名をいくつか挙げる。そういう答え方をしてしまいがちです。でも「そのモデル、うちのマシンで動きますか?」と返されたとき、即答できるでしょうか。
whichllm は、その問いにワンコマンドで答えを返してくれるツールです。ハードウェアを自動検出し、実測ベースの推計スコアと新しさ重みでランキングを生成し、「このマシンで動かすべきモデル」を示してくれます。
本記事で使う出力例は whichllm --gpu "RTX 4090" によるシミュレーション結果です。手元のマシンで whichllm をそのまま実行すれば、あなたの環境への答えが返ってきます。インストールから出力の読み方、Ollamaでのpullまでを一気通貫で見ていきます。
「パラメータ数を眺めて終わり」になっていないか
リーダーボードを見てモデルを選ぶフローには、実務でよく踏む落とし穴が3つあります。
1つ目は、リーダーボード依存。 公開ベンチマークのスコアは「そのモデルの性能上限」であって、「自分のマシンで出せる性能」ではありません。VRAMに収まらなければ速度は激落ちし、実用に耐えないケースも珍しくない。
2つ目は、量子化の考慮漏れ。 同じモデルでも Q4_K_M と Q8_0 ではファイルサイズが大きく異なり、VRAM消費も変わります。VRAM消費は weights + GQA KVキャッシュ + アクティベーション + オーバーヘッド の合算なので、手計算は煩雑です。量子化形式を変えるだけで「収まる/収まらない」が逆転することもある。
3つ目は、アーキテクチャ差による速度予測の困難さ。 たとえば Qwen3-30B-A3B は総パラメータ30Bですが、MoE(Mixture of Experts)アーキテクチャにより実稼働時のアクティブパラメータは約3B相当です。パラメータ数だけを見ると「重いモデル」に見えますが、実際の推論速度は全然違う。
後述の出力例でも、このモデルが102 t/sという速度を出しているのが確認できます。
これら3つを手動で調べようとすると、モデルごとにGGUFファイルのサイズを確認し、量子化形式を調べ、アーキテクチャを調べ……と時間がかかります。
whichllmはこの「ハードウェア検出→推計ベンチマーク→スコアリング」を1コマンドで完結させます。
whichllmの仕組み:スコアが何を表しているか
whichllmが何をしているかを理解しておくと、出力結果の読み方が変わります。
ハードウェア検出とVRAMフィルタリング
実行環境のGPU・CPU・RAMを自動検出し、各モデルのVRAM消費量を weights + GQA KVキャッシュ + アクティベーション + オーバーヘッド の合算で推計します。搭載VRAMに収まらないモデルはフィルタリングされます。
MoEモデルのアクティブ/トータルパラメータ比や、ユニファイドメモリ(Apple Silicon等)とdiscrete GPU(PCIe接続)の違いも考慮されています。「なんとなく収まりそう」ではなく、アーキテクチャを踏まえた推計になっている点が重要です。
スコアリングの構成要素
各モデルはスコアで評価されます。PyPIのREADME に公開されている内訳は以下のとおりです。
- モデルサイズ(0〜40点):大きいモデルほど高得点。「賢さの上限」に相当
- ベンチマーク(0〜10点):Chatbot Arena ELO・Open LLM Leaderboard等のスコアを反映
- 速度(0〜20点):tok/sが高いほど高得点。実用性の指標
「大きいほど賢いが遅い」というトレードオフが、このスコア設計に内包されています。スコア最上位が必ずしも「最速」ではなく、品質と速度のバランスが取れたモデルが上位に来る設計です。
なお上記3要素の合計は最大70点で、残りは新しさ重みや他の調整要素が加わる仕組みになっています。最終スコアの絶対値より、モデル間の相対的な順位と速度の組み合わせを読むことが実用上は重要です。
新しさ重みとconfidenceタグ
recency-aware ranking(新しさ重み) は、同スコア帯でも古いモデルを降格させる仕組みです。
半年前に話題だったモデルが上位に居座り続けないよう、リリース時期が近いモデルが優遇されます。モデルの入れ替わりが激しいローカルLLM界隈では、この設計は実用上かなり効いてきます。
ベンチマークソースは LiveBench・Artificial Analysis・Aider・Chatbot Arena ELO・Open LLM Leaderboard などを統合しています。
各スコアには direct(直接計測)/ variant(派生モデルからの推定)/ base(ベースモデルからの推定)/ interpolated(補間)/ self-reported(自己申告)のconfidenceタグが付与され、信頼性が低いほどスコアが割引かれます。
self-reported タグのモデルは、アップローダーが自己申告したスコアをそのまま使っているため、水増しのリスクがあります。whichllmはこれを自動で割引く設計になっており、「自己申告スコアで上位に来ているだけ」のモデルが弾かれます。
インストールから実行・出力確認まで
インストールは3通りあります。グローバル環境を汚したくない場合は pipx が推奨です。
pipxはツールを独立した仮想環境にインストールするため、既存プロジェクトの依存関係に影響しません。
# pipx(推奨)
pipx install whichllm
# pip
pip install whichllm
# Homebrew(macOS)
brew tap Andyyyy64/whichllm
brew install whichllm
実行コマンドは2パターン覚えておけば十分です。
# 自動検出(手元のマシンで実行)
whichllm
# GPUを指定してシミュレーション(購入検討・他環境の確認)
whichllm --gpu "RTX 4090"
# JSON出力でパイプライン活用
whichllm --json | jq
--gpu オプションでGPUを文字列指定すると、そのGPUを持っていなくても結果をシミュレートできます。「RTX 5090を買ったら何が動くか」を事前に確認したり、CI/CDに組み込んで定期レポートを生成したりする用途に使えます。
RTX 4090環境でのシミュレーション出力は以下のようになります(whichllm --gpu "RTX 4090" の実行結果)。
Detecting hardware...
GPU NVIDIA GeForce RTX 4090 24 GB VRAM
CPU AMD Ryzen 9 7950X 32 cores
RAM 64 GB
Top models for your hardware:
#1 Qwen/Qwen3.6-27B 27.8B Q5_K_M score 92.8 27 t/s
#2 Qwen/Qwen3-32B 32.0B Q4_K_M score 83.0 31 t/s
#3 Qwen/Qwen3-30B-A3B 30.0B Q5_K_M score 82.7 102 t/s
#4 mistral-nemo-instruct 12.2B Q8_0 score 79.1 48 t/s
#5 Llama-3.3-70B-Instruct 70.6B Q2_K score 71.2 14 t/s
各カラムの読み方を整理しておきます。
- スコア:品質感の総合指標。数値が大きいほど品質寄りの推計になっている
- 速度(t/s):トークン毎秒。20 t/s 以上あれば対話用途で実用的、10 t/s 以下だと待ちが気になる
- 量子化形式:Q5_K_M・Q4_K_M・Q8_0 などがそのままOllamaのpullに使える形式の参考になる
- パラメータ数:参考値。#3のQwen3-30B-A3BはMoEのため30Bでも102 t/sが出ている
#3 の Qwen3-30B-A3B に注目してください。スコアは #2 の Qwen3-32B とほぼ同じ(82.7 vs 83.0)なのに、速度は102 t/s と圧倒的です。
「スコアをほぼ落とさずに速度を大幅に確保できる」という選択肢が、パラメータ数だけを見ていると見えてこない。これがwhichllmを使う実際の価値です。
結果を受けてOllamaでpullするまで
whichllmの出力を手に入れたら、次は「どれを選ぶか」です。用途によって判断軸が変わります。
モデル選択の3軸
- 品質優先(スコア上位):文書要約・コード生成など、応答品質が直接アウトプットに影響するタスク。#1 の Qwen3.6-27B(score 92.8)を選ぶ
- 速度優先:対話・チャットボット・リアルタイム応答が必要なユースケース。#3 の Qwen3-30B-A3B(102 t/s)のような高速モデルを選ぶ
- VRAMヘッドルーム確保:LLM以外のプロセス(画像生成・別モデル・開発ツール)と共存させたい場合。スコアより一段下のモデルを選んでVRAMに余裕を持たせる
whichllmの出力には量子化形式(Q5_K_M、Q4_K_M等)が明示されています。Ollamaでpullする際のモデルタグ形式は Ollama公式ライブラリ で確認するのが確実ですが、量子化の種類が分かっていれば検索がぐっと楽になります。
以下はコマンドの参考例です(実際のタグはOllamaライブラリで確認してください)。
# 品質優先:Qwen3.6-27B を Q5_K_M でpull(タグはライブラリで要確認)
ollama pull qwen3.6:27b-q5_k_m
# 速度優先:Qwen3-30B-A3B を選ぶ場合
ollama pull qwen3:30b-a3b-q5_k_m
pullが完了したら、そのまま起動して動作確認できます。
ollama run qwen3.6:27b-q5_k_m
プロンプトが表示されたら起動成功です。
ここまで来ると、DX担当者への回答に実測ベースの根拠が加わります。「リーダーボードで上位だったので」ではなく、「ハードウェア特性を踏まえた推計スコア92.8・27 t/s、RTX 4090 / Ryzen 9 7950X / 64GB RAMの環境ならQwen3.6-27Bから始めるのが妥当です」と答えられる。
根拠の有無は、後から効いてきます。
実行環境について
本記事の出力例は whichllm --gpu "RTX 4090" によるシミュレーション結果です。
- GPU:NVIDIA GeForce RTX 4090(24GB VRAM)
- CPU:AMD Ryzen 9 7950X(32コア)
- RAM:64GB
手元の環境が異なれば、出力されるランキングは変わります。それがwhichllmの本来の使い方です。whichllm をそのまま実行すれば、あなたのマシンへの答えが返ってきます。
パラメータ数やリーダーボードのスコアは「モデルの性能上限」を示しているに過ぎません。「自分のマシンで、今日から使える速度で動くか」は別の問いです。
whichllmはその問いに、ハードウェア特性を踏まえた推計根拠のある答えを1コマンドで返してくれます。選定の説明を求められる場面で「whichllmのスコアとt/sを根拠に選定した」と言えるのは、「なんとなく有名だったので」とは全然違う。
株式会社ホコサキは山口県宇部を拠点に、AI活用支援やDX推進に取り組んでいます。ローカルLLMの選定・導入から業務システムへの組み込みまで、実務に即した支援が可能です。お気軽に お問い合わせ ください。

