whichllm:一句话找出最适合你硬件的本地大模型

2026/06/08 ai whichllm · 本地大模型 · 硬件检测 · 基准排名 · CLI 5352 字 · 约 16 分钟 阅读
whichllm 是一款 CLI 工具,自动检测 GPU/CPU/RAM 并从 HuggingFace 实时排名最适合本地运行的 LLM,支持 GPU 模拟、硬件升级规划和一键运行

whichllm 是什么

whichllm 是一个开源的 CLI 工具,核心功能就一句话:检测你的硬件配置,从 HuggingFace 实时抓取模型数据,用真实基准评测分数而非参数量来排名,告诉你哪个本地大模型最适合你的机器。

项目信息数据
GitHub 仓库https://github.com/Andyyyy64/whichllm
Stars3,081
Forks176
语言Python
许可证MIT
创建时间2026-03-04
Python 版本要求3.11+

GIF 演示效果:

$ whichllm --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 显存,但 whichllm 仍然把 27B 排在第一,因为它基准评分更高、是更新一代的模型。参数量最大 ≠ 综合体验最好,这正是 whichllm 的核心设计哲学。

核心特性

特性说明
自动硬件检测支持 NVIDIA、AMD、Apple Silicon、CPU-only
智能排名综合 VRAM 适配性、推理速度和基准评分
一键运行whichllm run 自动下载并启动聊天
GPU 模拟--gpu "RTX 4090" 无需实际硬件即可模拟
硬件规划whichllm plan "llama 3 70b" 反向查找所需 GPU
升级对比whichllm upgrade "RTX 4090" "RTX 5090" "H100"
代码片段whichllm snippet "qwen 7b" 输出可复用的 Python 代码
JSON 输出--json 管道友好,方便集成到脚本
任务筛选--profile 按通用/编程/视觉/数学任务筛选

快速上手

一行命令运行

# 自动检测硬件并推荐(无需安装,临时运行)
uvx whichllm@latest

安装后使用

# 使用 uv 安装
uv tool install whichllm
uv tool upgrade whichllm   # 更新

# 或使用 Homebrew
brew install andyyyy64/whichllm/whichllm

# 或使用 pip
pip install whichllm

常用命令一览

# 检测当前硬件并推荐最佳模型
whichllm

# 模拟特定 GPU
whichllm --gpu "RTX 4090"

# CPU-only 模式
whichllm --cpu-only

# 只显示最佳结果,输出 JSON
whichllm --top 1 --json

# 控制排名数量
whichllm --top 20

# 筛选量化级别
whichllm --quant Q4_K_M

# 按任务筛选
whichllm --profile coding

各硬件平台的最佳推荐

以下数据基于 2026 年 5 月的实时 HuggingFace 数据(whichllm 始终拉取最新数据,此表仅为快照参考):

硬件显存最佳推荐速度
RTX 509032 GBQwen3.6-27B · Q6_K · score 94.7~40 t/s
RTX 4090 / 309024 GBQwen3.6-27B · Q5_K_M · score 92.8~27 t/s
RTX 40608 GBQwen3-14B · Q3_K_M · score 71.0~22 t/s
Apple M3 Max36 GBQwen3.6-27B · Q5_K_M · score 89.4~9 t/s
CPU onlygpt-oss-20b (MoE) · Q4_K_M · score 45.2~6 t/s

为什么需要 whichllm

传统方法的问题

把模型塞进显存只是第一步。更难的是知道「塞进去的那么多模型里,哪个体验最好?」 传统做法是看参数量——「32B 比 27B 大,所以更好」——但这个假设在现实中经常失效。

whichllm 的设计目标就是解决这个问题。

基于证据的排名引擎

特性whichllm 的做法传统做法
排名依据合并多个真实基准的评分只看参数量
时效性基准数据带时间衰减,旧模型分数自动降低新旧模型一视同仁
置信度每个分数标记证据等级(直接/派生/自报)并打折不区分来源
硬件适配考虑显存、带宽、量化效率、MoE 激活参数只看「能不能装下」
数据来源实时从 HuggingFace API 拉取依赖静态列表

引入新视角:whichllm 让本地大模型的选择从「能不能跑」进化到了「哪个最好」,这对日益丰富的本地模型生态来说意义重大。

评分机制

每个模型获得 0-100 的综合评分。评分由多个因素加权计算:

因素影响说明
基准质量核心LiveBench、Artificial Analysis Index、Aider、Arena ELO 等多源融合
模型大小最高 +35log2 缩放的世界知识代理(MoE 用总参数量)
量化损失× 惩罚低比特量化按比例打折
证据置信度×0.55–1.0自报 ×0.55、继承 ×0.78、直接匹配满分
运行适配×0.50–1.0部分卸载 ×0.72、CPU-only ×0.50
推理速度-8 ~ +8可用性门槛,含置信度和范围元数据
来源可信度-5 ~ +5官方机构加分、已知封装者减分
流行度破平下载量和点赞数,证据越强权重越低

分数标记系统

输出中每个分数旁附带一个标记,提示用户该分数的证据强度:

标记颜色含义
无标记直接匹配,最可靠
~黄色无直接基准,从模型家族继承/插值
!sr亮黄仅由上传者自报,未独立验证
?红色无可用基准数据

深入玩法

GPU 模拟

购买硬件前,先用 whichllm 看看不同 GPU 的推荐效果:

# 模拟不同显卡的推荐结果
whichllm --gpu "RTX 4090"
whichllm --gpu "RTX 5090"
whichllm --gpu "RTX 5060 16"   # 指定具体变体

硬件升级规划

对比当前机器和候选升级 GPU 的表现差距:

# 对比三种升级候选
whichllm upgrade "RTX 4090" "RTX 5090" "H100"

# 显示 Top 5 升级对比
whichllm upgrade "Apple M4 Max" --top 5

反向规划:模型到 GPU

想知道跑某个模型需要什么显卡?用 plan

whichllm plan "llama 3 70b"
whichllm plan "Qwen2.5-72B" --quant Q8_0
whichllm plan "mistral 7b" --context-length 32768

一键运行模型

whichllm 可以自动下载模型并启动交互式聊天:

# 按名称搜索并运行
whichllm run "qwen 2.5 1.5b gguf"

# 自动选择当前硬件最好的模型来聊天
whichllm run

# CPU-only 模式下运行
whichllm run "phi 3 mini gguf" --cpu-only

支持所有流行的模型格式:

  • GGUF — 通过 llama-cpp-python 运行
  • AWQ / GPTQ — 通过 transformers + autoawq / auto-gptq
  • FP16 / BF16 — 通过 transformers

获取 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"])

Ollama 集成

结合 JSON 输出和 jq,可以无缝集成到 Ollama 工作流:

# 获取最佳模型的 HuggingFace ID
whichllm --top 1 --json | jq -r '.models[0].model_id'

# 获取最佳编程模型的 ID
whichllm --profile coding --top 1 --json | jq -r '.models[0].model_id'

Shell alias 一键运行最佳模型:

alias bestllm='whichllm --top 1 --json | jq -r ".models[0].model_id"'
# ollama run $(bestllm)

技术架构

数据管道

  1. 模型抓取 — 从 HuggingFace API 拉取热门模型(文本生成、GGUF 过滤、视觉模型)
  2. 基准数据 — 分层策略:当前层(LiveBench、Artificial Analysis Index、Aider)实时可获取时优先使用;冻结层(Open LLM Leaderboard v2、Chatbot Arena ELO)作为兜底,带时间衰减
  3. 证据解析 — 五级分辨率:directvariantbase_modelline_interpself_reported,逐级打折
  4. 缓存~/.cache/whichllm/ 下:模型缓存 6h TTL,基准缓存 24h TTL

排名引擎

  1. 硬件检测 — NVIDIA(nvidia-ml-py)、AMD(dbgpu/ROCm)、Apple Silicon(Metal)、CPU(核心数、AVX 支持)、内存和磁盘
  2. VRAM 估算 — 权重 + KV Cache + 激活内存 + 框架开销(~500MB)
  3. 兼容性 — 全 GPU / 部分卸载 / CPU-only;计算能力和操作系统检查
  4. 速度预测 — 基于 GPU 内存带宽、量化类型、后端、适配类型和 MoE 激活参数
  5. 评分 — 基准(置信度打折)+ 大小 + 量化惩罚 + 适配类型 + 速度 + 流行度 + 来源可信度
  6. 后端过滤 — Apple Silicon 和 CPU-only 限制为 GGUF;Linux + NVIDIA 允许 AWQ/GPTQ

项目结构

src/whichllm/
├── cli.py              # 主 CLI 入口
├── hardware/
│   ├── detector.py     # 硬件检测编排
│   ├── nvidia.py       # NVIDIA GPU 检测
│   ├── amd.py          # AMD GPU 检测
│   ├── apple.py        # Apple Silicon 检测
│   ├── cpu.py          # CPU 信息
│   ├── memory.py       # 内存和磁盘
│   └── gpu_simulator.py# GPU 模拟器
├── models/
│   ├── fetcher.py      # HuggingFace API 抓取
│   ├── benchmark.py    # 基准数据处理
│   ├── grouper.py      # 模型家族分组
│   └── cache.py        # 缓存管理
├── engine/
│   ├── vram.py         # VRAM 估算
│   ├── compatibility.py# 兼容性检查
│   ├── performance.py  # 速度预测
│   ├── quantization.py # 量化处理
│   └── ranker.py       # 评分排名
└── output/
    └── display.py      # 输出格式化

优劣势分析

优势劣势
一行命令即可使用(uvx),零安装复杂度需要 Python 3.11+,部分依赖 nvidia-ml-py(自动安装)
基于真实基准评分,比纯参数量排名更可靠部分稀有模型可能无基准数据(标记为 ?
实时从 HuggingFace 拉取数据,无需手动更新首次运行需下载缓存(后续使用极快)
GPU 模拟功能对硬件选购极有实用价值AMD GPU 检测在 Windows 环境下有限制
开源 MIT 许可证,可以自由集成到其他工具排名结果受 HuggingFace API 返回质量影响
支持 LLM 的各类格式(GGUF/AWQ/GPTQ/FP16)

适合谁用

  • 本地大模型玩家 — 想找到自己机器上能跑的最佳模型,不用自己逐个测试
  • 硬件选购者 — 买显卡前先用 --gpu 模拟不同配置的推荐结果
  • 应用开发者 — 需要脚本化选择模型的集成场景(--json 输出)
  • LLM 应用快速原型者 — 用 runsnippet 快速测试模型效果
  • AI 研究者 — 需要批量对比不同硬件配置上的模型表现

总结

whichllm 解决了本地大模型选择中的核心矛盾:能跑的不一定最好,最大的不一定最适合。 它用基于证据的排名引擎,让用户说出「我有什么硬件」就能得到「我应该装哪个模型」的答案。

无论是购买前的硬件规划,还是日常的模型选择,whichllm 都能帮上忙。对于本地 AI 生态来说,它填补了一个有价值的小角落。

项目地址

资源链接
GitHub 仓库https://github.com/Andyyyy64/whichllm
PyPI 包https://pypi.org/project/whichllm/
安装命令pip install whichllmuv tool install whichllm

参考资料

  • whichllm GitHub 仓库:项目源代码、README 和全部文档。→ https://github.com/Andyyyy64/whichllm
  • HuggingFace 模型中心:whichllm 的模型数据来源。→ https://huggingface.co/models
  • PyPI 包:Python 安装来源。→ https://pypi.org/project/whichllm/

文档信息

加载评论…