<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉]]></title><description><![CDATA[<h2>常用指标与术语</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>缩写</th>
<th>英文全称</th>
<th>中文解释</th>
<th>主要看什么</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>PP</strong></td>
<td>Prompt Processing</td>
<td>提示词处理 / Prefill</td>
<td>模型处理输入上下文的速度，通常以 tok/s 表示</td>
</tr>
<tr>
<td><strong>TG</strong></td>
<td>Text Generation</td>
<td>文本生成 / Decode</td>
<td>模型持续生成输出 Token 的速度，通常以 tok/s 表示</td>
</tr>
<tr>
<td><strong>TTFT</strong></td>
<td>Time To First Token</td>
<td>首 Token 延迟</td>
<td>从发出请求到收到第一个输出 Token 的时间</td>
</tr>
<tr>
<td><strong>TPOT</strong></td>
<td>Time Per Output Token</td>
<td>平均每个输出 Token 的耗时</td>
<td>反映持续生成阶段的平均延迟，通常以 ms/token 表示</td>
</tr>
<tr>
<td><strong>ITL</strong></td>
<td>Inter-Token Latency</td>
<td>Token 间延迟</td>
<td>相邻流式输出之间的时间间隔，用于观察卡顿和尾延迟</td>
</tr>
<tr>
<td><strong>TPS</strong></td>
<td>Tokens Per Second</td>
<td>每秒 Token 数</td>
<td>模型每秒生成多少 Token</td>
</tr>
<tr>
<td><strong>E2E</strong></td>
<td>End-to-End Latency</td>
<td>端到端总耗时</td>
<td>从请求发出到完整响应结束的总时间</td>
</tr>
<tr>
<td><strong>C1 / C2 / C4 / C8</strong></td>
<td>Concurrency 1 / 2 / 4 / 8</td>
<td>并发数 1 / 2 / 4 / 8</td>
<td>同时存在多少个推理请求</td>
</tr>
<tr>
<td><strong>QPS / RPS</strong></td>
<td>Queries / Requests Per Second</td>
<td>每秒请求数</td>
<td>Serving 场景下单位时间能处理多少请求</td>
</tr>
<tr>
<td><strong>Goodput</strong></td>
<td>Goodput</td>
<td>有效吞吐量</td>
<td>在满足延迟或 SLO 要求前提下真正有效完成的吞吐量</td>
</tr>
<tr>
<td><strong>VRAM</strong></td>
<td>Video Random Access Memory</td>
<td>显存占用</td>
<td>模型、KV Cache 和推理过程占用多少 GPU 显存</td>
</tr>
</tbody>
</table>
<blockquote>
<p dir="auto">简单理解：**PP 看“吃得快不快”，TTFT 看“多久开口”，TG/TPS 看“说得快不快”，ITL 看“会不会卡”，E2E 看“整件事多久做完”。</p>
</blockquote>
<hr />
<h2>引言</h2>
<p dir="auto">今年 AI 大爆发，各种新模型、推理框架和新玩法层出不穷。</p>
<p dir="auto">作为一个非技术专业的 AI 爱好者，我很依赖论坛里的实测数据来减少自己摸索和试错的时间。但看得越多，也越发现一个问题：</p>
<p dir="auto"><strong>大家测速的口径并不统一。</strong></p>
<p dir="auto">很多时候，如果只看到一句——特别是视频网站里为了吸引眼球的标题：<strong>这个模型跑到了150 t/s</strong></p>
<p dir="auto">但不知道：</p>
<ul>
<li>Prefill 还是 Decode？</li>
<li>Context 多长？</li>
<li>Output 多长？</li>
<li>Cache 有没有命中？</li>
<li>Concurrency 是多少？</li>
</ul>
<p dir="auto">这个数字其实很难横向比较。</p>
<p dir="auto">甚至我自己不同时期测出来的数据，Agent 都会时不时提醒我：</p>
<blockquote>
<p dir="auto">测试口径不同，不能直接横向比较。</p>
</blockquote>
<p dir="auto">于是我认真找了一圈现成方案，发现 GitHub 上其实已经有几套相当成熟的 测速Benchmark。</p>
<p dir="auto">所以我的想法变成了：</p>
<p dir="auto"><strong>完全没必要自己重新发明一套“大一统标准”，而应该根据不同测试目的，直接引用成熟工具。</strong></p>
<hr />
<h2>结论先行</h2>
<p dir="auto"><strong>先看自己想测什么，再选择对应 Benchmark。</strong></p>
<pre><code class="language-text">测 GPU / 量化 / Kernel 裸性能
→ llama.cpp / llama-bench

测 OpenAI API / 实际聊天体验
→ GuideLLM

测多并发 / Serving / 饱和点
→ Kubernetes SIG inference-perf

测最终客户端体验
→ MLPerf Client
</code></pre>
<p dir="auto"><img src="https://upload.lcz.me/uploads/26b0b60d-2982-4b24-8f34-7b04b5024e6f.png" alt="本地大模型测速 Benchmark 指南.png" class="img-markdown  img-fluid" /></p>
<hr />
<h2>1. 裸性能：llama-bench</h2>
<p dir="auto"><code>llama.cpp</code> 官方的 <code>llama-bench</code>，本身就明确区分：</p>
<ul>
<li><strong>PP：Prompt Processing</strong></li>
<li><strong>TG：Text Generation</strong></li>
</ul>
<p dir="auto">支持指定 Context Depth、重复测试，并报告平均 tok/s 和标准差；默认每项重复 5 次。官方还明确说明，它不把 tokenization 和 sampling 时间计入测试。</p>
<p dir="auto"><strong>GitHub：</strong><br />
<a href="https://github.com/ggml-org/llama.cpp/tree/master/tools/llama-bench" rel="nofollow ugc">llama.cpp / llama-bench</a></p>
<p dir="auto"><a href="https://github.com/ggml-org/llama.cpp/tree/master/tools/llama-bench" rel="nofollow ugc">https://github.com/ggml-org/llama.cpp/tree/master/tools/llama-bench</a></p>
<p dir="auto">所以如果只是想知道：</p>
<blockquote>
<p dir="auto">换了 GPU、量化、Backend、Kernel 后，到底快了多少？</p>
</blockquote>
<p dir="auto">我觉得直接用 <code>llama-bench</code> 最合适。</p>
<h3>报告范例</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">Context</th>
<th style="text-align:right">PP / Prefill</th>
<th style="text-align:right">TG / Decode</th>
<th style="text-align:right">VRAM</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">4K</td>
<td style="text-align:right">3,250 tok/s</td>
<td style="text-align:right">101.2 tok/s</td>
<td style="text-align:right">40.8GB</td>
</tr>
<tr>
<td style="text-align:right">8K</td>
<td style="text-align:right">3,180 tok/s</td>
<td style="text-align:right">100.1 tok/s</td>
<td style="text-align:right">41.3GB</td>
</tr>
<tr>
<td style="text-align:right">16K</td>
<td style="text-align:right">3,020 tok/s</td>
<td style="text-align:right">98.7 tok/s</td>
<td style="text-align:right">42.2GB</td>
</tr>
<tr>
<td style="text-align:right">32K</td>
<td style="text-align:right">2,850 tok/s</td>
<td style="text-align:right">96.4 tok/s</td>
<td style="text-align:right">44.2GB</td>
</tr>
<tr>
<td style="text-align:right">64K</td>
<td style="text-align:right">2,510 tok/s</td>
<td style="text-align:right">91.8 tok/s</td>
<td style="text-align:right">46.0GB</td>
</tr>
<tr>
<td style="text-align:right">128K</td>
<td style="text-align:right">2,020 tok/s</td>
<td style="text-align:right">82.5 tok/s</td>
<td style="text-align:right">47.1GB</td>
</tr>
</tbody>
</table>
<p dir="auto">测试环境：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>设置</th>
</tr>
</thead>
<tbody>
<tr>
<td>模型</td>
<td>Qwen3.8-27B</td>
</tr>
<tr>
<td>量化</td>
<td>Q4_K_M</td>
</tr>
<tr>
<td>推理框架</td>
<td>llama.cpp</td>
</tr>
<tr>
<td>GPU</td>
<td>RX 7900 XTX 24GB ×2</td>
</tr>
<tr>
<td>CPU</td>
<td>Ryzen 5 9600X</td>
</tr>
<tr>
<td>内存</td>
<td>64GB</td>
</tr>
<tr>
<td>Backend</td>
<td>ROCm</td>
</tr>
<tr>
<td>Output</td>
<td>512 tokens</td>
</tr>
<tr>
<td>重复次数</td>
<td>5</td>
</tr>
</tbody>
</table>
<hr />
<h2>2. API / 实际使用：GuideLLM</h2>
<p dir="auto">GuideLLM 是 vLLM 项目下的独立 Benchmark 工具，主要面向真实 LLM Deployment 测试，支持不同 Backend、Dataset、Metrics 和输出格式。</p>
<p dir="auto"><strong>GitHub：</strong><br />
<a href="https://github.com/vllm-project/guidellm" rel="nofollow ugc">GuideLLM</a></p>
<p dir="auto"><a href="https://github.com/vllm-project/guidellm" rel="nofollow ugc">https://github.com/vllm-project/guidellm</a></p>
<p dir="auto">这类测试更适合看：</p>
<pre><code class="language-text">TTFT
Decode / TPS
TPOT
ITL
E2E
</code></pre>
<p dir="auto">也就是：</p>
<blockquote>
<p dir="auto">用户点 Send 以后多久开始回答、回答多快、会不会卡顿。</p>
</blockquote>
<h3>报告范例</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">Context</th>
<th style="text-align:right">TTFT</th>
<th style="text-align:right">Decode / TPS</th>
<th style="text-align:right">TPOT</th>
<th style="text-align:right">ITL P50</th>
<th style="text-align:right">ITL P99</th>
<th style="text-align:right">E2E</th>
<th style="text-align:right">VRAM</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">4K</td>
<td style="text-align:right">0.21s</td>
<td style="text-align:right">121 tok/s</td>
<td style="text-align:right">8.3ms</td>
<td style="text-align:right">8.1ms</td>
<td style="text-align:right">12.4ms</td>
<td style="text-align:right">4.5s</td>
<td style="text-align:right">41.0GB</td>
</tr>
<tr>
<td style="text-align:right">8K</td>
<td style="text-align:right">0.34s</td>
<td style="text-align:right">120 tok/s</td>
<td style="text-align:right">8.3ms</td>
<td style="text-align:right">8.2ms</td>
<td style="text-align:right">13.1ms</td>
<td style="text-align:right">4.7s</td>
<td style="text-align:right">41.8GB</td>
</tr>
<tr>
<td style="text-align:right">16K</td>
<td style="text-align:right">0.84s</td>
<td style="text-align:right">118 tok/s</td>
<td style="text-align:right">8.5ms</td>
<td style="text-align:right">8.3ms</td>
<td style="text-align:right">14.7ms</td>
<td style="text-align:right">5.2s</td>
<td style="text-align:right">43.0GB</td>
</tr>
<tr>
<td style="text-align:right">32K</td>
<td style="text-align:right">1.61s</td>
<td style="text-align:right">113 tok/s</td>
<td style="text-align:right">8.8ms</td>
<td style="text-align:right">8.7ms</td>
<td style="text-align:right">17.9ms</td>
<td style="text-align:right">6.1s</td>
<td style="text-align:right">44.7GB</td>
</tr>
<tr>
<td style="text-align:right">64K</td>
<td style="text-align:right">3.42s</td>
<td style="text-align:right">104 tok/s</td>
<td style="text-align:right">9.6ms</td>
<td style="text-align:right">9.4ms</td>
<td style="text-align:right">23.8ms</td>
<td style="text-align:right">8.4s</td>
<td style="text-align:right">46.1GB</td>
</tr>
<tr>
<td style="text-align:right">128K</td>
<td style="text-align:right">7.10s</td>
<td style="text-align:right">91 tok/s</td>
<td style="text-align:right">11.0ms</td>
<td style="text-align:right">10.7ms</td>
<td style="text-align:right">35.2ms</td>
<td style="text-align:right">13.0s</td>
<td style="text-align:right">47.3GB</td>
</tr>
</tbody>
</table>
<p dir="auto">测试条件：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>设置</th>
</tr>
</thead>
<tbody>
<tr>
<td>Output Length</td>
<td>512 tokens</td>
</tr>
<tr>
<td>Concurrency</td>
<td>C1</td>
</tr>
<tr>
<td>Requests</td>
<td>10 / 档</td>
</tr>
<tr>
<td>Warm-up</td>
<td>1</td>
</tr>
<tr>
<td>Cache</td>
<td>Cold</td>
</tr>
<tr>
<td>API</td>
<td>OpenAI-compatible</td>
</tr>
</tbody>
</table>
<hr />
<h2>3. 多并发 / Serving：inference-perf</h2>
<p dir="auto">Kubernetes SIG 的 <code>inference-perf</code> 更进一步，本身就是为了<strong>标准化推理 Benchmark 工具和指标</strong>。</p>
<p dir="auto">它直接支持：</p>
<pre><code class="language-text">TTFT
TPOT
ITL
Input / Output TPS
Goodput
并发 / QPS
Saturation Sweep
</code></pre>
<p dir="auto">并支持 vLLM、SGLang、TGI 和 OpenAI-compatible Endpoint。</p>
<p dir="auto"><strong>GitHub：</strong><br />
<a href="https://github.com/kubernetes-sigs/inference-perf" rel="nofollow ugc">Kubernetes SIG / inference-perf</a></p>
<p dir="auto"><a href="https://github.com/kubernetes-sigs/inference-perf" rel="nofollow ugc">https://github.com/kubernetes-sigs/inference-perf</a></p>
<p dir="auto">如果测：</p>
<pre><code class="language-text">C1 / C2 / C4 / C8
</code></pre>
<p dir="auto">或者想知道一台机器到底能扛多少并发，我觉得直接用这个更合适。</p>
<h3>报告范例</h3>
<p dir="auto">固定一个典型 Context，例如 8K 或 16K：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">Concurrency</th>
<th style="text-align:right">TTFT</th>
<th style="text-align:right">Output TPS</th>
<th style="text-align:right">TPOT</th>
<th style="text-align:right">ITL P99</th>
<th style="text-align:right">Goodput</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">C1</td>
<td style="text-align:right">0.42s</td>
<td style="text-align:right">121</td>
<td style="text-align:right">8.3ms</td>
<td style="text-align:right">13ms</td>
<td style="text-align:right">100%</td>
<td>正常</td>
</tr>
<tr>
<td style="text-align:right">C2</td>
<td style="text-align:right">0.51s</td>
<td style="text-align:right">214</td>
<td style="text-align:right">9.4ms</td>
<td style="text-align:right">17ms</td>
<td style="text-align:right">100%</td>
<td>正常</td>
</tr>
<tr>
<td style="text-align:right">C4</td>
<td style="text-align:right">0.93s</td>
<td style="text-align:right">318</td>
<td style="text-align:right">12.6ms</td>
<td style="text-align:right">31ms</td>
<td style="text-align:right">96%</td>
<td>基本稳定</td>
</tr>
<tr>
<td style="text-align:right">C8</td>
<td style="text-align:right">2.70s</td>
<td style="text-align:right">352</td>
<td style="text-align:right">22.8ms</td>
<td style="text-align:right">86ms</td>
<td style="text-align:right">71%</td>
<td>明显排队</td>
</tr>
</tbody>
</table>
<p dir="auto">测试条件：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>设置</th>
</tr>
</thead>
<tbody>
<tr>
<td>Context</td>
<td>8K</td>
</tr>
<tr>
<td>Output</td>
<td>512 tokens</td>
</tr>
<tr>
<td>Cache</td>
<td>Cold</td>
</tr>
<tr>
<td>Test Duration</td>
<td>60s / 档</td>
</tr>
<tr>
<td>推理引擎</td>
<td>vLLM</td>
</tr>
<tr>
<td>GPU</td>
<td>RX 7900 XTX ×2</td>
</tr>
</tbody>
</table>
<p dir="auto">测试结论：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>结果</th>
</tr>
</thead>
<tbody>
<tr>
<td>推荐稳定并发</td>
<td>C4</td>
</tr>
<tr>
<td>饱和区间</td>
<td>C4–C8</td>
</tr>
<tr>
<td>最大吞吐</td>
<td>352 output tok/s</td>
</tr>
<tr>
<td>明显排队开始</td>
<td>C8</td>
</tr>
</tbody>
</table>
<hr />
<h2>4. 最终用户体验：MLPerf Client</h2>
<p dir="auto">MLPerf Client 是 MLCommons 面向个人电脑和客户端 AI 推理的 Benchmark，支持 Windows、Linux、macOS，也覆盖 LLM、本地硬件和不同 Execution Backend 的测试。</p>
<p dir="auto"><strong>GitHub：</strong><br />
<a href="https://github.com/mlcommons/mlperf_client" rel="nofollow ugc">MLPerf Client</a></p>
<p dir="auto"><a href="https://github.com/mlcommons/mlperf_client" rel="nofollow ugc">https://github.com/mlcommons/mlperf_client</a></p>
<p dir="auto">这类测试更接近：</p>
<blockquote>
<p dir="auto">最终用户实际感觉到底快不快。</p>
</blockquote>
<h3>报告范例</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>结果</th>
</tr>
</thead>
<tbody>
<tr>
<td>设备</td>
<td>Desktop PC</td>
</tr>
<tr>
<td>操作系统</td>
<td>Windows 11</td>
</tr>
<tr>
<td>CPU</td>
<td>Ryzen 5 9600X</td>
</tr>
<tr>
<td>GPU</td>
<td>RX 7900 XTX</td>
</tr>
<tr>
<td>内存</td>
<td>64GB</td>
</tr>
<tr>
<td>Backend / Execution Provider</td>
<td>本地执行</td>
</tr>
<tr>
<td>Warm-up</td>
<td>1</td>
</tr>
<tr>
<td>Iterations</td>
<td>5</td>
</tr>
<tr>
<td>TTFT</td>
<td>0.61s</td>
</tr>
<tr>
<td>TPS</td>
<td>82.7 tok/s</td>
</tr>
<tr>
<td>E2E</td>
<td>7.1s</td>
</tr>
<tr>
<td>峰值 VRAM</td>
<td>22.6GB</td>
</tr>
</tbody>
</table>
<hr />
<h1>那论坛大家发帖分享什么？</h1>
<p dir="auto">我个人的想法是，不管用了哪一种 Benchmark，至少把下面这些信息写出来：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>类别</th>
<th>项目</th>
</tr>
</thead>
<tbody>
<tr>
<td>硬件</td>
<td>GPU / CPU / 内存 / 主板</td>
</tr>
<tr>
<td>模型</td>
<td>模型名 / 量化 / 推理引擎</td>
</tr>
<tr>
<td>测试条件</td>
<td>Context / Output Length / Concurrency / Cache 状态</td>
</tr>
<tr>
<td>结果</td>
<td>Prefill / TTFT / Decode / VRAM</td>
</tr>
</tbody>
</table>
<p dir="auto">如果用了 MTP / Speculative Decoding，再加：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>结果</th>
</tr>
</thead>
<tbody>
<tr>
<td>Acceptance Rate</td>
<td></td>
</tr>
<tr>
<td>Accepted Tokens</td>
<td></td>
</tr>
</tbody>
</table>
<hr />
<h2>Context 建议</h2>
<p dir="auto">单用户测试，我比较倾向：</p>
<pre><code class="language-text">4K / 8K / 16K / 32K / 64K / 128K
</code></pre>
<p dir="auto">这样不仅能看到“最高速度”，还能观察：</p>
<blockquote>
<p dir="auto">Context 从哪里开始明显掉速。</p>
</blockquote>
<p dir="auto">并发则不一定每个 Context 都跑，可以单独选一个典型 Context，比如 8K 或 16K：</p>
<pre><code class="language-text">C1 / C2 / C4 / C8
</code></pre>
<hr />
<h2>摘要表</h2>
<p dir="auto">无论用哪套 Benchmark，一张摘要应该是大家喜闻乐见的：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>模型</th>
<th>Quant</th>
<th>Engine</th>
<th>GPU</th>
<th style="text-align:right">Context</th>
<th style="text-align:right">Output</th>
<th style="text-align:right">C</th>
<th>Cache</th>
<th style="text-align:right">Prefill</th>
<th style="text-align:right">TTFT</th>
<th style="text-align:right">Decode</th>
<th style="text-align:right">VRAM</th>
</tr>
</thead>
<tbody>
<tr>
<td>Qwen3.8-27B</td>
<td>W8A8</td>
<td>SGLang</td>
<td>7900 XTX ×2</td>
<td style="text-align:right">4K</td>
<td style="text-align:right">512</td>
<td style="text-align:right">C1</td>
<td>Cold</td>
<td style="text-align:right">3,250 t/s</td>
<td style="text-align:right">0.22s</td>
<td style="text-align:right">122 t/s</td>
<td style="text-align:right">41GB</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>W8A8</td>
<td>SGLang</td>
<td>7900 XTX ×2</td>
<td style="text-align:right">8K</td>
<td style="text-align:right">512</td>
<td style="text-align:right">C1</td>
<td>Cold</td>
<td style="text-align:right">3,180 t/s</td>
<td style="text-align:right">0.35s</td>
<td style="text-align:right">121 t/s</td>
<td style="text-align:right">42GB</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>W8A8</td>
<td>SGLang</td>
<td>7900 XTX ×2</td>
<td style="text-align:right">16K</td>
<td style="text-align:right">512</td>
<td style="text-align:right">C1</td>
<td>Cold</td>
<td style="text-align:right">2,900 t/s</td>
<td style="text-align:right">0.84s</td>
<td style="text-align:right">118 t/s</td>
<td style="text-align:right">43GB</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>W8A8</td>
<td>SGLang</td>
<td>7900 XTX ×2</td>
<td style="text-align:right">32K</td>
<td style="text-align:right">512</td>
<td style="text-align:right">C1</td>
<td>Cold</td>
<td style="text-align:right">2,730 t/s</td>
<td style="text-align:right">1.62s</td>
<td style="text-align:right">113 t/s</td>
<td style="text-align:right">45GB</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>W8A8</td>
<td>SGLang</td>
<td>7900 XTX ×2</td>
<td style="text-align:right">64K</td>
<td style="text-align:right">512</td>
<td style="text-align:right">C1</td>
<td>Cold</td>
<td style="text-align:right">2,410 t/s</td>
<td style="text-align:right">3.41s</td>
<td style="text-align:right">104 t/s</td>
<td style="text-align:right">46GB</td>
</tr>
<tr>
<td>Qwen3.8-27B</td>
<td>W8A8</td>
<td>SGLang</td>
<td>7900 XTX ×2</td>
<td style="text-align:right">128K</td>
<td style="text-align:right">512</td>
<td style="text-align:right">C1</td>
<td>Cold</td>
<td style="text-align:right">1,980 t/s</td>
<td style="text-align:right">7.08s</td>
<td style="text-align:right">91 t/s</td>
<td style="text-align:right">47GB</td>
</tr>
</tbody>
</table>
<p dir="auto">这样即使后面的完整报告格式不同，最关键的数据仍然可以快速横向比较。</p>
<hr />
<h2>总之</h2>
<p dir="auto"><strong>本地模型测速可以不需要重新发明 Benchmark。更合理的做法，是根据不同场景和需求直接引用成熟工具，再用大家喜闻乐见的基本格式分享成果。</strong></p>
<p dir="auto">具体怎么跑，请参见附件：</p>
<p dir="auto"><strong>《本地模型测速一键执行指南》</strong></p>
<p dir="auto"><a href="https://upload.lcz.me/uploads/786da65f-3149-4290-87db-7d9719b7d294.md" rel="nofollow ugc">本地模型测速一键执行指南_SOP完整版_2026-10-13.md</a></p>
<p dir="auto">其中分别提供：</p>
<pre><code class="language-text">llama-bench
GuideLLM
inference-perf
MLPerf Client
</code></pre>
<p dir="auto">的一键复制 Agent Prompt 和测试模板，其中也结合了本人在实际测试中的一些经验教训。。</p>
<blockquote>
<p dir="auto">友情提示：网络下载任何文件，请注意安全。</p>
</blockquote>
<p dir="auto">本文仅分享一些个人对本地模型测速的思考，暂不涉及模型质量评测部分。抛砖引玉，欢迎大家补充、指正和交流。</p>
<p dir="auto">2026-10-13</p>
]]></description><link>https://lcz.me/topic/2303</link><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 23:34:19 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2303.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Oct 2026 07:05:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 22:21:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tony-wang" aria-label="Profile: Tony-Wang">@<bdi>Tony-Wang</bdi></a> 只是实验了下原理，修复过往问题，一会弄个插件就好了。</p>
]]></description><link>https://lcz.me/post/24693</link><guid isPermaLink="true">https://lcz.me/post/24693</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Tue, 13 Oct 2026 22:21:50 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 22:19:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/terry" aria-label="Profile: terry">@<bdi>terry</bdi></a>  全都好了 <img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--+1" style="height:1.4em;width:auto;vertical-align:middle" title=":+1:" alt="👍" /> <img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--+1" style="height:1.4em;width:auto;vertical-align:middle" title=":+1:" alt="👍" /></p>
]]></description><link>https://lcz.me/post/24692</link><guid isPermaLink="true">https://lcz.me/post/24692</guid><dc:creator><![CDATA[Tony Wang]]></dc:creator><pubDate>Tue, 13 Oct 2026 22:19:39 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 22:11:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tony-wang" aria-label="Profile: Tony-Wang">@<bdi>Tony-Wang</bdi></a> Cloudflare加入页面规则可以解决乱码，但是资源有限，这里的资源都是保留给大规模网络攻击时应急用的。不过我可以让AI写个插件，把上传的附件修饰下。</p>
]]></description><link>https://lcz.me/post/24690</link><guid isPermaLink="true">https://lcz.me/post/24690</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Tue, 13 Oct 2026 22:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 21:32:50 GMT]]></title><description><![CDATA[<p dir="auto">上个帖子自测实测，修改后，可以正常在Chrome里点击打开链接直接阅读。</p>
]]></description><link>https://lcz.me/post/24688</link><guid isPermaLink="true">https://lcz.me/post/24688</guid><dc:creator><![CDATA[Ben Lee]]></dc:creator><pubDate>Tue, 13 Oct 2026 21:32:50 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 21:22:15 GMT]]></title><description><![CDATA[<p dir="auto">根据Wang大的建议，修改MD再上传看效果</p>
<p dir="auto"><a href="https://upload.lcz.me/uploads/782bbf36-4f4a-4d1b-affd-65af2dcd6d26.md" rel="nofollow ugc">本地模型测速一键执行指南_SOP完整版_2026-10-13_UTF-8-BOM.md</a></p>
]]></description><link>https://lcz.me/post/24687</link><guid isPermaLink="true">https://lcz.me/post/24687</guid><dc:creator><![CDATA[Ben Lee]]></dc:creator><pubDate>Tue, 13 Oct 2026 21:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 21:16:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tony-wang" aria-label="Profile: Tony-Wang">@<bdi>Tony-Wang</bdi></a> 学习了 <img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--+1" style="height:1.4em;width:auto;vertical-align:middle" title=":+1:" alt="👍" /></p>
]]></description><link>https://lcz.me/post/24686</link><guid isPermaLink="true">https://lcz.me/post/24686</guid><dc:creator><![CDATA[Ben Lee]]></dc:creator><pubDate>Tue, 13 Oct 2026 21:16:40 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 20:44:37 GMT]]></title><description><![CDATA[<p dir="auto"><strong>【补充对比】<a href="http://lcz.me" rel="nofollow ugc">lcz.me</a> 正常响应头都带 charset，只有上传存储里的文件缺</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>来源</th>
<th>Content-Type</th>
<th>带 charset?</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>lcz.me</code> 论坛主页（NodeBB）</td>
<td><code>text/html; charset=utf-8</code></td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td><code>upload.lcz.me/</code> 根 404 页（Cloudflare）</td>
<td><code>text/plain;charset=UTF-8</code></td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td><code>upload.lcz.me/uploads/xxx.md</code>（上传文件）</td>
<td><code>text/markdown</code></td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
</tbody>
</table>
<p dir="auto">这是典型的 Cloudflare R2 / S3 对象存储直发文件特征：按扩展名推断出 <code>text/markdown</code>，但<strong>不会自动补 <code>charset</code></strong>。整站正常页面都带 charset，唯独上传存储里的文件缺，是这一层的配置缺口。</p>
<p dir="auto"><strong>建议修复（任选其一）：</strong></p>
<ol>
<li>上传 .md 等文本类文件时显式设置 <code>Content-Type: text/markdown; charset=utf-8</code>（或 <code>text/plain; charset=utf-8</code>）；</li>
<li>在 Cloudflare 对 <code>upload.lcz.me</code> 的 <code>text/*</code> 响应加一条 Transform 规则，统一补上 <code>; charset=utf-8</code>。</li>
</ol>
]]></description><link>https://lcz.me/post/24684</link><guid isPermaLink="true">https://lcz.me/post/24684</guid><dc:creator><![CDATA[Tony Wang]]></dc:creator><pubDate>Tue, 13 Oct 2026 20:44:37 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 20:38:54 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ben-lee" aria-label="Profile: ben-lee">@<bdi>ben-lee</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/stxpnet" aria-label="Profile: stxpnet">@<bdi>stxpnet</bdi></a></p>
<ul>
<li>这两个文件都是 UTF8, 无BOM. 下载下来一般的文本编辑器都可以正确读取.</li>
<li>点击在浏览器里显示, 我的Chrome也是乱码, 这个是http头的响应问题,  浏览器没有正确识别到编码.</li>
<li>这和我们浏览器的缺省编码设置也有关系, 我的safari一开始也是乱码, 后来我把缺省编码改为 UTF-8,  safari 显示就正常了. 不过 chrome 好像没有这个选项.</li>
</ul>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/terry" aria-label="Profile: terry">@<bdi>terry</bdi></a>  以下是AI 总结:</p>
<p dir="auto"><strong>【问题反馈】<a href="http://upload.lcz.me" rel="nofollow ugc">upload.lcz.me</a> 上的 .md 文件，浏览器直接打开是乱码</strong></p>
<p dir="auto"><strong>现象</strong><br />
用 Chrome 直接打开 <code>https://upload.lcz.me/uploads/d6f7505a-4080-4b9f-aa32-6f7a9a786ed5.md</code> 这类 .md 文件，中文全部显示成乱码。</p>
<p dir="auto"><strong>排查</strong></p>
<ul>
<li>文件本身是<strong>正常的 UTF-8（无 BOM）</strong>，下载到本地用文本编辑器打开中文完全正常；</li>
<li>但服务端返回的响应头是 <code>Content-Type: text/markdown</code>，<strong>没有带 <code>; charset=utf-8</code></strong>；</li>
<li>“没有 BOM + 没有 charset 声明”，浏览器只能去猜编码，猜错（如按 GBK）就乱码。</li>
</ul>
<p dir="auto"><strong>建议修复</strong><br />
把该类文件的响应头改成：</p>
<pre><code>Content-Type: text/markdown; charset=utf-8
</code></pre>
<p dir="auto">（或 <code>text/plain; charset=utf-8</code>）</p>
<p dir="auto">这样所有浏览器都会明确按 UTF-8 解码，彻底解决乱码，不用用户手动处理文件。</p>
<blockquote>
<p dir="auto">临时规避（用户侧）：把文件保存为“UTF-8 带 BOM”也能让浏览器正确识别，但这只是绕开，服务端加上 charset 才是根治。</p>
</blockquote>
]]></description><link>https://lcz.me/post/24683</link><guid isPermaLink="true">https://lcz.me/post/24683</guid><dc:creator><![CDATA[Tony Wang]]></dc:creator><pubDate>Tue, 13 Oct 2026 20:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 14:30:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/stxpnet" aria-label="Profile: stxpnet">@<bdi>stxpnet</bdi></a> 试试看这个能正常打开不，有问题跟我讲哈。</p>
<p dir="auto"><a href="https://upload.lcz.me/uploads/d6f7505a-4080-4b9f-aa32-6f7a9a786ed5.md" rel="nofollow ugc">本地模型测速一键执行指南_SOP完整版_2026-10-13_UTF-8.md</a></p>
]]></description><link>https://lcz.me/post/24616</link><guid isPermaLink="true">https://lcz.me/post/24616</guid><dc:creator><![CDATA[Ben Lee]]></dc:creator><pubDate>Tue, 13 Oct 2026 14:30:15 GMT</pubDate></item><item><title><![CDATA[Reply to AI大爆发时代，本地模型和推理到底该怎么测速？——一个 GitHub 搬运工的抛砖引玉 on Tue, 13 Oct 2026 12:44:20 GMT]]></title><description><![CDATA[<p dir="auto">最后那个MD文件打开似乎乱码，楼主可以发个UTF-8的吗？</p>
]]></description><link>https://lcz.me/post/24588</link><guid isPermaLink="true">https://lcz.me/post/24588</guid><dc:creator><![CDATA[stxpnet]]></dc:creator><pubDate>Tue, 13 Oct 2026 12:44:20 GMT</pubDate></item></channel></rss>