Change the Product, Keep the Parameters: Associative Algebra Layers for Transformers
Ilya Koziev, Ivan Oseledets
cs.LG, cs.PF
2026-09-27
FFN改用结合代数积,参数不变。110M、12.3B token下吞吐高6.2–7.8%,三项下游全低于稠密基线。
Transformer 反复做 Y = XW。特征维切成组之后,这就是一组矩形 GEMM(通用矩阵乘):哪块激活乘哪块权重,由行乘列规则钉死;学到的只是那些权重的数值。Strassen 一类工作把这条规则当常量,只换更便宜的求值算法,目标仍是普通矩阵乘。
隐层和周围层一起学,中间那个积有没有必要仍是普通矩阵乘?这篇换成一张更便宜、仍能跨层复合的稀疏乘法表,权重块一个都不扔。
Tensor Train、Monarch 砍的是参数存储;MatMul-free 砍的是稠密乘本身。这里参数量仍是 din × dout,变的是哪几对块允许相乘。
乘法表来自一张有向图。对角槽是顶点,保留的非对角槽是边,边与边的积一律为零。q 个特征组的完全图给出乘法 Qq:对角只乘自己那一组;非对角是源组对角块乘边块,再加上边块乘目标组对角块。
q = 2 时普通 2×2 分块乘要 8 次 GEMM,这张表只要 6 次。Alder-Strassen 定理给有限维结合幺代数(带单位元且满足 (ab)c = a(bc) 的乘法)的双线性秩下界:精确计算这个积最少要几次标量乘。这张表恰好打到 6,不能再少。一般地 R(Qq) = 2q² − q,相对稠密的算术比例 ρq = (2q − 1)/q²。q 越大,每次前向用到的块乘越少,每个位置能碰到的跨组交互也越窄。
固定权重 W,映射 ΦW(X) = X ⋆ W 满足 ΦW2 ∘ ΦW1 = Φ(W1 ⋆ W2),两层同类线性映射合成后还在同一族里。单位元保证每个权重块都能改输出。
落到 Transformer 上,每个 token 按绝对位置分到一个行类型,只算乘法表的一行。训练时所有行类型并行;自回归解码只算新位置那一行,KV cache 照旧。因果性由行局部投影加三角注意力掩码保证。
预训练试点用两群定律的张量平方 Q⊗22:16 维坐标、36 次显式块乘,等宽分组下 FFN 投影 MAC 比例是 9/16。它和直接的四群定律 Q4 不同构。注意力、词嵌入、LM head 两边都仍稠密。物理块大小 b 固定、让 q 随边长涨,方阵算术可降到 Θ(n²)。这是复杂度陈述,质量会不会跟着保,论文没测。
核级投影在 H200 NVL 上用合成 BF16 张量测,不含激活融合,对照是校准后更快的 cuBLAS/cuBLASLt 路径。按热缓存中位数选 q:
| 形状 | M | q | 热缓存 / 冲缓存 |
| Qwen3-1.7B | 2048 | 32 | 3.04× / 2.84× |
| Qwen3-8B | 2048 | 32 | 5.04× / 4.52× |
| Qwen3-32B | 32768 | 256 | 11.51× / 11.70× |
| Qwen3-30B-A3B expert | 2048 | 16 | 1.57× / 1.30× |
固定块大小方阵乘更极端:n = 32768、b = 128 时热缓存 39.85×。这些是孤立投影核,不是端到端 Transformer。完整 SwiGLU 前向在 Qwen3-8B、M = 2048、q = 32 时仍有 4.17×。反向在 Qwen3-30B-A3B expert 上掉到 0.65× / 0.57×,比稠密还慢。
两个 decoder-only 模型各 110,631,168 参数,12 层、宽度 768、32 头、上下文 1536、GPT-2 词表,SwiGLU 中间维 1536。同一配方、同一指令数据混合物、各 12.3B token、两张 H100。唯一差别是 FFN 投影:一边稠密乘,一边 Q⊗22。注意力保持稠密。
生成吞吐含分词和采样,每域 100 条 prompt:
| 域 | 稠密 tok/s | 代数 tok/s | 增益 |
| Code | 987.8 | 1054.5 | 6.8% |
| Math | 991.4 | 1060.6 | 7.0% |
| QA | 958.6 | 1033.1 | 7.8% |
| WMT ru–en | 985.9 | 1047.1 | 6.2% |
四域吞吐比无加权均值 1.070。下游三项全掉:
| 任务 | 指标 | 稠密 | 代数 |
| GSM8K (5-shot) | EM, flexible | 3.18 | 2.20 |
| IFEval (0-shot) | Instance, loose | 34.5 | 31.1 |
| MBPP (0-shot) | pass@1 | 6.60 | 3.80 |
差距分别是 0.98、3.4、2.8 点。110M 加 12.3B token 下绝对值都低,方向一致:更快,也更弱。论文把这组结果定位成小规模可训练性检查。
乘法表可以当成架构超参。Strassen 路线在普通矩阵乘上抠常数;这里允许换积本身,并用 Alder-Strassen 证明这张图乘法的双线性秩最优。参数一个不减,稀疏来自固定的类型依赖交互,不是内容路由的 MoE。
核级加速在大形状上站得住。Qwen3-8B 量级扩展投影约 5×,Qwen3-32B 大批次可到 11×。端到端生成只剩 6–8%,因为注意力、LM head、采样、分词和访存把 FFN 的 9/16 算术节省稀释了。试点配置下单个 decoder block 的投影占比是 59/80。解码是矩阵–向量,另写 kernel。
同参数、同数据、同步数,更快换来三项全掉。110M 本身就弱,缺口还没有用更大模型或更多 seed 复验。代数注意力的打分和 cache 规则写在附录,实验没用。和 TT、Monarch 比,这条路保的是参数个数,砍的是每次前向真正执行的块乘次数。
论文自己列得很清楚:一种递归 FFN 定律、一个尺度、每个模型一次训练。更大代数、代数注意力、更大模型、重复 seed 都没测。投影基准用合成张量;评测标准误量的是题目抽样,不是训练波动。生成长度两边不同,代码回复均值 195.5 对 182.4 token,吞吐差里掺了工作负载差,要隔离层效果得做定长全模型计时。
还有几处站不稳。Qwen3-30B-A3B expert 的前向加梯度在窄专家 FFN(D = 2048,F = 768)上比稠密慢,算术节省会被过小的叶子 GEMM 吃掉。GSM8K 标准误是 0.48 和 0.40 点,0.98 点差距大约一个半标准误,当作稳定质量代价偏满。结合律保证复合封闭,不保证表达力或样本效率;等参存储对应的是不同函数类。论文也写了:结果不支持同质量或同训练时间下的优势。