6A. 预训练目标(此前缺失的一环)

★ 2.4k 字 · 源文件 PROJECT.md 第 1348 行起 · goal arch

#6A.1 问题:我们此前没有预训练目标,只有探针任务

项实测
目标函数延迟匹配二分类,交叉熵,只在最后一个时间刻
单试次信息量7.3 bit
数据data\ 仅 1.4 KB(任务每次现场随机生成,不存数据)
规模1,874 参数,16 单元

"7.3 bit 一个试次"是问题的实质。 我们把 6000 万 bit 反复用来学一个 7.3 bit 的问题 —— 而任务要求的能力只有"记住一项、比一下"。 这是探针,不是预训练。

#6A.2 目标:自回归的序列到序列预测,损失在每个时间刻

这一条同时修掉 exp13(§6.13)暴露的两个问题:

问题这个目标怎么修
状态"只在最后一刻被需要"每刻都要输出 → 状态必须全程携带信息
状态没有表达通道输出是序列 → 状态有了必须表达的东西

#6A.3 为什么用算术作预训练场

理由说明
答案可验证生成即标注,不需要人工
数据无限且免费1~3 位混合三则 ≈ 300 万题;1~4 位 ≈ 4 亿题
难度可调位数、运算、是否进位
需要的能力正好是对话体需要的记住操作数→记住你说的话;进位→持有约束;逐位输出→逐字说话

诚实边界:算术预训练建成并验证机制,不产生对话能力。 语言层仍走 §4 的解耦方案(本机小 LLM 当"发声器官")。

#6A.4 屏幕格式("接地"的落点)

PROJECT.md 需求 4:符号接地 —— 词义锚定在感觉运动经验上。 所以不喂字符 ID,而是把字符渲染成点阵,喂像素。

text
屏幕   2 行 × 128 px(8 字符位/行,16×16 px/字符)
       通道 0 = 输入行,通道 1 = 输出行 + 光标
帧维度 2 × 32 × 128 = 8192 位
光标   该字符位左侧的竖条 —— "位置"的感觉运动锚点

时间结构(一个试次):

text
读入段   逐字符出现(不是一次给整题!),光标右移
静默段   ★ 屏幕清空 —— 题目只能存在于状态里
写出段   每刻输出一个字符,写进去、光标右移(自回归)

"静默段清屏"是刻意的设计:如果题目一直留在屏幕上,模型可以直接"看" 而不需要记住 —— 那就不需要持续状态,整个架构的前提落空。

字符集:" 0123456789+-*="(15 类,含空白) 实测:最小汉明距离 9(+ vs -),中位 28 → ✔ 可分 (对照:991 个常用汉字最小距离 2,己/已)

扰动策略:只做平移。实测依据:平移±1 → 98.2%; 平移+膨胀 → 95.8%;平移+腐蚀 → 0.2%。 腐蚀会抹掉 1~2 像素宽的笔画,字就不是那个字了 —— 是禁区。

#6A.5 五级台阶(每级有事先定死的判据)

台阶任务判据为什么在这一级
1. 感知单字符位图 → 识别未见字符 + 平移扰动 ≥95%(15 类,随机 6.7%)认不了符号后面全废;这一步不需要状态
2. 保持给一个符号 → 延迟 → 输出它未见延迟 ≥90%把"记忆跨度"变成输出要求而非分类
3. 多位保持给多位数字 → 延迟 → 逐位输出3 位 ≥90%★ 顺序输出第一课:必须按序吐出
4. 变换给 a op b → 输出结果1 位三则 ≥95%;3 位加减 ≥80%引入"对记忆内容做操作"
5. 组合混合长度/运算,未见组合未见组合 ≥70%泛化,而不是记住题型

台阶 1 是关键前提,而且我们从没做过 —— exp03 只做到 53.6%(但那是在做 600 类汉字)。

#6A.6 已实现

core/tasks/arithmetic.py —— 数据管线,自检全通过:

text
屏幕 2 行 × 128px   字符集 ' 0123456789+-*='(15 类)
300 个试次:算式正确性 / 静默段两行全空 / 仅写出段监督 / 监督刻数一致
  -> 异常 0 处  ✔
200 个试次 × 2 行,静默段字形非空: 0  ✔ 无泄漏
  -> 负向验证(手动写入字符后报出): ✔ 报出
自回归结构正确 ✔

关键检查方法:泄漏检查用解码回字符(row_content), 而不是"数像素" —— 后者会把光标误判成泄漏(假警报,已踩过)。

可视化:experiments/viz_arith_samples.py → results/arith_samples.png

#6A.7 与"训练规模"的关系(§4)

算术预训练不解决通用对话的数据问题(那需要 1.4 万亿 tokens,不可达)。 它解决的是:建成并验证"持续状态 + 顺序输出 + 多步信用分配"这三个机制。 机制成立之后再谈语言层 —— 而语言层走 §4 的解耦方案,不靠我们从头训。


← 返回《PROJECT.md》目录