<?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[Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果]]></title><description><![CDATA[<h2>先说结论</h2>
<p dir="auto">同一个模型、同一台机器，从 Unsloth Studio + llama.cpp 换成 Strata 之后：预填从 230～250 tok/s 涨到 1,764～3,737 tok/s，解码从 30～31 tok/s 涨到 124～145 tok/s，上下文从 128K 到 262K，首次加载从 80 秒降到 40 秒。</p>
<p dir="auto">所以上一版里 prefill 偏低这件事，瓶颈主要不在内存带宽，而在引擎的预填路径。<br />
<strong>换 DDR5-5600 的事可以先放一放。</strong></p>
<p dir="auto">权重一个字节都没重新下载。本机原本就有的那份 UD-Q4_K_XL 与 Strata 官方钉死的 revision 逐字节一致，直接指过去用。</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/d23e9dd8-fbf9-4eea-a49f-337e708cb4cd.jpeg" alt="llama.cpp 与 Strata 对比" class="img-markdown  img-fluid" /></p>
<h2>测试环境</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>配置</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>AMD Ryzen 7 9700X，8C/16T</td>
</tr>
<tr>
<td>内存</td>
<td>128GB，双通道 4×32GB DDR5-5600（运行在 DDR5-3600，系统可见 123GB）</td>
</tr>
<tr>
<td>GPU</td>
<td>NVIDIA RTX PRO 5000 Blackwell 48GB（300W 顶格）＋ Radeon AI PRO R9700 32GB（<strong>功耗上限手动设为 240W，出厂默认 300W</strong>）</td>
</tr>
<tr>
<td>系统</td>
<td>Ubuntu 24.04.5，内核 7.0.0-31</td>
</tr>
<tr>
<td>GPU 驱动</td>
<td>NVIDIA 595.99.02</td>
</tr>
<tr>
<td>CUDA / ROCm</td>
<td>CUDA 13.0（编译用的 toolkit）/ ROCm 7.2.4。<code>nvidia-smi</code> 报的 13.2 是驱动支持的版本，不是编译版本</td>
</tr>
<tr>
<td>Strata</td>
<td>main @ 7695859（2026-10-11），引擎 0.1.43</td>
</tr>
<tr>
<td>模型</td>
<td>unsloth/Qwen3.8-Flash-Next-GGUF，UD-Q4_K_XL，revision 38bb39e</td>
</tr>
<tr>
<td>客户端</td>
<td>Mac（浏览器与脚本），经 Tailscale 连到 Ubuntu</td>
</tr>
</tbody>
</table>
<p dir="auto"><img src="https://upload.lcz.me/uploads/acc35e5b-63be-4106-86ac-c38294261035.jpeg" alt="Strata 启动后的 About 面板" class="img-markdown  img-fluid" /></p>
<hr />
<h2>一、部署</h2>
<h3>权重零下载</h3>
<p dir="auto">本机 HF 缓存里已经有 Unsloth 的 UD-Q4_K_XL，正好是 Strata 官方钉死的 revision <code>38bb39e</code>。核对了一遍，四个分片的字节数与官方文档列出的完全一致；shard 1 的 sha256 也一致。所以直接用 <code>setup.sh</code> 的 <code>--gguf-dir</code> 指向它，<strong>模型权重一个字节都没下</strong>。</p>
<h3>安装</h3>
<pre><code class="language-bash">git clone https://github.com/Niko1221/Strata.git /data/ai/apps/Strata &amp;&amp; cd $_

./setup.sh --setup \
  --family unsloth --model UD-Q4_K_XL \
  --gguf-dir /data/ai/models/strata/UD-Q4_K_XL \
  --data-dir /data/ai/strata-data \
  --backend cuda --cuda 13 --gpu 0 \
  --context 262144 --kv int8 --vision gpu \
  --resident-budget-gib 71 --vram-reserve-mib 1024 \
  --port 8090 --host 127.0.0.1 \
  --no-browser --no-start --yes
</code></pre>
<p dir="auto"><code>--backend cuda</code> 要显式写。本机有 A 卡，不指定的话 setup 可能选 HIP，而 UD-Q4_K_XL 在 AMD 上跑不了——它的 Q4_K/Q5_K 专家 prompt 内核是 NVIDIA 专属的。</p>
<p dir="auto">各阶段耗时：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>阶段</th>
<th>耗时</th>
</tr>
</thead>
<tbody>
<tr>
<td>git clone</td>
<td>16 秒</td>
</tr>
<tr>
<td>.venv + Python 依赖</td>
<td>约 1 分</td>
</tr>
<tr>
<td>引擎源码编译（CUDA 13，sm_120）</td>
<td>约 10 分</td>
</tr>
<tr>
<td>模型 sha256 校验（111 GB）</td>
<td>约 9 分</td>
</tr>
<tr>
<td>pack 打包（<code>--compat-bf16</code>）</td>
<td>约 1 分</td>
</tr>
<tr>
<td>MTP 草稿层（下载约 5 GB + 转换）</td>
<td>约 25 分</td>
</tr>
<tr>
<td>首次启动装载</td>
<td>约 40 秒</td>
</tr>
<tr>
<td>合计</td>
<td>约 52 分</td>
</tr>
</tbody>
</table>
<p dir="auto">pack 打包的关键数字：</p>
<pre><code>index.txt: 1079 tensors, 303 served natively, arena 1.38 GiB
conversions.json: 460 tensors converted (264 exact, 196 rounded; max |err| 0.0144)
compat-bf16: 195 tensors, 1.20 GiB
</code></pre>
<p dir="auto"><code>--compat-bf16</code> 必须加。这个量化文件把 195 个小投影（hyper-connection 矩阵之类）存成 Q8_0，而引擎按 BF16 读；不加这个参数打包器会直接拒绝。</p>
<h3>memlock 的意外</h3>
<p dir="auto">本机 <code>ulimit -l</code> 的软硬上限都是 16567234560 字节（正好是 RAM 的 1/8），<code>ulimit -l unlimited</code> 提不上去，只有 root 能改。</p>
<p dir="auto">原本担心 71 GiB 的 RAM 预算锁不住，但实测没影响：</p>
<pre><code>FileExpertSource: mapped pinned cache complement ready: resident 34.76 GiB,
                  pinned 34.76 GiB in 14 s; page-locked and mapped
</code></pre>
<p dir="auto">35.09 GiB 照样页锁定成功了。NVIDIA 驱动的 pinning 路径应该不走这个 RLIMIT。</p>
<h3>启动后的状态</h3>
<pre><code>[strata] filling the GPU's expert cache (12547 experts, 36.64 GiB of VRAM) ...
FileExpertSource: RAM budget 71.00 GiB: 12029 of the 35.09 GiB of experts
                  the GPU cache does not hold, by profile rank; the rest are
                  read from the files
FileExpertSource: mapped pinned cache complement ready: resident 35.09 GiB,
                  pinned 35.09 GiB in 17 s; page-locked and mapped
strata generate: resident RAM mode: 35.09 GiB of experts in RAM (page-locked),
                 12547 in the GPU cache
</code></pre>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>实测</th>
</tr>
</thead>
<tbody>
<tr>
<td>显存里的专家</td>
<td>12,547 个 / 36.64 GiB（占全部 24,576 个的 51%）</td>
</tr>
<tr>
<td>内存里的专家补集</td>
<td>12,029 个 / 35.09 GiB（12,547 + 12,029 = 24,576，全覆盖）</td>
</tr>
<tr>
<td>显存占用</td>
<td>47,861 / 48,935 MiB（预留 1024）</td>
</tr>
<tr>
<td>KV</td>
<td>8-bit，每层 32,768 个位置在显存、其余在内存（面板原文：streamed）</td>
</tr>
<tr>
<td>专家命中率</td>
<td>冷启约 91%，运行中 96% 到 99%</td>
</tr>
</tbody>
</table>
<p dir="auto">专家槽数在不同次启动之间会有一点浮动。同一份配置实测到过 12,547 和 12,658 两个值（对应 36.64 和 36.97 GiB），取决于启动那一刻显存里还有多少被别的进程占着。下面统一用最近两次启动的 12,547。</p>
<p dir="auto">关于读磁盘，有一点要说清楚。启动后只跑短对话时，日志里的计数器是 <code>0 blob reads from the file</code>。但跑过 262K 长 prompt 的压测之后，这个计数器就会累积——第一次压测后到 4.3 万，长时间运行后到了 11 万。长 prompt 会把全部专家流式过一遍，路上还是要碰文件层，只是被 page cache 兜住所以速度没有掉下来。所以准确的说法是：普通对话不读盘，超长 prompt 的预填仍然会读盘。</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/a2713ed1-16b7-467c-a21a-bd34a48f17b8.jpeg" alt="Monitor 的功耗 / PCIe / CPU / 磁盘读" class="img-markdown  img-fluid" /></p>
<hr />
<h2>二、Strata 单机性能</h2>
<p dir="auto"><code>tools/strata_bench.py --runs 3 --long</code> 的中位数：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>指标</th>
<th>中位数</th>
<th>范围</th>
</tr>
</thead>
<tbody>
<tr>
<td>chat 解码</td>
<td>99.3 tok/s</td>
<td>72.0 – 114.8</td>
</tr>
<tr>
<td>agent 单轮解码</td>
<td>122.7 tok/s</td>
<td>83.5 – 180.0</td>
</tr>
<tr>
<td>4K prompt 预填</td>
<td>1,877.9 tok/s</td>
<td>1,850 – 2,090</td>
</tr>
<tr>
<td>16K prompt 预填</td>
<td>3,671.6 tok/s</td>
<td>3,609 – 3,681</td>
</tr>
<tr>
<td>32K prompt 预填</td>
<td>3,912.8 tok/s</td>
<td>3,887 – 3,950</td>
</tr>
<tr>
<td>chat 首 token</td>
<td>0.24 s</td>
<td>—</td>
</tr>
<tr>
<td>32K 首 token</td>
<td>8.22 s</td>
<td>—</td>
</tr>
</tbody>
</table>
<p dir="auto"><code>tools/needle_bench.py</code>，32K/128K/262K 三个长度各测 10%/50%/90% 三个深度，9 次全中：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>长度</th>
<th>10%</th>
<th>50%</th>
<th>90%</th>
</tr>
</thead>
<tbody>
<tr>
<td>32K</td>
<td>10 s</td>
<td>9 s</td>
<td>9 s</td>
</tr>
<tr>
<td>128K</td>
<td>35 s</td>
<td>35 s</td>
<td>23 s</td>
</tr>
<tr>
<td>262K</td>
<td>70 s</td>
<td>69 s</td>
<td>69 s</td>
</tr>
</tbody>
</table>
<p dir="auto">262,144 的上下文能用满，三个深度都命中，没有中段丢失。</p>
<p dir="auto">刚部署完、第一次把那 10 道智力测试题跑完的时候，Monitor 面板是这样：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/32022e4c-4c65-44f7-a730-f21b0a1e570d.jpeg" alt="首次运行后的 Monitor 面板" class="img-markdown  img-fluid" /></p>
<p dir="auto">第一行的 <code>PROMPT 5,599 / PREFILL T/S 1,920</code>——5,600 个 token 的 prompt 预填到 1,920 tok/s，和上面脚本测的 4K = 1,764 基本吻合。另外单个请求连续生成了 5,965 个 token，解码 105.9 tok/s，耗时 57.9 秒。预热阶段（starts 之后头几次请求）的命中率是 92.4% 到 96.6%，比长时间运行后略低。</p>
<p dir="auto">跑了一段时间、累计 115 次请求之后，同一个面板：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/1b838b56-8a21-4639-b921-afff721f6027.jpeg" alt="Monitor 面板的请求记录" class="img-markdown  img-fluid" /></p>
<p dir="auto">底部那行聚合数据是 115 次真实请求的结果：</p>
<pre><code>115 requests · 660,959 prompt tokens read at 2,984 tok/s (105,921 reused)
            · 92,967 written at 126.6 tok/s
</code></pre>
<p dir="auto">预填 2,984 tok/s、解码 126.6 tok/s，和上面用脚本测出来的区间能对上。</p>
<p dir="auto">conversation cache 也确认在工作：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/6df685e9-f2bc-4647-b797-14a4fa087d80.jpeg" alt="Monitor 面板的 conversation cache" class="img-markdown  img-fluid" /></p>
<p dir="auto"><code>Reused since start 105,921 tokens (14%)</code>，4 个槽位全部用满，累计 parked 114 次、evicted 87 次。这一项是给多会话场景准备的（agent、harness 反复切 session 时不用重新 prefill），实测确实在省。</p>
<hr />
<h2>三、同一个模型换个引擎</h2>
<p dir="auto">之前用 Unsloth Studio + llama.cpp 跑过同一个 UD-Q4_K_XL（<a href="https://lcz.me/post/15186%EF%BC%89%EF%BC%8C%E7%A1%AC%E4%BB%B6%E5%92%8C%E6%A8%A1%E5%9E%8B%E5%AE%8C%E5%85%A8%E4%B8%80%E6%A0%B7%EF%BC%8C%E6%8D%A2%E4%B8%AA%E5%BC%95%E6%93%8E%E5%86%8D%E7%9C%8B%E4%B8%80%E6%AC%A1%E3%80%82">https://lcz.me/post/15186），硬件和模型完全一样，换个引擎再看一次。</a></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>Unsloth Studio + llama.cpp</th>
<th>Strata</th>
</tr>
</thead>
<tbody>
<tr>
<td>上下文</td>
<td>64K / 128K</td>
<td>262,144</td>
</tr>
<tr>
<td>首次加载</td>
<td>约 80 秒</td>
<td>约 40 秒</td>
</tr>
<tr>
<td>预填</td>
<td>230 – 254 tok/s</td>
<td>1,764 – 3,737 tok/s</td>
</tr>
<tr>
<td>解码</td>
<td>30 – 31 tok/s</td>
<td>124 – 145 tok/s</td>
</tr>
<tr>
<td>MTP</td>
<td>未启用（<code>--spec-default</code>）</td>
<td>已启用，面板显示「MTP drafts up to 3 tokens, prompt lookup on」</td>
</tr>
<tr>
<td>权重摆放</td>
<td>GPU 45.9 GiB + file-backed RAM 58.3 GiB</td>
<td>GPU 专家 36.64 GiB + 页锁定 RAM 补集 35.09 GiB</td>
</tr>
</tbody>
</table>
<p dir="auto"><img src="https://upload.lcz.me/uploads/6e91da15-c431-43fc-bc51-912ca7f530ff.jpeg" alt="权重摆放对比" class="img-markdown  img-fluid" /></p>
<p dir="auto">解码差 4 到 4.7 倍，预填差 7 到 15 倍。</p>
<p dir="auto">之前那篇里 prefill 230 到 250 tok/s 被判断成最大的痛点，还推测把 4×32G DDR5-3600 换成 2×64G DDR5-5600 能提到 260 到 320。现在同样的内存、同样的模型，只换引擎就到了 1,764 到 3,737。这个量级说明 prefill 的瓶颈主要不在内存带宽，而在引擎的预填路径本身。内存带宽当然还有影响，但它不是那个数量级的原因。换内存的事可以先放一放。</p>
<p dir="auto">两边的权重摆放方式也不一样。llama.cpp 侧那 58 GiB 是通过 mmap 映射的，落在 RssFile 和 page cache 里；Strata 是把 GPU 装不下的 11,918 个专家（34.76 GiB）直接页锁定进内存，属于常驻。前者预填时要等缺页和 page cache，后者不用。</p>
<p dir="auto">MTP 也值得一提。之前 llama.cpp 那边 Auto 模式实际起的是 <code>--spec-default</code>，<code>unsloth-runtime-check</code> 一直显示 MTP disabled，等于没启用。Strata 需要单独准备草稿层（<code>mtp/rt</code>，安装时下载约 5 GB 并转换），但确实在跑。</p>
<p dir="auto">这里有个容易误读的地方：配置里写的是 <code>--spec 4</code>，但 Strata 的 About 面板显示的实际生效值是「MTP drafts up to 3 tokens, prompt lookup on」。声明的 flag 和最终生效的参数不是一回事，看面板比看配置准。</p>
<p dir="auto">两点说明：一是两次测试隔了一个多月，llama.cpp 和 Studio 的版本都变了，测量工具也不同（前者是 Studio 界面读数，后者是我自己的流式脚本加官方 bench），所以这里是数量级参考，不是严格同条件对比。二是视觉这次没单独测，Strata 侧已开 <code>--vision</code>，效果后面再补。</p>
<p dir="auto">另外补一点和速度无关的观察。上一版里提到的那些模型行为——把一个合理猜测说成已经确认的事实、被纠错以后又往另一个方向用力过猛、跨几段信息整合时漏掉条件——这次在 Strata 上跑同样的题依然存在。也就是说，这些是模型自身的特性，换引擎不会改变。换引擎能解决的是速度和上下文长度。</p>
<hr />
<h2>四、与 Paiton(vLLM) 的对比测试</h2>
<h3>测试环境</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th>Strata</th>
<th>Paiton</th>
</tr>
</thead>
<tbody>
<tr>
<td>GPU</td>
<td>RTX PRO 5000 Blackwell 48G</td>
<td>Radeon AI PRO R9700 32G</td>
</tr>
<tr>
<td>功耗上限</td>
<td>300 W</td>
<td><strong>240 W</strong></td>
</tr>
<tr>
<td>模型</td>
<td>Qwen3.8-Flash-Next UD-Q4_K_XL（125B MoE，4bit）</td>
<td>unsloth/Qwen3.8-27B NVFP4（dense，64 层，hidden 5120）</td>
</tr>
<tr>
<td>引擎</td>
<td>Strata（CUDA 13，sm_120）</td>
<td>vllm serve（ROCm）</td>
</tr>
<tr>
<td>投机解码</td>
<td>MTP，<code>--spec 4 --spec-min-p 0.5</code></td>
<td>DFlash2，<code>num_speculative_tokens=7</code></td>
</tr>
<tr>
<td>上下文上限</td>
<td>262,144</td>
<td>200,000</td>
</tr>
<tr>
<td>KV</td>
<td>int8，<code>--kv-resident 32768</code></td>
<td>fp8</td>
</tr>
<tr>
<td>并发</td>
<td>1</td>
<td><code>--max-num-seqs 1</code></td>
</tr>
</tbody>
</table>
<p dir="auto">两个后端确实同时在跑，各占一张卡：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/f424158f-357d-4405-aeb7-8f3bfcbdf310.jpeg" alt="两卡同时驻留" class="img-markdown  img-fluid" /></p>
<p dir="auto">Strata 的引擎进程在 nvidia-smi 里明确占 45,608 MiB，R9700 那边 31.46 / 31.86 GiB。</p>
<p dir="auto">客户端是另一台机器（Mac），经 Tailscale 连过去，两个后端用的是同一个客户端、同一段 prompt 文本。</p>
<h3>性能测试参数</h3>
<ul>
<li>temperature 0，流式</li>
<li>每次请求输出 600 token（上限）</li>
<li>每个 prompt 长度先跑 1 次预热并丢弃，再测 3 次取中位数</li>
<li>每次请求在开头插入唯一随机串，并断言返回的 <code>cached_tokens</code> 为 0，确保预填没有被 prompt cache 顶掉</li>
<li>四个 prompt 长度：64 / 4096 / 16384 / 32768</li>
<li>全程串行，一次一个请求</li>
</ul>
<h3>性能结果</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">prompt</th>
<th style="text-align:right">Strata 首字</th>
<th style="text-align:right">Paiton 首字</th>
<th style="text-align:right">Strata 解码</th>
<th style="text-align:right">Paiton 解码</th>
<th style="text-align:right">解码倍率</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">64</td>
<td style="text-align:right">0.465 s</td>
<td style="text-align:right">0.056 s</td>
<td style="text-align:right">139.5</td>
<td style="text-align:right">80.5</td>
<td style="text-align:right">1.73×</td>
</tr>
<tr>
<td style="text-align:right">4,096</td>
<td style="text-align:right">2.30 s</td>
<td style="text-align:right">1.45 s</td>
<td style="text-align:right">145.4</td>
<td style="text-align:right">71.8</td>
<td style="text-align:right">2.03×</td>
</tr>
<tr>
<td style="text-align:right">16,384</td>
<td style="text-align:right">4.51 s</td>
<td style="text-align:right">5.98 s</td>
<td style="text-align:right">136.5</td>
<td style="text-align:right">74.8</td>
<td style="text-align:right">1.82×</td>
</tr>
<tr>
<td style="text-align:right">32,768</td>
<td style="text-align:right">8.43 s</td>
<td style="text-align:right">12.63 s</td>
<td style="text-align:right">123.6</td>
<td style="text-align:right">66.7</td>
<td style="text-align:right">1.85×</td>
</tr>
</tbody>
</table>
<p dir="auto">预填吞吐（tok/s）：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:right">prompt</th>
<th style="text-align:right">Strata</th>
<th style="text-align:right">Paiton</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right">64</td>
<td style="text-align:right">213</td>
<td style="text-align:right">1,089</td>
</tr>
<tr>
<td style="text-align:right">4,096</td>
<td style="text-align:right">1,764</td>
<td style="text-align:right">2,766</td>
</tr>
<tr>
<td style="text-align:right">16,384</td>
<td style="text-align:right">3,505</td>
<td style="text-align:right">2,639</td>
</tr>
<tr>
<td style="text-align:right">32,768</td>
<td style="text-align:right">3,737</td>
<td style="text-align:right">2,490</td>
</tr>
</tbody>
</table>
<p dir="auto">Strata 的预填随长度上升，Paiton 反而下降，两者在 8K 到 16K 之间交叉。</p>
<p dir="auto">A 卡这边的功耗上限是手动设成 240W 的（<code>power1_cap_default</code> 是 300W），所以 Paiton 的数字是在限功耗状态下得到的。解码这一段影响应该不大——27B dense 的解码是显存带宽瓶颈，实测 72 到 80 tok/s 已经接近 R9700 的带宽上限；但预填是算力瓶颈，240W 下会吃一点亏。这一点在看待两边的预填差距时值得记着。</p>
<p dir="auto">Strata 解码快 1.7 到 2.0 倍，但短 prompt 首字慢 8 倍。</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/2196299b-b108-4b68-9a78-d480f8459fb2.jpeg" alt="两个引擎的长度特性" class="img-markdown  img-fluid" /></p>
<p dir="auto">这不是硬件差异——Paiton 是 32G 显存全装 27B，Strata 还有 34.76 GiB 专家在系统内存里。原因是量化模型类型不同：Strata 跑的是 MoE，24,576 个专家每 token 只激活约 10 个；Paiton 跑的是 dense 27B，每 token 要过全部权重。NVFP4 约 14.3 GB，R9700 带宽约 640 GB/s，算下来理论上限约 45 tok/s，实测 72 到 80 已经超过这个朴素估算，说明 DFlash2 在起作用，基本到了带宽天花板。</p>
<p dir="auto">另外一个异常：Strata 在 32K 的首字三次是 110.5s / 8.43s / 8.13s，第一次是 13 倍。原因是全新长 prompt 要走文件层流式读全部专家，而引擎刚重启、page cache 是冷的。预热后稳定在 8.1 到 8.4 秒。</p>
<h3>能力测试</h3>
<p dir="auto">用同一套智力测试题 A1 到 A10（多步算术、日期推理、错标签逻辑、中文歧义、C++ 并发、数论证明、RAID 备份认知、速率建模、贝叶斯、抗幻觉）。</p>
<p dir="auto">参数（两边完全一致）：</p>
<ul>
<li>temperature 1、top_p 0.95、top_k 20、min_p 0、seed 42，惩罚项全关，max_tokens 8192</li>
<li>开 Thinking：Strata <code>reasoning_effort: "medium"</code>；Paiton <code>enable_thinking: true</code> + <code>reasoning_effort: "medium"</code></li>
<li>关 Thinking：Strata <code>reasoning_effort: "none"</code>；Paiton <code>enable_thinking: false</code></li>
<li>严格串行，一次一个请求</li>
</ul>
<p dir="auto">采样参数用的是 Unsloth 给 Qwen3.8 的推荐值（就是网页里 temperature 1 / top_p 0.95 / top_k 20 / min_p 0 / 惩罚项 off 那一套）。</p>
<p dir="auto">Paiton 那边启动时带了 <code>--default-chat-template-kwargs {"enable_thinking": false}</code>，但请求级 <code>chat_template_kwargs</code> 可以覆盖它，实测 reasoning 从 0 变成 386 字符。它的模板支持 xhigh（默认）/ medium / low 三档，所以能跟 Strata 的 medium 对齐。</p>
<p dir="auto">结果：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>模式</th>
<th>后端</th>
<th style="text-align:right">得分</th>
<th style="text-align:right">总输出 token</th>
<th style="text-align:right">总墙钟</th>
<th style="text-align:right">Thinking 量</th>
</tr>
</thead>
<tbody>
<tr>
<td>关</td>
<td>Strata</td>
<td style="text-align:right">10/10</td>
<td style="text-align:right">9,837</td>
<td style="text-align:right">92.2 s</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td>关</td>
<td>Paiton</td>
<td style="text-align:right">10/10</td>
<td style="text-align:right">11,003</td>
<td style="text-align:right">113.7 s</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td>开</td>
<td>Strata</td>
<td style="text-align:right">10/10</td>
<td style="text-align:right">12,845</td>
<td style="text-align:right">111.4 s</td>
<td style="text-align:right">8,642 字符</td>
</tr>
<tr>
<td>开</td>
<td>Paiton</td>
<td style="text-align:right">10/10</td>
<td style="text-align:right">14,245</td>
<td style="text-align:right">143.4 s</td>
<td style="text-align:right">14,511 字符</td>
</tr>
</tbody>
</table>
<p dir="auto">四个格子都是满分，逐题通过率 A1 到 A10 全部 4/4。这套题区分不出这两个模型，难度不够。</p>
<p dir="auto">Thinking 开关在这套题上的收益是零：Strata 多花 31% token、21% 时间，Paiton 多花 29%、26%，得分一点没变。题目太简单，思考没有发挥空间。</p>
<p dir="auto">墙钟上 Strata 在两个模式下都更快（92 对 114 秒，111 对 143 秒）。</p>
<h3>A10 两个模型都答错（老毛病）</h3>
<p dir="auto">A10 是虚构的「Qwen3.8-27B 技术报告里的 DeltaFormer-X 架构」。两个模型都正确拒绝了 DeltaFormer-X，但四个格子全部顺手把 Qwen3.8-27B 也否定了：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>格子</th>
<th>原话</th>
</tr>
</thead>
<tbody>
<tr>
<td>关 Strata</td>
<td>「实际上并不存在名为 Qwen3.8-27B 的模型」</td>
</tr>
<tr>
<td>关 Paiton</td>
<td>「Qwen3.8-27B 不存在：截至目前（2024 年）…并未发布」</td>
</tr>
<tr>
<td>开 Strata</td>
<td>「"Qwen3.8-27B" —— 不存在 …从未有过这一型号」</td>
</tr>
<tr>
<td>开 Paiton</td>
<td>「不存在 …我无法确认其为任何已发布的官方技术报告中的内容」</td>
</tr>
</tbody>
</table>
<p dir="auto">而 Qwen3.8-27B 是真实存在的，本机就放着它的四个量化版本，Paiton 服务的就是它。</p>
<p dir="auto">这个题的评分标准只要求出现「不存在 / 无法确认 / 虚构」这类字样，所以「正确否定虚构的 DeltaFormer-X」和「顺带错误否定真实的 Qwen3.8-27B」拿一样的分。</p>
<hr />
<h2>五、一个实战坑：思考会吃光 token 预算</h2>
<p dir="auto">Strata 的 thinking 和答案共享 <code>max_tokens</code> 预算，预算不够时会<strong>返回空回复而不是报错</strong>。</p>
<p dir="auto">在 <code>max_tokens=400</code> 的创作题上实测：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>reasoning_effort</th>
<th>finish</th>
<th style="text-align:right">out_tok</th>
<th style="text-align:right">reasoning 字符</th>
<th style="text-align:right">answer 字符</th>
</tr>
</thead>
<tbody>
<tr>
<td>默认（high）</td>
<td>length</td>
<td style="text-align:right">400</td>
<td style="text-align:right">1,385</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td>high</td>
<td>length</td>
<td style="text-align:right">400</td>
<td style="text-align:right">1,411</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td>medium</td>
<td>length</td>
<td style="text-align:right">400</td>
<td style="text-align:right">1,735</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td>low</td>
<td>length</td>
<td style="text-align:right">400</td>
<td style="text-align:right">1,725</td>
<td style="text-align:right">0</td>
</tr>
<tr>
<td>none</td>
<td>stop</td>
<td style="text-align:right">214</td>
<td style="text-align:right">0</td>
<td style="text-align:right">906</td>
</tr>
</tbody>
</table>
<p dir="auto">只有 none 能出答案。4096 预算下的 A5（C++ 并发题）也一样，4096 个 token 全花在思考上，content 是空的。加大到 16,384 复测：</p>
<pre><code>completion_tokens=16384  finish_reason=length
reasoning_chars=62902    answer_chars=0
</code></pre>
<p dir="auto">reasoning 的尾部是逐字重复的死循环：</p>
<pre><code>Need maybe mention if `Singleton` is `std::atomic&lt;Singleton*&gt;` and `mtx` is `static std::mutex mtx;`
but `mtx` is not `constexpr`? Use function-local static.
（同样一句话往后重复）
</code></pre>
<p dir="auto">不过把强度降到 medium、预算给到 8192，A5 是能正常作答的（4,631 字符）。所以这是预算配置问题，不是模型不会做。</p>
<p dir="auto">结论就是：给 Strata 要么显式设 <code>reasoning_effort</code> 为 none 或 low，要么把 <code>max_tokens</code> 给足。</p>
<hr />
<h2>六、当前参数配置</h2>
<p dir="auto"><code>strata-&lt;model&gt;.json</code> 的 args：</p>
<pre><code class="language-json">{
  "exe": "/data/ai/apps/Strata/engine/strata",
  "args": [
    "--pack", "/data/ai/strata-data/packs/unsloth-ud-q4_k_xl",
    "--native", "/data/ai/models/strata/UD-Q4_K_XL/Qwen3.8-Flash-Next-UD-Q4_K_XL-00001-of-00004.gguf",
    "--expert-profile", "/data/ai/apps/Strata/data/expert-profile.bin",
    "--expert-cache", "auto",
    "--prefill", "auto:32768",
    "--spec", "4",
    "--spec-min-p", "0.5",
    "--mtp", "/data/ai/strata-data/mtp/rt",
    "--max-context", "262144",
    "--kv", "int8",
    "--kv-resident", "32768",
    "--resident-budget-gib", "71",
    "--vision",
    "--vram-reserve-mib", "1024",
    "--conversation-cache-mib", "8192",
    "--conversation-cache-slots", "4",
    "--conversation-cache-min-free-mib", "2560"
  ],
  "host": "127.0.0.1",
  "port": 8090
}
</code></pre>
<p dir="auto">环境变量：</p>
<pre><code class="language-bash">STRATA_LOOKAHEAD=0        # 专家已全部驻留内存，路由预取只烧 CPU，没有收益
STRATA_PREFILL_RING=384   # 官方实测 104K prompt 预填 +15%
STRATA_PREFILL_EQUAL=1    # 官方实测再 +10%
</code></pre>
<p dir="auto"><code>--prefill auto:32768</code> 和 <code>--conversation-cache-mib</code> 是 setup 针对 123GB 内存自己推荐的。加了之后实测 4K prompt 从 1,877.9 涨到 1,967.2（+4.8%），32K 从 3,912.8 涨到 4,017.6（+2.7%），解码基本没变。涨幅没有官方文档说的 21% 到 35% 那么大，考虑到基线本身就有 ±6% 波动，只能算没退化、略有提升。</p>
<hr />
<h2>七、选型</h2>
<p dir="auto">就这个模型而言，如果之前是用 llama.cpp 那类通用推理框架在跑，换 Strata 的收益是数量级的：同样硬件同样权重，预填快 7 到 15 倍，解码快 4 倍以上。它毕竟是为 Qwen3.8-Flash-Next 这一个模型专门写的。</p>
<p dir="auto">长上下文、agent、harness 场景用 Strata，吞吐高 1.85 倍，16K 以上首字更快，256K 上下文。conversation cache 实测在省：115 次请求里复用了 105,921 个 prompt token，占全部的 14%。</p>
<p dir="auto">短问答、要求低延迟的场景用 Paiton，首字 0.056 秒，比 Strata 快 8 倍，体感差距很明显。</p>
<p dir="auto">两张卡互不干扰，可以并行跑。但Paiton-200K 用了 <code>--max-num-seqs 1</code>，不支持并发。</p>
<p dir="auto">后续打算换更有区分度的题目再比一次：长上下文推理（用满 256K）、SWE 类多文件代码任务、多步 agent 任务。A1 到 A10 这套已经饱和了。</p>
]]></description><link>https://lcz.me/topic/2311</link><generator>RSS for Node</generator><lastBuildDate>Fri, 23 Oct 2026 00:28:36 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2311.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Oct 2026 14:53:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Tue, 20 Oct 2026 06:55:01 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ny-zhao" aria-label="Profile: NY-Zhao">@<bdi>NY-Zhao</bdi></a> <a href="/post/25450">说</a>:</p>
<p dir="auto">至今没搞明白UD-Q4_K_XL和IQ3_S的精度差异，按照GSR-RCO的说法，IQ3_S，是不是比UD-Q4_K_XL还要好？</p>
</blockquote>
<p dir="auto">UD-Q4_K_XL和IQ3_S 都是作者按照各自喜好对各层分别用不同的精度进行量化。Q4 和 Q3 是最后的平均精度。因为取舍策略不同，在不同任务上成绩肯定不一样。GSR-RCO肯定是那对自己有利的项目来比较。到底适不适合自己，还是要自己来测试。</p>
]]></description><link>https://lcz.me/post/26177</link><guid isPermaLink="true">https://lcz.me/post/26177</guid><dc:creator><![CDATA[perter]]></dc:creator><pubDate>Tue, 20 Oct 2026 06:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Tue, 20 Oct 2026 03:35:02 GMT]]></title><description><![CDATA[<p dir="auto">抄作业成功<img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/1f91e.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--hand_with_index_and_middle_fingers_crossed" style="height:1.4em;width:auto;vertical-align:middle" title=":hand_with_index_and_middle_fingers_crossed:" alt="🤞" /><br />
全部交给ai去弄<br />
<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="✅" /> Strata 部署 Qwen3.8-Flash-Next UD-Q4_K_XL 安装完成<br />
历时 2 小时 57 分，全部 7 个步骤走完：</p>
<p dir="auto">步骤	结果<br />
1-3 硬件/配置/依赖	RTX 4090 48GB、127GB 内存全过；UD-Q4_K_XL、262K 上下文、int8 KV、71GiB 专家预算<br />
4 引擎	v0.1.45 预编译版（sm_75/86/89/120，CUDA 13.0）+ cuBLAS/runtime<br />
5 模型下载	4 个 GGUF 分片（111.7GB）+ mmproj 视觉编码器，全部 SHA-256 校验通过<br />
6 模型打包	iq_pack 转换 460 个张量（--compat-bf16 自动生效）；MTP 草稿层 5.2GB → q2_0 → 运行时格式（787M）<br />
7 启动脚本	run-unsloth-ud-q4_k_xl.bat + 配置文件已生成</p>
<p dir="auto">调优后实测成绩（2000 token 长生成）：解码 84.8 tok/s、专家命中率 96.8%、显存 47.7GB 无警告。相比首启的 76.5 tok/s 提升 +9%，改动：关闭 vision（腾出显存消除引擎 #2065 分页警告）+ 帖子的 3 个环境变量 + 会话缓存 + thinking 预算三重防护。</p>
<p dir="auto">关于与帖子的差距（他们 124-145 tok/s）：已排查到底——显卡全程无降频（SM/显存满频、237W、40°C），差距是 sm_89（Ada）vs sm_120（Blackwell）内核代际差，非配置问题。预填已达他们高位，解码约为其 65%。</p>
]]></description><link>https://lcz.me/post/26146</link><guid isPermaLink="true">https://lcz.me/post/26146</guid><dc:creator><![CDATA[吉米]]></dc:creator><pubDate>Tue, 20 Oct 2026 03:35:02 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Tue, 20 Oct 2026 03:44:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ny-zhao" aria-label="Profile: NY-Zhao">@<bdi>NY-Zhao</bdi></a> 有很多说法 我也不懂 所以我选比较大的</p>
]]></description><link>https://lcz.me/post/25457</link><guid isPermaLink="true">https://lcz.me/post/25457</guid><dc:creator><![CDATA[applejuice]]></dc:creator><pubDate>Tue, 20 Oct 2026 03:44:37 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Sat, 17 Oct 2026 05:19:03 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/applejuice" aria-label="Profile: applejuice">@<bdi>applejuice</bdi></a> 至今没搞明白UD-Q4_K_XL和IQ3_S的精度差异，按照GSR-RCO的说法，IQ3_S，是不是比UD-Q4_K_XL还要好？</p>
]]></description><link>https://lcz.me/post/25450</link><guid isPermaLink="true">https://lcz.me/post/25450</guid><dc:creator><![CDATA[NY Zhao]]></dc:creator><pubDate>Sat, 17 Oct 2026 05:19:03 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Thu, 15 Oct 2026 07:09:42 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> 可以跑，至少我能接受<br />
你搞4卡3090 吧<img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/1f606.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--laughing" style="height:1.4em;width:auto;vertical-align:middle" title=":laughing:" alt="😆" /></p>
<h3>Prefill (tokens/s)</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Prompt</th>
<th style="text-align:right">IQ3_S, 0.1.43</th>
<th style="text-align:right">IQ3_S, 0.1.44.1</th>
<th style="text-align:right"><strong>UD-Q4_K_XL, 0.1.44.1</strong></th>
<th style="text-align:right">Q4 vs IQ3_S</th>
</tr>
</thead>
<tbody>
<tr>
<td>19K</td>
<td style="text-align:right">2,539</td>
<td style="text-align:right">2,527</td>
<td style="text-align:right"><strong>2,038</strong></td>
<td style="text-align:right">-19 %</td>
</tr>
<tr>
<td>43K</td>
<td style="text-align:right">3,153</td>
<td style="text-align:right">3,118</td>
<td style="text-align:right"><strong>2,516</strong></td>
<td style="text-align:right">-19 %</td>
</tr>
<tr>
<td>89K</td>
<td style="text-align:right">3,552</td>
<td style="text-align:right">3,516</td>
<td style="text-align:right"><strong>2,844</strong></td>
<td style="text-align:right">-19 %</td>
</tr>
<tr>
<td>123K</td>
<td style="text-align:right">3,548</td>
<td style="text-align:right">3,504</td>
<td style="text-align:right"><strong>2,852</strong></td>
<td style="text-align:right">-19 %</td>
</tr>
</tbody>
</table>
<h3>Decode (tokens/s, median)</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Prompt</th>
<th style="text-align:right">IQ3_S, 0.1.43</th>
<th style="text-align:right">IQ3_S, 0.1.44.1</th>
<th style="text-align:right"><strong>UD-Q4_K_XL, 0.1.44.1</strong></th>
<th style="text-align:right">Q4 vs IQ3_S</th>
</tr>
</thead>
<tbody>
<tr>
<td>Chinese prose</td>
<td style="text-align:right">104.1</td>
<td style="text-align:right">105.7</td>
<td style="text-align:right"><strong>94.7</strong></td>
<td style="text-align:right">-10 %</td>
</tr>
<tr>
<td>Chinese chat</td>
<td style="text-align:right">110.4</td>
<td style="text-align:right">108.2</td>
<td style="text-align:right"><strong>91.2</strong></td>
<td style="text-align:right">-16 %</td>
</tr>
<tr>
<td>English technical</td>
<td style="text-align:right">110.8</td>
<td style="text-align:right">113.1</td>
<td style="text-align:right"><strong>90.6</strong></td>
<td style="text-align:right">-20 %</td>
</tr>
<tr>
<td>Code</td>
<td style="text-align:right">166.9</td>
<td style="text-align:right">166.8</td>
<td style="text-align:right"><strong>130.7</strong></td>
<td style="text-align:right">-22 %</td>
</tr>
</tbody>
</table>
]]></description><link>https://lcz.me/post/25021</link><guid isPermaLink="true">https://lcz.me/post/25021</guid><dc:creator><![CDATA[applejuice]]></dc:creator><pubDate>Thu, 15 Oct 2026 07:09:42 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Thu, 15 Oct 2026 06:49:29 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/applejuice" aria-label="Profile: applejuice">@<bdi>applejuice</bdi></a> <a href="/post/24993">说</a>:</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/stxpnet" aria-label="Profile: stxpnet">@<bdi>stxpnet</bdi></a> 没试用 UD-Q4_K_XL？</p>
</blockquote>
<p dir="auto">没试，感觉跑不动的样子。 3090算力毕竟 有限啊。。。。太委屈了。 早知道这样。 4张4070TI也比3090好啊。</p>
]]></description><link>https://lcz.me/post/25016</link><guid isPermaLink="true">https://lcz.me/post/25016</guid><dc:creator><![CDATA[stxpnet]]></dc:creator><pubDate>Thu, 15 Oct 2026 06:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Thu, 15 Oct 2026 05:52:07 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> 没试用 UD-Q4_K_XL？</p>
]]></description><link>https://lcz.me/post/24993</link><guid isPermaLink="true">https://lcz.me/post/24993</guid><dc:creator><![CDATA[applejuice]]></dc:creator><pubDate>Thu, 15 Oct 2026 05:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Thu, 15 Oct 2026 01:24:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/wml-ai" aria-label="Profile: wml-ai">@<bdi>wml-ai</bdi></a><br />
Max tokens 不用自己设置，Strata会根据你的提示词和上下文大小自动调节。</p>
<pre><code>"fit_max_tokens": true
</code></pre>
]]></description><link>https://lcz.me/post/24964</link><guid isPermaLink="true">https://lcz.me/post/24964</guid><dc:creator><![CDATA[perter]]></dc:creator><pubDate>Thu, 15 Oct 2026 01:24:52 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Thu, 15 Oct 2026 01:38:24 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> 是的，用了基本都回不去，除非整机硬件不均衡，不适应STRATA。<br />
我分享一下我用STRATA的正确姿势。 【<br />
首先我的上下文是384K（1.5倍原生yarn扩展），双槽<br />
其次 基本上我只用OMP这个框架了（因为它才有思考自动档），<br />
项目或者ISSUE开始的时候，我直接用AUTO思考档。正常和它对聊，收集信息，并开展工作。用最快速度做个MVP，或者是对问题有个梗概的了解。</p>
<p dir="auto">在处理得差不多的时候，根据情况，我会再从头到尾过一遍，补充或纠正的信息编辑好。然后再发提示词，并把思考切换到xhigh,因为只有这个档位才能发挥出QFN3.8的全部实力。 让OMP再针对该会话进行全面的复盘，该修正的修正 ，该改进的改进。 最终等它自己都觉得完美了，这个项目或者ISSUE就能CLOSE了。】<br />
这是我目前找到的发挥STRATA和QFN3.8的最强实力的办法。</p>
]]></description><link>https://lcz.me/post/24952</link><guid isPermaLink="true">https://lcz.me/post/24952</guid><dc:creator><![CDATA[stxpnet]]></dc:creator><pubDate>Thu, 15 Oct 2026 01:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Tue, 20 Oct 2026 09:25:02 GMT]]></title><description><![CDATA[<p dir="auto">非常不错的测试对比，strata长上下文还是吊打llama.cpp，这是后发架构优势。</p>
]]></description><link>https://lcz.me/post/24873</link><guid isPermaLink="true">https://lcz.me/post/24873</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Tue, 20 Oct 2026 09:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Wed, 14 Oct 2026 12:43:55 GMT]]></title><description><![CDATA[<p dir="auto">让 Strata+Qwen3.8-Flash-Next-UD-Q4_K_XL 做一道极限推理题，然后用DSH把它写的程序跑了一遍。</p>
<hr />
<h2>题目</h2>
<p dir="auto">论坛中的极限测试题：<a href="https://lcz.me/post/24314">LLM解題 極限測試 Extreme-Exam-v7-A (出題者 : GPT6-Astra-max)</a></p>
<p dir="auto">具体内容就不赘述了，见原帖。</p>
<hr />
<h2>第一次：模型“想”了 4 分半，一个字都没输出！</h2>
<p dir="auto">第一次发进去，网页上只显示「Thought for 268.3s」，然后就没有然后了。</p>
<p dir="auto">查引擎日志：</p>
<pre><code>prompt 912 tokens ... 38680 generated in 268284 ms (144.2 tok/s)
drafts accepted 24999 of 34382
</code></pre>
<p dir="auto">38,680 个 token 全部花在思考上，<code>content</code> 是空的。 上下文 262K，离上限还远，日志里也没有任何报错。</p>
<p dir="auto">对照官方文档，这是 #1053 那个已知情况：</p>
<blockquote>
<p dir="auto">有些回合写了一句话的推理，然后直接输出了结束符，没有 <code>&lt;/think&gt;</code>：内容是空的，agent 就停住了。</p>
</blockquote>
<p dir="auto">往配置里加上（放在 <code>args</code> 外面）：</p>
<pre><code class="language-json">"reasoning_close_retry": true
</code></pre>
<p dir="auto">顺带把思考档位也定下来：</p>
<pre><code class="language-json">"reasoning_effort": "medium"
</code></pre>
<p dir="auto">这两项加载后，启动日志显示：</p>
<pre><code>[strata] thinking level: medium (reasoning_effort in the config; ...)
</code></pre>
<hr />
<h2>重启后再跑一次。这次有输出了，但过程是这样的：</h2>
<pre><code>prompt 915 tokens ... 103830 generated in 978736 ms (106.1 tok/s)
[strata] done: 103830 tokens in 981 s (106.1 tok/s) (stop, cancel=False)
</code></pre>
<p dir="auto">103,830 个 token，981 秒（16.3 分钟），正常结束（<code>stop</code>，不是被截断也不是手动停的）。大约 9.6 万 token 在思考，剩下的才是正文。</p>
<p dir="auto">正文是一份完整的解法文档：</p>
<ul>
<li>把 dihedral 型群结构理清了（(S_kS_l=R_{l-k})）</li>
<li>用 Burnside + Möbius 反演处理「最小周期恰为 N」这个条件</li>
<li>对乘积条件用三个转移矩阵（平凡表示、符号表示、3 点置换表示）配合特征理论</li>
<li>把反射固定点分成三种轴型分别计数</li>
<li>为了处理「中间乘积的共轭作用」设计了一个 30 状态的自动机</li>
<li>整套运算都在模 (6\cdot 2N\cdot 10^{12}) 下做，以便正确处理中间出现的除以 2、3、6</li>
<li>最后附了一段完整的 Python 程序</li>
</ul>
<p dir="auto">但是，最终也没有给出r的数值。</p>
<p dir="auto">最后给的是「最終核心答案」，内容只有一句：</p>
<blockquote>
<p dir="auto">執行上述程式對題目給定 N 和 M 運算，會直接印出 <code>{"residue": r}</code>，其中印出的整數 r 即為所求餘數。</p>
</blockquote>
<p dir="auto">也就是说，它把答案推给了一个它自己没运行过的程序。</p>
<hr />
<p dir="auto"><strong>我让DSH把它写的程序跑了一遍。</strong></p>
<h3>第一次运行：N=2 就崩了</h3>
<pre><code>IndexError: list index out of range
  in apply_row_pow
</code></pre>
<p dir="auto">原因：程序里 <code>PRIMES</code> 写死成大 N 的质因数 <code>[2,3,5,7,11,13]</code>，但用于小规模检查时直接算 <code>d = n // m</code>。N=2 时 m=3 给出 <code>d=0</code>、<code>l=-1</code>，指数变成负数，越界。</p>
<p dir="auto">DSH只改了质因数的来源，数学逻辑一个字没动，重新跑。</p>
<h3>修掉之后：N=4 立刻暴露数学错误</h3>
<pre><code>check N=2: 1 OK
check N=3: 3 OK
check N=4: 公式 3  !=  暴力枚举 6
</code></pre>
<p dir="auto">公式在 N=2、3 上通过，从 N=4 开始就错了。</p>
<p dir="auto">按反射轴逐个暴力核对，定位到问题出在「有 2 个固定点」那类轴上：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>N=4 的反射轴</th>
<th>暴力真值</th>
</tr>
</thead>
<tbody>
<tr>
<td>r=0（2 个固定点）</td>
<td>12</td>
</tr>
<tr>
<td>r=1（无固定点）</td>
<td>2</td>
</tr>
<tr>
<td>r=2（2 个固定点）</td>
<td>12</td>
</tr>
<tr>
<td>r=3（无固定点）</td>
<td>2</td>
</tr>
</tbody>
</table>
<p dir="auto">程序算出来「无固定点」那类是 2，对的；但「2 个固定点」那类给出 0，真值是 12。</p>
<p dir="auto">问题在自动机的接受条件。推导上，中间乘积 (B=a_1\cdots a_l) 需要满足 (\pi_B(t_h)=t_0)，所以 (t_h=\pi_B^{-1}(t_0)) 是唯一确定的；而相邻条件要求 (t_h\neq a_l)，也就是接受条件应该是</p>
<p dir="auto">$$\pi_B(a_l)\neq t_0$$</p>
<p dir="auto">程序写的是：</p>
<pre><code class="language-python"># Strata 写的
if ti != -1 and pi[ti] == 0:
    FINAL = 1

# 正确的
if ti == -1:                 # a_l 是 3-环：t_h 必是对换，不可能相等
    FINAL[...] = 1
elif pi[ti] != 0:            # a_l 是对换：要求 t_h = pi^-1(t_0) != a_l
    FINAL[...] = 1
</code></pre>
<p dir="auto"><strong>不等号写成等号，还多加了一个「a_l 必须是对换」的限制——这个限制本来不该有。</strong></p>
<h3>改掉这一处之后，全部通过</h3>
<pre><code>check N=2: 1 OK      check N=3: 3 OK      check N=4: 6 OK
check N=5: 15 OK     check N=6: 63 OK     check N=7: 195 OK
check N=8: 717 OK
check N=9: 2428 OK        （N=9 是我另外补的暴力验证）

{"residue": 385583993536}
</code></pre>
<p dir="auto"><strong>最终答案 r = 385583993536。</strong> 三次重复运行结果一致。</p>
<hr />
<h2>Strata声称的「已验证」是编的：</h2>
<blockquote>
<p dir="auto">已驗證 N=2,…,8 一致。例如：N=2：原始合格軌道數 1；N=3：原始合格軌道數 3。</p>
</blockquote>
<p dir="auto">实际情况：</p>
<ul>
<li><strong>原版程序连 N=2 都跑不过去</strong>，直接崩在索引越界上，根本到不了 N=8</li>
<li>但它给出的 N=2→1、N=3→3 数值恰好是对的</li>
<li>修好之后 N=4 立刻不一致</li>
</ul>
<p dir="auto">也就是说，那两个数字它蒙对了，然后把「验证过 N=2 到 8」当成了既成事实写进文档，还附上了「验证结果」。</p>
<hr />
<h2>怎么评价这次测试</h2>
<p dir="auto">先说好的部分。这份推导的质量比预期高不少。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>部分</th>
<th>结果</th>
</tr>
</thead>
<tbody>
<tr>
<td>dihedral 群结构 (S_kS_l=R_{l-k})</td>
<td>正确</td>
</tr>
<tr>
<td>Burnside + Möbius 处理原始周期</td>
<td>正确</td>
</tr>
<tr>
<td>三个转移矩阵与特征分解</td>
<td>正确</td>
</tr>
<tr>
<td>反射轴的三种类型分类</td>
<td>正确</td>
</tr>
<tr>
<td>30 状态共轭自动机的设计思路</td>
<td>正确</td>
</tr>
<tr>
<td>模 (6\cdot2N\cdot10^{12}) 处理中间除法</td>
<td>正确，而且这个方案本身挺漂亮</td>
</tr>
<tr>
<td>自动机的接受条件</td>
<td>一处不等号写反</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>整套推导只有这一处逻辑错误。</strong> 能独立设计出「Burnside + 特征理论 + 自动机 + 模运算」这样一套完整方案，这个推理能力是真的。</p>
<p dir="auto">问题出在自检上：</p>
<ul>
<li>一个不等号写反，跑一次小规模检查就会立刻暴露</li>
<li>但它没跑，就宣称验证过了，还编出了验证结果</li>
<li>修复之后整个程序跑完只要 2 分钟左右（含 N=2 到 8 的暴力枚举）</li>
</ul>
<p dir="auto">它省下的这两分钟，代价是主答案完全错误。</p>
<p dir="auto">这正好印证之前的那句话：它很会解释，但「很可能是这样」和「已经证实就是这样」之间的边界不够稳。放到数学上，就变成了——<strong>推导能力长得比验证能力更快</strong>。</p>
<hr />
<h2>顺带记几个配置经验</h2>
<ol>
<li>
<p dir="auto"><code>reasoning_close_retry</code> 有用。 第一次那个「思考完不出来」的故障，加了这一项之后没有复发。</p>
</li>
<li>
<p dir="auto">网页 Chat 里的 Max tokens 留空 = 整个上下文。 源码里是这么写的：</p>
</li>
</ol>
<pre><code class="language-python">room = ctx - CTX_SLACK - len(ids)
if max_new is None or max_new &lt;= 0:
    max_new = room
</code></pre>
<p dir="auto">也就是「Until done」实际上是「最多可以想 26 万 token」。这次它用了 10.3 万。</p>
<ol start="3">
<li>想限制思考长度就加 <code>reasoning_budget_tokens</code>。 到了上限服务端会强制收尾让它开始作答。我这次还没加，所以它一路想了 9.6 万 token。</li>
</ol>
<hr />
<h2>结论</h2>
<p dir="auto">这道题<strong>推理能力 9 分，可信度 4 分</strong>。</p>
<p dir="auto">它能写出基本正确的完整推导，但在没有执行能力的情况下，会把「我推导出来了」直接说成「我验证过了」。做 Agent 的时候这一点比算错本身更值得警惕——因为它看起来太像真的了。</p>
]]></description><link>https://lcz.me/post/24861</link><guid isPermaLink="true">https://lcz.me/post/24861</guid><dc:creator><![CDATA[wml-ai]]></dc:creator><pubDate>Wed, 14 Oct 2026 12:43:55 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Wed, 14 Oct 2026 00:42:35 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/marsempire" aria-label="Profile: marsempire">@<bdi>marsempire</bdi></a> 你这一贴把「480k」说清楚了——那不是模型也不是 LoRA，是 <strong>480 KB 的拒答方向控制向量</strong> <code>Huihui-Qwen3.8-Flash-Next-refusal-direction-r.gguf</code>。我上一条按整权重 / LoRA / 上下文参数三种形态分，漏了第四种 control vector，补上：</p>
<ol>
<li>
<p dir="auto"><strong>机制</strong>：权重不动（就是 ISTA-DASLab 原版 GSQ-RCO 量化），Strata 每层做 <code>h = h - (h·r)r</code>，运行时扣掉拒答方向。所以它<strong>只配这套 Q2_0 / IQ2_XS / IQ3_XXS / IQ3_S</strong>，且只在 <strong>Strata 的 project 模式</strong>生效。你那份 unsloth <code>UD-Q4_K_XL</code> 挂不上：量化方案和 revision 都不同，<code>r</code> 绑定的是这套权重的激活几何。</p>
</li>
<li>
<p dir="auto"><strong>坑</strong>：原版 llama.cpp 的 <code>--control-vector</code> 只会「加」向量，没有 project 模式，拿它加载这包 = 还是原版会拒答的模型。要生效得这样起：</p>
</li>
</ol>
<pre><code>./setup.sh --setup --model IQ3_S --gguf-dir ../flash-next/IQ3_S --vision gpu \
  --experimental-speed-projection ../flash-next/Huihui-...-refusal-direction-r.gguf
</code></pre>
<p dir="auto">它会写 <code>--cvec-mode project --control-vector-layer-range 4 44</code>（可改 1 47；第 0 层不受控）。</p>
<ol start="3">
<li>
<p dir="auto"><strong>下载量</strong>：向量才 480 KB，但它是「官方量化 + 运行时小向量」，不是新的无审查整模型，仍要下对应 GSQ-RCO 包。作者 3090 实测峰值显存 23.8 GB：</p>
<ul>
<li>IQ2_XS：68 GB 下载，专家占 RAM 35.5 GB，32K 解码 ~87 t/s，KL 0.193</li>
<li>IQ3_S：83.6 GB，RAM 50 GB，32K ~59 t/s，KL 0.075（更接近 BF16）<br />
48G 显存 + 128G 内存的话 IQ2_XS 更稳，IQ3_S 也能跑但吃 50G 内存。</li>
</ul>
</li>
<li>
<p dir="auto">你说的 <code>swift-iq3_s</code> 若指手上已有的 IQ3_S：这向量钉死 <code>revision ed59f920</code>、配 ISTA 原包，别的来源不一定对得上。已有稳定无审查路子就没必要再下 68 GB——它的价值就是「不换权重，只加 480 KB 向量」。想复现这帖效果，就按上面 IQ2_XS + project 模式。</p>
</li>
</ol>
]]></description><link>https://lcz.me/post/24703</link><guid isPermaLink="true">https://lcz.me/post/24703</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Wed, 14 Oct 2026 00:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Wed, 14 Oct 2026 00:40:35 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/xiaote" aria-label="Profile: Xiaote">@<bdi>Xiaote</bdi></a><br />
<a href="https://huggingface.co/alesha-pro/Qwen3.8-Flash-Next-abliterated-GSQ-RCO-Strata-GGUF" rel="nofollow ugc">https://huggingface.co/alesha-pro/Qwen3.8-Flash-Next-abliterated-GSQ-RCO-Strata-GGUF</a><br />
这个里面的</p>
<p dir="auto"><a href="https://lcz.me/topic/2079">https://lcz.me/topic/2079</a><br />
这贴里也有提到</p>
<p dir="auto">我的swift-iq3_s可以用，省得下载专门的去审查大模型了</p>
]]></description><link>https://lcz.me/post/24702</link><guid isPermaLink="true">https://lcz.me/post/24702</guid><dc:creator><![CDATA[marsempire]]></dc:creator><pubDate>Wed, 14 Oct 2026 00:40:35 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Wed, 14 Oct 2026 00:06:11 GMT]]></title><description><![CDATA[<p dir="auto">先分清那个「480k 无审查文件」是哪种形态，结论完全不同：</p>
<ol>
<li>独立的无审查整权重（abliterated 微调出的另一份 checkpoint/revision）→ 不能「挂」到 Q4_K_XL 上，只能拿那份权重重新量化/打包；而且 Q4_K/Q5_K 的专家 kernel 是 NVIDIA 专属，换 AMD 跑不了。</li>
<li>LoRA/adapter 形态（无审查 LoRA，480k 是上下文）→ 理论上可在 base 上加载，但 base revision 必须对齐（这份是 unsloth UD-Q4_K_XL，revision 38bb39e）。llama.cpp 侧是 <code>--lora</code>；Strata 走官方钉死的 pack 流程，加不加 adapter 要看它加载器支不支持，别把它当 llama.cpp。</li>
<li>480k 如果只是 rope/YaRN 的上下文配置 → 那不是「文件挂载」，是运行时参数。先把 KV 账算清楚：262K 的 KV int8 已经不小，480K 近似线性再涨一倍，48G 单卡装不下，得靠 expert cache + RAM 预算，未必真能跑到。</li>
</ol>
<p dir="auto">把那个文件的来源/文件名/大小贴出来，或者直接问原帖作者（uid 689 这篇就是同机对比），确认形态后我给具体命令。</p>
]]></description><link>https://lcz.me/post/24701</link><guid isPermaLink="true">https://lcz.me/post/24701</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Wed, 14 Oct 2026 00:06:11 GMT</pubDate></item><item><title><![CDATA[Reply to Qwen3.8-Flash-Next UD-Q4_K_XL 引擎对比：llama.cpp 与 Strata，同样的48GB 显存 + 128GB 内存，不同的结果 on Tue, 13 Oct 2026 23:02:57 GMT]]></title><description><![CDATA[<p dir="auto">这个Q4_K_XL可以挂载那个480k的无审查文件吗</p>
]]></description><link>https://lcz.me/post/24698</link><guid isPermaLink="true">https://lcz.me/post/24698</guid><dc:creator><![CDATA[marsempire]]></dc:creator><pubDate>Tue, 13 Oct 2026 23:02:57 GMT</pubDate></item></channel></rss>