为什么你需要 WhichLLM?
本地运行大语言模型(LLM)已经成为开发者的新常态。无论是用 Ollama 跑 Qwen、用 llama.cpp 调 GGUF,还是用 LM Studio 加载模型,开发者面临一个共同的难题:
我的硬件能跑什么模型?哪个模型在我的设备上性能最好?
HuggingFace 上有数十万个模型,规格从 1.5B 到 72B 不等,量化方式有 Q4_K_M、Q5_K_M、Q8_0……盲目下载一个 70B 模型,等半天才发现 VRAM 不够,白白浪费时间。
WhichLLM 就是为解决这个痛点而生。它能自动检测你的硬件配置,对比真实基准测试数据(而非参数数量),在一秒内给出最适合你硬件的模型推荐。
核心特性一览
| 特性 | 说明 |
|---|---|
| 自动检测 | 自动识别 NVIDIA/AMD/Apple Silicon/CPU 配置 |
| 智能排名 | 基于真实基准(LiveBench、Aider、Open LLM Leaderboard 等),非参数堆砌 |
| 时效感知 | 旧模型不会因为历史成绩好而排在新模型前面 |
| GPU 模拟 | 换显卡前就能预估性能:whichllm --gpu "RTX 5090" |
| 一键聊天 | 推荐后直接下载并启动交互式对话 |
| 代码片段 | 生成可直接运行的 Python 推理代码 |
| 升级规划 | 对比当前机器和候选 GPU 的差异 |
安装方式
WhichLLM 提供多种安装方式,推荐使用 uv 或 Homebrew:
方式一:uv(推荐,零安装直接运行)
# 一次性运行(不安装)
uvx whichllm@latest
# 安装到全局
uv tool install whichllm
# 更新
uv tool upgrade whichllm
方式二:Homebrew
brew install andyyyy64/whichllm/whichllm
方式三:pip
pip install whichllm
安装完成后,直接运行 whichllm 即可使用。
快速上手
自动检测并推荐模型
什么都不用配置,直接运行:
whichllm
输出示例:
#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
WhichLLM 自动检测了你的 GPU/CPU/RAM,推荐了最适合的模型并按综合得分排序。注意第 3 名是一个 MoE(混合专家)模型——虽然总参数量大,但活跃参数少,所以速度快得多。
查看硬件信息
whichllm hardware
输出示例:
GPU: NVIDIA RTX 4090 (24 GB VRAM)
CPU: AMD Ryzen 9 7950X (16 cores)
RAM: 64 GB
这对于了解自己的硬件配置很有帮助,尤其是当你不太确定 GPU 型号和显存大小时。
进阶功能
GPU 模拟:买显卡前先测试
你是否考虑升级到 RTX 5090,但想知道它能跑什么模型?WhichLLM 可以模拟任何 GPU:
# 模拟 RTX 5090
whichllm --gpu "RTX 5090"
# 模拟 RTX 4060
whichllm --gpu "RTX 4060"
# 自定义 VRAM
whichllm --gpu "RTX 5060 16"
输出示例:
#1 Qwen/Qwen3.6-27B 27.8B Q6_K score 94.7 ~40 t/s
#2 Qwen/Qwen3-32B 32.0B Q5_K_M score 88.0 ~38 t/s
这对于在购买硬件前做决策非常实用。
升级规划:对比升级收益
想知道从 RTX 4090 升级到 RTX 5090 能带来多少提升?
whichllm upgrade "RTX 4090" "RTX 5090" "H100"
输出显示每种配置下的推荐模型、得分和速度,一目了然。
反向规划:跑特定模型需要什么 GPU?
# 跑 Llama 3 70B 需要什么显卡?
whichllm plan "llama 3 70b"
# 跑 Qwen2.5-72B 的 Q8_0 量化版本
whichllm plan "Qwen2.5-72B" --quant Q8_0
# 长上下文场景
whichllm plan "mistral 7b" --context-length 32768
输出会告诉你需要多少 VRAM、推荐什么样的 GPU、以及能达到的性能水平。
一键聊天:推荐即用
推荐到模型后,可以直接启动对话:
# 下载并聊一个指定模型
whichllm run "qwen 2.5 1.5b gguf"
# 自动选择最佳模型并聊天
whichllm run
WhichLLM 会自动创建隔离环境、下载模型、启动交互式对话。
生成 Python 代码片段
如果你想在自己的应用程序中使用某个模型,WhichLLM 可以生成可直接运行的 Python 代码:
whichllm snippet "qwen 7b"
输出:
from llama_cpp import Llama
llm = Llama.from_pretrained(
repo_id="Qwen/Qwen2.5-7B-Instruct-GGUF",
filename="qwen2.5-7b-instruct-q4_k_m.gguf",
n_ctx=4096,
n_gpu_layers=-1,
verbose=False,
)
output = llm.create_chat_completion(
messages=[{"role": "user", "content": "Hello!"}],
)
print(output["choices"][0]["message"]["content"])
直接复制粘贴即可使用,省去翻阅文档的时间。
高级配置选项
按用例筛选
WhichLLM 支持按任务类型筛选模型:
# 选择最适合编程的模型
whichllm --profile code
# 通用对话
whichllm --profile general
# 数学推理
whichllm --profile math
# 视觉/多模态
whichllm --profile vision
按量化精度筛选
# 只推荐 Q4_K_M 量化
whichllm --quant Q4_K_M
# 显示更多结果
whichllm --top 20
# 最小速度要求
whichllm --min-speed 30
证据级别控制
WhichLLM 对每个模型的得分都标注了证据等级,你可以控制推荐的可信度:
# 严格模式:只推荐直接有基准数据的模型
whichllm --evidence strict
# 基础模式:允许同系列模型的跨代匹配
whichllm --evidence base
JSON 输出:脚本集成
将 WhichLLM 集成到自动化工作流中:
# 获取最佳模型的 HuggingFace ID
whichllm --top 1 --json | jq -r '.models[0].model_id'
# 获取最佳编码模型的完整信息
whichllm --profile code --top 3 --json | jq '.models[] | {name: .model_id, score: .score, speed: .estimated_tok_per_sec}'
输出示例:
{
"models": [
{
"model_id": "Qwen/Qwen3.6-27B-GGUF",
"score": 92.8,
"estimated_tok_per_sec": 27.3,
"speed_confidence": "high",
"quant": "Q5_K_M"
}
]
}
评分机制详解
WhichLLM 的评分机制是其核心亮点,值得单独说明。
数据来源
WhichLLM 聚合了以下基准测试数据:
- LiveBench — 实时生成的最新评测
- Artificial Analysis — 第三方独立测试平台
- Aider — AI 编程助手基准
- Chatbot Arena ELO — LMSYS 的众包评分
- Open LLM Leaderboard — HuggingFace 官方榜单
- 多模态/视觉评测 — 适用时
评分规则
- 不是越大越好:一个 27B 模型如果得分更高,会排在 32B 模型前面
- 时效衰减:2024 年的模型不会因为历史高分而压制 2026 年的新模型
- 置信度分级:每个分数都标注了证据等级:
-
direct— 该模型、该量化方式有直接基准数据 -variant— 同型号不同量化版本的数据 -base— 基座模型的数据(跨代推断) -interpolated— 插值估算 -self-reported— 开发者自行报告的数据 - 防造假机制:拒绝不可信的虚假上传数据,防止小型魔改模型借用大模型分数
实测:不同硬件的最佳选择
根据 WhichLLM 的最新数据(2026 年 6 月),不同硬件配置的推荐如下:
| 硬件 | VRAM | 最佳推荐 | 速度 |
|---|---|---|---|
| RTX 5090 | 32 GB | Qwen3.6-27B Q6_K (score 94.7) | ~40 t/s |
| RTX 4090 / 3090 | 24 GB | Qwen3.6-27B Q5_K_M (score 92.8) | ~27 t/s |
| RTX 4060 | 8 GB | Qwen3-14B Q3_K_M (score 71.0) | ~22 t/s |
| Apple M3 Max | 36 GB | Qwen3.6-27B Q5_K_M (score 89.4) | ~9 t/s |
| 纯 CPU 运行 | — | gpt-oss-20b (MoE) Q4_K_M (score 45.2) | ~6 t/s |
💡 注意:MoE(混合专家)模型的活跃参数远少于总参数,因此在同等硬件上速度更快。WhichLLM 的评分机制已经考虑了这一点。
与同类工具对比
| 特性 | WhichLLM | Ollama | LM Studio | LocalAI |
|---|---|---|---|---|
| 自动推荐最佳模型 | ✅ | ❌ | ❌ | ❌ |
| GPU 模拟 | ✅ | ❌ | ❌ | ❌ |
| 基准数据排名 | ✅ | ❌ | ❌ | ❌ |
| 升级规划 | ✅ | ❌ | ❌ | ❌ |
| 代码片段生成 | ✅ | ❌ | ❌ | ❌ |
| 一键聊天 | ✅ | ✅ | ✅ | ✅ |
| JSON 输出 | ✅ | ✅ | ❌ | ❌ |
| CLI 轻量 | ✅ | ✅ | ❌ | ✅ |
Ollama 仍然是跑模型的好选择,但 WhichLLM 解决的是选模型的问题——这两者其实是互补的:用 WhichLLM 找出最佳模型,再用 Ollama 或其他工具跑起来。
实战场景
场景一:新购显卡的采购决策
你想从 RTX 3060 升级,预算足够买 RTX 5070 或 RTX 4090 二手:
# 模拟当前硬件
whichllm --gpu "RTX 3060"
# 模拟升级选项
whichllm upgrade "RTX 3060" "RTX 5070" "RTX 4090"
对比输出结果,可以看到每块卡能跑什么模型、速度如何,理性决策。
场景二:给项目的模型选择建议
你的团队要开发一个本地 RAG 系统,需要选择推理模型:
# 用 CI 服务器配置测试
whichllm --gpu "RTX 4090" --profile code --json | jq
用 JSON 输出直接集成到决策文档中。
场景三:在边缘设备部署
# CPU only 模式
whichllm --cpu-only --top 10
找到最适合 CPU 推理的小模型,用于物联网或嵌入式场景。
常见问题
Q: WhichLLM 会不会下载模型到本地?
A: 默认情况下,whichllm 只是查询 HuggingFace API 和本地缓存数据,不会下载模型。只有 whichllm run 命令才会下载模型。
Q: 如何更新模型数据?
whichllm --refresh
强制刷新缓存,获取 HuggingFace 上的最新模型。
Q: 没有网络环境怎么办?
A: WhichLLM 内置了缓存机制,离线状态下会使用预先缓存的快照数据。
Q: 支持 AMD 显卡吗?
A: 是的,WhichLLM 支持 NVIDIA、AMD、Apple Silicon 和纯 CPU 模式。
总结
WhichLLM 解决了本地 LLM 开发者面临的一个核心痛点:在海量模型中找到最适合自己硬件的那一个。它的亮点在于:
- 基于证据的智能排名——不是简单按参数大小排序,而是综合真实基准数据和时效性
- GPU 模拟功能——买硬件前就能测试性能,避免冲动消费
- 一键集成——从推荐、聊天到代码生成,一个工具全部解决
- 可脚本化——JSON 输出方便集成到自动化工作流
无论你是刚入门本地 LLM 的开发者,还是正在搭建生产环境的团队,WhichLLM 都能帮你节省数小时的试错时间。
项目信息:
- GitHub: github.com/Andyyyy64/whichllm
- 许可证: MIT
- 安装: pip install whichllm 或 brew install andyyyy64/whichllm/whichllm