whichllm:一条命令找出你的机器到底该跑哪个本地 LLM
whichllm:一条命令找出你的机器到底该跑哪个本地 LLM
看完你会发现,你之前选模型的方式可能要更新了。
选本地 LLM 最头疼的不是"哪个模型好",而是"哪个模型在我的机器上跑得最好"。
大部分人选模型的逻辑是:VRAM 够不够 → 参数量最大能塞哪个 → 下那个。但这个逻辑有个致命问题——参数量大不代表效果好,更不代表速度快。
whichllm 就是来解决这个问题的。4500 Star,Python 写的,MIT 协议。一条命令,它检测你的 GPU/CPU/RAM,然后从 HuggingFace 的实时数据里,按真实 Benchmark 分数给你排个名——不是按参数量,是按实际表现。
本文提纲
- 一条命令看看效果
- 核心差异:为什么不是"能塞进去的最大的那个"
- 评分体系拆解
- 实用功能:模拟 GPU、硬件规划、一键聊天
- 支持什么硬件和模型格式
一条命令看看效果
# 零安装,直接跑
uvx whichllm@latest
# 或者模拟一张 RTX 4090
uvx whichllm@latest --gpu "RTX 4090"
输出是这样的:
#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
注意:32B 模型完全能塞进 24GB VRAM,但 whichllm 把 27B 排第一——因为它的 Benchmark 分数更高,而且是新一代模型。一个只看"能不能装下"的工具会给你 32B 的。这个差距就是 whichllm 存在的意义。
第三行那个 MoE 模型更有意思:30B 总参数但只有 3B 激活参数,所以速度是 102 t/s。质量按总参数评,速度按激活参数算。
核心差异:为什么不是"能塞进去的最大的那个"
whichllm 的 README 里有句话特别精准:
Fitting a model into your VRAM is the easy part. The hard part is knowing which of the models that fit is actually the best.
它做了三件其他工具没做的事:
1. 基于 Benchmark 排名,不是参数量
合并了 LiveBench、Artificial Analysis、Aider、Chatbot Arena ELO、Open LLM Leaderboard 等多个真实评测数据源。每个分数都标注了证据等级(direct / variant / base / interpolated / self-reported),并按可信度打折。
2. 时间感知(Recency-aware)
旧的排行榜数据会被降权。一个 2024 年的模型不可能靠过时的分数排在 2026 年新模型前面。每次排名下面都印着 Benchmark 快照日期,过时推荐一目了然。
3. 防造假
上传者自己声称的 Benchmark 分数打折到 0.55 倍。跨家族"借分"(一个小 Fork 继承大模型的分数)会被直接拒绝。
评分体系拆解
每个模型拿到一个 0-100 的分数:
| 因子 | 作用 | 说明 |
|---|---|---|
| Benchmark 质量 | 核心因子 | 多源合并,按数据源可信度加权 |
| 模型大小 | 最高 +35 | log2 缩放,MoE 用总参数 |
| 量化等级 | 惩罚乘数 | 低 bit 量化打折 |
| 证据置信度 | ×0.55–1.0 | direct=1.0,self-reported=0.55 |
| 运行适配度 | ×0.50–1.0 | 部分 offload=0.72,纯 CPU=0.50 |
| 速度 | -8 到 +8 | 可用性门槛 |
| 来源信任 | -5 到 +5 | 官方组织加分,搬运工扣分 |
| 热度 | 打破平局 | 下载量/点赞数 |
分数标注:~(无直接 Benchmark,继承自家族)、!sr(上传者自报分数)、?(无数据)。
实用功能
模拟 GPU:买卡之前先试
whichllm --gpu "RTX 4090"
whichllm --gpu "RTX 5090"
打算升级显卡?跑一下看看哪张卡能跑什么模型,再做决定。
硬件规划:反向查找
whichllm plan "llama 3 70b"
"我想跑 Llama 3 70B,需要什么 GPU?"它直接告诉你。
升级对比
whichllm upgrade "RTX 4090" "RTX 5090" "H100"
对比多张候选显卡,看升级后能多跑什么。
一键聊天
whichllm run "qwen 2.5 1.5b gguf"
自动创建隔离环境、下载模型、启动交互聊天。支持 GGUF、AWQ、GPTQ、FP16/BF16 全格式。
代码片段
whichllm snippet "qwen 7b"
直接输出可以复制粘贴的 Python 代码:
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"])
JSON 输出
whichllm --top 1 --json | jq -r '.models[0].model_id'
方便接入脚本和自动化流程。
支持什么硬件和模型格式
硬件:NVIDIA、AMD(Linux/ROCm)、Apple Silicon(Metal)、纯 CPU。自动检测,不需要手动配置。
模型格式:
- GGUF — 通过 llama-cpp-python(轻量快速)
- AWQ / GPTQ — 通过 transformers + autoawq/auto-gptq
- FP16 / BF16 — 通过 transformers
平台限制:Apple Silicon 和纯 CPU 只推荐 GGUF(稳定性考虑);Linux + NVIDIA 可以用 AWQ/GPTQ。
数据来源:模型列表实时从 HuggingFace API 获取,有离线缓存回退(6 小时模型缓存、24 小时 Benchmark 缓存)。
安装
# 推荐:uvx 零安装运行
uvx whichllm@latest
# 或 Homebrew
brew install andyyyy64/whichllm/whichllm
# 或 pip
pip install whichllm
要求 Python 3.11+。
跑了一下,你的机器推荐了什么模型?评论区说说,看看大家的硬件都能跑什么。
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。

浙公网安备 33010602011771号