iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0

這輪鐵人賽已接近尾聲,我們的一系列實驗都圍繞在 Qwen 3 0.6B 的推理模型上,然而目前早已出到 Qwen 3.8 版本,那麼目前最新以及最主流的 Qwen 架構和我們使用的 Qwen 3 有何不同?是否能解決我們遇到的推理失敗的問題?

在第一輪 2,048 組 method-trials 跑完後,理論上保存了完整推理過程、遇到相同 key 就取最後一個 value 的 baseline,準確率竟然只有 0.9966–0.9995。這個方法什麼都沒有壓縮,照理說不該忘記任何一筆資料,但還是在某些情況下會答錯。

這個問題是出在我替相同分數加入的 1e-7 recency bonus,在接近 1.0 時,float32 相鄰兩個可表示數值大約差 1.19e-7;這個 bonus 有時會被捨入吃掉,原本想讓最新資料勝出的 tie-break,實際上仍可能選到較早的紀錄。

把 baseline 改成直接比對完全相等的 key,並明確取最後一筆,其餘隨機種子、矩陣方法與 gate 都沒有變,完整推理過程的準確率這才回到 1.000。這個問題也剛好說明了經典 transformer 架構會面對的問題:完整保留過去最容易做精確查找,但上下文愈長,模型必須保存的資料也愈多;若把歷史壓進固定大小的狀態,記憶體不再跟著序列成長,覆寫與干擾便會變成新的麻煩。

標準 self-attention 會把每個 token 投影成 query、key 與 value。生成到第 t 個 token 時,新的 query 和先前所有 key 比對,再依分數取回對應的 value;逐 token 解碼可以用 KV cache 避免重算前文,cache 本身依然會隨上下文線性增長。一次讀入長序列時,最直觀的 attention matrix 還會隨序列長度呈平方成長。

線性注意力解決這問題的方法,是在序列經過時持續更新一個固定維度的矩陣狀態 S。省略正規化與 feature map 後,最簡單的 additive update 可以寫成:

寫入:S_t = S_(t-1) + v_t k_t^T
讀取:y_t = S_t q_t

不論前面經過一千或十萬個 token,S 的尺寸都由 key 與 value 的維度決定。代價是它留下來的已經不是原始 key-value pairs,而是許多關係疊在一起的統計狀態;兩個相近的 key 會互相干擾,同一個 key 後來換了 value,舊答案也不會自己從矩陣裡消失。

Delta rule 會先用目前的狀態預測 k_t 對應的 value,再把預測和新資料之間的差額寫回去:

舊預測:v_hat_t = S_(t-1) k_t
誤差:  error_t = v_t - v_hat_t
更新:  S_t = alpha_t S_(t-1) + beta_t error_t k_t^T

如果同一個 key 昨天對應 A、今天改成 B,單純累加會把 A 與 B 都留在狀態裡;delta update 先讀出自己仍預測 A,再沿著那個 key 的方向補上 A 到 B 的差額。beta_t 控制這次寫入的強度,alpha_t 則決定舊狀態保留多少。Gated DeltaNet將 delta update 與資料依賴的 gating 接在一起,讓模型可以針對內容調整寫入與遺忘。

Qwen 3.5 開始所採用的架構裡,實際使用的 Gated DeltaNet 還有多個 head、短卷積、正規化,以及為 GPU 設計的平行演算法;上面三行只說明 recurrent state 如何改寫,沒有重現完整實作。

這套設計先在 2025 年 9 月的 Qwen3-Next 公開,Qwen 團隊測到的結果是:線性注意力比較省,精確 recall 較弱;標準 attention 能保留 token-level retrieval,長上下文的推論成本則高得多。最後使用三層 Gated DeltaNet 配一層 Gated Attention,混合堆疊勝過他們測試的純線性與純標準 attention(特別注意的是,他們並沒有把 full attention 全部換掉);當時的文章結尾也預告,這套架構會繼續發展成 Qwen3.5。

到了 Qwen3.5,這個預告成為正式骨幹。不妨檢查官方 Qwen3.5-9B 的設定檔,其中 32 層文字模型裡有 24 層 linear_attention、8 層 full_attention官方 model card列出的結構就是八次重複以下順序:

Gated DeltaNet → Gated DeltaNet → Gated DeltaNet → Gated Attention

三層負責把一路經過的資訊壓進固定狀態,第四層仍可對完整上下文做 attention。它並不保證前面遺失的細節一定會被找回,畢竟資訊已經歷多層 hidden states 的變換;三比一背後的考量則是因為大部分層先採用成本較低的 recurrent memory,需要精確檢索時再保留 full attention 的路徑。

回到這系列鐵人賽的小實驗,這裡使用 32 維 key 與 16 類 one-hot value,序列中一半的寫入會覆蓋曾經出現的 key,查詢時則要求模型交出該 key 最後一次對應的 value。序列長度設為 64、128、256、512,每個長度跑 128 次,比較完整歷史、單純累加矩陣、delta rule,以及固定 alpha=0.99 的衰減式 delta rule。

最新值 top-1 accuracy

序列長度              64      128      256      512
完整歷史            1.000    1.000    1.000    1.000
單純累加            0.572    0.474    0.342    0.250
Delta rule          0.793    0.505    0.293    0.183
固定衰減 Delta      0.712    0.450    0.266    0.169

長度 64 時,delta rule 把單純累加的 0.572 提高到 0.793,覆寫舊 value 確實比較有效;序列拉到 512,固定大小的矩陣得收納愈來愈多 key-value 關係,三種壓縮方法全都下降,單純累加反而以 0.250 高於 delta 的 0.183。Delta rule 解決了更新方式,沒有替有限容量變出額外空間。

記憶體的結果則完全相反,完整歷程的 state 從 12,288 bytes 增加到 98,304 bytes,三種矩陣方法在四個序列長度都維持 2,048 bytes;到了長度 512,完整歷程用了 48 倍空間,換回 1.000 的 latest-value retrieval。

如果改看均方誤差,排名又有不同:長度 512 時,單純累加是 1.109,delta 是 0.110,衰減式 delta 更低到 0.090。後兩者產生的連續值離目標更近,在 one-hot argmax 上卻更常把第一名交給錯誤類別;固定衰減也改善了 MSE,沒有改善 top-1 accuracy。

有趣的是,「三比一」這個比例和想法很快也出現在其他模型。Kimi Linear提出的 Kimi Delta Attention(KDA)以更細粒度的 gating 擴充 Gated DeltaNet,再和 Multi-Head Latent Attention 混合;官方公布的 Kimi K3共有 69 層 KDA 與 24 層 Gated MLA,依然接近三比一。KDA 與 Qwen 的 Gated DeltaNet 屬於同一家族,gate、state transition 與 kernel 並不是同一個模組。

GLM 起初走的是另一條路。GLM-5.3沿用 GLM-5.2 的 base model 與 DeepSeek Sparse Attention,透過 indexer 從長上下文挑出少數位置;三天前公開的 GLM-5.3-Flash,才首次在 GLM 系列把線性與稀疏注意力排進同一個 stack,官方設定是 34 層 KDA 配 11 層 sparse attention。同一天發布的 Qwen3.8-Flash-Next也保留三比一骨架,並用 Qwen Sparse Attention 取代原本的全域 attention。中國廠商在這件事上確實頗有志一同,但共同目標是降低長上下文成本,做法仍有差別。

線性注意力:歷史 → 壓進固定狀態 → 讀取濃縮記憶
稀疏注意力:歷史 → indexer 選少數位置 → 精確讀取
稀疏 MoE:   token → router 選少數 experts → 執行 FFN

Qwen3.5 家族公告裡的 sparse MoE 發生在大型 MoE checkpoints 的 expert routing,本文核對三比一層序所用的 9B 則是 dense model。線性注意力與稀疏注意力都在處理 token history,sparse MoE 處理的是每個 token 要經過哪些 FFN experts,這些都被稱為「稀疏架構」還是有所不同,但無論如何,相比於最經典的架構,混合 attention 在上下文和完整歷程的保存和回憶上,確實處理得更好,能吃得下一百萬個 tokens 已經是當代模型普遍具備的能力了。


上一篇
工具逾時、程式中斷、答案被拒,推理系統還能繼續嗎?
下一篇
當 AI 交出反例與新定理,誰來確認它真的成立?
系列文
模型真的會推理嗎?30 天從 Base Model 打造可驗證的小型推理模型30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言