为什么你需要 WhichLLM?

本地运行大语言模型(LLM)已经成为开发者的新常态。无论是用 Ollama 跑 Qwen、用 llama.cpp 调 GGUF,还是用 LM Studio 加载模型,开发者面临一个共同的难题:

我的硬件能跑什么模型?哪个模型在我的设备上性能最好?

HuggingFace 上有数十万个模型,规格从 1.5B 到 72B 不等,量化方式有 Q4_K_M、Q5_K_M、Q8_0……盲目下载一个 70B 模型,等半天才发现 VRAM 不够,白白浪费时间。

WhichLLM 就是为解决这个痛点而生。它能自动检测你的硬件配置,对比真实基准测试数据(而非参数数量),在一秒内给出最适合你硬件的模型推荐。

核心特性一览

特性 说明
自动检测 自动识别 NVIDIA/AMD/Apple Silicon/CPU 配置
智能排名 基于真实基准(LiveBench、Aider、Open LLM Leaderboard 等),非参数堆砌
时效感知 旧模型不会因为历史成绩好而排在新模型前面
GPU 模拟 换显卡前就能预估性能:whichllm --gpu "RTX 5090"
一键聊天 推荐后直接下载并启动交互式对话
代码片段 生成可直接运行的 Python 推理代码
升级规划 对比当前机器和候选 GPU 的差异

安装方式

WhichLLM 提供多种安装方式,推荐使用 uv 或 Homebrew:

方式一:uv(推荐,零安装直接运行)

# 一次性运行(不安装)
uvx whichllm@latest

# 安装到全局
uv tool install whichllm

# 更新
uv tool upgrade whichllm

方式二:Homebrew

brew install andyyyy64/whichllm/whichllm

方式三:pip

pip install whichllm

安装完成后,直接运行 whichllm 即可使用。

快速上手

自动检测并推荐模型

什么都不用配置,直接运行:

whichllm

输出示例:

#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

WhichLLM 自动检测了你的 GPU/CPU/RAM,推荐了最适合的模型并按综合得分排序。注意第 3 名是一个 MoE(混合专家)模型——虽然总参数量大,但活跃参数少,所以速度快得多。

查看硬件信息

whichllm hardware

输出示例:

GPU: NVIDIA RTX 4090 (24 GB VRAM)
CPU: AMD Ryzen 9 7950X (16 cores)
RAM: 64 GB

这对于了解自己的硬件配置很有帮助,尤其是当你不太确定 GPU 型号和显存大小时。

进阶功能

GPU 模拟:买显卡前先测试

你是否考虑升级到 RTX 5090,但想知道它能跑什么模型?WhichLLM 可以模拟任何 GPU:

# 模拟 RTX 5090
whichllm --gpu "RTX 5090"

# 模拟 RTX 4060
whichllm --gpu "RTX 4060"

# 自定义 VRAM
whichllm --gpu "RTX 5060 16"

输出示例:

#1 Qwen/Qwen3.6-27B 27.8B Q6_K    score 94.7  ~40 t/s
#2 Qwen/Qwen3-32B  32.0B Q5_K_M  score 88.0  ~38 t/s

这对于在购买硬件前做决策非常实用。

升级规划:对比升级收益

想知道从 RTX 4090 升级到 RTX 5090 能带来多少提升?

whichllm upgrade "RTX 4090" "RTX 5090" "H100"

输出显示每种配置下的推荐模型、得分和速度,一目了然。

反向规划:跑特定模型需要什么 GPU?

# 跑 Llama 3 70B 需要什么显卡?
whichllm plan "llama 3 70b"

# 跑 Qwen2.5-72B 的 Q8_0 量化版本
whichllm plan "Qwen2.5-72B" --quant Q8_0

# 长上下文场景
whichllm plan "mistral 7b" --context-length 32768

输出会告诉你需要多少 VRAM、推荐什么样的 GPU、以及能达到的性能水平。

一键聊天:推荐即用

推荐到模型后,可以直接启动对话:

# 下载并聊一个指定模型
whichllm run "qwen 2.5 1.5b gguf"

# 自动选择最佳模型并聊天
whichllm run

WhichLLM 会自动创建隔离环境、下载模型、启动交互式对话。

生成 Python 代码片段

如果你想在自己的应用程序中使用某个模型,WhichLLM 可以生成可直接运行的 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"])

直接复制粘贴即可使用,省去翻阅文档的时间。

高级配置选项

按用例筛选

WhichLLM 支持按任务类型筛选模型:

# 选择最适合编程的模型
whichllm --profile code

# 通用对话
whichllm --profile general

# 数学推理
whichllm --profile math

# 视觉/多模态
whichllm --profile vision

按量化精度筛选

# 只推荐 Q4_K_M 量化
whichllm --quant Q4_K_M

# 显示更多结果
whichllm --top 20

# 最小速度要求
whichllm --min-speed 30

证据级别控制

WhichLLM 对每个模型的得分都标注了证据等级,你可以控制推荐的可信度:

# 严格模式:只推荐直接有基准数据的模型
whichllm --evidence strict

# 基础模式:允许同系列模型的跨代匹配
whichllm --evidence base

JSON 输出:脚本集成

将 WhichLLM 集成到自动化工作流中:

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

# 获取最佳编码模型的完整信息
whichllm --profile code --top 3 --json | jq '.models[] | {name: .model_id, score: .score, speed: .estimated_tok_per_sec}'

输出示例:

{
  "models": [
    {
      "model_id": "Qwen/Qwen3.6-27B-GGUF",
      "score": 92.8,
      "estimated_tok_per_sec": 27.3,
      "speed_confidence": "high",
      "quant": "Q5_K_M"
    }
  ]
}

评分机制详解

WhichLLM 的评分机制是其核心亮点,值得单独说明。

数据来源

WhichLLM 聚合了以下基准测试数据:

  • LiveBench — 实时生成的最新评测
  • Artificial Analysis — 第三方独立测试平台
  • Aider — AI 编程助手基准
  • Chatbot Arena ELO — LMSYS 的众包评分
  • Open LLM Leaderboard — HuggingFace 官方榜单
  • 多模态/视觉评测 — 适用时

评分规则

  1. 不是越大越好:一个 27B 模型如果得分更高,会排在 32B 模型前面
  2. 时效衰减:2024 年的模型不会因为历史高分而压制 2026 年的新模型
  3. 置信度分级:每个分数都标注了证据等级: - direct — 该模型、该量化方式有直接基准数据 - variant — 同型号不同量化版本的数据 - base — 基座模型的数据(跨代推断) - interpolated — 插值估算 - self-reported — 开发者自行报告的数据
  4. 防造假机制:拒绝不可信的虚假上传数据,防止小型魔改模型借用大模型分数

实测:不同硬件的最佳选择

根据 WhichLLM 的最新数据(2026 年 6 月),不同硬件配置的推荐如下:

硬件 VRAM 最佳推荐 速度
RTX 5090 32 GB Qwen3.6-27B Q6_K (score 94.7) ~40 t/s
RTX 4090 / 3090 24 GB Qwen3.6-27B Q5_K_M (score 92.8) ~27 t/s
RTX 4060 8 GB Qwen3-14B Q3_K_M (score 71.0) ~22 t/s
Apple M3 Max 36 GB Qwen3.6-27B Q5_K_M (score 89.4) ~9 t/s
纯 CPU 运行 gpt-oss-20b (MoE) Q4_K_M (score 45.2) ~6 t/s

💡 注意:MoE(混合专家)模型的活跃参数远少于总参数,因此在同等硬件上速度更快。WhichLLM 的评分机制已经考虑了这一点。

与同类工具对比

特性 WhichLLM Ollama LM Studio LocalAI
自动推荐最佳模型
GPU 模拟
基准数据排名
升级规划
代码片段生成
一键聊天
JSON 输出
CLI 轻量

Ollama 仍然是跑模型的好选择,但 WhichLLM 解决的是选模型的问题——这两者其实是互补的:用 WhichLLM 找出最佳模型,再用 Ollama 或其他工具跑起来。

实战场景

场景一:新购显卡的采购决策

你想从 RTX 3060 升级,预算足够买 RTX 5070 或 RTX 4090 二手:

# 模拟当前硬件
whichllm --gpu "RTX 3060"

# 模拟升级选项
whichllm upgrade "RTX 3060" "RTX 5070" "RTX 4090"

对比输出结果,可以看到每块卡能跑什么模型、速度如何,理性决策。

场景二:给项目的模型选择建议

你的团队要开发一个本地 RAG 系统,需要选择推理模型:

# 用 CI 服务器配置测试
whichllm --gpu "RTX 4090" --profile code --json | jq

用 JSON 输出直接集成到决策文档中。

场景三:在边缘设备部署

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

找到最适合 CPU 推理的小模型,用于物联网或嵌入式场景。

常见问题

Q: WhichLLM 会不会下载模型到本地?

A: 默认情况下,whichllm 只是查询 HuggingFace API 和本地缓存数据,不会下载模型。只有 whichllm run 命令才会下载模型。

Q: 如何更新模型数据?

whichllm --refresh

强制刷新缓存,获取 HuggingFace 上的最新模型。

Q: 没有网络环境怎么办?

A: WhichLLM 内置了缓存机制,离线状态下会使用预先缓存的快照数据。

Q: 支持 AMD 显卡吗?

A: 是的,WhichLLM 支持 NVIDIA、AMD、Apple Silicon 和纯 CPU 模式。

总结

WhichLLM 解决了本地 LLM 开发者面临的一个核心痛点:在海量模型中找到最适合自己硬件的那一个。它的亮点在于:

  1. 基于证据的智能排名——不是简单按参数大小排序,而是综合真实基准数据和时效性
  2. GPU 模拟功能——买硬件前就能测试性能,避免冲动消费
  3. 一键集成——从推荐、聊天到代码生成,一个工具全部解决
  4. 可脚本化——JSON 输出方便集成到自动化工作流

无论你是刚入门本地 LLM 的开发者,还是正在搭建生产环境的团队,WhichLLM 都能帮你节省数小时的试错时间。


项目信息: - GitHub: github.com/Andyyyy64/whichllm - 许可证: MIT - 安装: pip install whichllmbrew install andyyyy64/whichllm/whichllm