返回开源榜单
Python今日中等MIT

Andyyyy64/whichllm

帮你找出适配本地硬件的最优大语言模型

这是一款Python工具,能自动检测你的硬件配置,基于真实跑分而非参数数量,为你筛选出适配本地环境的最优大语言模型,支持一键测试、硬件模拟等多种实用功能。

Stars

4.0k

Forks

224

增长

+631today

最近更新 2026/6/9

Overview

项目介绍

Andyyyy64/whichllm 的重点不是概念展示,而是把帮你找出适配本地硬件的最优大语言模型落到一套可复用的开源实现里。它把一个明确场景里的关键步骤整理成可复用的开源实现,用户拿到的不只是说明文档,而是一个可以改、可以接、可以持续维护的工具入口。

它的设计重心落在基于硬件真实跑分排序,而非参数数量、支持即时一键测试,无需复杂配置和跑分结果兼顾模型性能与时效性。这些能力如果做得稳定,就能把用户从重复配置、反复查文档和手动串流程里解放出来,留下更多空间处理真正的业务判断。

Technical Route

技术路线

whichllm采用「硬件感知-模型筛选-多维度评分-结果输出」的主线架构,通过自动检测NVIDIA、AMD、Apple Silicon等硬件配置,从HuggingFace拉取实时模型数据,结合多源基准跑分、显存适配性、速度预估等维度加权评分,最终为用户推荐最优本地LLM(大语言模型)。用户理解该路线可明确推荐结果的生成逻辑,便于根据硬件场景调整筛选条件。

  1. 1硬件探测层通过nvidia-ml-py、dbgpu等库自动检测NVIDIA、AMD、Apple Silicon及CPU/RAM配置,支持通过--gpu参数模拟指定硬件,为模型适配性评估提供基础数据,同时输出硬件详情供用户核对。
  2. 2模型数据层从HuggingFace API拉取热门模型、GGUF(通用生成型Transformer模型格式)变体及视觉模型数据,结合LiveBench、Chatbot Arena ELO等多源基准跑分,通过6小时TTL缓存平衡实时性与性能,避免频繁API调用。
  3. 3显存估算层基于「模型权重+KV缓存+激活值+框架开销(约500MB)」公式计算显存需求,区分全GPU加载、部分卸载、仅CPU三种适配模式,对Apple Silicon和CPU场景自动限制为GGUF格式以保障稳定性。
  4. 4多维度评分层以基准跑分(含置信度折扣)、模型规模为核心,叠加量化精度 penalty、适配模式系数、速度预估、源可信度、流行度等调整项,生成0-100分的综合评分,拒绝参数差异超2倍的模型家族跑分继承。
  5. 5CLI交互层基于Typer构建命令行界面,支持直接运行、硬件模拟、升级对比、硬件规划、代码生成等多场景命令,输出Rich格式化表格或JSON数据,适配脚本化调用与人工查看需求。
  6. 6模型运行层通过uv创建隔离环境,自动安装llama-cpp-python、transformers等依赖,支持GGUF、AWQ、GPTQ等多格式模型的一键下载与交互式聊天,同时生成可复用的Python代码片段。

Why Trending

为什么它会上榜

结合增长、最近更新与社区关注,给出一个更接近“决策参考”的上榜解读。

  • 社区关注度上升:近期新增 +631 Stars(today),讨论热度明显提高。
  • 维护活跃:最近更新于 2026/06/09,更可能持续迭代与补齐文档/生态。
  • 方向聚焦:覆盖 ai / apple-silicon / benchmarks / cli 等主题,适合在该方向快速落地与对比选型。
  • 定位清晰:一款本地大语言模型测评工具,可根据硬件实际运行跑分排序,无需看参数,一键快速测试适配度。

Audience

适合谁

  • 想部署本地大模型但对硬件适配缺乏了解的独立开发者
  • 硬件性能有限,需要筛选轻量化高性价比模型的个人用户
  • 计划升级硬件,想提前测试不同GPU适配模型的用户
  • 需要快速生成本地模型调用代码的开发人员

Use Cases

能拿来做什么

  • 想跑本地大模型却不知选哪款的用户
  • 硬件性能有限,需选轻量化模型的用户

Quick Start

怎么开始

1. 确保已安装Python环境;2. 打开命令行输入pip install whichllm;3. 执行whichllm命令即可运行。

Watchouts

使用前注意事项

  • 首次运行需从HuggingFace拉取模型和跑分数据,受网络影响可能加载缓慢,建议提前配置国内镜像;
  • 部分模型格式如AWQ/GPTQ需要对应硬件驱动支持,若运行失败需检查显卡驱动版本及相关依赖;
  • 工具默认缓存模型和跑分数据6-24小时,若需获取最新数据需添加`--refresh`参数强制刷新。

Related

相关项目