87 lines
5.5 KiB
Markdown
87 lines
5.5 KiB
Markdown
# CPU 先导结论:存在已训练归一化模块的相似功能重复
|
||
|
||
本轮主目标按用户最新要求为功能重复的存在性,不以成本/加速为成功条件。
|
||
全部计算在 2 核、约 1.7 GiB RAM 的 CPU 服务器完成,无训练、缩放拟合或旋转搜索。
|
||
层编号均为从 0 开始的索引。
|
||
|
||
## 一个具体正例
|
||
|
||
固定官方 Qwen3.5-2B checkpoint 的两个独立已训练模块:
|
||
|
||
- `model.language_model.layers.12.input_layernorm`
|
||
- `model.language_model.layers.13.input_layernorm`
|
||
|
||
二者均为 2048→2048 的 RMSNorm,eps=1e-6,使用训练后的有效增益 gamma=1+weight。
|
||
增益标准差分别约 0.1901、0.1685,最小值约 0.5547、0.5703;不是零函数或恒定增益。
|
||
|
||
| 证据 | 结果 |
|
||
|---|---|
|
||
| 全输入域数学界(相对于层12输出) | 输出相对 L2 误差≤10.1852% |
|
||
| 反方向全输入域数学界(相对于层13输出) | 输出相对 L2 误差≤11.3402% |
|
||
| 4 条留出文本、两个来源层输入的最坏双向误差 | 4.5285% |
|
||
| 相同留出比较中的最低余弦 | 0.999487 |
|
||
| 层12使用层13,留出平均 token NLL 增量 | +0.0000325651 nat/token |
|
||
| 层13使用层12,留出平均 token NLL 增量 | −0.0003639730 nat/token |
|
||
|
||
两方向逐文本 NLL 增量 P95 分别约 0.00098464、0.00070972,均通过原定小样本质量门槛。
|
||
所有数值来自保存的逐文本、逐 token 原始数据。留出为 4 条不同的实验原创短文本,
|
||
每条截取 32 tokens;校准另有 4 条。它们不是广泛任务能力评测。
|
||
|
||
## 为什么不只是“权重看起来接近”
|
||
|
||
对相同 eps 和维数,f_a(x)=diag(a)x/sqrt(mean(x²)+eps)。任意非零实数输入满足:
|
||
|
||
||f_a(x)-f_b(x)|| / ||f_a(x)|| ≤ max_j |a_j-b_j|/|a_j|。
|
||
|
||
共同归一化分母消去;坐标基向量可达到最大值,因而该界是精确的最坏情况。
|
||
反向分母换成 |b_j|。本轮先穷举 24 层同角色 input/post-attention norm 的 552 对,
|
||
仅按最小双向最坏界选定一对,未使用任何输入样本作选择。≤20% 界有 18 对,≤10% 无配对;
|
||
本轮只验证最优的一对,不根据留出结果换选。
|
||
|
||
这个确定性界直接给出两个已训练函数整体接近的证据。真实输入上的误差更小,
|
||
与只关心目标输入分布的目标一致。浮点实测与实数数学界分别报告。
|
||
重新采集输入时,未修改的完整前向逐 bit 复现了最初保存的基线输出。
|
||
输入探测分别使用两个来源层,对相同输入同时应用两套增益,避免比较不同输入的输出。
|
||
从已加增益的激活还原共同归一化输入时有额外 FP32 舍入,未将其称为 bitwise 等价。
|
||
|
||
结论限定为两个已有 RMSNorm 模块实现相似映射;不把共同包含 RMS 操作本身当作证据。
|
||
二者学习增益不同且非恒定,输出非零。完整 attention/MLP 主体的重复仍未得到正例。
|
||
|
||
## 已完成的阴性搜索
|
||
|
||
1. 原定 3 对完整 attention、2 对完整 MLP、6 对层内 Q/K norm 均未通过预设门槛。
|
||
attention 检索分布 JS 范围约 0.145~0.318,也未通过 0.01 的门槛;
|
||
未进行头排列、连续坐标变换或训练对齐,不能外推为不存在其他可复用表示。
|
||
2. 在层 5、6、20、21 各 6144 个 MLP scalar 子函数中,排除低活跃和近常量单元后,
|
||
共精确筛查 7,450,139 个唯一同层配对。要求双向相对误差≤20%、余弦≥0.98、
|
||
Pearson≥0.95,无通过者。没有针对留出集不断更换候选或放宽门槛。
|
||
3. 这些结果只覆盖声明的模块、输入和阈值,不否定其他粒度/角色的功能重复。
|
||
|
||
## 单独归类的解析恒等式
|
||
|
||
Q/K 未参与 RoPE 的 192 个维度,其增益只以乘积影响点积,可合并到任一侧。
|
||
96 组真实输入检查最大分数差 3.8147e-6、最大概率差 8.0466e-7;固定第3层两个方向
|
||
留出 NLL 变化接近 FP32 舍入。详见 [推导](QK_GAIN_FACTORIZATION.md)。
|
||
这是重参数化等价,不作为“两个已有学习部分功能重复”的正例。先前性能测试原始数据
|
||
保留用于溯源,成本不属于当前结论的成功条件。
|
||
|
||
## 正确性、资源与保留规则
|
||
|
||
- 固定模型 revision:15852e8c16360a2fea060d615a32b45270f8a8fc,原始权重 SHA256 校验通过。
|
||
- 流式读取原始 BF16,逐块转为 FP32,不同时载入全模型。
|
||
- 与固定 Transformers 官方定义比较的 22 项检查通过,最大差约 5.4e-7。
|
||
- 保留早期参考适配器错误、临时分区空间不足及两次过于保守的换页停止记录。
|
||
只归还自身临时堆页,未改变系统 swap 设置;后续有界前向完成。
|
||
- 计算预算跨重启累计,初始保守计入 180 秒先前检查预留;具体时长及峰值见归档日志。
|
||
- 当前权重按用户最新指令持续保留,只在用户明确要求删除时清理。
|
||
|
||
原始表、样本/token IDs、激活、NLL、证明界与图表见 `results/cpu-qwen35-2b/`。
|
||
后续 GPU 阶段可增加长度、语言和任务来验证正例的稳健性;本轮不自动启动新模型或扩展搜索。
|
||
|
||
## Git 交付与保留缓存
|
||
|
||
全部图表源 CSV/JSON、逐 token NLL、证明界和日志已交付。三份较大的中间激活缓存
|
||
保留在原服务器及本地完整归档,路径、大小、SHA256 见结果目录的 external-activation-cache.json。
|
||
其完整原实验校验表为 checksums-full-server.json;Git交付包校验表为 checksums-functional.json。
|
||
没有删除模型或缓存;这些缓存可由固定代码和样本重新生成,也可从服务器按哈希取回。
|