用 whichllm 3 秒找到你最该跑的那个本地模型

为什么要用这个工具?

装了一堆模型,跑起来不是显存爆了就是慢得发指——这是每个想在本地跑 LLM 的开发者的日常。参数数量 ≠ 实际性能,尤其在不同 GPU 上,同一个 7B 模型的速度可能差 5 倍。

whichllm 就是来解决这个问题的:一条命令,自动在你本地跑基准测试,然后给出针对你硬件的排名。今天它新增了 3402 stars,说明需求真实存在。

工作原理:为什么它比参数数量更靠谱

传统的选模型方式:看参数量 → 看社区评测 → 自己试。问题是:

  • Q4 量化后的 13B 和 FP16 的 7B 哪个更快?
  • MMLU 分数和实际生成速度哪个更重要?

whichllm 的做法是:在你的机器上真的跑一遍。它内置了统一的评测脚本,测试三项:

  1. 吞吐量(tokens/s)
  2. 首 token 延迟(ms)
  3. 生成质量(基于参考回答的匹配度/困惑度)

这些测试会按近期提交的基准数据(recency-aware)加权,避免你还在用两个月前的旧量化版本。

实测:一条命令能得到什么

安装:

bash
1 2 3
pip install whichllm
# 或者直接拉仓库
whichllm run

运行后会依次加载不同模型并报告结果。示例输出(基于 RTX 4090 24GB,Q4_K_M 量化):

模型 参数 吞吐量 首 Token 延迟 综合评分
Qwen2.5-7B-Instruct 7B 82.3 t/s 92 ms 9.1
Llama-3.2-3B-Instruct 3B 145.1 t/s 45 ms 8.7
Mistral-7B-v0.3 7B 76.8 t/s 105 ms 8.5
Phi-3-mini-4k 3.8B 122.4 t/s 68 ms 8.3
CodeLlama-13B-Python 13B 34.5 t/s 210 ms 7.1

(数据基于 whichllm v0.3 默认测试,仅作示意)

可以看到:3B 模型吞吐量远超 13B,但综合评分还考虑了质量(CodeLlama 在代码任务上质量更高,但通用问答差一些)。

横向对比:同类工具谁更好

工具 方式 优点 缺点
whichllm 本地真实跑分 结果直接贴你硬件,无需手动配置 测试模型名单固定,不能自选 Prompt
ollama list + 手动测 命令行 + 自己测试 灵活,可调参数 麻烦,需写脚本
lm-eval-harness 标准评测集 覆盖全面的质量得分 不测速度,要自己拼 latency

我的观点:whichllm 最适合“我没时间一个个试,就想知道哪个模型跑得又快又不会胡说八道”的场景。如果你需要深度的多维评测(比如数学推理 vs 创意写作),还是用 lm-eval-harness 配合速度测试更靠谱。

适用场景与不适用场景

适用场景:

  • 本地首次部署一个模型,想快速选出最优的量化版本和参数量组合。
  • 硬件是消费级显卡(RTX 3060/4060/4090),内存 ≤32GB。
  • 基础问答、代码生成等通用任务。

不适用场景:

  • 需要评估特定领域(法律、医学、多轮对话角色扮演)—— whichllm 的生成质量测试太简单。
  • 多 GPU 分布式推理——工具未覆盖。
  • 量化方式不止一种(GGUF/F16/AWQ)——它默认只测 GGUF Q4_K_M,其他格式需要手动 hf 加载。

综合评价

whichllm 填补了一个真实空白:让参数不重要,让你的硬件说话。它不会让你选到绝对最好的模型(因为质量测试很粗糙),但能让你在 5 分钟内排除掉 80% 跑不动的选项。对于想快速落地本地 LLM 的开发者,值得装一个。

whichllm CLI output GPU benchmark

最后一句:别再看参数数量了,跑一下就知道好不好。