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 上下移动选择模型
/ 进入搜索模式(按名称、提供商、参数量、用途过滤)
EscEnter 退出搜索模式
Ctrl-U 清除搜索条件
f 循环筛选运行状态:全部、可运行、完美、良好、勉强
s 循环排序字段:得分、参数量、内存占比、上下文、发布日期、用途
t 切换配色主题(会自动保存)
p 弹出提供商筛选面板
i 切换“已安装模型优先”排序(仅限Ollama集成)
d 通过Ollama下载选中的模型
r 刷新Ollama已安装模型列表
19 切换特定提供商的可见性
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

贡献新模型:三步走

如果你发现某个常用模型不在列表中,欢迎贡献。

  1. 「编辑脚本」:打开 scripts/scrape_hf_models.py,将模型HuggingFace ID(例如 meta-llama/Llama-3.1-8B)添加到 TARGET_MODELS 列表中。如果是需要登录的受限模型,同时在 FALLBACKS 列表中添加后备参数(参数量、上下文长度)。
  2. 「更新数据库」

    make update-models
    

    该命令会备份现有数据,运行抓取脚本,验证JSON格式,并重新编译llmfit。

  3. 「验证并提交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,找出最适合你硬件的模型吧。只需一个命令,告别选择困难。