# 策展 · X (Twitter) 🔥

> 作者：Tom Turney (@no_stp_on_snek) · 平台：X (Twitter) · 日期：2026-04-25

> 原始來源：https://x.com/no_stp_on_snek/article/2047904901053698301

## 中文摘要

花費週末嘗試在「Qwen3.6」實現推測解碼，撞上GDN架構天花板。

作者花費5天執行31項實驗，試圖在Apple Silicon上透過僅runtime方式加速「Qwen3.6」解碼，無需額外模型、下載或訓練，卻屢屢碰壁，最終確認GDN混合架構的理論上限僅1.33x加速。

**實驗1：直接跳過層數生成草稿**

使用目標模型前K=10層作為快速草稿生成器，同樣權重但層數更少，理論上每token成本便宜4x。結果產生純亂碼（如「ofabah ofsworth...」），因無KV快取歷史，僅raw embedding通過10層，LM head未訓練讀取layer 10隱藏狀態，僅依賴運氣偶爾接受3.1/4 token。無上下文即全盤失敗。

**實驗2：為草稿提供獨立KV快取**

讓草稿生成器擁有KV快取，包含對話歷史。跳過層數與接受率：
- 跳1層：72%接受，1.8%計算節省
- 跳2層：35%接受，4%節省
- 跳4層：18%接受，8%節省
- 跳8層：3.4%接受，18%節省

遇雙重斷崖：LM head無法讀取中間狀態，接受率從72%崩至3%；節省需跳多層才顯著，但毀滅接受率。最佳skip-1仍0.80x，即20%比基線慢，無盈利配置。

**實驗3：線性對齊器校準LM head**

用prefill資料最小二乘擬合4M參數轉換矩陣W，將layer-K隱藏狀態對齊至layer-40。校準時skip-8從2.1%躍升15.9%，令人興奮。但解碼全0%，因prefill全位置同時可見，解碼僅左上下文，分布偏移嚴重，此為prefill-to-decode轉移學習常見死穴。

**實驗4：prefill狀態訓練草稿MLP**

2M參數MLP從隱藏狀態預測下個token，5 epochs達100%訓練準確率。但解碼僅1%，同樣分布偏移，完美校準無泛化。

**實驗5-6：解碼狀態訓練（EAGLE途徑）**

收集實際解碼隱藏狀態：
- 2K樣本：5-7%接受
- 100K樣本、59M參數、100 epochs：36%接受

確認資料與訓練時長關鍵，100K token x 100 epochs = 19,600梯度步，為單隱藏狀態上限。36%下N=4草稿估計1.6x加速，需50%才達2x。

**實驗7：端到端推測解碼實作**

整合36%草稿至「Qwen3.6-35B-A3B」：
- v1忽略Mamba狀態腐敗：1.68x但輸出垃圾，GDN層遞迴狀態在batch-verify拒絕token 3時，token 2後狀態混入token 3/4貢獻，產生幻覺。
- v2快照/還原Mamba狀態：0.49x（2x慢），需還原後逐一全模型重播接受token，每輪>=2全前向。
- v3快照+刷新：0.54x，同樣無法廉價回滾遞迴狀態，暴露架構天花板。

**GDN天花板：理論最大1.33x**

「Qwen3.5/3.6」75% GDN（遞迴）+25%全注意力，多token驗證：
- 注意力層並行，4 token等於1。
- GDN層順序，每token依賴前者，4 token成本4x。

驗證成本=0.25（並行）+0.75xN，N→∞、100%接受時最大加速=1/(0.25+0.75/N)=1.33x。36%接受N=4下有效0.6x（40%慢）。純注意力模型（如Llama、GPT）驗證N token成本等於1，上限Nx，完全不同經濟性。

**實驗8：獨立草稿模型**

建21.5M參數草稿，具自身GDN-like遞迴+注意力，獨立快取。仍垃圾輸出，非草稿快取問題，乃目標模型驗證時Mamba腐敗：部分拒絕後還原預驗證狀態，遺失接受token貢獻，KV/Mamba不一致導致退化。36%接受下P(all 4匹配)=1.7%，太稀少；「DFlash」85%接受P(all 8匹配)=27%，加權3.2x，證明高接受率為GDN推測解碼必要條件。

**實驗9-10：Medusa heads + 區塊擴散**

獨立預測頭及self-attention區塊擴散，全位置2-5%接受。單隱藏狀態預測8未來token近不可能，t+2強依賴t+1，但頭間無條件；垃圾初始預測無法精煉。

**實驗11：多層條件（首度亮點）**

非單h_t，而是7目標層[0,1,10,20,30,38,39]隱藏狀態，邊界加權（來自TurboQuant研究）。t+1從2.8%升13%（5x），t+2翻倍，但t+3+仍垃圾，訊號隨距離急衰。證明多層特徵正確方向，但實作欠訓練欠規模。

**實驗12：匹配z-lab架構（v4A）**

5目標條件層、GQA注意力、single-pass，406M參數、20K訓練token。結果全位置2-4%，嚴重欠訓練。

**實驗13：擴大至100K資料（v4B）**

同v4A、cosine LR，結果3-4%平坦。資料非瓶頸，需更多梯度步而非樣本。

**實驗14：KL蒸餾損失（v4C）**

頂64 logits T=2 KL散度取代cross-entropy。結果1-2%，更差；軟訊號稀釋梯度，草稿距目標太遠，需尖銳「正確token」回饋。

**實驗15：忠實DFlash架構（v5）**

KV注入、指數位置加權、anchor sampling。突破：全16位置13-15%平坦接受。但P(all 4匹配@15%)=0.05%，估計0.30x。

**實驗16：v5端到端測試**

實測throughput：0%連續接受，0.30x速度，單位置15%不轉化連續序列，純開銷。

**實驗17-18：使用z-lab預訓練草稿**

z-lab「3.5」草稿於「3.6」：67%接受、0.69x（31%慢），版本不轉移；「3.6」草稿（2000步WIP）：75%接受、0.92x（8%慢），z-lab尚未攻克「3.6」。

**實驗19：排程抽樣（v6）**

v5加scheduled sampling，teacher forcing從1.0衰至0.3。結果2-4%平坦、0.03%連續，更差；模型學保守對沖，非承諾，seq2seq技巧在此無效，因自身預測太差。

**實驗20-24：v5消融掃描**

系統消融：
- Exp20（8草稿層、多容量）：t+1 2.3%，更差過擬合。
- Exp21（8目標特徵、多條件）：t+1 2.7%，更差。
- Exp22（8層+8特徵）：t+1 2.7%，無改善。
- Exp23（60 epochs）：t+1 2.5%，飽和。
- Exp24（多樣測試prompt）：t+1 1.6%，最差，過擬合訓練風格。

20K token下，增容量/特徵惡化（過擬合），更多訓練飽和，瓶頸為資料規模+梯度步。

**實驗25-27：診斷與規劃**

- Exp25：top-k oracle，驗證正確token是否在前5/10。
- Exp26：單batch過擬合，驗證容量。
- Exp27：規模計劃（dropout、T=0.7抽樣），後續跳至Exp28。

**實驗28-29：完整z-lab配方從頭訓練**

目標模型生成800K token（117分鐘），474M參數、6 epochs。
- Run1：0.4%，遮罩bug讓模型複製輸入。
- Run2（修bug）：7.1%，優於v5但仍欠訓練。

**實驗30：MTP層作為零訓練草稿**

「Qwen3.6-35B-A3B」內建MTP（multi-token prediction）層，1.7GB bf16/475MB 4-bit。spiritbuun報「Qwen3.5」80%+接受，無訓練。手動提取權重，deep-copy層替換，但0%：專家權重格式不符（HF fused vs MLX split）、缺chat template、RoPE offset（需目標KV快取偏移）。停在forward pass bug，MTP覆蓋20-30%熱門模型，為最佳免訓練方案，僅需debug。

**實驗31：正確架構+規模仍失效**

bstnxbt「DFlashDraftModel」（gated Q attention），474M參數、800K token、12 epochs、12,624梯度步，loss從29.3降0.008。接受僅0.6%，更差於v5；模式崩潰，永遠預測常見「Qwen3.6」前綴「 a」「 thinking」「 process」:」，邊際分布主宰，忽略目標特徵。驗證架構可行：20樣本過擬合98%、z-lab權重微調50步100%。差距在訓練動態，單位置特徵在大規模下不足以強迫學習特徵映射。

**bstnxbt/dflash-mlx啟發**

其tape-replay回滾解決Mamba腐敗：驗證記錄「innovation tape」（delta、keys、gates），拒絕時還原快照，僅重播接受步驟via自訂Metal kernel，成本O(n_accepted)。M5 Max基準（z-lab預訓練）：
- 「Qwen3.5-4B」：3.69x
- 「Qwen3.5-9B」：4.10x
- 「Qwen3.5-35B MoE」：1.74x
- 「Qwen3.6-35B MoE」：2.20x（更新草稿）

35B MoE符天花板分析，小模型獲益大。

**z-lab配方（逆向工程）**

config.json及碼：
- 500M參數草稿（8層、2048隱藏、GQA 32Q/4KV）
- 非目標頭，乃獨立小transformer
- 5目標層[1,10,19,28,37]
- KV注入：目標特徵投影至草稿K/V，串接自身
- 800K目標模型生成樣本（消除分布偏移）
- AdamW 6e-4、cosine、6 epochs、~300K梯度步
- 共享embedding+LM head（凍結）
- 16-token區塊雙向注意力（無causal mask）

作者v5僅438K參數，z-lab大1000x。

**TurboQuant可轉移洞見**

1. K >> V：K決定softmax路由（指數放大），V線性誤差，草稿優先K忠實。
2. 邊界層特殊：首2+末2層資訊不成比例，多層條件過採樣邊界。
3. 簡化優於複雜：移除QJL改善品質。
4. 32K上下文90%注意力稀疏，長上下文草稿任務更易，區塊擴散優於自迴歸。
5. 家族誤差放大異：Llama敏感6-8x於Qwen，一架構不通用。

**目前可行方案**

- bstnxbt/dflash-mlx + z-lab預訓練：88%接受、「Qwen3.5」2-4x加速
- 架構證實（過擬合98%）
- 訓練管線運作（資料生成、快取、正確類別）
- tape-replay解GDN腐敗

**尚未可行**

- 消費硬體從頭訓練：需100K+梯度步，M5 Max數日
- 訓練單位置上下文：忽略特徵，預測常序列
- 貪婪資料生成：模式崩潰
- 跨版本轉移：「3.5」草稿不適「3.6」

**未來路徑**

1. MTP：Qwen/DeepSeek零訓練80%+，僅需forward pass。
2. 微調z-lab草稿：從預訓練適配Config-I量化或新版，省訓練。
3. 小草稿：50M參數收斂10x快，交換接受上限，純注意力模型36%已1.6x。
4. 分散訓練：叢集存取下全z-lab配方可行。

核心教訓：GDN/Mamba混合上限遠低純注意力（~1.33x理論max，因遞迴驗證成本），勿浪費一週如作者。31實驗多失敗，卻精準定位天花板與成因，知「不該建何物」最有價值。

論文（DFlash）：https://arxiv.org/abs/2602.06036  
運作MLX實作：https://github.com/bstnxbt/dflash-mlx @bstnxbt  
z-lab預訓練草稿：https://huggingface.co/z-lab

## 標籤

LLM, 研究論文, 其他, Qwen, Apple
