<?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[Mac M2 Max测试本地模型Qwen3.8-27B-4bit、Qwen3.8-27B-Uncensored-oQ4e-mtp模型在 oMLX（Mac M2 Max 环境） 横向深度对比]]></title><description><![CDATA[<h2>Mac M2 Max 本地模型横向深度对比：Qwen3.8-27B-4bit vs. Qwen3.8-27B-Uncensored-oQ4e-mtp</h2>
<blockquote>
<p dir="auto"><strong>测试环境</strong>：oMLX（Mac M2 Max）<br />
<strong>oMLX 项目</strong>：LLM inference, optimized for your Mac<br />
<strong>GitHub</strong>：<a href="https://github.com/jundot/omlx" rel="nofollow ugc">https://github.com/jundot/omlx</a><br />
<strong>Engine</strong>：Auto<br />
<strong>Context</strong>：代码（Python）</p>
</blockquote>
<hr />
<h2>一、Benchmark 模型：Qwen3.8-27B-4bit</h2>
<h3>1.1 Single Request Results</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Test</th>
<th style="text-align:right">TTFT(ms)</th>
<th style="text-align:right">TPOT(ms)</th>
<th style="text-align:right">pp TPS</th>
<th style="text-align:right">tg TPS</th>
<th style="text-align:right">E2E(s)</th>
<th style="text-align:right">Throughput</th>
<th style="text-align:right">Peak Mem</th>
</tr>
</thead>
<tbody>
<tr>
<td>pp1024/tg128</td>
<td style="text-align:right">9048.7</td>
<td style="text-align:right">50.86</td>
<td style="text-align:right">113.2 tok/s</td>
<td style="text-align:right">19.8 tok/s</td>
<td style="text-align:right">15.531</td>
<td style="text-align:right">74.2 tok/s</td>
<td style="text-align:right">15.85 GB</td>
</tr>
<tr>
<td>pp4096/tg128</td>
<td style="text-align:right">34039.8</td>
<td style="text-align:right">52.03</td>
<td style="text-align:right">120.3 tok/s</td>
<td style="text-align:right">19.4 tok/s</td>
<td style="text-align:right">40.670</td>
<td style="text-align:right">103.9 tok/s</td>
<td style="text-align:right">17.10 GB</td>
</tr>
</tbody>
</table>
<h3>1.2 Continuous Batching</h3>
<blockquote>
<p dir="auto">预处理 1024 / 生成 128</p>
</blockquote>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">Batch</th>
<th style="text-align:right">tg TPS</th>
<th style="text-align:right">Speedup</th>
<th style="text-align:right">pp TPS</th>
<th style="text-align:right">pp TPS/req</th>
<th style="text-align:right">TTFT(ms)</th>
<th style="text-align:right">E2E(s)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">1x</td>
<td style="text-align:right">19.8 tok/s</td>
<td style="text-align:right">1.00x</td>
<td style="text-align:right">113.2 tok/s</td>
<td style="text-align:right">113.2 tok/s</td>
<td style="text-align:right">9048.7</td>
<td style="text-align:right">15.531</td>
</tr>
<tr>
<td style="text-align:right">2x</td>
<td style="text-align:right">33.6 tok/s</td>
<td style="text-align:right">1.70x</td>
<td style="text-align:right">90.6 tok/s</td>
<td style="text-align:right">45.3 tok/s</td>
<td style="text-align:right">17273.3</td>
<td style="text-align:right">30.233</td>
</tr>
<tr>
<td style="text-align:right">4x</td>
<td style="text-align:right">62.8 tok/s</td>
<td style="text-align:right">3.17x</td>
<td style="text-align:right">78.3 tok/s</td>
<td style="text-align:right">19.6 tok/s</td>
<td style="text-align:right">31000.7</td>
<td style="text-align:right">60.467</td>
</tr>
</tbody>
</table>
<hr />
<h2>二、Benchmark 模型：Qwen3.8-27B-Uncensored-oQ4e-mtp</h2>
<h3>2.1 Single Request Results</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Test</th>
<th style="text-align:right">TTFT(ms)</th>
<th style="text-align:right">TPOT(ms)</th>
<th style="text-align:right">pp TPS</th>
<th style="text-align:right">tg TPS</th>
<th style="text-align:right">E2E(s)</th>
<th style="text-align:right">Throughput</th>
<th style="text-align:right">Peak Mem</th>
</tr>
</thead>
<tbody>
<tr>
<td>pp1024/tg128</td>
<td style="text-align:right">8955.1</td>
<td style="text-align:right">50.04</td>
<td style="text-align:right">114.3 tok/s</td>
<td style="text-align:right">20.1 tok/s</td>
<td style="text-align:right">15.330</td>
<td style="text-align:right">75.1 tok/s</td>
<td style="text-align:right">22.34 GB</td>
</tr>
<tr>
<td>pp4096/tg128</td>
<td style="text-align:right">33851.1</td>
<td style="text-align:right">57.56</td>
<td style="text-align:right">121.0 tok/s</td>
<td style="text-align:right">17.5 tok/s</td>
<td style="text-align:right">41.180</td>
<td style="text-align:right">102.6 tok/s</td>
<td style="text-align:right">23.70 GB</td>
</tr>
</tbody>
</table>
<h3>2.2 Continuous Batching</h3>
<blockquote>
<p dir="auto">预处理 1024 / 生成 128</p>
</blockquote>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">Batch</th>
<th style="text-align:right">tg TPS</th>
<th style="text-align:right">Speedup</th>
<th style="text-align:right">pp TPS</th>
<th style="text-align:right">pp TPS/req</th>
<th style="text-align:right">TTFT(ms)</th>
<th style="text-align:right">E2E(s)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">1x</td>
<td style="text-align:right">20.1 tok/s</td>
<td style="text-align:right">1.00x</td>
<td style="text-align:right">114.3 tok/s</td>
<td style="text-align:right">114.3 tok/s</td>
<td style="text-align:right">8955.1</td>
<td style="text-align:right">15.330</td>
</tr>
<tr>
<td style="text-align:right">2x</td>
<td style="text-align:right">28.8 tok/s</td>
<td style="text-align:right">1.43x</td>
<td style="text-align:right">91.5 tok/s</td>
<td style="text-align:right">45.8 tok/s</td>
<td style="text-align:right">16951.1</td>
<td style="text-align:right">31.272</td>
</tr>
<tr>
<td style="text-align:right">4x</td>
<td style="text-align:right">47.3 tok/s</td>
<td style="text-align:right">2.35x</td>
<td style="text-align:right">81.3 tok/s</td>
<td style="text-align:right">20.3 tok/s</td>
<td style="text-align:right">30249.7</td>
<td style="text-align:right">61.207</td>
</tr>
</tbody>
</table>
<hr />
<h2>三、数据深度分析</h2>
<h3>3.1 关键指标对比（oQ4e-mtp vs. 常规 4bit）</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>指标</th>
<th>常规 4bit 模型</th>
<th>oQ4e-mtp 模型</th>
<th>变化分析</th>
</tr>
</thead>
<tbody>
<tr>
<td>内存峰值 (Peak Mem)</td>
<td>15.85 - 17.10 GB</td>
<td>22.34 - 23.70 GB</td>
<td>大增约 6.5 GB（+38%），接近纯 6-bit 的开销</td>
</tr>
<tr>
<td>单生成速度 (tg TPS)</td>
<td>19.8 tok/s</td>
<td>20.1 tok/s（pp1024）&lt;br&gt;17.5 tok/s（pp4096）</td>
<td>基础生成速度相当，但在长上下文下略有所衰减</td>
</tr>
<tr>
<td>Prefill 吞吐量 (pp TPS)</td>
<td>113.2 ~ 120.3 tok/s</td>
<td>114.3 ~ 121.0 tok/s</td>
<td>首字响应（TTFT）性能几乎完全一致</td>
</tr>
<tr>
<td>Continuous Batching (4x)</td>
<td>62.8 tok/s（3.17x）</td>
<td>47.3 tok/s（2.35x）</td>
<td>并发性能明显下降（-25%）</td>
</tr>
</tbody>
</table>
<h3>3.2 性能与技术细节拆解</h3>
<h4>为什么内存增加到了 22.34 - 23.70 GB？</h4>
<ul>
<li><strong>oQ4e 混合精度量化</strong>：它不是普通的均匀 4-bit 量化，而是通过 importance-matrix（重要性矩阵 calibration）对关键层/注意力层提高了精度（提升至 5-bit 或 fp16），因此实际权重体积接近 6-bit 量化。</li>
<li><strong>MTP（Multi-Token Prediction / 投机/多 Token 预测模块）</strong>：附加了 MTP 预测头，这需要额外的显存空间用于加载加速权重和维持额外的 KV Cache。</li>
</ul>
<h4>为什么单生成速度没有大幅提升？</h4>
<ul>
<li>MTP 本质是通过 <strong>Speculative Decoding（投机采样）</strong> 以计算换速度。</li>
<li>但在 <strong>M2 Max（显存带宽约 300-400 GB/s）</strong> 这种带宽受限设备上，当权重增长到 22GB+ 时，内存带宽瓶颈冲淡了 MTP 带来的并行收益。</li>
<li>长上下文（pp4096）下生成速度降至 17.5 tok/s，也是因为更高的显存占用导致 Cache 访问开销变大。</li>
</ul>
<h4>为什么多并发（Continuous Batching）性能下降严重？</h4>
<ul>
<li>从 4x 批处理来看，常规 4bit 可以达到 62.8 tok/s，而本模型降到了 47.3 tok/s。</li>
<li>这是由于 <strong>MTP 模块和更高权重的模型在多 Request 并发时抢占显存带宽与 GPU 计算单元更剧烈</strong>，造成 Batching 的并行加速效率下降。</li>
</ul>
<hr />
<h2>四、结论摘要</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>维度</th>
<th>结论</th>
</tr>
</thead>
<tbody>
<tr>
<td>首字延迟 / Prefill</td>
<td>两者几乎一致，oQ4e-mtp 无明显优势</td>
</tr>
<tr>
<td>单请求生成速度</td>
<td>短上下文基本持平；长上下文 oQ4e-mtp 略降</td>
</tr>
<tr>
<td>显存占用</td>
<td>oQ4e-mtp 显著更高（+38%），接近 6-bit 开销</td>
</tr>
<tr>
<td>并发吞吐</td>
<td>oQ4e-mtp 明显落后（4x 时 -25%）</td>
</tr>
<tr>
<td>适用场景</td>
<td>常规 4bit 更适合 M2 Max 带宽受限环境下的高并发/长上下文推理；oQ4e-mtp 在精度敏感、并发需求低的场景可能更有价值</td>
</tr>
</tbody>
</table>
]]></description><link>https://lcz.me/topic/1969</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 15:39:10 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/1969.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Sep 2026 14:33:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mac M2 Max测试本地模型Qwen3.8-27B-4bit、Qwen3.8-27B-Uncensored-oQ4e-mtp模型在 oMLX（Mac M2 Max 环境） 横向深度对比 on Mon, 28 Sep 2026 08:07:21 GMT]]></title><description><![CDATA[<p dir="auto">注意发帖格式，这次帮你整理了，口头警告。</p>
]]></description><link>https://lcz.me/post/21268</link><guid isPermaLink="true">https://lcz.me/post/21268</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Mon, 28 Sep 2026 08:07:21 GMT</pubDate></item><item><title><![CDATA[Reply to Mac M2 Max测试本地模型Qwen3.8-27B-4bit、Qwen3.8-27B-Uncensored-oQ4e-mtp模型在 oMLX（Mac M2 Max 环境） 横向深度对比 on Sun, 27 Sep 2026 14:41:45 GMT]]></title><description><![CDATA[<p dir="auto">32 GB 统一内存:─► 追求多任务/高并发/流畅度 ──► Qwen3.8-27B-4bit.  高并发吞吐极佳 (~62 tok/s)<br />
─► 追求代码质量/无规则限制 ──► Qwen3.8-27B-Uncensored-oQ4e-mtp<br />
64 GB / 96 GB 统一内存:Qwen3.8-27B-4bit/6bit</p>
]]></description><link>https://lcz.me/post/21177</link><guid isPermaLink="true">https://lcz.me/post/21177</guid><dc:creator><![CDATA[01 ltzc]]></dc:creator><pubDate>Sun, 27 Sep 2026 14:41:45 GMT</pubDate></item></channel></rss>