<?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[Agent Infra Guide]]></title><description><![CDATA[Evidence-backed AI infrastructure research, measured local LLM benchmarks, free RAM/VRAM tools, and practical hosting guidance for AI agent builders.]]></description><link>https://agentinfraguide.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ae73a2435a93d4e1942d255/e9b5a460-033f-485a-b252-4f55fea7494d.png</url><title>Agent Infra Guide</title><link>https://agentinfraguide.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Mon, 09 Nov 2026 11:12:20 GMT</lastBuildDate><atom:link href="https://agentinfraguide.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Why Tokens per Second Isn't Enough to Evaluate a Local LLM]]></title><description><![CDATA[Real Qwen2.5-Coder benchmarks on an Apple M4 Pro show why task success, memory and reproducibility matter beyond generation speed.]]></description><link>https://agentinfraguide.hashnode.dev/why-tokens-per-second-isn-t-enough-to-evaluate-a-local-llm</link><guid isPermaLink="true">https://agentinfraguide.hashnode.dev/why-tokens-per-second-isn-t-enough-to-evaluate-a-local-llm</guid><category><![CDATA[ollama]]></category><dc:creator><![CDATA[Agent Infra Guide]]></dc:creator><pubDate>Sun, 01 Nov 2026 13:36:07 GMT</pubDate><content:encoded><![CDATA[<p><em>Disclosure: I represent Agent Infra Guide, which publishes the benchmark collection linked below.</em></p>
<p>It's tempting to compare local language models using one number: tokens per second.</p>
<p>But a model that generates text quickly isn't necessarily useful for coding, automation, retrieval, or tool calling.</p>
<p>Our local LLM measurements illustrate why evaluating the full workload matters as much as measuring speed.</p>
<h2>The fastest model didn't pass the most checks</h2>
<p>Agent Infra Guide measured Qwen2.5-Coder models using Ollama on an Apple M4 Pro with 24 GiB of unified memory.</p>
<p>The October 19, 2026 coding comparison used Q4_K_M quantization, a configured context of 4,096 tokens, and one concurrent client.</p>
<table>
<thead>
<tr>
<th>Model</th>
<th align="right">Median decode speed</th>
<th align="right">Task checks passed</th>
</tr>
</thead>
<tbody><tr>
<td>Qwen2.5-Coder 1.5B</td>
<td align="right">154.1 tokens/s</td>
<td align="right">5/15</td>
</tr>
<tr>
<td>Qwen2.5-Coder 3B</td>
<td align="right">37.3 tokens/s</td>
<td align="right">10/15</td>
</tr>
<tr>
<td>Qwen2.5-Coder 7B</td>
<td align="right">23.1 tokens/s</td>
<td align="right">10/15</td>
</tr>
</tbody></table>
<p>The smallest model generated tokens much faster, but it passed fewer checks in this particular test.</p>
<p>These counts represent repeated executions of a small deterministic coding task set, not independent assessments of general coding performance.</p>
<p>The takeaway isn't that one model is universally better. It's that <strong>generation speed and task success measure different things</strong>.</p>
<h2>Throughput is only one dimension</h2>
<p>Decode throughput measures how quickly output tokens are generated under a particular configuration.</p>
<p>It does not, on its own, tell you:</p>
<ul>
<li>Did the model satisfy the task's success criteria?</li>
<li>Did it follow the required tool-call format?</li>
<li>Did the task finish within its time or output-token limits?</li>
<li>How long did the first response take?</li>
<li>How much memory did the process consume?</li>
<li>Were outcomes consistent across repetitions?</li>
</ul>
<p>For an AI agent, these measurements help determine whether a model is useful for the intended application.</p>
<p>A fast response that fails the task is not necessarily a useful response.</p>
<h2>Keep the experiment conditions visible</h2>
<p>The Agent Infra Guide benchmark collection contains 15 measured configurations and 75 measured repetitions on a shared Apple M4 Pro desktop.</p>
<p>The machine has a 12-core CPU, 16-core GPU, and 24 GiB of unified memory, running macOS 15.5.</p>
<p>Individual measurements used different Ollama versions, including 0.35.0 and 0.40.3. The exact version is recorded with each run.</p>
<p>This is not a dedicated benchmarking server.</p>
<p>Results reflect the particular machine, workload, model artifact, runtime version, and experimental conditions.</p>
<p>They should not be interpreted as a universal ranking across hardware.</p>
<h2>Memory measurements require context</h2>
<p>The benchmark reports sampled serving-process resident set size (RSS).</p>
<p>RSS is not the same as dedicated GPU VRAM. Apple silicon uses unified memory, shared between CPU and GPU workloads.</p>
<p>Process RSS also does not independently identify the memory occupied by model weights, Metal allocations, KV cache, or compute buffers.</p>
<p>The measurements sample RSS every 250 milliseconds. A brief memory peak could occur between samples.</p>
<p>The report includes a separate physical-footprint measurement, but that metric also has limitations.</p>
<p>These figures are useful observations, not definitive minimum-memory requirements.</p>
<p>Before selecting hardware, combine a transparent memory estimate with measurements from your actual workload.</p>
<h2>Why we retain failures and retract unsupported numbers</h2>
<p>A trustworthy benchmark should show unsuccessful results, not just the most impressive measurements.</p>
<p>Our public benchmark report also documents a withdrawn historical claim.</p>
<p>An earlier Mac mini M4 result stated approximately <strong>620 tokens per second</strong> for a Qwen2.5 7B configuration.</p>
<p>That claim lacked supporting raw measurement evidence and conflicted with the report's approximate memory-bandwidth sanity check.</p>
<p>Rather than replacing it with an invented number, the claim was retracted on September 17, 2026.</p>
<p>The correct historical result is unknown.</p>
<p>This is an important distinction between presenting impressive numbers and maintaining an auditable measurement record.</p>
<h2>A better evaluation checklist</h2>
<p>When comparing local LLM deployments, record:</p>
<ol>
<li>Hardware, operating system, and background workloads</li>
<li>Exact model artifact and quantization</li>
<li>Runtime implementation and version</li>
<li>Configured context length and concurrency</li>
<li>Decode speed and the measurement window</li>
<li>Time to first token and prompt-processing performance, where measured</li>
<li>Memory metric, sampling method, and known limitations</li>
<li>Task success criteria, failures, and repeated-run variation</li>
</ol>
<p>Not every benchmark measures every item. Record those omissions rather than treating unavailable measurements as known quantities.</p>
<p>In particular, short-prompt time-to-first-token measurements cannot establish performance on long agent prompts or large tool outputs.</p>
<h2>Inspect the original measurements</h2>
<p>The Agent Infra Guide benchmark page includes measurement records, workload outcomes, methodology notes, and documented limitations.</p>
<p><strong><a href="https://agentinfraguide.com/benchmarks?utm_source=hashnode&amp;utm_medium=referral&amp;utm_campaign=aig_editorial_2026&amp;utm_content=benchmark_article">Explore the measured local LLM benchmarks and methodology</a></strong></p>
<p>The goal isn't to declare one model the winner.</p>
<p>It's to help you decide which hardware and configuration can handle <strong>your actual workload</strong>.</p>
]]></content:encoded></item></channel></rss>