好的,这是您要求的英文文章的中文翻译,已按照规范保留原文结构、代码块和技术术语。
原文标题: Andyyyy64 whichllm
原文内容:
whichllm
找到能在你的硬件上真正运行的最佳本地 LLM。自动检测你的 GPU/CPU/RAM,并从 HuggingFace 上对你的系统最合适的顶级模型进行排名。 日本語版はこちら
快速开始
无需任何项目设置,运行一次推荐命令。
uvx whichllm@latest
在购买硬件前模拟 GPU。
uvx whichllm@latest --gpu "RTX 4090"
经常使用时进行安装。
uv tool install whichllm
uv tool upgrade whichllm # 更新现有安装
其他安装方式。
brew install andyyyy64/whichllm/whichllm
pip install whichllm
常见工作流程
安装后,直接运行 whichllm。对于一次性运行,将 whichllm 替换为 uvx whichllm@latest。
# 本机最佳模型
whichllm
# 假设你有一块特定的 GPU
whichllm --gpu "RTX 4090"
# 比较升级候选方案
whichllm upgrade "RTX 4090" "RTX 5090" "H100"
# 查找运行某个模型所需的 GPU
whichllm plan "llama 3 70b"
# 开始与模型聊天
whichllm run "qwen 2.5 1.5b gguf"
# 打印可复制粘贴的 Python 代码片段
whichllm snippet "qwen 7b"
# 为脚本返回 JSON 格式数据
whichllm --top 1 --json
看看效果
$ 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 模型完全适合你的显卡——但 whichllm 仍然将 27B 模型排在第一,因为它在真实基准测试中得分更高,并且是新一代模型。一个仅看大小的“什么能装下?”工具会给你推荐更大的那个。这个差距正是 whichllm 存在的全部意义。 (注意 #3:一个 MoE 模型,速度为 102 t/s —— 速度根据活跃参数排名,质量根据总参数排名。)
我能运行什么?
真实最佳选择(快照 2026-05 —— 你的结果会追踪实时的 HuggingFace 数据,这不是一个静态列表):
| 硬件 | 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 |
在购买前,使用 whichllm --gpu "<你的显卡>" 可以模拟以上任何一种情况。
为什么选择 whichllm?
将模型装入你的 VRAM 是容易的部分。困难的部分是知道哪些能装下的模型实际上是最好的——而这正是 whichllm 旨在做对的事情。
- 基于证据的排名,而非大小启发式 — 最佳选择是根据合并的真实基准测试(LiveBench、Artificial Analysis、Aider、多模态/视觉、Chatbot Arena ELO、Open LLM Leaderboard)选出的——绝不是“恰好能装下的最大模型”。
- 时效性感知 — 过时的排行榜会沿着每个模型的谱系被降级,因此一个 2024 年的模型不可能凭借过时的分数超越当前一代的模型。基准测试快照日期会打印在每个排名下方,因此过时的推荐会一目了然,而不是被默默信任。
- 证据分级与防护 — 每个分数都被标记为
direct/variant/base/interpolated/self-reported,并根据置信度进行折扣。伪造的上传者声明和跨系列继承(一个小型分支借用其更大基础模型的分数)会被主动拒绝。 - 架构感知估算 — VRAM = 权重 + GQA KV 缓存 + 激活值 + 开销;速度受带宽限制,并考虑了每种量化方式的效率、每个后端的因素、MoE 活跃参数与总参数的拆分,以及统一内存与离散 PCIe 部分卸载建模。
- 一条命令,可脚本化 —
whichllm打印答案;添加--json | jq用于管道处理。没有 TUI,无需记忆快捷键。 - 实时数据 — 直接从 HuggingFace API 获取模型,并配有精心策划的冻结回退方案,用于离线或速率受限的情况。
- 自动检测硬件 — NVIDIA、AMD、Apple Silicon、仅 CPU
- 智能排名 — 根据 VRAM 适配度、速度和基准测试质量对模型进行评分
- 一键聊天 —
whichllm run立即下载并启动一个聊天会话 - 代码片段 —
whichllm snippet为任何模型打印可直接运行的 Python 代码 - 实时数据 — 直接从 HuggingFace 获取模型(已缓存以提高性能)
- 基准测试感知 — 集成真实评估分数,并带有基于置信度的衰减
- 任务配置文件 — 按通用、编码、视觉或数学用例进行筛选
- GPU 模拟 — 使用任何 GPU 进行测试:
whichllm --gpu "RTX 4090" - 硬件规划 — 反向查找:
whichllm plan "llama 3 70b" - 升级规划 — 将你当前的机器与候选 GPU 进行比较
- JSON 输出 — 便于管道处理:
whichllm --json
特性
运行与代码片段
使用一条命令尝试任何模型。无需手动安装——whichllm 通过 uv 创建一个隔离环境,安装依赖项,下载模型,并启动一个交互式聊天。
# 与模型聊天(自动选择最佳的 GGUF 变体)
whichllm run "qwen 2.5 1.5b gguf"
# 自动为你的硬件选择最佳模型并聊天
whichllm run
# 仅 CPU 模式
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"])
用法
# 自动检测硬件并显示最佳模型
whichllm
# 模拟 GPU(例如,计划购买时)
whichllm --gpu "RTX 4090"
whichllm --gpu "RTX 5090"
# 指定变体
whichllm --gpu "RTX 5060 16"
# 仅 CPU 模式
whichllm --cpu-only
# 更多结果 / 筛选条件
whichllm --top 20
whichllm --quant Q4_K_M
whichllm --min-speed 30
whichllm --evidence base # 允许 id/base-model 匹配
whichllm --evidence strict # 仅 id-exact 匹配(与 --direct 相同)
whichllm --direct
# JSON 输出
whichllm --json
# 强制刷新(忽略缓存)
whichllm --refresh
# 仅显示硬件信息
whichllm hardware
# 规划:运行特定模型需要什么 GPU?
whichllm plan "llama 3 70b"