Files

3.0 KiB
Raw Permalink Blame History

Q/K 未旋转维度的确定性增益合并(已数值验证,归为重参数化)

这是从已核对架构直接推导的恒等式,不是看留出指标后扩大近邻搜索。 原定 11 对候选保留原协议;本项是独立的解析对照,不训练、不求 R,也不选择层。 预先固定完整网络干预层为第 3 层,分别验证两个移动方向;不根据数据换层。

恒等式与前提

以完成 RMS 单位化、尚未乘可学习增益的 q/k 为 u/v,Q/K 增益向量为 a/b。 固定 checkpoint 的 norm 参数实际使用 a=1+w_Q,b=1+w_K。 模型 head_dim=256,partial_rotary_factor=0.25:前 64 维旋转,后 192 维不旋转。 逐头共享的增益向量与 GQA 结构已由官方代码确认。

对于后 192 维,任意 query/key 位置 p/s:

sum_j (a_j u_pj)(b_j v_sj) = sum_j u_pj ((a_j b_j) v_sj) = sum_j ((a_j b_j) u_pj) v_sj。

前 64 维保留原增益和位置旋转。因而完整 QK 点积在实数算术中相等,softmax、V、 输出门控和 O 不变时,完整 attention 分支也是同一个函数。这个结论不依赖某一输入分布。 浮点乘法次序改变,不能承诺逐 bit 相等;需报告实际误差并验证留出 NLL。 不能把这一规则用于旋转维度,或未经核对的逐头独立增益架构。

验证与成本边界

  1. 在已有真实 q/k 输入上,检查 6 个 full-attention 层的原始/两个合并方向分数、概率及输出。
  2. 固定第 3 层进行两个方向的独立网络替换,不叠加,使用原留出文本和质量阈值。
  3. 记录预先缓存增益后、相同 CPU 环境下原版与合并版局部归一化耗时;不外推 GPU 性能。
  4. 双精度数学推导和 FP32 实测分开。没有消除 Q/K 投影或 RMS 方差计算。

将 Q 的未旋转增益移入 K 时,每 token、每层少做 8×192=1,536 次逐元素增益乘法; 反方向少做 2×192=384 次。它们只是归一化里的小部分操作,不是整个模型的百分比加速。 NumPy 切片/拼接可能抵消这点收益,必须报告测得的局部时延。

参数量从两个 256 维增益变为两个 64 维旋转增益及一个 192 维联合增益,即 512→320 个数。 但原增益以 BF16 存储、联合乘积以 FP32 保留时,载荷仍是 1,024 字节,没有 checkpoint 净压缩;元数据还可能增加。FP32 运行时缓存增益的理论载荷 2,048→1,280 字节, 不等于已测得整个模型 RSS 降低。另行 BF16 量化乘积会增加误差,不属于本次恒等式验证。

这是同一注意力计算内部的重参数化与冗余消除,不是两个现成 attention 层能互换的证明。 若得到正例,应将它作为小粒度确定性优化机会;较大模块互换仍由原候选试验单独回答。

完成状态

96 组真实输入分数/概率检查及固定第3层双向网络检查均通过。 该结果独立归类;主目标的已训练函数重复正例见 CPU 功能结论。