返回博客列表

whichllm:一条命令找出你的机器到底该跑哪个本地 LLM

2026-06-11T17:00:00+08:00
whichllmLLM本地部署GPUHuggingFace开源工具

whichllm:一条命令找出你的机器到底该跑哪个本地 LLM

看完你会发现,你之前选模型的方式可能要更新了。

选本地 LLM 最头疼的不是"哪个模型好",而是"哪个模型在我的机器上跑得最好"。

大部分人选模型的逻辑是:VRAM 够不够 → 参数量最大能塞哪个 → 下那个。但这个逻辑有个致命问题——参数量大不代表效果好,更不代表速度快

whichllm 就是来解决这个问题的。4500 Star,Python 写的,MIT 协议。一条命令,它检测你的 GPU/CPU/RAM,然后从 HuggingFace 的实时数据里,按真实 Benchmark 分数给你排个名——不是按参数量,是按实际表现。

本文提纲

  1. 一条命令看看效果
  2. 核心差异:为什么不是"能塞进去的最大的那个"
  3. 评分体系拆解
  4. 实用功能:模拟 GPU、硬件规划、一键聊天
  5. 支持什么硬件和模型格式

一条命令看看效果

# 零安装,直接跑
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人工智能时代,转载请注明出处。

觉得文章不错?分享给更多人!