Files
exp-model-parameter-similarity/docs/TRAINING_FREE_FUNCTIONAL_PLAN.md
T

126 lines
9.2 KiB
Markdown
Raw 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 容量探测,未新增模型前向、下载或训练。
目标:寻找并验证至少一个在留出数据上保持约定质量、同时降低明确运行成本的复用实例;
若没有通过者,报告有界搜索的阴性结果,不保证一定能找到。
## 1. 硬约束与研究对象
- 冻结所有模型参数。不进行优化器更新、微调、蒸馏、LoRA、学习投影或低秩修正。
- 默认不求正交 R。校准集只用于选择有限候选和阈值,留出集不参与选择。
- 同类型模块配对;Q/K/V 联合作为功能系统,MLP 独立验证。保留归一化、位置处理、门控及头结构。
- 已存配置为 24 个文本层,其中 6 个 full attention、18 个线性注意力;执行前按固定 revision 的实际实现复核。
full attention 的 15 个无序层对可穷举;线性注意力首轮只检查 6 个预先固定的相邻同类型层对。
MLP 首轮检查 6 个预先固定、覆盖浅中深层的相邻层对。具体名单在运行前写入 manifest。
- 之前热力图的 in_proj_a 是线性注意力控制投影示例,不是 Q/K/V 功能相似性的测量。
## 2. 为什么不用先找 R
给定相同隐藏输入 H,且位置、mask 和缓存/递推状态一致,比较两套模块的实际检索函数:
S_i(H) = Q_i(H) K_i(H)^T / sqrt(d),P_i(H) = softmax(S_i(H) + mask)。
这里 Q/K 指完成该架构实际归一化和位置处理后的量。直接比较 P 可避开内部坐标差异;
logit 每行加常数不改变 softmax,因此同时报告去行均值的分数误差。
这不是“存在共同正交 R”的数学证明。反例 Q_2=2Q_1、K_2=K_1/2 保持所有点积,
但非零 Q 的范数改变,不能由正交变换产生。功能等价允许比共同正交旋转更广的关系。
相反,在单套 Q/K 上共同右乘 R 保持点积,只说明坐标不唯一,并未说明两个已训练层可复用。
实际 RoPE、GQA、归一化、门控也必须包含在函数边界内。
有限探针只能提供相应输入分布上的经验证据,不是对所有 H 的形式证明。
在无位置处理/归一化的纯线性特例中,可研究 W_Q W_K^T 的代数相等性;
一般模块不据此简化,首轮不物化所有大算子。
## 3. 同输入与真实输入分开
对候选 i/j,分别从原模型 i 和 j 的入口收集 H_i、H_j;分别比较 f_i(H_i) 与 f_j(H_i),
以及 f_i(H_j) 与 f_j(H_j)。避免只选有利于某一层的输入。模块前归一化如位于边界外,
必须明确分别测“归一化后核心”和“包含归一化的完整分支”。
这检验模块函数接近程度。实际网络的 f_i(H_i) 与 f_j(H_j) 使用不同输入,是另一项量。
权重共享仍需对每个输入计算;缓存上游输出用于下游则改变了输入,必须实际干预后检验。
MLP 测残差相加前的分支输出,防止共同输入 H 掩盖分支差异。
## 4. 指标和对照
| 对象 | 首轮指标 | 不能据此宣称的结论 |
|---|---|---|
| full attention 逐头 P | 平均及 P95 行 JS(自然对数,范围 0–ln2)、top-5 重合率;去行均值 S 相对误差 | P 相似不保证 V/O 输出相似 |
| 完整 attention 分支 | 相对 L2、逐 token 误差 P50/P95、余弦;包含 V/O/门控 | 平均低误差不保证长尾任务能力 |
| 线性注意力 | 同输入、同合法初始状态的分支输出及最终状态误差;后续状态继续使用测试 | 不构造不存在的 softmax 图;状态数值相似不等于长期稳定 |
| MLP | 同输入分支输出相对 L2、逐 token P95、余弦 | 不以各矩阵单独相似代替 gate/up/down 联合验证 |
相对误差统一为 ||candidate-reference|| / max(||reference||, epsilon),并记录低范数样本数量。
首轮筛选门槛预设:P 平均 JS ≤0.01 且 top-5 重合 ≥0.8;完整分支相对 L2 ≤0.05、
逐 token 相对误差 P95 ≤0.1。它们是筛选约定,不是文献保证或能力损失界。
线性模块和 MLP 使用输出门槛;只通过 P 的候选不能自动通过完整模块门槛。
对照:同模块重复测量、随机同类型层对;首 token 保留/移除并重新归一化两个版本;
排除自注意与局部窗口主导后再测;按序列/位置/浅中深层分层。零分母与无效行单独标记。
逐头记录,不先平均头。默认只用原头序;可选的离散头排列仅在校准集选定后冻结,
须满足 GQA 分组和 V/O 一致性,不允许把最优头匹配分数当作可执行替换结果。
CKA 仅作辅助筛选;共享位置模板、attention sink 和共同残差都可能制造高相似。
## 5. 资源与阶段预算
采用 CPU 先导、GPU 后续细化的两阶段路径;GPU 不作为寻找初步证据的前置条件。
当前服务器为 2 核 CPU、约 1.7 GiB RAM;60 GB 是磁盘扩容。详见
[CPU 先导设计及实测](CPU_FIRST_VALIDATION.md)。
CPU 阶段仅处理文本,batch=1、长度 32,校准/留出各 4 条真实且去重的文本;
仅检查 3 个预先固定、覆盖浅中深的 full-attention 层对和 2 个 MLP 层对。
完整保留合法 key,逐头比较,不通过采样 key 改变 softmax。
模型依赖实现一致性检查和容量探测完成后,才实施真实前向。
权重按层/子矩阵流式读取并释放,禁止全模型转换成 FP32;不把依赖换页的完整框架加载视为可行方案。
数据来源、许可、tokenizer revision、截断、样本 hash 和 seed 在运行前写入 manifest。
| CPU 阶段 | 上限 | 完成条件 / 停止条件 |
|---|---|---|
| 实现一致性及短样本容量探测 | 20 分钟 | 模块计算语义核对,内存峰值可控;OOM、持续换页或实现核对失败即停止 |
| 真实隐藏输入采集 | 40 分钟 | 流式文本前向采集固定入口,不保存所有层权重/注意力图;超时保存覆盖率 |
| 同输入功能比较 | 30 分钟 | 固定 5 对候选;无通过者停止;最多留下 1 个干预候选 |
| 单处干预及归档 | 30 分钟 | 在 4 条留出文本上检查输出或流式 token NLL;不足以完成则只交付候选证据 |
CPU 首轮计算上限 120 分钟,下载单独计时。当前仅执行了约 88 MiB 峰值 RSS 的
合成矩阵乘法探测,没有重下权重或执行真实前向。容量探测不能保证完整模型实现的峰值内存。
线性注意力需另行完成正确性核对,首轮先不加入,避免状态递推实现拖延初步判断。
短文本小样本无法覆盖长上下文或低频关键能力;阴性结果也不能排除更广泛候选。
只有发现值得跟进的候选,GPU 阶段才扩展到原定 27 对候选、长度 256、
校准/留出各 16 条及更多独立任务,细化单处/多处干预与真实性能。
届时由用户提供并确认 GPU 执行环境;当前不租用或假定已有 GPU。
## 6. 干预必须对应可节省的对象
| 干预 | 可以争取的收益 | 必须额外确认 |
|---|---|---|
| 跨层绑定权重 | 权重存储/加载内存 | 各层输入仍不同,通常不减少投影 FLOPs |
| 重用上游 attention 分布,保留下游 V/O | 部分 Q/K 投影与 QK/softmax 计算 | 保留分布的内存及实现开销;decode 未必值得缓存完整图 |
| 跨层共享 K/V cache | KV 内存,可能减少 K/V 投影 | GQA、位置、缓存布局与层依赖合法性 |
| 重用完整 attention/MLP 输出 | 对应分支计算 | 下游输入不同,必须测试整个原模型中的替换效应 |
选择的每个候选首先给出一种具体可实现干预;只有同输入指标通过却无实际可省操作,
标记“功能相似但暂无复用实现”。不把整模块可替换和其中 Q/K 可替换混为一谈。
首轮探索性质量门槛:留出平均 token NLL 增量 ≤0.01 nat/token,逐序列增量 P95 ≤0.05,
输出有限;同时保存全部逐序列差值,不将该小样本阈值称为统计显著性或普适能力保证。
候选只在校准集筛选;留出失败不回调阈值、不反复选择。
性能分别测 prefill 和固定 32-token decode;固定 batch/长度/dtype/backend,预热 3 次、
交错运行基线与干预各 10 次,报告原始时延和中位数/P95、峰值内存、KV/权重字节及理论运算变化。
插桩诊断时延不作为优化实现时延。若速度差落在运行波动内,不宣称加速;
若只减内存,则结论限定为内存收益。计入缓存、索引与数据移动开销。
## 7. 分组与最终证据
单处通过后,才讨论多成员组:每个成员必须通过对同一代表的定向替换检查;
不能用 A≈B、B≈C 推出 A 可代表 C。多处同时替换须再测累积误差和性能,
单处收益不能相加为最终模型收益。首轮不自动执行多处替换。
输出每对候选/每序列/每头指标 CSV、覆盖率和失败原因、质量—成本散点图、逐层热图、
基线与干预原始计时、环境及代码版本。结论分为:功能接近、单处干预通过、测得实际收益三档。
“存在一个免训练复用点”的操作性证据必须同时具有后两项;当前静态试验尚未提供这类证据。
相关依据与训练限制见 [文献核对](FUNCTIONAL_REUSE_LITERATURE.md)。