Identity 不一定从头吃到尾
SPR-081 和 SPR-082 发现,给双语 TreeHeap 增加少量 Identity 视角训练,会显著降低 Native Butterfly 与 Identity 两条路径之间的 Jensen–Shannon divergence(JS)。正在执行的 C07 又在第一颗正式种子上复现了这个现象。
我们一度形成了一个直觉:既然 I 能帮助两种坐标形成共同协议,那么预训练阶段也许应该使用更多 I。
Houming818 随后把方向翻了过来:
预训练可能应该使用更少的 I。预训练先学习较少偏见的世界结构,具体任务训练时才需要增加 I,把模型拉向任务要求的主视角。
这个修正值得单独公开。它还不是结论,而是一个可以被实验否定的阶段剂量假说。
1. 这里的 I 是什么
输入 token 状态记为 $H^{(0)}$。当前 TreeHeap 有两种观察坐标。
Native Butterfly 路径执行多层地址折叠:
$$ H_B=B_{D-1}\circ\cdots\circ B_1\circ B_0(H^{(0)}) $$Identity 路径保留原始地址顺序:
$$ H_I=H^{(0)} $$两条路径共用后面的 FOLD、READ 和 Decoder:
$$ P_B=D(\operatorname{READ}(\operatorname{FOLD}(H_B))) $$$$ P_I=D(\operatorname{READ}(\operatorname{FOLD}(H_I))) $$因此,增加 I 并不是增加第二个模型,而是让同一组参数多看一种坐标表达。
2. 为什么预训练可能需要更少偏见
这里的“偏见”不是道德含义,而是训练系统对某种坐标、任务和输出形式的定向倾向。
预训练面对的是宽广语料。它的首要任务可能是让 TreeHeap 形成可复用的统计关系、结构差异和内部私有协议,而不是提前决定某一种表面顺序必须成为唯一解释。
如果预训练阶段 I 太强,模型可能过早得到一个简单答案:
原始顺序最容易被共享 Decoder 读取
-> 所有内部结构都向原始顺序靠拢
-> Butterfly 异构坐标只剩辅助作用
这会迅速降低 JS,却不一定产生更丰富的 TreeHeap。低 JS 只表示两个概率桶接近,不保证它们保存了更多世界结构。
所以预训练阶段较低的 I 有一个明确目的:
暂时不急于统一观察角度,让 Native Butterfly 的异构折叠先参与表示形成。
这不是要求预训练“没有任何归纳偏置”。TreeHeap、Butterfly、FOLD 和递归地址本身已经构成归纳偏置。这里讨论的只是不要过早追加太强的 Identity 坐标偏置。
3. 为什么任务训练才需要偏见
具体任务不是开放世界观察。中英翻译有确定的目标语言、词序和评分标准;摘要、问答和对话也各自要求特定输出协议。
任务训练时,模型必须回答一个更窄的问题:
面对这些异构内部状态,最终应该按哪套协议稳定输出?
此时适量 I 可能成为坐标锚点。它告诉共享 FOLD/Decoder:虽然内部可以有多种折叠视角,但任务输出必须回到可读、稳定的目标顺序。
因此,阶段关系可能不是“预训练和任务训练使用同一比例”,而是:
$$ \lambda_I^{\mathrm{pretrain}}<\lambda_I^{\mathrm{task}} $$其中 $\lambda_I$ 表示 Identity loss 在该阶段中的有效权重。
直观地说:
预训练:允许模型多看几种形状,不急着决定标准答案
任务训练:告诉模型交卷时应该采用哪个视角
4. 当前数据提供了什么线索
C06 的 30 万行等算力对照:
| 方案 | Native NLL ↓ | 跨视角 JS ↓ |
|---|---|---|
| 额外 Butterfly(BB) | 3.275903 | 0.242107 |
| 额外 Identity(BI) | 3.278716 | 0.104578 |
C07 seed 9201 的 100 万行等算力对照:
| 方案 | Native NLL ↓ | 跨视角 JS ↓ | chrF2 ↑ | BLEU ↑ | 严重重复率 ↓ |
|---|---|---|---|---|---|
| BB | 3.176298 | 0.240874 | 32.213 | 20.436 | 1.17% |
| BI | 3.179225 | 0.082091 | 32.771 | 20.531 | 1.95% |
两轮都出现了相似交换:
Native NLL 只增加约 0.0028--0.0029
跨视角 JS 却降低约 57%--66%
这说明 I 是一个强而有选择性的训练信号。它不是普通的“再训练一会儿”。
但这些实验发生在已有双语 checkpoint 上,属于任务继续训练。它们没有比较真正的预训练阶段,因此不能证明预训练应该使用更高或更低 I。
这正是本文要留下的边界:
我们已经知道 I 能改变协议,但还不知道协议形成的哪个阶段最需要它。
5. 比例还要分清两种写法
“追加 20% I”不等于最终 batch 中有 20% I。如果先保留 100% Native,再额外追加 20% I,那么 I 在全部 token 中的占比是:
$$ \alpha_I=\frac{0.2}{1+0.2}=16.67\% $$后续报告必须同时记录:
- 相对 Native 的追加剂量;
- I 在全部训练 token 中的最终占比;
- I 被放在预训练还是任务训练;
- 实际 optimizer step 数与 token 数。
否则“20% I”在不同实验里可能代表不同的训练过程。
6. 怎样验证阶段假说
最关键的实验不是继续扫描一个固定全程比例,而是保持总 I token、总训练 token 和更新次数一致,只移动 I 出现的阶段。
设两阶段合计允许 $M$ 个 Identity token,可以比较:
| 实验臂 | 预训练 I | 任务训练 I | 总 I 剂量 |
|---|---|---|---|
| Early-I | $M$ | 0 | 相同 |
| Split-I | $M/2$ | $M/2$ | 相同 |
| Late-I | 0 | $M$ | 相同 |
| No-I | 0 | 0 | 基线 |
每个带 I 的实验还需要同阶段 BB 等算力对照,排除“只是多训练”的解释。
在预训练结束和任务训练结束两个时间点分别保存 checkpoint,并测量:
Native NLL
跨视角 JS
chrF / BLEU
严重重复率
source shuffle damage
Identity / adjacent runtime override damage
不同长度区间的 source dependence
固定 Dreams 的实际生成
6.1 如果本文假说成立
Late-I 应该表现为:
- 预训练结束时保留更强的 Butterfly 结构差异;
- 任务阶段加入 I 后,JS 快速下降;
- 最终 Native NLL 与生成质量优于相同总剂量的 Early-I;
- adjacent damage 不会被过早抹平。
6.2 如果纯累计剂量解释成立
只要总 I token 都是 $M$,Early-I、Split-I 和 Late-I 最终应该接近。I 在什么时候出现并不重要。
6.3 如果相反方向成立
Early-I 可能先建立一个稳定共同协议,使后续任务训练更容易。如果它最终同时获得更低 NLL、更低 JS 和更好生成,那么“预训练低 I”假说应被否定。
7. 这条假说为什么值得先公开
它提醒我们不要把当前 C07 的获胜配方直接提升成永恒架构参数。
Identity 更像训练课程中的药量:同一个剂量放在不同发育阶段,可能产生不同作用。预训练负责形成表示空间,任务训练负责选择输出方向;二者未必需要相同偏见。
当前最谨慎的结论是:
Identity replay 已被两轮实验确认能以很小 Native 代价显著改变跨视角协议。Houming818 提出,I 的主要位置可能不是预训练,而是任务训练;这项阶段假说尚无直接证据,必须通过等总剂量、等算力的 Early-I / Late-I 实验验证。
我们把它先作为开放资料发布,欢迎读者提出相反机制、实验漏洞或更节省算力的验证设计。
8. C07 正式产品训练的最终回报
2026 年 8 月 9 日,S3-TREEHEAP-BUTTERFLY-PRODUCT-C07 的第一颗完整产品种子训练结束。本节不是另开一条故事线,而是把本文前面仍处于“正在执行”的 C07 补成可以审计的最终记录。
8.1 这次实际训练了什么
实验从已有双语 Butterfly checkpoint 继续训练,正式读取路径仍是 Native Butterfly,同时配置 20% Identity replay。主要平台参数如下:
| 项目 | 数值 |
|---|---|
| seed | 9301 |
| 语料文件可用行数 | 14,170,275 |
| epoch | 4 |
| 累计训练样本 | 62,953,195 |
| 累计训练 token | 1,331,240,167 |
| Identity replay 样本 | 2,825,717 |
| TreeHeap width | 256 |
| state / hidden dimension | 256 / 256 |
| 单卡墙钟时间 | 52.6 小时 |
这里的“20%”是训练程序的 replay 配置值,不应该被误读为最终所有 token 中恰好有 20% 来自 Identity。实验另外记录了真实 replay 样本和 token,后续做剂量比较时必须使用真实计数,而不能只比较配置名称。
8.2 NLL 确实下降,而且测试集没有突然崩掉
| 评价位置 | EN→ZH NLL ↓ | ZH→EN NLL ↓ | Mean NLL ↓ |
|---|---|---|---|
| 启动时 validation | - | - | 3.588437 |
| 最终 / 最佳 validation | 3.173284 | 2.659531 | 2.916408 |
| held-out test,Native Butterfly | 3.199092 | 2.746413 | 2.972753 |
| held-out test,运行时改成 Identity | 3.330987 | 2.906930 | 3.118958 |
从启动到最终验证点,Mean NLL 下降了 0.672029,相对约为 18.7%。测试 NLL 比最佳验证 NLL 高 0.056345,约为 1.9%。这说明本轮长训练不是只把训练样本背下来后在测试集上立即失效。
更关键的是运行时干预。保持同一个 checkpoint、同一批测试数据和同一个 Decoder,只把 Native Butterfly 坐标变换替换成 Identity,测试 NLL 增加:
$$ \Delta L_{\mathrm{identity}} =3.118958-2.972753 =0.146205 $$这个结果支持一个有限而重要的判断:模型确实利用了 Native Butterfly 产生的结构状态。 如果 Butterfly 只是没有作用的外壳,运行时拿掉它不应该稳定增加测试损失。
但这项干预只能证明结构参与了预测,不能证明我们已经理解每个内部节点保存了什么,也不能证明模型已经获得逻辑推理能力。
8.3 dreams 告诉我们的另一半事实
只看 NLL,会把这轮结果说得过于乐观。最后一个固定样本集 step-000062953195.txt 显示,模型已经摆脱了早期“无论输入什么都只说一带一路”的全局条件坍缩,但仍没有成为可靠的翻译器。
有些信息保存得比较好。例如:
输入:传感器记录到37.6摄氏度和82%的湿度。
输出:The recorder 37.6 degrees Celsius, 82% humidity.
数字、单位和主要对象大体保留。下面这条指令也没有被当作问题直接回答:
输入:请把这句话翻译成英文,而不是回答其中的问题:为什么鲨鱼不坐沙发?
输出:Please put this word into English translation, not answer the question:
why sharks not to sit in the sofa?
虽然英语并不自然,但任务方向和大部分内容仍在。
真正的失败集中在关系和逻辑对照上。
| 对照输入 | 最终输出摘要 | 观察 |
|---|---|---|
| The doctor thanked the farmer. | 医生的感谢 | 主体和客体没有完整落地 |
| The farmer thanked the doctor. | 医生的感谢,医生 | 交换论元后输出没有相应交换 |
| Every lamp … / Not every lamp … | 两句都接近“灯台上的灯台上” | 否定与全称量词没有稳定区分 |
| before the door opened / after the door opened | 两句都生成门铃、敲门声 | 前后时序没有可靠坍缩 |
长句能够留下事件轮廓。例如水泵样本仍保留了“自动启动、红色标记、两个压力传感器、30 秒”等成分;但条件层级、论元归属和句法顺序仍会错位。
因此,最终 dreams 呈现的是:
全局固定句坍缩:明显缓解
词汇与局部事件轮廓:已经出现
局部重复:仍然存在
主体/客体、否定、时序、数量关系:仍不可靠
产品级翻译:未达到
8.4 为什么 NLL 下降,句子却不一定同步变好
NLL 奖励的是“给参考 token 更高概率”。训练语料中,高频搭配、常见句式和局部续写占据了大量梯度;主体交换、否定翻转和前后时序这种关键对照,在总体 token 数中所占比例很小。
所以模型可以通过改善大量普通位置继续降低平均 NLL,却仍在少量决定句意的关系位置上犯错。固定 dreams 的人工观察还表明:随着后期 NLL 继续下降,个别句子的语义质量并不单调改善。
这不否定交叉熵训练,但说明产品验收不能只有一个总体 NLL。下一轮至少需要同时报告:
- chrF、BLEU 或其他完整翻译指标;
- 主客体交换、否定、时序和数量的成对对照准确率;
- 重复率与生成长度;
- Native / Identity 运行时干预损失;
- 固定 dreams 在多个训练时点的实际文本。
8.5 本轮可以支持什么,仍然不能支持什么
当前得到支持:
- 该 TreeHeap 配方可以在单张 3090 上稳定完成十亿 token 量级训练;
- 验证 NLL 持续下降,最终测试集没有出现严重泛化断裂;
- Native Butterfly 在 held-out test 上具有可测量的因果贡献;
- 少量 Identity replay 可以进入正式训练流程,而没有让 Native 路径数值崩溃。
仍然开放:
- Early-I、Split-I、Late-I 哪个阶段安排最好;
- 当前收益来自 Identity 的出现时机、累计剂量,还是两者共同作用;
- TreeHeap 是否已经形成可以稳定处理论元、否定和时序的私有协议;
- 当前模型能否达到可用的翻译产品标准。
因此,C07 完成后,本文标题中的“阶段假说”仍然是 open,而不是 supported。C07 给出了可靠的长训练基线和结构参与证据,却没有执行等剂量的 Early-I / Late-I 因果比较,也没有通过最终的语言能力验收。
完整 Claim、代码与 Evidence 位于 SameTime 开放仓库。
License: GPLv3。本文公开阶段剂量假说、反证条件与实验设计,可自由复现、审计和修改。