雙位元與三位元權重交換
洞察
在循環 transformer 中,早期迭代修正粗略表示 — 不需要完整精度。晚期迭代微調最終輸出 — 受益於更高精度。透過每迭代分派不同位寬,在重要的地方以頻寬換品質。
雙位元:INT2 + INT4
載入時將 INT4 loop block 複製並重新量化為 INT2:
三位元:INT8 + INT2 + INT4
在迭代 0 加入 INT8 副本 — 初始表示形成的最高靈敏度迭代。
實測結果
H100 / 2B INT4,L=8,16 decode tokens:
| 設定 | 解碼 (ms) | 吞吐量 | vs 基準 |
|---|---|---|---|
| 基準 (INT4) | 86.9 | 184 tok/s | — |
| 雙位元 (INT2+INT4) | 86.2 | 186 tok/s | 快 0.8% |
| 三位元 (INT8+INT2+INT4) | 91.2 | 175 tok/s | 慢 5% |
使用方式
# 雙位元
TINYLOOP_DUAL_BIT=1 TINYLOOP_DUAL_BIT_SWITCH=3 \
tinyloop model.tinyloop generate --loops 8
# 三位元
TINYLOOP_DUAL_BIT=1 TINYLOOP_TRIPLE_BIT=1 \
tinyloop model.tinyloop generate --loops 8
為何僅限 Looped 架構
在標準 transformer 中,每層變化精度需要每層每位寬的獨立量化權重副本 — 24 層 × 3 位寬 = 72 組權重。在循環 transformer 中,無論執行多少迭代,只需 2-3 份單一 loop block 的副本。