6,165· 327 forks· Python· MIT开发工具

whichllm - 本地大模型硬件适配推荐工具

Andyyyy64/whichllm

一条命令自动检测硬件配置,从 HuggingFace 实时排序推荐最适合你显卡/内存的本地大模型,基于真实基准测试而非参数量

成熟度维护活跃,最近提交3天前,21个open issues,快速迭代中

项目体检

技术 · Python 3.11+ + Typer CLI 框架 + Rich 终端渲染 + httpx 异步请求

许可 · MIT 协议,可自由商用无限制

活跃 · 最新版本 v0.5.15 发布于2026年7月,23位贡献者,3天前仍有提交,活跃维护中

解决什么

本地运行大模型时,开发者面临三重困境:哪些模型能塞进显存、哪个量化版本速度够用、同等配置下哪个模型效果最好。传统做法是手算 VRAM 占用或凭经验试错,whichllm 通过自动检测硬件(NVIDIA/AMD/Intel GPU、Apple 统一内存、纯 CPU)并实时拉取 HuggingFace 模型库,结合真实基准测试(LiveBench、Chatbot Arena ELO、Aider 编码评测等)给出排序推荐,一条命令解决"我的 RTX 4060 该跑哪个模型"的选型问题。

为何火

6000+ stars 的核心原因是精准击中本地 LLM 玩家的痛点:不再需要在 Reddit/Discord 翻帖子问"3090 能跑 70B 吗",也不用被"参数越大越好"的误区坑。项目独特之处在于证据驱动排序(合并多个权威 Benchmark 而非自编评分)、时效性感知(旧模型即使分数高也会被降权)、架构级估算(区分 MoE 激活参数与总参数、计算 GQA KV cache 开销),且支持 --gpu "RTX 5090" 模拟未购硬件的运行效果,让显卡升级决策有数据支撑。

核心功能

  • 硬件自动识别:检测 NVIDIA/AMD/Intel 独显、Apple Silicon 统一内存、CPU 核心数与 RAM 带宽
  • 智能排序推荐:综合 VRAM 适配度、推理速度(tok/s)、基准测试得分(LiveBench/Arena/Aider)三维度排序
  • 显卡模拟器:whichllm --gpu "RTX 4090"--gpu "2x RTX 4090" 模拟多卡/未购硬件
  • 一键启动对话:whichllm run "qwen 2.5 7b" 自动下载 GGUF 并启动 llama.cpp 聊天
  • 代码片段生成:whichllm snippet "qwen 7b" 输出可复制的 Python 推理代码
  • 任务场景过滤:支持 --task coding/vision/math 筛选特定用途模型
  • 保守模式:--gpu-only --speed usable --vram-headroom 1GB 仅推荐完全装入显存且留余量的模型
  • JSON 输出:--json | jq 用于脚本化流程

安装

推荐方式(无需安装):

uvx whichllm@latest  # 使用 uv 一次性运行最新版

持久化安装:

pip install whichllm
# 或
brew install andyyyy64/whichllm/whichllm  # macOS Homebrew
# 或
uv tool install whichllm  # uv 工具链管理

要求 Python 3.11+,依赖 Typer(CLI 框架)、Rich(终端渲染)、httpx(异步 HTTP)、nvidia-ml-py(NVIDIA GPU 监控)。

适合谁

  1. 本地 LLM 玩家:在消费级显卡(RTX 4060/3090/Apple M3)上跑开源模型,需要快速找到"能跑且好用"的版本
  2. AI 应用开发者:需在边缘设备/工作站部署推理服务,用 --json 输出集成到自动化选型脚本
  3. 硬件升级决策者:whichllm upgrade "RTX 4090" "RTX 5090" "H100" 对比升级收益,或用 whichllm plan "llama 3 70b" 反查需要什么显卡
  4. LM Studio 用户:官方推荐保守时,用 --gpu-only --vram-headroom 1.5GB 获得更激进的选项

中文用户注意:工具需访问 HuggingFace API 拉取模型元数据,国内网络可能需梯子;支持离线缓存模式(frozen fallbacks),但首次运行建议联网。

社区评价

暂无足量社区公开讨论(HN 帖仅 3 点赞无评论),以下为基于项目本身的中立评估:从 GitHub 数据看,项目在 5 个月内获得 6000+ stars 且保持活跃(3 天前仍有提交),说明实用性强。README 详尽展示了与 LM Studio 的对比场景(whichllm 更激进但可调保守),技术文档透明披露了排序逻辑(benchmark 置信度分级、MoE 激活参数处理),避免了"黑盒推荐"的信任问题。23 位贡献者和持续的版本迭代(v0.5.15)显示社区参与度健康,但 21 个 open issues 提示仍有待完善的边缘场景。

选型对比

vs LM Studio(商业 GUI 工具):

  • LM Studio 提供图形界面和一键下载,whichllm 是纯命令行但可脚本化(--json)
  • LM Studio 推荐偏保守(留足 VRAM 余量),whichllm 默认激进(含部分 offload 方案),但可通过 --gpu-only --vram-headroom 对齐保守策略
  • whichllm 的排序基于实时 Benchmark 数据,LM Studio 更依赖社区人工整理的兼容性列表

vs Ollama(本地模型运行时):

  • Ollama 侧重"一键运行已知模型",whichllm 侧重"先帮你选对模型"
  • 两者可互补:whichllm 推荐 → 复制模型名 → ollama run <model>

vs 手动查 HuggingFace Leaderboard:

  • 人工查榜单只能看单一 Benchmark,whichllm 合并 5+ 权威评测并按硬件过滤
  • 榜单不考虑硬件适配,whichllm 的 VRAM/速度估算避免"下载后才发现跑不动"

已知坑

  1. HuggingFace API 依赖:国内网络可能超时,虽有离线缓存但首次运行需联网;可设置 HF_ENDPOINT 环境变量指向镜像站
  2. 速度估算为近似值:README 明确标注 ~ 表示估算、? 表示低置信度,实际 tok/s 受驱动版本/后端实现(llama.cpp/vLLM)影响
  3. MoE 模型的"虚高"参数:工具已处理(按激活参数算速度、总参数算质量),但用户需理解 Qwen3-30B-A3B 的 30B 不等于密集模型的 30B
  4. Apple Silicon 的统一内存:需手动 --vram <GB> --ram-bandwidth <GB/s> 覆盖检测值,因系统 API 返回的可用内存可能不准
  5. 21 个 open issues:包括部分 AMD GPU 识别问题、某些量化格式(如 EXL2)的支持请求,非关键路径但可能影响小众硬件用户

安装方式:pip/uvx