七月我跑了六輪本地模型測試。月底,我把自己排的名次推翻了。
不是被別人打臉,是被自己補上的樣本打臉。一道基準被判作廢;一顆我親手判過死刑的模型從第 5 名跳到第 2 名,原本的冠軍掉到第 3。中間還有更難看的:一次「加速成功」其實根本沒加速,服務卻回我 HTTP 200。
這個月最貴的一課,是量尺壞掉時,所有名次都跟著錯。 下面六節依時間線走,每節先講做了什麼,再講學到什麼;最後收在 pi 與本機模型現在怎麼分工,以及還沒結清的四筆帳。
如果你也在自架本地模型、自己跑跑分,真正該看的不是我的排名,而是那些會讓你排錯名的東西。
07-05|加速旋鈕實測:dflash 壞掉,specprefill 只對批次有用
本地推論的加速旋鈕不是一鍵全開的東西。 同一個 specprefill,在批次長文件上是 2.36 倍加速,在互動式對話上卻是 6 倍拖累;而 dflash 在這版 oMLX 根本沒跑起來,回應仍是 200。

做了什麼
月初先碰加速旋鈕,dflash 直接壞掉:log 吐出 DFlash start failed: DFlashDraftModelArgs.__init__() missing 12 required positional arguments。E4B 因此 500 崩潰;35B-A3B 更難看,靜默 fallback 回 vlm,HTTP 仍回 200,實際上零加速:服務是活的,加速卻沒發生。
specprefill 對 35B-A3B 做了長 prompt A/B:cache-miss 從 27.57s 降到 11.68s(約 2.36 倍),但 cache-hit 從 0.81s 惡化到 4.78s(約慢 6 倍)。機制是繞過 prefix 與 session 的 KV 快取,每次全量重算 prefill(這類加速手法的全貌,可參考《LLM 推論加速的六大技術》)。裁決因此翻轉:互動式主模型的 specprefill 關閉,只在批次長文件時臨時開啟。原本「主模型接 specprefill」的決定,被自己的數據推翻。
同日也確認 27B 原生 MTP 不可用:4bit 檔雖宣告 mtp heads,卻沒有 mtp.* 權重。cache 瘦身方面,hub 從 60G 收到 33G,回收 27G;刪除走 mv 至 staging,最後由契約者親手 rm(本機 hook 硬性禁止 agent 跑 rm)。
學到什麼
log 是唯一真相,別信 HTTP 200。靜默 fallback 比明確崩潰更危險,因為表面上一切正常,實際上零收益。
07-10|supergemma4-26b-uncensored 首測:mathqa 低於亂猜
當一顆模型的分數低於亂猜,先懷疑量尺,不要先寫判詞。 這一輪我兩件事都做了:標記了異常,也照樣把它排進第 4 名,後果在月底才付清。
做了什麼
supergemma4-26b-uncensored 首次進場,樣本 n=30。當時判詞:core-7 均值 0.633、排第 4;mmlu 0.600、cmmlu 0.567 偏弱;mathqa 僅 0.100,低於亂猜,已標為異常,報告當下就建議覆測。結論是不進日常路由,只當「無審查」特化備援。這類模型多半是在既有底模上再微調出來的;微調怎麼影響一顆模型的講話方式,我在《76 筆資料、33 秒訓練:LoRA 微調如何讓 AI 說你的語言》寫過。
學到什麼
異常分數若只當「這顆模型爛」收場,會把量尺問題一起埋掉。mathqa 0.100 在當下就被標記,卻要等到月底才被正式作廢;n=30 的暫時排名,也會在後面大樣本裡整段位移。
低於亂猜的分數,是量尺故障訊號,不是排名的合法輸入。 先拆逐題 JSON、再決定要不要把這道基準算進均值。
07-17|Ternary-Bonsai-27B 2-bit:極端量化保住了什麼
2-bit 量化保住了生成式任務,卻在選擇題上崩得莫名其妙。 崩的不是能力,而是模型硬跑長推理鏈撞上 token 上限,答案還沒吐出來就被截斷。

做了什麼
Bonsai 2-bit 的生成式抽取很強:gsm8k 0.967、humaneval 0.854、mbpp 0.833(均值 0.885),在 2-bit 下逼近 4-bit 27B。MCQ 卻崩:mathqa 0.233(30 題中 10 題空預測)、cmmlu 0.433(5 題空)、mmlu 關閉 thinking 時 0.667(3 題空)。空預測的成因不難查:模型硬跑長推理鏈,撞上 max_tokens 被截斷,答案還沒吐出來就沒了。
thinking 開關的代價清楚:mmlu 開啟時 0.900,關閉時 0.667,多出 23.3 百分點;但每題秒數從 6.3 拉到 61.9,約 10 倍。真實短板在中文:cmmlu 即使扣掉截斷仍約 0.52,遜於 27B 系列的 0.80 與 0.833;livecodebench 0.267,且每題 179 秒。
學到什麼
這是跨模型重演的 harness 系統性問題,所以正確順序是先修跑分腳本再覆測;當時我點名了,但沒修。極端量化能保住生成式任務,卻無法掩蓋格式與截斷對選擇題的放大效應。
07-24|九模型全比較與 pi 六探針:本地模型艦隊裁撤
基準分數決定不了誰能碰敏感資料。 綜合第一名的模型在去識別探針上漏遮了一個醫師姓名,而排名更後面的兩顆全遮乾淨。這一輪把九顆模型收斂成兩顆。
做了什麼
九模型全比較(n=30,共同 7 基準均值)排出一張當時看起來乾淨的表:
| 排名 | 模型 | 均值 |
|---|---|---|
| 1 | gpt-oss-20b | 80.5% |
| 2 | OptiQ | 77.1% |
| 3 | 27B-MLX | 74.8% |
| 4 | 35B-A3B | 71.9%(每題 3.4 秒,速度王) |
| 5 | supergemma4 | 63.3% |
| 6 | Qwen3.5-9B | 60.0% |
| 7 | Bonsai-2bit | 58.4% |
| 8 | gemma-12b-coder | 55.2% |
| 9 | gemma-E4B | 54.8% |
pi 六探針是實跑,不是問答分數:
--schema穩定性:gpt-oss 三次全爛(思考塊撐爆 token,JSON 截斷);A3B 三次完美;OptiQ 兩次完美。- 敏感去識別:gpt-oss 漏遮醫師姓名「林XX」,屬個資洩漏;A3B、OptiQ 兩姓名全遮乾淨。
- 守門員(矛盾偵測):gpt-oss 唯一勝場,能偵測矛盾並列出;A3B 盲從照做。
- 語言:gpt-oss 命中繁中禁用詞表中的詞彙;OptiQ 中文最強(cmmlu 83.3)。
同日後續修正分清根因:思考塊本來就分在 reasoning_content,是 omlx_ask 把它也印出來,導致 json.loads 失敗。修 wrapper(--schema 恆抑制 reasoning,加上防禦性 JSON 萃取)後,gpt-oss 可接 --schema。於是 A3B 唯一獨佔的速度優勢不足以留,二次裁撤。
裁撤結果是 OptiQ 與 gpt-oss 兩模型艦隊。退役 A3B(25G)、Qwen3.5-9B(5.6G)、gemma-4-E4B(6.4G),退役夾共約 37G,並改線約 14 個介面。
同期三顆新模型:Bonsai 卡在 runtime(Ollama 內建 llama.cpp 解不了三元 Q2_0_g128,需 PrismML fork);Unlimited-OCR 安審未過(modeling_unlimitedocr.py 有 7 處 eval() 吃模型輸出,構成遠端程式碼執行面)因而暫緩;Qwythos-9B 來歷紅旗(作者查無實體)且無能力增量,不上線。來歷不明的權重和來歷不明的套件是同一種風險;我在《你的 AI 工具鏈裡可能藏了後門》講得更細。
學到什麼
「排名第一」與「能進敏感路徑」不是同一件事。本地模型大致對應雲端哪一代,可對照《一台 Mac 上的本地 LLM,等級約當雲端哪一代》。gpt-oss 在基準均值與矛盾偵測上有勝場,卻會漏遮姓名、踩禁用詞;wrapper 層的錯誤也會把模型能力誤判成格式無能。因此艦隊裁撤必須同時看能力、安全,以及可維護的介面數量。
07-25|Windows 裝置橫向比較:RTX 4060 Ti 16GB 跑得動什麼
16GB 顯存的天花板,決定了此裝置只能是常駐服務,不能是重活主力。 在這張卡上,gpt-oss:20b 是速度與能力平衡最好的一顆;更大的模型要嘛塞不下,要嘛得 offload 拖速。
做了什麼
Windows 裝置實測每秒 token 數:gemma4 為 72 到 74(速度王)、gpt-oss:20b 為 66.7、qwen3.5:9b 為 48、qwythos-eval 為 42.5、cellergy35:v2 為 30(全場最慢,且五題全未交件)。gpt-oss:20b 五題全交件、輸出裸乾淨、Apache 授權乾淨,定為 Windows 裝置主力;Hermes 的 config.yaml 由 cellergy35:v2 切換過去。
thinking 模型的「空回應」被確認是 API 處理假象:思考吃光 450 的 budget,並非能力缺陷。Windows 鐵坑也現身:PowerShell 5.1 的 Get-Content 預設編碼把中文設定檔以 cp950 誤讀寫回,設定損毀後 Hermes 靜默回退預設,所以修法一律改走 .NET UTF-8 API。16GB 顯存天花板的結論因此很清楚:重活走 Mac M4 Pro 48GB,Windows 裝置定位為常駐服務。
學到什麼
平台編碼與 API budget 會製造「假能力缺陷」,所以 Windows 裝置與 Mac 的角色應該切開,別用同一套期望去評同一張排行。
16GB 顯存上的「能常駐」與 48GB 上的「能扛重活」,本來就不該搶同一張排行的同一個名次。 平台角色切開之後,速度與能力的取捨才讀得懂。
07-28|大樣本複測:n=30 排出來的排行錯在哪
每道基準只跑 30 題,信賴區間寬到正負 13 至 17 個百分點,足以讓兩顆模型的名次憑運氣互換。 補到 1000 題之後,有一格直接位移了 20.5 個百分點,落在舊區間之外。

做了什麼
mathqa 這道基準作廢。supergemma4 的 mathqa 在 n=300 只有 8.7%(五選一亂猜是 20%)。拆逐題 JSON 後:空白預測 159 題(300 題中佔 53.0%)、raw_response 硬天花板 603 字元、結尾非完整句佔 80.7%;答對的 26 題,典型回應就是單一字母 "A"。

跨模型分界線很清楚:吐單一字母者(中位長度為 1)拿 43 到 93 分;吐解題過程者(中位長度 350 以上)拿 8.7 到 23.3 分。反證是同一顆 supergemma4 的 gsm8k 在 n=100 為 90.0%。量尺壞了,不是能力差。
supergemma4 被 n=30 低估:mmlu 從 60.0 升到 80.5(n=1000,多 20.5 百分點,落在舊 95% 信賴區間之外);arc 從 86.7 升到 95.0(n=300,多 8.3 百分點,亦落在區間外);cmmlu 從 56.7 升到 69.7;truthfulqa 從 86.7 降到 81.3;humaneval 從 96.7 降到 94.5;gsm8k 維持 90.0。
對照 gpt-oss 三格幾乎不動(mmlu 83.3 到 82.9、hellaswag 83.3 到 83.0、gsm8k 96.7 到 95.0,誤差小於 2 百分點),但那是運氣好:n=30 的信賴區間一樣寬達正負 13 到 17 百分點,不能拿來論證 n=30 夠用。同題配對 McNemar(完全相同題目)結果:mmlu 的 p 為 0.086、hellaswag 的 p 為 0.216、gsm8k 的 p 為 0.074,三道全部不顯著。gpt-oss 為此付出 mmlu 每題 6.95 秒,對上 supergemma4 的每題 0.92 秒,約 7.5 倍推理時間(hellaswag 則是 11.2 倍)。
生醫子集(13 科共同 179 題):gpt-oss 答對 144 題(80.4%),supergemma4 答對 141 題(78.8%),只差 3 題,可視為等價。
去掉 mathqa 後,共同 6 基準排名重洗:OptiQ 81.1(第 1)、supergemma4 79.2(第 2,原第 5,上升 15.9)、gpt-oss 78.2(第 3,原第 1)。但新表仍不是定論:除 supergemma4 與 gpt-oss 外,其餘七顆全部還是 n=30;第 1 名的 OptiQ 一格未複測。
cmmlu 分科撕裂(supergemma4)更關鍵:modern_chinese 為 0.00、elementary_chinese 為 0.29、chinese_literature 為 0.40,但 chinese_food_culture、driving_rule、foreign_policy 皆為 1.00。它答得出中文世界的事實,答不出中文這個語言;繁中寫作與潤飾一律不該用它。同理,OptiQ 的 cmmlu 83.3 若要坐實「繁中主力」,也必須看分科,而它只有 n=30,等於沒資料。
建議暫停清退 supergemma4;但它是 uncensored 微調版,安全對齊被削弱過,這才是不能無條件當主力的真實理由,與能力無關。
學到什麼
小樣本排名可以整段翻案。格式遵從度會偽裝成能力缺陷,均值會掩蓋分科撕裂;未複測的第 1 名,證據未必比被低估的第 5 名更厚。
pi 與本地 LLM 目前的決策:誰能碰敏感資料
涉及個資與病歷時,本機通道是唯一合法通道,而且不是隨便哪顆本機模型都行。 會漏遮姓名的那顆,即使基準分數更高,也不准進這條路徑。

pi 的定位在 2026-07-16 由契約者調序:敏感與個資本地處理專責,以及斷網兜底;外包序落在末位(grok 與 codex,再到 agy,再到 subagent,最後才是 pi)。一旦涉及敏感資料,它是唯一合法通道。
pi 本機模型為 Qwen3.6-27B-OptiQ,走 oMLX 本機埠 127.0.0.1:8090。敏感呼叫必須明寫:
pi --provider omlx --model qwen36-27b-optiq
工作區內裸打 pi 會走本機 gpt-oss-20b,而 gpt-oss 會漏遮姓名。實測耗時大致為:關閉工具與 thinking 約 16 秒;只關閉 thinking 約 24 秒;加上工作區內唯讀(會吃 AGENTS.md 上下文)約 56 秒。
pi 四條紅線:
- 禁帶契約約束的代碼實作(實測會偷加 import)。
- 不可當守門員(無矛盾偵測能力)。
- 結構化輸出一律使用
--schema或--json-object。 - 禁承接文獻檢索與引用生成:pi 的
web_search回傳"includeContent": false,是摘要器不是檢索器;來源內容從未取回,模型把一段泛論逐條分配到各網址,文獻識別碼全真、內容全假。這是結構性失效,換模型無效。
高風險病歷去識別採三段式鐵律:先由 OptiQ 首輪遮罩,再以規則式正規表示式掃描個資(確定性後備),最後由 OptiQ 做殘留複查。單模單輪不可靠:OptiQ 在溫度為 0 時仍非決定性漏遮過一次;至於 gpt-oss,嚴禁引入敏感路徑。
契約遵從是機率性的,不是模型固有屬性,所以落地前的契約掃描永遠不可省。這也是《模型夠強了,本地 AI Agent 為何仍不穩》換場景後再次成立的同一結論。
pi 不能取代 hermes(2026-07-25 三輪研究後定案):兩者不同層。pi 是 coding-agent 命令列介面,刻意不做常駐多頻道;hermes 是常駐 gateway 殼。pi 無 webhook 一等公民,LINE 窮盡查無現成擴充。減少 harness 蔓延的真槓桿不是換技術,而是砍掉死掉的 hermes 分身。
三條可推廣的教訓
1. 量尺先於模型
mathqa 在 n=300 只有 8.7%,低於五選一亂猜;空白預測過半、硬天花板 603 字元、答對題多半是單一字母。Bonsai 的選擇題空預測、thinking 撞 max_tokens,以及 07-05 的 HTTP 200 零加速,都指向同一件事:先懷疑 harness 與觀測層,再懷疑模型。未修的量尺,會把整排模型一起判錯。
2. 小樣本排名是暫用標籤
n=30 的信賴區間可寬到正負 13 到 17 百分點;supergemma4 的 mmlu 從 60.0 到 80.5,位移落在舊區間外。去掉 mathqa 後,排名從「gpt-oss 第一、supergemma4 第五」變成「OptiQ、supergemma4、gpt-oss」。McNemar 在相同題目上又不顯著,說明速度差(7.5 倍、11.2 倍)才是日常更該算的帳。任何「第 N 名」在未補大樣本前,都只是作業假設,不是結論。
3. 能力均值不能替代路徑分工
gpt-oss 能當 windows 裝置主力與矛盾偵測勝場,卻不能進敏感去識別;OptiQ 中文與遮罩較穩,卻仍需正規表示式後備與複查;supergemma4 能力被低估後仍因 uncensored 而不能無條件當主力;cmmlu 分科顯示「懂中文世界事實」不等於「能寫繁中」。路由要依任務風險切開,不能用一張均值表決定所有路徑。
未結的帳
本月把排名推倒重建,但帳本還沒關:
- mathqa harness 未修(提高 max token,或改為抽取最後出現的選項字母);4 顆 gemma 系的歷史誤判尚未校正。
- OptiQ 是修正後第 1 名,卻是全場證據最薄的一顆(全為 n=30),尤其 modern_chinese 與 elementary_chinese 分科等於沒資料。
- livecodebench 完全沒有大樣本複測,且是唯一所有模型都低分(13 到 53)的基準,最可能藏有與 mathqa 同型的缺陷。
- 契約遵從度與
--schema穩定性的系統性補測(07-24 舊帳)至今未做;mathqa 事件已證明,格式遵從度會偽裝成能力缺陷。
排名可以先建、再推翻。未結的帳若繼續拖,下一輪「定案」仍有機會再次被自己的數據拆掉;帳沒結清之前,任何新排名都先當暫用。
你可以怎麼用這篇
如果你手上也有一台跑本地模型的機器,我建議你先做三件事,順序不要換:
- 打開你跑分結果的逐題原始檔,看空白預測率與回應長度分布。分數之前,先確認題目真的被答完了。
- 算一下你的樣本量撐得起多寬的信賴區間。30 題排出來的名次,禁不起任何一次複測。
- 把敏感任務的通道獨立出來,用規則式掃描當確定性後備,不要押在單一模型的單輪輸出上。
免費下載:跑分自檢清單與空白預測率腳本
我把上面三步收成一份可勾選的清單,並附一支讀取逐題 JSON、回報空白預測率與長度分布的小腳本,兩份都在資源頁上,不用註冊也不用留信箱:
python3 blank_prediction_audit.py /path/to/your_result.json
本篇屬 Claude Code Masterclass 系列。本地模型與雲端的等級對照,讀《一台 Mac 上的本地 LLM,等級約當雲端哪一代》;模型夠強之後系統為何仍會抖,讀《模型夠強了,本地 AI Agent 為何仍不穩》。
常見問題整理在同資料夾的 FAQ。下一輪等我把 mathqa 的量尺修好,會回頭補一篇全艦隊重測。
常見問題
本地模型跑分能不能信?
不能把單次小樣本排名當定論。本文先以 n=30 排出九模型榜,月底補大樣本後整張名次重洗;supergemma4 的 mmlu 從 60.0 升到 80.5(n=1000),已落在舊 95% 信賴區間之外。量尺本身也可能壞掉:mathqa 在 n=300 只有 8.7%,低於五選一亂猜的 20%,是格式與截斷問題,不是能力全貌。實務上應先懷疑 harness 與觀測層,再懷疑模型。
基準測試的 n 要多少才夠?
n=30 的信賴區間可寬到正負 13 到 17 百分點,只夠當作業假設,不夠論證誰第一。本文在 n=100 到 1000 複測後,多項分數整段位移;去掉 mathqa 後,排名從「gpt-oss 第一、supergemma4 第五」變成「OptiQ、supergemma4、gpt-oss」。同題配對 McNemar 在 mmlu、hellaswag、gsm8k 上又不顯著,說明小樣本名次差不一定代表真差距。未補大樣本前,任何「第 N 名」都應標成暫用標籤。
mathqa 為什麼會低於亂猜?
supergemma4 的 mathqa 在 n=300 只有 8.7%,五選一亂猜約 20%。拆逐題後,空白預測佔 53.0%、raw_response 硬天花板 603 字元、結尾非完整句佔 80.7%;答對的 26 題多半是單一字母 `"A"`。跨模型更刺眼:吐單一字母者拿 43 到 93 分,吐長解題過程者只拿 8.7 到 23.3 分。同一顆模型的 gsm8k 在 n=100 仍有 90.0%,反證是量尺壞了,不是模型不會算。
敏感資料能不能交給本地模型?
可以,但必須走專用路徑,不能看基準均值就全開。文章定案:敏感與個資只走本機 pi,模型為 Qwen3.6-27B-OptiQ;必須明寫 `pi --provider omlx --model qwen36-27b-optiq`,裸打 pi 會落到 gpt-oss-20b。gpt-oss 在敏感去識別實測會漏遮醫師姓名,嚴禁引入敏感路徑。高風險病歷採三段式:OptiQ 首輪遮罩、規則式正規表示式掃描、再由 OptiQ 殘留複查;單模單輪不可靠。
gpt-oss-20b 和 OptiQ(27B)差在哪?
兩者不是「誰全面更強」,而是路徑分工。九模型小樣本時 gpt-oss 均值第一,去掉 mathqa 後 OptiQ 以 81.1 居首、gpt-oss 78.2 第三;但 OptiQ 全為 n=30,證據最薄。pi 六探針上:gpt-oss 漏遮姓名、踩繁中禁用詞,卻是矛盾偵測唯一勝場;OptiQ 中文與遮罩較穩(cmmlu 83.3),仍需正規表示式後備。Windows 裝置定 gpt-oss:20b 為主力;家用敏感與繁中寫作則優先 OptiQ,且 cmmlu 分科未複測前不宜過度宣稱。