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

2026/06/08 ai open-source · whichllm · 本地大模型 · llmfit · CLI 7363 字 · 约 22 分钟 阅读 ...
whichllm 是一款 CLI 工具,自动检测 GPU/CPU/RAM 并从 HuggingFace 实时排名最适合本地运行的 LLM,支持 GPU 模拟、硬件升级规划和一键运行。另附同类工具 llmfit 对比——Rust 编写的 TUI 工具,支持 Ollama/MLX/LM Studio 后端集成与社区排行榜

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)

同类工具对比:llmfit

上一篇文章只介绍了 whichllm,但本地大模型选型工具不止一个。llmfit 是另一个定位相同的工具,由 AlexsJones 开发,用 Rust 编写,在 TUI 交互和本地推理后端整合上做了更深的设计。

项目信息数据
GitHub 仓库https://github.com/AlexsJones/llmfit
语言Rust(编译为单一二进制)
许可证MIT
安装方式scoop install llmfit(Win)/ brew install llmfit(mac/Linux)/ uv tool install llmfit / Docker
运行模式TUI(默认) + CLI + REST API + Web Dashboard
模型数据库~200+ 模型,编译时嵌入二进制(升级工具才能更新)

llmfit 的核心差异

丰富的 TUI 交互:llmfit 默认启动一个全功能终端 UI(基于 ratatui),支持 Vim 风格的模式切换(Normal / Visual / Select)。你可以在界面内按 f 切换适配度过滤、按 s 切换排序列、按 / 搜索模型、按 v 多选对比。这是 whichllm 没有的——whichllm 只输出纯文本表格。

本地推理后端集成:llmfit 不仅能推荐,还能直接操作你的本地推理环境。按 d 自动下载模型到 Ollama / llama.cpp / MLX / LM Studio / Docker Model Runner,下载进度实时显示。whichllm 用 whichllm run 也能一键运行,但依赖 llama-cpp-python,对后端的选择范围较窄。

社区排行榜:按 b 可查看来自 localmaxxing.com 的真实用户测速数据(tok/s、首 token 延迟、峰值显存),覆盖 27+ 硬件预设。这是 whichllm 没有的——whichllm 的排名完全基于 HuggingFace 公开基准和理论速度估算。

REST API 模式llmfit serve 启动 HTTP API,适合集群调度器或自动化脚本集成。whichllm 的 --json 输出是 CLI 级集成,没有服务端 API。

多 GPU 支持:llmfit 原生聚合多张 GPU 的总显存,适合多卡场景。

对比一览

维度whichllmllmfit
开发语言Python(需 3.11+)Rust(编译二进制,无运行时依赖)
交互方式CLI 纯文本表格TUI(ratatui)+ CLI + REST API + Web Dashboard
模型来源实时 HuggingFace API编译时嵌入 ~200+ 模型(需升级)
模型更新自动拉取最新数据需升级工具版本
基准数据LiveBench、Aider、Arena ELO 等多源融合自定义 4 维评分(质量/速度/适配/上下文)
本地后端集成llama-cpp-pythonOllama、llama.cpp、MLX、Docker Model Runner、LM Studio
下载模型whichllm run 自动下载TUI 按 d,弹出后端选择器
硬件模拟--gpu "RTX 4090"✔ 按 S 弹出模拟面板
GPU 升级对比whichllm upgradellmfit plan + 升级 delta 估算
社区实测数据✔ 按 b 查看 localmaxxing.com 真实数据
REST APIllmfit serve
Vim 模式✔ Normal / Visual / Select 三种模式
Ollama 集成通过 JSON + jq 间接集成原生集成(检测已安装模型、一键下载)
Web 仪表盘✔ 自动启动后台 Web Dashboard(0.0.0.0:8787
认证/API Key✔ 支持 localmaxxing 和 LM Studio API Key

如何选择

场景推荐工具
快速看看我的硬件能跑什么模型whichllm(零安装:uvx whichllm@latest
需要在不同显卡间对比选购两者均可,whichllm 的 upgrade 更直观
深度管理本地模型库(安装、删除、测速)llmfit(TUI 后端集成更完善)
脚本化集成到自动化工作流whichllm 的 --json + llmfit 的 REST API
买显卡前看同一张卡在其他用户手上的真实速度llmfit(按 b 打开社区排行榜)
完整 Terminal UI 体验llmfit(Vim 模式、多模型对比、主题切换)
Apple Silicon 用户两者均可,llmfit 原生支持 MLX

两者的核心逻辑一致:输入你的硬件 → 输出最适合的模型。差异在于实现语言(Python vs Rust)、交互方式(CLI vs TUI)和后端集成深度。如果你是 Python 开发者或只想用一条命令快速查询,whichllm 更方便;如果你希望在终端内完成从查询到下载到运行的完整闭环,llmfit 的 TUI 更值得一试。

适合谁用

  • 本地大模型玩家 — 想找到自己机器上能跑的最佳模型,不用自己逐个测试
  • 硬件选购者 — 买显卡前先用 --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/
  • llmfit GitHub 仓库:Rust 编写的本地 LLM 推荐 TUI 工具,支持 Ollama/MLX/LM Studio 后端集成与社区排行榜。→ https://github.com/AlexsJones/llmfit

文档信息