Trigram 频率与 gap 精确频率探针 · controlled real-text dataset · 2000 steps · seed 42

1 · 这其实是一个实验:Baseline run + 三种分析视角

唯一的实验:Baseline training

在受控 real-text n-gram 数据集上运行一次固定的 NanoGPT baseline_input setting,训练 2000 steps。这里没有把 train/val gap、frequency 分组和 norm 曲线误写成不同实验。

分析视角 1:频率分层

对同一个 run 的 train/validation loss 按原始 train corpus 整个 epoch 中的 collision-free exact trigram context count r(c) 分组,计算 exact-frequency gap。

分析视角 2:loss / gap

受限 context 只能提供不完整的条件信息,因此 ground truth 本身有 H(Y|C)>0 的不确定性;训练可以降低 loss,但不能把 Bayes noise 消掉。

分析视角 3:norm dynamics

从同一个 run 的每个 batch 记录 bigram、trigram、total injection RMS,观察模型是否通过增大 memory norm 来记忆训练侧统计。

频率定义校正:r(c) 只来自原始 train corpus 的完整 epoch,按真实 trigram context 逐个计数;hash bucket occupancy 不参与 gap 分组。当前 controlled block 仍是 [c0,c1,c2] → next,因此本报告的 context order 是 3。

2 · Setting 与数据账本

context / predict
trigram / next token
exact contexts
22,759,032
train context instances
62,931,706
exact-r quantiles
P50=1, P99=28, max=77928
architecture
NanoGPTOriginal
injection
input; bigram + trigram
optimizer
mixed / RMSProp table
batch
72 × 2048 = 147,456 tokens
steps / epochs
2000 / 8

训练与频率分解记录:aggregated JSONL · 全量 batch 索引:trace_manifest.jsonl · probe 明细索引:probe_details.jsonl。

3 · 训练曲线:Training loss 与 Validation loss

0 2.5 5 7.5 10 1 100 500 1k 1.5k 2k training step cross-entropy losstrainvalidation
Fig 1 · 每一步的 training loss 与 validation loss;两条曲线来自同一个 exact-frequency baseline run。

最终 step 2000 的 training loss 为 1.3826,validation loss 为 3.3485,整体 gap 为 +1.9658。

4 · 频率分布:每一个真实 trigram context count 是一个点

0 0.25 0.5 0.75 1 1 2 5 10 100 1k 10k trigram frequency r (log scale) number of exact-frequency pointsmoving average: window=√r
Fig 2 · final probe 中出现的真实 trigram context count。横轴 log;每个频率值对应一个点,点的高度是该频率对应的 exact context 数量;红线是 sqrt(r) moving average。
频率审计:r(c) 是 collision-free exact context count,统计源为原始 train corpus 的完整 epoch;hash bucket occupancy 仅可作为独立诊断,不能出现在主 gap 图中。

5 · 主图:gap versus true trigram frequency

-1 0 1 2 3 4 1 2 5 10 100 1k 10k trigram frequency r (log scale) val − train gapadaptive moving average: window=√r; y∈[-1,4]y=0 baseline
Fig 3 · step 2000 的 exact-frequency gap 散点;红线是以 sqrt(r) 为窗口的 adaptive moving average;灰色虚线是严格的 y=0 基准。

step 2000 的 exact-frequency gap 均值为 +0.977,中位数为 +0.975。散点的离散程度很大,因此平滑线只用于观察趋势,不替代原始点;图中 gap 纵轴固定为 [-1,4],超出范围的点不显示。

014028011213–425–9510–191020–493050–9950100–19998200–499250500–9992211k–4.9k234≥5k45-1.0+0.0+1.0+2.0+3.0+4.0frequency bin rnumber of exact-frequency pointsmean gap (val − train)y=0bars: countline: mean gap
Fig 4 · 分 bin 的真实 frequency 分布柱状图与 final mean gap 曲线;蓝柱是每个 frequency bin 中的 exact-frequency 点数量,红线是 step 2000 的 mean gap,灰线为 y=0。
0 2.5 5 7.5 10 1 2 5 10 100 1k 10k trigram frequency r (log scale) per-frequency CE losstrainvalsmooth window=√r; ±3σ display
Fig 5 · 同一批 exact frequency points 的 train / val CE;蓝=train,橙=val;曲线同样使用 sqrt(r) adaptive moving average。
rtrainvalgap
12.98503.8253+0.8403
22.89283.7592+0.8664
32.84953.6644+0.8149
52.82993.7928+0.9630
102.60683.9965+1.3897
202.69193.8298+1.1379
502.87874.4914+1.6126
1003.13673.5992+0.4625
2002.87943.7870+0.9076
5000.87995.9677+5.0878

6 · gap 随训练进程

这一节使用 collision-free exact context count:选择一个真实 trigram frequency r(c),查看它在训练过程中的 train loss、val loss 和 gap。点击图例可以隐藏/显示曲线;gap 图固定显示 y=0。
Fig 6 · true-context-frequency training trajectory;红色 gap 曲线带有 adaptive moving average。
-1 0 1 2 3 4 100 200 400 600 800 1000 1500 2000 training step gapr=1r=2r=3r=5r=10r=20
Fig 7 · 代表性 exact frequencies 的 gap 演化。每条线对应一个实际 r,不是一个区间。

7 · 同一个 baseline run 的 injection norm 曲线

0 0.225 0.45 0.675 0.9 1 500 1k 1.5k 2k training step injection hidden-state RMStrain bigramtrain trigramtrain totalval bigramval trigramval total
Fig 8 · 每个训练 step 的 batch-mean injection RMS;实线=train,虚线=固定 validation batches;粗线=total,total = bigram + trigram。

这张图不是另一个实验,而是同一 baseline run 的机制诊断。若 norm 持续增长而 validation loss/gap 没有同步改善,可以支持“memory capacity / norm growth 驱动过拟合”的解释,但不能单凭相关性证明因果。

8 · norm 机制背景(独立对照)

下面这张图来自此前独立的 RMSProp/table-gate 诊断,只作为背景,不与本次 trigram baseline 的 batch-level norm 混合统计。

previous RMSProp norm diagnostic
Fig 9 · previous norm diagnostic; independent run.

9 · 原始明细是否已经保存?

probe files
16 NPZ = 8 steps × train/val
detail size
33.4 MiB compressed
per sequence
inputs, targets, token_losses: 144 × 2048
per target
context, target, target_loss, frequency: 144 × 410
re-analysis
no retraining needed for aggregation / plots

全量 trace 保存的是每个训练 step 的 token-level loss,以及同一步固定 validation batches 的 token-level loss;不保存所有 transformer activation。当前 run 覆盖约 295M training tokens,并另外保存每步的 bigram/trigram/total injection RMS。

full trace
10000 NPZ = 4000 step/split groups
full trace size
6266.5 MiB compressed
norm fields
bigram RMS · trigram RMS · total RMS per batch

如启用 full-batch trace,报告会读取 trace_manifest.jsonl,并将每一步固定 validation batch 的 token-level loss 与 injection RMS 纳入主训练轨迹。