llmfit 从入门到精通完整教程:一条命令找出你的硬件能跑哪些大模型
想在本地跑大模型,却不知道自己的电脑能带得动哪个?下载了 40GB 的模型,跑起来才发现显存不够或者慢得像蜗牛?llmfit 就是为此而生的工具——自动检测你的硬件,从质量、速度、适配度、上下文四个维度为数百种模型打分,告诉你哪些模型能在你的机器上流畅运行。
这篇教程覆盖 llmfit 从 安装 → TUI 交互 → CLI 自动化 → 高级功能 → 实战场景 的全部核心用法,读完即可用它为自己的硬件找到最合适的模型。
0)llmfit 是什么 & 为什么选它
0.1 核心定位
llmfit 是一款开源终端工具(MIT 协议,Rust 编写),根据你系统的 RAM、CPU、GPU/VRAM 自动匹配 LLM 模型规格,用数据告诉你「这个模型到底能不能跑、跑得有多快」。
它解决的是本地部署大模型时最痛的几个问题:
| 痛点 | llmfit 的解法 |
|---|---|
| 不知道自己硬件能跑多大模型 | 自动检测硬件 + 内存精确估算(含 KV Cache) |
| 下载了模型才发现跑不动 | 事前评估,量化等级自动推荐 |
| 同参数量模型不知道选哪个 | 四维评分 + 用途(编码/推理/多模态…)加权 |
| 速度估算全靠”拍脑袋” | 基于带宽的 TPS 估算 + 社区实测数据校准 |
| 买新硬件前不知道选什么配置 | Plan 模式反向推算需要的 VRAM/RAM/CPU |
项目地址:https://github.com/AlexsJones/llmfit(GitHub 30k+ Stars)
0.2 核心特性一览
- 📊 四维评分系统:质量、速度、适配度、上下文,按用途加权合成综合分
- 🖥️ 交互式 TUI:类 Vim 操作,搜索/过滤/对比/下载一站式完成
- ⌨️ 经典 CLI:支持 JSON 输出,方便脚本化和 Agent 调用
- 🌐 REST API:可作为节点级服务,供集群调度器使用
- 🔌 多运行时集成:Ollama、llama.cpp、MLX、vLLM、LM Studio、Docker Model Runner
- 🎮 MoE 支持:针对 Mixtral、DeepSeek 等混合专家模型做专门优化
- 💾 动态量化选择:自动从 Q8_0 → Q4_K_M → Q2_K 挑选最合适的精度
- 📈 社区排行榜:对接 localmaxxing.com,查看同硬件用户的真实 tok/s
- 🧪 硬件模拟:覆盖 RAM/VRAM/CPU,提前评估目标机器适配情况
- 📥 内置下载管理器:进度条、历史记录、一键删除
- 🏋️ 推理基准测试:本地实测 TTFT/TPS,校准估算公式,并可贡献回项目
0.3 评分算法原理(四大维度)
llmfit 的每个模型都会在四个维度上分别打分(0-100),然后根据用途用不同权重合成为综合评分:
| 维度 | 打分依据 |
|---|---|
| 质量 (Quality) | 参数量、架构、基准测试成绩(MMLU、HumanEval 等) |
| 速度 (Speed) | 基于显存带宽、参数量、量化精度估算 tok/s;有实测数据则优先用实测 |
| 适配度 (Fit) | 内存利用率效率——最佳区间是可用内存的 50%-80%,占用太满或太浪费都会扣分 |
| 上下文 (Context) | 模型最大上下文长度与用途需求的匹配度 |
不同用途的权重差异(简化版):
| 用途 | Quality | Speed | Fit | Context |
|---|---|---|---|---|
| 通用 (general) | 中 | 中 | 高 | 中 |
| 编码 (coding) | 高 | 中 | 中 | 高 |
| 推理 (reasoning) | 高 | 低 | 中 | 高 |
| 聊天 (chat) | 中 | 高 | 高 | 中 |
| 多模态 (multimodal) | 高 | 中 | 中 | 中 |
💡 这就是为什么同一个模型在「编码」和「聊天」场景下的排名可能完全不同。
1)安装:全平台 5 种方式
1.1 macOS(推荐 Homebrew)
方式一:官方 Tap(预编译二进制,最快)
1 | |
方式二:Homebrew Core(无预编译包时从源码构建)
1 | |
方式三:一键安装脚本(最快)
1 | |
方式四:MacPorts
1 | |
1.2 Windows
1 | |
未安装 Scoop 的请先访问 scoop.sh 进行安装。
1.3 Linux
Homebrew on Linux:
1 | |
一键脚本:
1 | |
1.4 uv / pip(Python 用户)
1 | |
1.5 Docker / Podman
1 | |
1.6 从源码构建(Rust 开发者)
1 | |
1.7 验证安装
1 | |
看到版本号即安装成功。
2)快速开始:3 分钟跑通第一次
2.1 查看硬件检测结果
先确认 llmfit 正确识别了你的硬件:
1 | |
典型输出(Apple Silicon M3 Max 示例):
1 | |
如果检测结果不对(比如显卡没识别到),可以用 llmfit doctor 生成诊断报告,贴到 GitHub Issue 里求助。
1 | |
2.2 启动交互式 TUI
直接运行 llmfit 即可进入默认的终端交互界面:
1 | |
你会看到:
- 顶部:你的硬件配置(CPU/RAM/GPU/VRAM/后端)
- 中间:模型表格(按综合评分排序,可滚动)
- 底部:当前模式、帮助提示
新手必记的 3 个按键:
| 按键 | 作用 |
|---|---|
j / k 或 ↑ ↓ | 上下浏览模型 |
/ | 搜索(输入模型名/提供商/参数量) |
q | 退出 |
2.3 用 CLI 快速获取推荐
不想进交互界面?直接用命令行拿结果:
1 | |
3)TUI 交互界面详解:类 Vim 的高效操作
TUI 是 llmfit 最强大的使用方式,提供浏览 → 过滤 → 对比 → 下载 → 基准测试的完整工作流。操作逻辑高度参考 Vim,分三种模式。
3.1 全局按键速查表(Normal 模式)
按 h 随时在界面内打开完整帮助弹窗。
基础操作
| 按键 | 操作 |
|---|---|
Up / Down 或 j / k | 浏览模型 |
PgUp / PgDn | 翻页(10 行) |
g / G | 跳到顶部 / 底部 |
/ | 进入搜索模式(模糊匹配名称/提供商/参数量/用途) |
Esc / Enter | 退出搜索 |
Ctrl-U | 清除搜索内容 |
Enter | 展开/收起选中行的详细信息 |
q | 退出 |
过滤与排序
| 按键 | 操作 |
|---|---|
f | 切换适配度过滤:全部 → 可运行 → 完美 → 良好 → 勉强 |
a | 切换可用性过滤:全部 → GGUF 可用 → 已安装 |
s | 切换排序列:评分 → 参数量 → 内存% → 上下文 → 日期 → 用途 |
P | 打开提供商过滤弹窗(输入模糊过滤) |
U | 打开用途过滤弹窗(general/coding/reasoning/chat/multimodal…) |
C | 打开能力过滤弹窗(文本/代码/多模态/嵌入/音频…) |
L | 打开许可证过滤弹窗 |
R | 打开运行时/后端过滤弹窗(llama.cpp / MLX / vLLM) |
i | 切换「已安装的模型优先排序」 |
r | 从运行时提供商刷新已安装模型列表 |
对比与下载
| 按键 | 操作 |
|---|---|
v | 进入 Visual 模式(多选模型) |
V | 进入 Select 模式(按列过滤) |
m | 标记当前模型用于双模型对比 |
c | 打开对比视图(已标记 vs 当前选中) |
x | 清除对比标记 |
d | 下载选中模型(多提供商时弹出选择器) |
D | 打开下载管理器(历史/删除/配置目录) |
高级功能(后面单独讲)
| 按键 | 操作 |
|---|---|
p | Plan 模式:选中模型需要什么硬件? |
S | 硬件模拟:覆盖 RAM/VRAM/CPU 做评估 |
A | 高级配置:调整 TPS 效率、运行模式系数 |
b | 社区排行榜:同硬件用户的真实性能数据 |
I | 推理基准测试:本地实测你的模型性能 |
t | 切换颜色主题(10 种内置主题) |
3.2 三种模式详解
左下角状态栏会显示当前模式:NORMAL / VISUAL / SELECT。
Normal 模式(默认)
就是上面那张表里的所有操作,日常浏览、搜索、过滤都在这个模式下。
Visual 模式(v 键)—— 多选对比
选中连续的多个模型做批量对比:
- 光标移到起始行,按
v设置锚点 - 用
j/k扩展选区(行高亮) - 按
c打开多模型对比视图(表格横向排列,最优值高亮) - 对比视图下用
h/l水平滚动(模型太多时) Esc或再按v退出
Select 模式(V 键)—— 按列过滤
用键盘快速操作列级过滤器(不用鼠标点):
- 按
V(Shift-v)进入 - 用
h/l在列标题间移动(当前列高亮) - 按
Enter或Space触发该列的过滤动作
各列对应的操作:
| 列 | 触发的动作 |
|---|---|
| Inst(已安装标记) | 切换可用性过滤 |
| Model | 进入搜索模式 |
| Provider | 打开提供商弹窗 |
| Params | 参数量分组弹窗(<3B / 3-7B / 7-14B / 14-30B / 30-70B / 70B+) |
| Score / tok/s / Mem% / Ctx / Date | 按该列排序 |
| Quant | 量化等级弹窗 |
| Mode | 运行模式弹窗(GPU / MoE / CPU+GPU / CPU) |
| Fit | 切换适配度过滤 |
| Use Case | 用途弹窗 |
💡 Select 模式下仍可用
j/k浏览行,方便实时看过滤效果。
3.3 10 种内置主题(t 键切换)
按 t 循环切换,选择自动保存到 ~/.config/llmfit/theme,下次启动自动恢复。
| 主题 | 风格 |
|---|---|
| Default | llmfit 原始配色 |
| Dracula | 深紫色背景 + 柔和色调 |
| Solarized | Solarized Dark 经典方案 |
| Nord | 极地冷蓝灰调 |
| Monokai | Monokai Pro 暖色语法 |
| Gruvbox | 复古暖色大地色系 |
| Catppuccin Latte | 🌻 浅色主题 |
| Catppuccin Frappé | 🪴 低对比深色 |
| Catppuccin Macchiato | 🌺 中对比深色 |
| Catppuccin Mocha | 🌿 最深暗色系(推荐) |
4)核心功能深入
4.1 Plan 模式(p)—— 反向推算硬件需求
和常规模式的「我的硬件能跑什么?」正好相反,Plan 模式回答的是:
我想跑这个模型(特定上下文/量化/目标速度),需要买什么配置的电脑/服务器?
操作步骤:
- 光标移到目标模型行,按
p - 用
Tab/j/k在三个可编辑字段间切换:- Context:上下文长度(如 8192 / 32768 / 128k)
- Quant:量化格式(如 Q4_K_M / MLX-4bit / Q8_0)
- Target TPS:目标每秒 token 数(如 20 / 40 / 80)
- 直接输入数字修改,按
Enter应用 - 界面会实时显示:
- 最低配置(勉强能跑)
- 推荐配置(流畅运行)
- 三种可行路径:GPU 纯跑 / CPU+GPU 卸载 / 纯 CPU
- 达到更好适配等级需要的升级差额(如「再 +8GB VRAM 可达到 Good」)
Esc或q退出
CLI 等价命令:
1 | |
4.2 硬件模拟(S)—— 买显卡/整机前先试
还没买新硬件?先在 llmfit 里模拟目标配置,看看哪些模型能跑。
操作:
- 按
S打开弹窗 Tab/j/k切换字段,输入数字:- RAM:系统内存(GB)
- VRAM:显存(GB,统一内存架构下同 RAM)
- CPU:核心数
- 按
Enter应用 → 整个模型表格立刻按新硬件重新评分 - 状态栏和系统栏会显示红色
SIM标识,提醒你当前是模拟数据 Ctrl-R重置为真实硬件,Esc取消
CLI 等价参数:
1 | |
💡 即使你没有独立显卡,
--memory=XXG也会创建一个虚拟 GPU 条目来评估 GPU 推理适配度。
4.3 高级配置(A)—— 调整估算参数
默认参数对大多数模型是准确的,但个别模型(如 Qwen3 30B)可能存在 tok/s 高估的情况(见官方 Issue #449)。此时可以手动校准参数。
按 A 打开面板,所有修改即时生效(表格重新计算):
| 字段 | 含义 | 默认值 |
|---|---|---|
| Efficiency | 全局 TPS 效率系数(扣除计算开销) | 0.55 |
| GPU factor | 纯 GPU 推理速度乘数 | 1.0 |
| CPU Offload | 权重溢出到系统 RAM 时的速度乘数 | 0.5 |
| MoE Offload | MoE 模型专家切换时的速度惩罚 | 0.8 |
| Tensor Par | 张量并行推理速度乘数(多 GPU) | 0.9 |
| CPU Only | 纯 CPU 执行速度乘数 | 0.3 |
| Context cap | 内存估算用的最大上下文长度上限 | auto |
操作:Tab 切字段 → 输入数字 → Enter 应用 / Ctrl-R 重置默认 / Esc 接受关闭。
4.4 下载管理器(D)—— 一站式管理模型
按 D 进入全屏下载管理器,分三个区域,用 Tab / Shift-Tab 循环切换焦点:
① Active Download(当前下载)
显示实时进度条、模型名、状态。
② Config(配置)
显示并允许编辑 GGUF 模型存储目录(按 e 编辑,Enter 确认),配置持久保存。
③ History(历史记录)
最新优先的下载历史列表。支持:
| 按键 | 作用 |
|---|---|
j / k | 浏览 |
x | 删除选中项 → 弹出 y/n 确认 |
删除逻辑:
- 失败的下载(如 404):从历史记录中移除
- 成功的下载:从实际提供商(Ollama / llama.cpp)中删除模型文件
4.5 社区排行榜(b)—— 同硬件真实数据
llmfit 的默认速度是估算值。想知道真实表现?按 b 打开社区排行榜,对接 localmaxxing.com 众包数据库,显示和你用相同硬件的其他用户实测的 tok/s、TTFT、VRAM 占用。
表格列说明:
| 列 | 含义 |
|---|---|
| Model | HuggingFace 模型 ID |
| Engine | 推理运行时(llama.cpp / vLLM / Ollama / MLX…) |
| Quant | 量化格式 |
| tok/s | 实测输出 token 生成速度 |
| Total t/s | 总吞吐量(提示词 + 生成) |
| TTFT | 首次 Token 响应时间(延迟敏感场景看重这个) |
| VRAM | 推理期间峰值显存占用 |
| Ctx | 基准测试时的上下文长度 |
| User | 提交者(加 * 是已验证用户) |
额外操作:
| 按键 | 作用 |
|---|---|
H | 打开硬件选择器(27 种热门 GPU/芯片,想看哪个看哪个) |
r | 从 API 刷新数据 |
硬件选择器覆盖 RTX 5090 → 纯 CPU → Apple Silicon M1-M4 → AMD RX/MI → NVIDIA 数据中心卡,甚至可以看你当前没有的硬件的性能数据。
API Key 配置(可选,获得完全访问权限):
1 | |
4.6 推理基准测试(I)—— 本地实测你的模型
社区排行榜是别人的数据,你自己的模型到底跑多快? 按 I(大写 i)对本地运行的模型做实时推理基准测试,测真实的 TTFT、TPS、总延迟。
支持的运行时:Ollama、vLLM、MLX
TUI 操作
| 按键 | 作用 |
|---|---|
I | 打开基准测试(自动检测所有可用的运行时和已安装模型) |
I(再按一次) | 在视图内重新运行测试 |
Enter | 查看单个模型的详细结果 |
r | 切换到路由矩阵视图(--quality 时有用) |
结果缓存到 ~/.config/llmfit/bench-cache.json,下次打开秒加载。
CLI 操作(脚本化友好)
1 | |
环境变量
| 变量 | 默认值 | 作用 |
|---|---|---|
OLLAMA_HOST | http://localhost:11434 | Ollama API 地址 |
VLLM_PORT | 8000 | vLLM 端口(拼接成 http://localhost:$VLLM_PORT) |
5)CLI 命令全解:自动化与脚本集成
TUI 适合人手操作,CLI 适合写脚本、给 Agent 调用。所有子命令都支持加 --cli 强制表格输出,加 --json 输出机器可读格式。
5.1 基础命令速查
1 | |
5.2 过滤与推荐
1 | |
适配等级(--min-fit 的值)从高到低:perfect > good > marginal > too_tight
5.3 硬件覆盖 + 上下文上限
这些参数所有子命令通用:
1 | |
5.4 Plan 模式(CLI 版)
1 | |
JSON 返回的稳定字段包括:
request:你传入的context/quantization/target_tpsminimum_hardware/recommended_hardware:最低/推荐的 VRAM/RAM/CPUpaths:gpu/cpu_offload/cpu_only三条路径的可行性upgrade_deltas:达到更好适配等级的硬件差额
5.5 REST API 服务(llmfit serve)—— 集群调度神器
把 llmfit 跑成 HTTP 服务,给 Kubernetes 调度器、集群管理面板、自研 Agent 平台调用:
1 | |
环境变量覆盖端口/主机:
1 | |
API 端点一览
1 | |
查询参数(/models 和 /models/top 通用)
| 参数 | 值示例 | 作用 |
|---|---|---|
limit / n | 10 | 返回最大行数 |
perfect | true | 强制只看完美适配(=min_fit=perfect) |
min_fit | good | 最低适配等级(perfect/good/marginal/too_tight) |
runtime | mlx / llamacpp / any | 指定运行时 |
use_case | coding | 用途过滤 |
provider | Qwen | 提供商子串过滤 |
search | llama 8b | 全文模糊搜索 |
sort | score / tps / params / mem / ctx / date | 排序列 |
include_too_tight | true | 是否包含跑不动的模型(/top 默认 false,/models 默认 true) |
max_context | 8192 | 内存估算的上下文上限 |
force_runtime | mlx | 覆盖自动运行时选择 |
5.6 基准测试 & 贡献回社区(bench --share)
这是 llmfit 最有社区精神的功能——你跑的基准测试数据可以自动生成 PR 回贡献给项目,相同硬件的所有用户下次更新就能直接看到你的实测值 ✓ 而不是估算值。
1 | |
工作原理:
- 每次
llmfit bench成功跑过的结果都会存在本地(Linux 下~/.local/share/llmfit/benchmarks/pending/,可用LLMFIT_BENCH_STORE覆盖),不会丢失 - 你自己跑过的模型,TUI 排行榜顶部会显示「you (local)」,估算会被你的实测值替换,同硬件的其他模型估算也会被校准(显示「Calibrated ×N from your own runs」)
--share用 GitHub Device Flow 登录(和gh auth login一样),打印短码和 URL,你去浏览器授权一次,Token 缓存到~/.config/llmfit/,下次免登- 然后自动 Fork 仓库、提交每个基准结果文件到
llmfit-core/data/community/<hardware>/、开 PR——如果你已经有打开的基准 PR,还会追加到同一个 PR 而不是新开 - 合并后,下一个版本的 llmfit 二进制就会内嵌你的数据,相同硬件的所有用户开箱即用你的实测结果
🔐 安全说明:Device Flow 不需要 Client Secret,所以把 OAuth App 的 Client ID 直接编译进二进制是安全的;如果设置了环境变量
GITHUB_TOKEN/GH_TOKEN,会自动跳过浏览器步骤(适合 CI)。
6)Web 仪表盘
除了 TUI 和 CLI,llmfit 还自带** Web 仪表盘**,适合在同一局域网的手机/平板/其他电脑浏览器里查看。
启动任意非 JSON 模式的 llmfit 时,仪表盘后台自动启动,默认 0.0.0.0:8787:
1 | |
自定义主机/端口:
1 | |
7)实战场景示例
场景一:买新显卡前的选型评估
目标:想升级显卡,但不知道 16GB 和 24GB 的差距有多大,值不值得多花钱。
1 | |
用 TUI 操作的话按 S 分别填 16 和 24,直观比较两个配置下能跑 Qwen3-30B 还是只能跑 Qwen3-14B。
场景二:为编码任务找最佳模型
目标:8GB 显存的笔记本,想找一个写代码最好用的模型。
TUI 操作流:
llmfit打开- 按
U→ 选coding(只看编码优化的模型) - 按
f几次切到Perfect或Good(只看能流畅跑的) - 按
s切到按Score排序(默认就是) - 光标移到 Top 3,分别按
Enter看详情(MMLU/HumanEval 成绩、上下文、量化建议) - 其中一个按
d下载,用 Ollama 跑起来 - 运行后按
I做基准测试,看看实际速度和估算差多少
CLI 一行搞定:
1 | |
场景三:Ollama + llmfit 完整工作流
1 | |
场景四:集群调度(多节点 REST API)
假设你有 3 台推理节点(node-01/02/03),各配不同显卡:
1 | |
场景五:给 AI Agent 当工具(JSON 输出)
你写的 Agent 需要根据用户机器情况推荐模型,直接调用 llmfit:
1 | |
8)常见问题 FAQ
Q1:llmfit 没识别到我的显卡怎么办?
先跑 llmfit doctor 生成诊断报告,检查:
- NVIDIA:
nvidia-smi能正常输出吗?驱动装了吗? - AMD:
rocm-smi正常吗?ROCm 版本对不对? - Intel Arc:Vulkan 驱动装了吗?
- 虚拟机 / GPU 直通:PCI 设备可见吗?
都确认了还是不行,把 llmfit doctor 的输出贴到官方 Issue,或者临时用 --memory=XXG 手动覆盖。
Q2:Apple Silicon 为什么用 MLX 而不是 llama.cpp?哪个更快?
llmfit 在 Apple Silicon 上默认选 MLX 作为后端,因为 MLX 对统一内存架构做了深度优化,通常比 llama.cpp 快。如果你想用 llama.cpp:
1 | |
建议两种都试,然后用 llmfit bench 实测你自己机器上哪个更快。
Q3:适配等级「勉强(Marginal)」到底能不能跑?
可以跑,但体验可能一般——比如上下文开大了会爆内存、tok/s 可能低于 10。建议:
- 临时试用可以选 Marginal
- 日常主力使用选 Good 或 Perfect
- 用
A打开高级配置调小 Context cap,可能把 Marginal 提升到 Good
Q4:估算的 tok/s 和实际跑出来差很多怎么办?
- 先用
llmfit bench自己跑一遍实测——你的实测值会自动替换估算 - 按
A调整Efficiency系数(默认 0.55,你的系统可能内存带宽不一样) - 如果是某个特定模型系统性偏差,跑
llmfit bench --share把数据贡献回社区,下一个版本所有人都能用校准后的数字。
Q5:怎么加自定义模型到 llmfit?
llmfit 支持用户本地自定义模型覆盖:把 JSON 放到 ~/.config/llmfit/custom_models.json(不同 OS 路径略有差异,用 llmfit doctor 查看 config dir)。格式参考官方文档的 Custom models 页面。
9)总结 & 进阶阅读
9.1 一句话总结
llmfit 是本地部署大模型的「选型前置工具」——用它先算清楚再下载,省时间省带宽省硬盘;用它做基准测试反哺社区,让所有人的估算都更准确。
9.2 核心资源
| 资源 | 链接 |
|---|---|
| 项目主页 | https://github.com/AlexsJones/llmfit |
| 官方文档目录 | docs/ |
| CLI & Automation | docs/cli.md |
| 运行时提供商集成 | docs/providers.md |
| 评分/估算完整原理 | docs/how-it-works.md |
| 平台 & GPU 支持列表 | docs/platform-support.md |
| 基准测试分步指南 | docs/benchmarking.md |
| 社区基准数据 | localmaxxing.com |
| 姐妹项目:K8s Agent 管理 | sympozium |
| 姐妹项目:模型服务 TUI | llmserve |
| 姐妹项目:macOS 菜单栏管理 | llama-panel |
9.3 快速上手 Checklist
- 安装 llmfit(
brew install AlexsJones/llmfit/llmfit或一键脚本) -
llmfit system确认硬件检测正确 -
llmfit进入 TUI,按/搜索你感兴趣的模型 - 按
f过滤出 Perfect / Good 的模型 - 对 Top 1 按
Enter看详情,按d下载 - 下载完成后按
I跑基准测试 - (可选)
llmfit bench --share贡献你的数据,做社区的一份子 ✨