ARTICLE · 1095950
你电脑跑大模型有多快?一行命令测出上限
02 没显卡,5 分钟让电脑跟你聊大模型 ,llama.cpp初识
06模型量化变笨了?一招把质量补回来
厂商说很快,教程给一串参考速度——你信哪个?
一行命令测出你这台机器的真实速度。选型、买机、调参数,用数据说话。
📌 本文基于 llama.cpp b10448 验证(命令以官方该版本 README 为准;老版本用 llama-bench / llama-cli,功能一样)
本篇速览
本篇讲什么: llama bench,给模型在你的机器上做"跑分"的工具——不聊天、不评好坏,只报速度。你能用在哪:测试/嵌入式想摸清这台机器跑模型的真实下限;挑模型、调参数时比速度有数据撑腰。 它干不了啥:不对话、不评质量,只吐数字;纯 CPU 跑出来的是 CPU 上限(没挂 GPU 加速)。 管理者带走:选型/买机前让工程师交一张本机 tok/s 数字即可;别信口头「很快」。 跑通标志:终端吐出两行带 t/s(每秒 token 数)的数字,一个叫 pp、一个叫 tg。
一、本篇讲什么(人话版)
前面 P0、P1 我给你那些"参考速度 20~40 tok/s"都是我估的,你半信半疑很正常。想拿到你机器自己的真实数字,就用 llama bench。
它是个"跑分工具":把模型在你机器上实打实跑一遍,吐出两个速度数字:
pp(prompt processing,读题速度):模型"消化"你输入的快慢,单位 t/s。你问一句长话,它理解得有多快,看这个。 tg(text generation,写字速度):模型往外吐字多快,单位 t/s。聊天时那个"一个字一个字蹦"的节奏,就看这个数。
一句话:pp 测"读题快不快",tg 测"写字快不快"。你之前在 P1 终端里看到的那个"每秒吐多少字",就是 tg。
二、用在哪 / 别在哪用(先框边界)
用在哪(三类读者都能直接落地):
测试工程师:别再"感觉这个模型慢"了,bench 给客观数字,比模型、比量化档位都有据可依,写进测试报告也硬气。 嵌入式工程师:板子/工控机上到底能跑多大模型、多快?bench 一测就知道下限,省得盲猜。 IT 工程师:选模型部署前先跑个分,心里有数再上。
别在哪用(边界,诚实说):
它不聊天、不评质量——只想跟模型对话请回 P1;想看量化损多少精度请回 P4。bench 只报速度。 纯 CPU 跑出来的是 CPU 上限:你没挂 GPU, -ngl写了也白写(呼应 P1),测的就是 CPU 那点的能力。数字是这台机器、这个时刻的:后台在跑别的程序,数字会掉。所以 bench 默认多跑几次取平均(下面讲)。
管理者怎么用:不必读后面硬件对照表。让工程师交一张「本机 + 候选模型 + tg(写字速度)数字」,再对照你们对响应速度的底线即可拍板。
▸ 想动手跑通?从这里往下(命令可抄)
前面已经讲清「是什么 / 用在哪 / 边界」。不打算敲命令的读者到此可以合上——你要的决策信息够了。下面才是环境准备和可抄命令,留给要跟做的人。
三、开始前准备
版本:b10448(P0 教过怎么下、怎么 llama --version确认)。模型:用资料包或 P1 已放到 ./models/的那个就行,比如./models/qwen2.5-1.5b-instruct-q4_k_m.gguf。没有的话按 P1 第三节方式二(hf-mirror)或方式三(魔塔)下:
pip install modelscopemodelscope download --model qwen/Qwen2.5-1.5B-Instruct-GGUF \qwen2.5-1.5b-instruct-q4_k_m.gguf --local_dir ./models
硬件:本篇默认 C 机(普通 x86 无独显)。bench 是 CPU 密集活,跑之前关掉占用 CPU 的程序(浏览器别开太多标签、别后台编译),数字更准。
四、动手做(先跑通)
第 1 步:给一个模型跑分(最常用)
llama bench -m ./models/qwen2.5-1.5b-instruct-q4_k_m.gguf -t 4
-m后面跟你的模型文件路径(换成你自己的)。-t 4是线程数,等于"同时用几个 CPU 核心算"。C 机 8 核就写-t 8,核越多通常越快(不是无限,后面说)。纯 CPU 不加 -ngl,加了没用还容易让人误会"我开 GPU 了"。
预期输出(节选):
| model | pp t/s | tg t/s || -------------- | ------------ | ------------ || qwen2.5-1.5b.. | ~XXX ± X | ~XX ± X |
看到这两列数字,这篇就跑通了。pp 那列是读题速度,tg 那列是写字速度(你 P1 聊天时的节奏就由它决定)。
不用截图了——硬件跑分因机器差异极大(你 C 机和我的演示机数字会差很多),所以这篇不贴具体截图,直接给你官方
llama-bench示例 + 社区实测对照(含具体硬件),都在下面 §七。你自己机器多少,用llama bench跑一下最准(命令就在上一步)。
第 2 步:几个模型放一起比(挑模型神器)
想看看 0.5B / 1.5B / 3B 在你机器上差多少?-m 写多次就行:
llama bench -m ./models/xxx-0.5b-q4_k_m.gguf \-m ./models/xxx-1.5b-q4_k_m.gguf \-m ./models/xxx-3b-q4_k_m.gguf -t 8
bench 会把三个模型依次跑完,吐一张对比表——哪个快、快几倍,一眼看清。
你手头只有 1.5B 一个模型也能练,第 2 步是"想挑模型时"再上,不卡你。
第 3 步:把结果存成表格(方便归档/发群里)
默认就打印在终端。想存成文件给 Excel 或发帖,加 -o 指定格式:
llama bench -m ./models/qwen2.5-1.5b-instruct-q4_k_m.gguf -t 8 -o csv > bench_result.csv
-o 支持 csv / json / md / sql,挑你顺手的。CSV 直接 Excel 打开。
五、参数与细节(想深入再看)
bench 的参数比 cli 多些,但日常就那几个。重点:bench 控制上下文大小的不是 -c,是 -d(别的工具叫 -c,bench 不认,别混)。
-p, --n-prompt | |||
-n, --n-gen | |||
-d, --n-depth | -c) | ||
-r, --repetitions | -r 10 | ||
-b / -ub | |||
-ngl | 纯 CPU 别写 | ||
-o | csv/json/md/sql |
想看全部参数:
llama bench --help(别凭记忆,以你装的 b10448 为准)。
一句话结论先给:内存带宽决定下限,GPU 决定上限。CPU 机器上 tg 快慢主要卡在"内存和 CPU 之间搬数据的速度",不是核心数越多越神——所以 -t 加到某一点就涨不动了,这是正常现象,不是你没配对。
⚠️ 本篇不替你跑速度(你机器和我机器硬件不同,跑出来数字没意义)。下面直接给你官方 + 社区实测参考,关键是看"测的什么硬件"——同一行命令,换台机器数字天差地别。
附:别人机器跑多少(官方/社区实测,含硬件)
下面都是 LLaMA-7B · Q4_0(约 3.56 GiB)的官方 llama-bench 示例与社区实测,输入 512 / 输出 128,单位 tok/s。
① 官方 llama-bench 示例(纯 CPU,线程数 scaling) — 来源:llama.cpp 仓库 examples/llama-bench/README.md
看出门道没:纯 CPU 上 tg 加到 8 线程就基本到顶(~17),再多加线程涨不动——因为卡在内存带宽,不是核心数。这就是上面"一句话结论"的真实写照。
② Apple Silicon 官方实测贴 — 来源:llama.cpp Discussion #4167(GPU 推理,LLaMA-7B Q4_0)
同代里带宽(GB/s)几乎正比于速度——再次印证"内存带宽决定下限"。
③ 社区 x86 / 显卡实测(来源:llama.cpp 中文资料汇总,7B Q4_0)
怎么用这张表:表里全是 7B 的数字。你本合集默认 1.5B,模型小得多、更不吃带宽,tg 会比上表同硬件高一大截(桌面 CPU 跑 1.5B 轻松几十 tok/s,聊天完全不卡)。真要你机器的精确数,用本节 llama bench 自己测——别人跑多少只用来"建立预期",不当标准答案。
六、翻车实录(提前排雷)
-ngl在纯 CPU 上白写:别以为加了就快,纯 CPU 跑 bench 就是 CPU 上限,呼应 P1 的坑。想上 GPU 请看规划书"进阶提速对比"(A/B 机)。数字忽高忽低、标准差 ± 很大:后台有程序在抢 CPU。关掉浏览器/编译/下载,或加 -r 10多跑几次取平均,数字就稳了。第一次跑特别慢:正常,bench 默认会先"预热"一次再计时。别以为卡死了,等它吐表。 报错"model not found / 文件找不到": -m后面的路径写错了。用资料包或 P1 下到./models/的,确认文件名一字不差。内存不够直接被杀(OOM):C 机 16G 别硬上 7B+。测速用 0.5B~3B 足矣;想测大模型的极限速度,先回 P3 量化到 Q4_K_M 再测。 拿 bench 当聊天工具用:它不聊天,只跑分。想对话回 P1,bench 跑完关掉就行。
七、收尾
这篇你能用在哪:
测试/嵌入式:拿到一块新机器、一块新板子,先 llama bench跑一下,真实下限心里有数,再决定塞多大模型。IT:部署前给候选模型跑分,挑性价比最高的那个,报告里附数字比"感觉快"硬气。 调参党:改 -t、量化档位前后各跑一次,看提升多少,别靠玄学。
金句收一下:别人说"几万 tok/s"你别全信,动手测一遍,你这台机器多少就是多少。
聊聊:你机器跑 1.5B 的 tg 是多少?评论区报个数,搏哥攒个"读者真机速度表"。命令跑不通,评论区把报错贴出来,搏哥帮你看。
如果这篇帮到你,点个赞或再看一下就行——方便你下次翻到,也方便平台把同类内容推给需要的人。
合集配套资料(安装速查、常用命令表、翻车排雷、阅读路径)我整理好了:公众号对话框回复 llama.cpp 就能领。