本页章节
继续用 长度泛化失败诊断检查 EOS、位置与训练支持,再进入 自然语言小模型项目。
ACTUAL CPU TRAINING / SAVED EVIDENCE
小模型学习:拟合、生成与未见长度
从随机初始化的小型 decoder 开始,训练四符号反转任务。查看实际保存的学习曲线、完整生成和逐题失败,再用同一 checkpoint 核对恢复与缓存。
先看同题输出,再看学习曲线与未见输入
任务是将 A/B/C/D 组成的序列反转,并生成结束符 EOS。浏览器展示已保存的 CPU 实测快照;先比较同一道题训练前后的输出,再分别看总体结果与未见长度。完整监督格式见任务与监督约定。
正在载入保存的真实快照…
圆点均为保存的实测评估,连线仅连接相邻点。曲线只包含训练和验证;测试与外推在固定预算结束后评估。训练墙钟时间包含周期评估,不能作为纯训练吞吐。
曲线的完整数值与单位
| 更新 | 监督 token | 训练 CE | 验证 CE | 训练自由 token% | 验证自由 token% | 训练 EM% | 验证 EM% |
|---|
逐题完整生成:显示真实 EOS、缺失和额外输出
| 题目 / 反转等价组 | 输入 | 正确答案 + EOS | 真实自由生成 | Teacher-forced argmax | 自由 token 计分 | 匹配 / 结束 / 内容差额 |
|---|
计算精度、保存预测与同 checkpoint 核验
本轮训练前已冻结逐元素 atol + rtol × max(|full|, |cache|) 标准:float32 为 1e-4 + 1e-5 × scale,float64 为 1e-9。这是声明的本机经验接受标准,不是任意模型或平台的通用数值误差界。
计算检查保持已保存的权重和预算不变,同时核对 float32、float64、softmax 概率误差、top-1 一致和实际生成。恢复对照另启动新进程,从中途 checkpoint 接续至固定终点,核对模型、AdamW、Python/NumPy/torch RNG、数据顺序和游标、计数以及评估。
模型、预算、累计 token、源码与报告来源
所有 seed、计算核验与实验来源
| seed | 训练 CE · nats/token | 训练 EM | 验证 EM | 测试 EM | 长度外推 EM | 描述性拟合阈值 |
|---|
读取完整本地报告或下载当前数据
完整 report.json 包含全部题目的初始、训练后和规则基线预测;文件只在本地浏览器处理,上限 16 MiB。
先固定任务、拆分和监督位置
内容符号为 A/B/C/D。输入 A B C 的目标是 C B A EOS;完整训练串为 BOS A B C SEP C B A EOS。SEP 位置的 logits 预测第一个答案 token,提示词与 padding 的 labels 为 −100,仅答案和 EOS 参与交叉熵。
输入与它的反向等价输入先分到同一个 group,再按长度分层拆分。默认 train/validation/test 为长度 2–5 的 405/130/139 条,长度 6–8 外推为 143 条;exact input 与 group 均不跨集。本轮沿用固定预算;独立测试和外推不选择配置。
PAD=0BOS=1SEP=2EOS=3A/B/C/D=4/5/6/7模型为 2 层、width 64、4 heads、101,120 参数;使用固定正弦位置编码、Pre-LayerNorm、GELU、dropout 0.1 和未绑定输出头。固定位置编码避免引入未训练的绝对位置表,但不保证学到可外推的反转算法。
teacher forcing 与真实生成各测量什么?
条件交叉熵
Teacher-forced loss 在正确答案前缀下计算。其 argmax 可辅助定位监督,不能计作自由生成准确率;自由生成只接收输入 prompt 和自己此前输出。
统一结束口径
所有模型题目 greedy 生成,首次预测 EOS 或共同上限 max_new_tokens=20 才停止。不会按正确答案长度停止。生成的 PAD/BOS/SEP 保留为真实位置并计为错误,训练 padding 仍排除。
独立基线
复制与常量基线利用可观察输入长度输出 EOS;常量符号仅从训练集统计。Oracle 直接实现反转规则,是算法上界。基线没有模型的 teacher-forced loss,不作为学习证据。
固定预算的结果边界
本次训练 EM 为 100.00%,独立测试为 100.00%,长度外推为 0.00%。训练拟合、独立测试与更长输入的能力分别报告;配置不因测试或外推结果继续调参。这些结果属于当前保存的运行环境与固定预算。
完整匹配要求内容全部正确且 EOS 恰好结束在正确位置。短且尚未结束的独立轨迹标为 incomplete,实际达到上限才标 cap。该任务的同长度未见输入成功不能代表任意算法泛化,更不能外推到自然语言模型能力。
从本地工件复现并连接下一步证据
.venv-framework/bin/python scripts/test-learning-core.py
node --test scripts/test-learning-run.mjs
# 新目录中的完整三 seed 训练,固定参考版本;无需下载模型
node scripts/run-learning-lab.mjs
# 只复核现有 checkpoint,不重训;复核报告同样保存到新目录
node scripts/run-learning-lab.mjs --revalidate-report artifacts/reproduced-20261028T115030Z/learning/report.json
复用 PyTorch 2.9.0 / NumPy 2.3.4 的 .venv-framework,启动时强制核对版本。每次创建独立目录并拒绝覆盖,保存完整 splits、冻结配置、每步记录 IDs/loss/token 计数、初始/中途/最终 checkpoint、曲线、全部预测、来源和 SHA-256。默认页面取自 artifacts/reproduced-20261028T115030Z/learning/report.json。
机制核对实际读取范围:Vaswani 等原论文 v7 的 decoder 因果 mask、缩放点积与正弦位置章节;本机官方 PyTorch 2.9.0 的 SDPA、CE、LayerNorm、AdamW、CPU RNG 与 save/load docstrings;固定 v2.9.0 的 Numerical accuracy 中浮点非结合性与 batch/slice 段落。Xiong 等 ICML 2020 仅核对摘要与出版元数据,不从本实验推导通用 warmup 结论。
适用范围与一手资料
固定符号序列任务上的本地小型 decoder,独立拆分训练、验证、测试与长度外推。分别记录 teacher-forced loss、自由生成 token accuracy 和完整序列 exact match;实际报告的种子、环境、预算、恢复与缓存误差在专题内声明。
公式与机制的原始依据 · 4 项
- Attention Is All You Need (2017)Q/K/V、缩放点积、残差与原始 encoder-decoder
- PyTorch 2.9 · Autograd mechanics本项目框架对照固定 PyTorch 2.9.0;冻结、计算图与 no-grad 的语义,2026-10-27 核对
- PyTorch · Saving and Loading Models模型 state 与恢复训练所需 optimizer state
- The Hitchhiker's Guide to Testing Statistical Significance in NLP (2018)配对、重采样与指标差异检验