概要
GPU/CPU/RAMを自動検出し、ベンチマークテストの品質と速度に基づいてHuggingFaceモデルをランク付けします。ハードウェアシミュレーション、JSON出力、インスタントチャットをサポートします。
README プレビュー
# whichllm\n\n[](https://pypi.org/project/whichllm/)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/Andyyyy64/whichllm/actions/workflows/test.yml)\n[](https://github.com/sponsors/Andyyyy64)\n\n**Find the best local LLM that actually runs on your hardware.**\n\nAuto-detects your GPU/CPU/RAM and ranks the top models from HuggingFace that fit your system.\n\n[日本語版はこちら](docs/README.ja.md)\n\n## Quick start\n\nRun the recommendation command once, with no project setup.\n\n```bash\nuvx whichllm@latest\n```\n\nSimulate a GPU before you buy hardware.\n\n```bash\nuvx whichllm@latest --gpu "RTX 4090"\n```\n\nInstall it when you use it often.\n\n```bash\nuv tool install whichllm\nuv tool upgrade whichllm # update an existing install\n```\n\nOther install paths.\n\n```bash\nbrew install andyyyy64/whichllm/whichllm\npip install whichllm\n```\n\n## Common workflows\n\nAfter install, run `whichllm` directly. For one-off runs, replace `whichllm`\nwith `uvx whichllm@latest`.\n\n```bash\n# Best models for this machine\nwhichllm\n\n# Pretend you have a specific GPU\nwhichllm --gpu "RTX 4090"\n\n# Compare upgrade candidates\nwhichllm upgrade "RTX 4090" "RTX 5090" "H100"\n\n# Find the GPU needed for a model\nwhichllm plan "llama 3 70b"\n\n# Start a chat with a model\nwhichllm run "qwen 2.5 1.5b gguf"\n\n# Print copy-paste Python\nwhichllm snippet "qwen 7b"\n\n# Return JSON for scripts\nwhichllm --top 1 --json\n```\n\n\n\n## See it\n\n```text\n$ whichllm --gpu "RTX 4090"\n\n#1 Qwen/Qwen3.6-27B 27.8B Q5_K_M score 92.8 27 t/s\n#2 Qwen/Qwen3-32B 32.0B Q4_K_M score 83.0 31 t/s\n#3 Qwen/Qwen3-30B-A3B 30.0B Q5_K_M score 82.7 102 t/s\n```\n\nThe 32B model **fits your card fine** — whichllm still ranks the 27B #1,\nbecause it scores higher on real benchmarks and is a newer generation.\nA size-only "what fits?" tool would hand you the bigger one. That gap is\nthe whole point of whichllm. (Note #3: a MoE model
FAQ (5)
トラブル対応whichllm が特定の Hugging Face repo ID に対して「No model found matching」と表示される場合、どう修正すればよいですか?
whichllm を v0.5.18 以降にアップグレードしてください。このバージョンでは、正確な Hugging Face リポジトリ ID の検索が追加されています:
python -m pip install -U "whichllm>=0.5.18"
Homebrew 経由でインストールしている場合は、whichllm の tap/formula をアップグレードしてから、次を実行します:
whichllm plan ilsp/Llama-Krikri-8B-Instruct
JSON 出力の場合:
whichllm plan ilsp/Llama-Krikri-8B-Instruct --json
正確な owner/repo ID を渡すと、v0.5.18 以降では、キャッシュ済みモデルカタログにそのリポジトリが存在しない場合、Hugging Face から直接取得します。また、HF_ENDPOINT 環境変数にも従います。
トラブル対応Qwen3.8-27Bがwhichllmの推奨リストに表示されないのはなぜですか?また、どうすれば修正できますか?
whichllm を **v0.5.18 以降**にアップグレードしてください。旧リリースでは、Hugging Face の image-text-to-text タグがビジョン専用モデルとして扱われていたため Qwen/Qwen3.8-27B が除外され、Qwen のマイナーバージョンが 1 つの qwen3-27b ファミリーに統合され、Qwen3.6 を上位にランク付けする古いベンチマーク/系統データが使用されていました。
修正版は次のコマンドで実行します:
uvx whichllm@0.5.18
または:
uvx whichllm@latest
v0.5.18 では、グループ化の際にチェックポイントのバージョンと組織の識別情報が保持され、新しい Qwen リリースも含まれます。メンテナーによる M2 Max 96 GB での比較では、Qwen3.8-27B はトップ 10 圏外から 2 位に浮上しました。旧バージョンで vision または any プロファイル/include_vision=True を使用しても取得フィルターを回避できるだけであり、ランキングとグループ化の問題を解決するにはアップグレードが必要です。
トラブル対応models.json または benchmarks.json を読み込む際に whichllm が UnicodeDecodeError でクラッシュする問題を修正するにはどうすればよいですか?
whichllm をバージョン 0.5.17 以降にアップグレードしてください。このバージョンでは、UTF-8 以外のキャッシュファイルを破損したキャッシュとして扱い、クラッシュする代わりにキャッシュを更新します。
python -m pip install --upgrade whichllm
Homebrew でインストールした場合:
brew update
brew upgrade whichllm
古いバージョンでの一時的な回避策として、whichllm のキャッシュディレクトリから破損した models.json や benchmarks.json ファイルを削除してから、whichllm を再度実行するとキャッシュが再構築されます。
トラブル対応ベンチマーク収集中にアーカイブされた Open LLM Leaderboard をページネーションする際に発生する HTTP 429 レート制限エラーは、どのように修正すればよいですか?
whichllm v0.5.20 以降にアップグレードしてください。このリリースでは、数値形式および HTTP-date 形式の Retry-After ヘッダーを尊重し、アーカイブされた Open LLM Leaderboard に対してソース固有の上限付きリトライ設定を使用し、リトライ後も後続のページがレート制限された場合でも取得済みのページを保持します。収集を再実行してください。部分的な結果は 24 時間キャッシュされ、キャッシュされた実行では取得に関する警告は繰り返されません。スコアを強制的に再取得するには --refresh を使用してください。最初のリーダーボードページが 429 で失敗した場合、まだ保持されているページがないため、そのソースは引き続き失敗します。
トラブル対応AAがインデックスを刷新した後、古くなったAA Intelligence Indexのスコアとランキングを修正するにはどうすればよいですか?
**whichllm v0.5.20以降**にアップグレードしてください。v0.5.15では_AA_INDEX_MIN/_AA_INDEX_MAXが再調整され、作り直されたスケールに合わせてAAフォールバックスナップショットが更新されました。v0.5.20では、有限のライブAAスコアが減少またはゼロになった場合でも保存済みスコアを置き換えられるようにすることで、修正が完了しました。ライブレスポンスに含まれないモデルは、保存済みのスコアを保持します。アップグレード後は、--refreshを付けて実行し、既存のベンチマークキャッシュをバイパスして新しいデータを強制的に取得してください: whichllm --refresh(またはお使いのインストール環境での同等のコマンド)。