Files
exp-model-parameter-similarity/docs/CPU_FUNCTIONAL_FINDINGS.md

87 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。
没有删除模型或缓存;这些缓存可由固定代码和样本重新生成,也可从服务器按哈希取回。