llmfit:一键找出最适合你硬件的本地大语言模型
❝
还在为选择哪个本地LLM而烦恼?llmfit自动检测你的CPU、内存和GPU,从206个模型中筛选出能流畅运行的那一个,并给出综合评分和速度预估。无需猜测,一个命令搞定。
❞
为什么需要llmfit?
大语言模型(LLM)的发展日新月异,Meta Llama、Mistral、Qwen、DeepSeek……每周都有新模型发布。但当你想把模型拉到本地运行,第一个问题往往是:“我的电脑跑得动吗?”
硬件配置千差万别:16GB内存的MacBook,RTX 4090 24GB的游戏PC,还是只有8GB显存的旧款显卡?每个模型需要的显存、内存各不相同,量化版本更是五花八门。手动计算参数、查找量化表、估算内存占用——既繁琐又容易出错。
llmfit 正是为解决这个痛点而生。它是一款终端工具,能自动检测你的系统硬件,结合内置的206个模型数据库,动态评估每个模型在你的机器上的运行表现,最终按综合得分排序,告诉你哪些模型可以完美运行、哪些勉强可用,并预估推理速度。支持多GPU、MoE(混合专家)架构、动态量化选择,让你在本地部署LLM时不再盲目。
安装:三行命令,全平台覆盖
llmfit 提供了多种安装方式,无论你是macOS、Linux还是Windows用户,都能轻松上手。
macOS / Linux 一键安装
curl -fsSL https://llmfit.axjns.dev/install.sh | sh
该脚本会从GitHub下载最新发布的二进制文件,并安装到 /usr/local/bin(有sudo权限时)或 ~/.local/bin。如果想安装到用户目录且无需sudo,可以加上 --local 参数:
curl -fsSL https://llmfit.axjns.dev/install.sh | sh -s -- --local
使用 Homebrew(macOS / Linux)
brew tap AlexsJones/llmfit
brew install llmfit
通过 Cargo 安装(Windows / macOS / Linux)
如果你已经安装了Rust工具链,可以直接从crates.io安装:
cargo install llmfit
Rust可以通过 rustup 一键安装。
从源码编译
想体验最新特性或自定义编译选项,可以克隆仓库自行编译:
git clone https://github.com/AlexsJones/llmfit.git
cd llmfit
cargo build --release
# 编译后的二进制文件在 target/release/llmfit
使用方法:终端UI与经典命令行双模式
llmfit 提供了两种交互方式:默认启动的交互式终端UI(TUI),以及适合脚本调用的经典命令行模式(CLI)。
TUI 模式:交互式探索模型
直接运行 llmfit 即可启动TUI。界面顶部会显示你的系统信息:CPU型号、内存大小、GPU名称、显存容量以及检测到的后端(如CUDA、Metal)。下方是一个可滚动表格,列出了所有模型的综合评分、预估速度(tokens/秒)、最佳量化版本、运行模式、内存占用和用途分类。
你可以使用键盘快捷键快速导航和筛选:
| 按键 | 功能 |
|---|---|
↑/↓ 或 j/k |
上下移动选择模型 |
/ |
进入搜索模式(按名称、提供商、参数量、用途过滤) |
Esc 或 Enter |
退出搜索模式 |
Ctrl-U |
清除搜索条件 |
f |
循环筛选运行状态:全部、可运行、完美、良好、勉强 |
s |
循环排序字段:得分、参数量、内存占比、上下文、发布日期、用途 |
t |
切换配色主题(会自动保存) |
p |
弹出提供商筛选面板 |
i |
切换“已安装模型优先”排序(仅限Ollama集成) |
d |
通过Ollama下载选中的模型 |
r |
刷新Ollama已安装模型列表 |
1–9 |
切换特定提供商的可见性 |
Enter |
展开/折叠选中模型的详细信息 |
PgUp/PgDn |
向上/向下滚动10行 |
g/G |
跳转到列表顶部/底部 |
q |
退出 |
内置配色主题
按下 t 键可以循环切换6种精心设计的主题,你的选择会自动保存到 ~/.config/llmfit/theme,下次启动自动恢复。
| 主题 | 特点 |
|---|---|
| 默认 | 原始的llmfit配色 |
| Dracula | 深紫色背景,搭配柔和亮色 |
| Solarized | Ethan Schoonover 的 Solarized Dark 色调 |
| Nord | 北极蓝灰风格,冷静专业 |
| Monokai | Monokai Pro 暖色语法高亮 |
| Gruvbox | 复古暖色调,类似老旧终端 |
CLI 模式:适合脚本与自动化
添加 --cli 参数或使用任何子命令即可进入CLI模式,输出格式化为普通表格,便于阅读或重定向。
# 输出所有模型的排名表格
llmfit --cli
# 只列出完美适配的模型,取前5名
llmfit fit --perfect -n 5
# 显示检测到的系统硬件信息
llmfit system
# 列出模型数据库中的所有模型
llmfit list
# 按名称或大小搜索模型
llmfit search "llama 8b"
# 查看单个模型的详细信息
llmfit info "Mistral-7B"
# 获取前5条推荐,以JSON格式输出(便于其他程序解析)
llmfit recommend --json --limit 5
# 按用途筛选推荐,例如编码模型
llmfit recommend --json --use-case coding --limit 3
手动指定GPU显存
某些情况下,GPU显存自动检测可能失败(例如虚拟机、驱动问题、远程环境)。此时可以用 --memory 参数手动指定显存大小:
# 指定显存为32GB
llmfit --memory=32G
# 也可以用MB为单位
llmfit --memory=32000M
# 与任何子命令组合使用
llmfit --memory=24G fit --perfect -n 5
llmfit --memory=24G info "Llama-3.1-70B"
支持的单位后缀:G/GB/GiB(吉字节)、M/MB/MiB(兆字节)、T/TB/TiB(太字节),不区分大小写。如果没有检测到GPU,该参数会创建一个虚拟GPU,使模型仍按GPU模式评分。
JSON 输出
任何子命令加上 --json 都会输出机器可读的JSON格式,非常适合与脚本或AI代理集成:
llmfit --json system # 硬件规格
llmfit --json fit -n 10 # 前10个适配模型
llmfit recommend --json # 推荐结果(默认即为JSON)
工作原理:硬件检测、动态量化、多维评分
llmfit 的核心逻辑分为三步:「检测硬件 → 动态量化选型 → 多维评分排序」。
1. 硬件检测:你的机器有什么?
程序启动后,首先通过 sysinfo 库读取系统总内存和可用内存,并统计CPU核心数。对于GPU,它尝试多种方法探测:
-
「NVIDIA GPU」:调用 nvidia-smi获取精确的专用显存大小,并支持多GPU聚合(总显存为所有卡之和)。如果命令执行失败,会尝试根据GPU型号估算显存。 -
「AMD GPU」:通过 rocm-smi检测,但显存值可能未知,此时需要手动指定。 -
「Intel Arc 独显」:读取 sysfs 文件 /sys/class/drm/card?/device/mem_info_vram_total获取显存。 -
「Intel 核显」:通过 lspci识别,但共享系统内存,故显存=系统内存。 -
「Apple Silicon」:调用 system_profiler获取统一内存大小,显存即为系统内存。
同时,llmfit 自动判断可用的加速后端:CUDA、Metal、ROCm、SYCL,或者纯CPU(ARM/x86)。这一步直接影响后续的速度预估。
如果自动检测不准确,始终可以使用 --memory 手动覆盖。
2. 模型数据库:206个模型,57个提供商
llmfit 内置了一个从HuggingFace抓取的模型列表,涵盖主流模型家族:Meta Llama、Mistral、Qwen、Google Gemma、Microsoft Phi、DeepSeek、IBM Granite、Allen Institute OLMo、xAI Grok、Cohere、BigCode、01.ai、Upstage、TII Falcon 等。总计206个模型,来自57个提供商。
每个模型记录了参数量、上下文长度、架构类型(是否为MoE)、用途分类(通用、编码、推理、聊天、多模态、嵌入)等信息。数据库通过 scripts/scrape_hf_models.py 脚本定期更新,该脚本只依赖Python标准库,无需额外pip包。更新方法:
make update-models # 推荐,自动备份并重编
# 或手动运行
python3 scripts/scrape_hf_models.py
cargo build --release
3. 动态量化选择:从Q8_0到Q2_K,选出最适合你的量化等级
模型参数量只是冷冰冰的数字,真正决定内存占用的是量化精度。llmfit 不会预先假定一个固定的量化版本,而是动态尝试:从最高质量 Q8_0 开始,依次向下尝试 Q6_K、Q5_K、Q4_K、Q3_K、Q2_K,直到找到第一个能完全装入内存的量化等级。如果完整上下文放不下,会尝试将上下文减半再次尝试。
对于MoE(混合专家)模型,如 Mixtral 8x7B 或 DeepSeek-V3,实际激活的参数量远小于总参数量。llmfit 会自动识别MoE架构,并应用专家卸载(expert offloading)策略:将部分专家保留在显存,其余放在内存,大幅降低显存需求。例如 Mixtral 8x7B 总参数量46.7B,但每token只激活约12.9B,原本需要23.9GB显存,通过专家卸载可降至约6.6GB,让更多设备能够运行。
4. 多维评分:质量、速度、适配度、上下文
每个模型会从四个维度获得0-100的分数:
| 维度 | 衡量内容 |
|---|---|
| 「质量 (Quality)」 | 参数量、模型家族声誉、量化精度惩罚、任务匹配度 |
| 「速度 (Speed)」 | 根据后端、参数量、量化等级估算的tokens/秒 |
| 「适配度 (Fit)」 | 内存利用率,理想区间为50%~80% |
| 「上下文 (Context)」 | 模型的上下文窗口能力与目标用途的匹配度 |
四个维度加权合成综合分,不同用途类别的权重不同(例如聊天模型更看重速度,推理模型更看重质量)。最终按综合分排序,无法运行的模型(Too Tight)自动排在最后。
速度估算公式
速度预估基于后端常数和参数量:
预估速度 = K / 参数量(单位B) × 量化速度系数
后端常数 K 如下:
| 后端 | K 值 |
|---|---|
| CUDA | 220 |
| Metal | 160 |
| ROCm | 180 |
| SYCL | 100 |
| CPU (ARM) | 90 |
| CPU (x86) | 70 |
量化速度系数随精度降低而增大(低精度计算更快)。同时,如果模型采用CPU卸载(部分层在GPU部分在CPU)或纯CPU运行,速度会乘以惩罚因子:CPU卸载0.5倍,纯CPU 0.3倍。MoE模型由于专家切换开销,额外乘以0.8倍。
适配度与运行模式
根据内存占用和硬件限制,llmfit 将模型划分为四种运行模式:
-
「GPU」:模型完全装入显存,推理最快。 -
「MoE」:混合专家架构,显存放活跃专家,内存存放非活跃专家。 -
「CPU+GPU」:显存不足,部分层或参数卸载到内存,速度中等。 -
「CPU」:无GPU或显存远小于模型需求,全部在内存运行,速度较慢。
适配度等级:
-
「Perfect」:完全满足推荐内存(显存),且使用GPU加速。 -
「Good」:有一定余量,或处于MoE/CPU+GPU模式下的最佳情况。 -
「Marginal」:勉强能跑,或纯CPU模式(纯CPU最高只能达到Marginal)。 -
「Too Tight」:内存不足,无法运行。
与Ollama无缝集成:查看已安装、一键下载
如果你使用 Ollama 管理本地模型,llmfit 能自动检测并与它协作。只要Ollama正在运行(ollama serve 或桌面应用),llmfit 就会通过 http://localhost:11434 的API查询已安装模型列表,并在TUI的“Inst”列用绿色 ✓ 标记。系统状态栏也会显示 Ollama: ✓ (N installed)。
下载模型
在TUI中选中一个模型,按 d 键即可触发下载。llmfit 会向Ollama发送拉取请求,行首出现动态进度条,实时显示下载进度。下载完成后,该模型立即可用,且安装标记自动更新。
远程Ollama实例
如果Ollama运行在其他机器或端口,可通过环境变量 OLLAMA_HOST 指定:
OLLAMA_HOST="http://192.168.1.100:11434" llmfit
这在你有一台GPU服务器运行Ollama、而你在笔记本上使用llmfit时非常有用。
模型名称映射
HuggingFace的模型名(如 Qwen/Qwen2.5-Coder-14B-Instruct)与Ollama的标签(如 qwen2.5-coder:14b)并不一致。llmfit 内部维护了一个精确的映射表,确保安装检测和下载能准确对应。例如 qwen2.5-coder:14b 一定会匹配到专门的Coder模型,而不是基础版。
平台与GPU支持一览
| 平台 | GPU检测方法 | 显存报告 |
|---|---|---|
| Linux (NVIDIA) | nvidia-smi |
精确显存,多GPU聚合 |
| Linux (AMD) | rocm-smi |
可能未知,建议手动指定 |
| Linux (Intel Arc独显) | sysfs | 精确显存 |
| Linux (Intel核显) | lspci |
共享系统内存 |
| macOS (Apple Silicon) | system_profiler |
统一内存(显存=系统内存) |
| macOS (Intel) | 同Linux (如有NVIDIA) | 同Linux |
| Windows | nvidia-smi (若安装) |
精确显存 |
如果自动检测失败或数值不准确,--memory 参数是你的救星。
OpenClaw集成:让AI助手为你推荐模型
llmfit 还可以作为 OpenClaw 的一个技能,让AI代理根据你的硬件自动推荐合适的模型,并配置Ollama、vLLM、LM Studio等后端。
安装OpenClaw技能
# 在llmfit仓库目录下运行
./scripts/install-openclaw-skill.sh
# 或手动复制
cp -r skills/llmfit-advisor ~/.openclaw/skills/
安装后,你可以向OpenClaw提问:“我的硬件能跑哪些本地模型?”、“推荐一个适合编程的模型”、“帮我用Ollama设置最好的模型”。AI代理会在后台调用 llmfit recommend --json,解析结果,并指导你配置 openclaw.json。
技能的具体定义见 skills/llmfit-advisor/SKILL.md。
贡献新模型:三步走
如果你发现某个常用模型不在列表中,欢迎贡献。
-
「编辑脚本」:打开 scripts/scrape_hf_models.py,将模型HuggingFace ID(例如meta-llama/Llama-3.1-8B)添加到TARGET_MODELS列表中。如果是需要登录的受限模型,同时在FALLBACKS列表中添加后备参数(参数量、上下文长度)。 -
「更新数据库」: make update-models该命令会备份现有数据,运行抓取脚本,验证JSON格式,并重新编译llmfit。
-
「验证并提交PR」: ./target/release/llmfit list | grep 你的模型名确认模型已正确添加,然后更新 MODELS.md(有生成脚本),最后提交PR。
同类工具对比
如果你希望更“实战”地测试模型,可以试试 llm-checker。它是一个Node.js写的CLI工具,通过Ollama实际运行模型并测量性能,而不是基于硬件估算。优点是能获得真实的速度和内存占用,缺点是必须事先安装Ollama,且不支持MoE架构的精准估计(将所有模型视为稠密模型,可能高估内存)。两者互补:llmfit 适合快速筛选,llm-checker 适合选定后的实测验证。
常见问题解答
Q: llmfit 支持Windows吗?
A: 支持。通过Cargo安装,或在WSL中使用。GPU检测依赖 nvidia-smi,如果未安装则只显示CPU信息,但内存检测依然有效。
Q: 我的GPU是AMD,但 rocm-smi 没有输出,怎么办?
A: 可以用 --memory 手动指定显存,例如 llmfit --memory=8G。或者先运行 rocm-smi 确保驱动正确安装。
Q: 为什么某些模型显示“Too Tight”,但我感觉应该能跑?
A: 可能是量化选择不够低,或者上下文设置太大。llmfit 会尝试从Q8_0向下到Q2_K,如果所有量化版本都放不下,才会标记为Too Tight。如果你有特殊需求(比如愿意用更低的量化或更短的上下文),可以尝试其他工具如llm-checker实际测试。
Q: 如何更新到最新版的模型数据库?
A: 运行 make update-models 即可。它会重新抓取HuggingFace数据并重新编译llmfit。你也可以手动运行 python3 scripts/scrape_hf_models.py 然后 cargo build --release。
Q: llmfit 会收集我的硬件信息吗?
A: 不会。所有检测都在本地完成,程序不会联网上传任何数据。只有与Ollama交互时会连接本地的Ollama API(或你指定的远程地址)。
结语
从盲目下载到精准选择,llmfit 填补了本地LLM部署中的一个重要缺口。它不仅仅是一个硬件检测工具,更是一个结合了动态量化、多维度评估的智能推荐系统。无论你是AI爱好者、研究人员,还是希望在本地安全运行大模型的企业用户,llmfit 都能帮你节省大量试错时间,让你专注于模型的应用本身。
现在就安装llmfit,找出最适合你硬件的模型吧。只需一个命令,告别选择困难。
