临界分词的存在性与最优性:从统计临界态到神经语言模型的双语实证检验 -更新
一项关于"自然语言分词是否存在内禀临界点,以及该点是否最优"的可证伪研究。
含 n-gram 统计分析(中/英)与线性 SSM 语言模型(FRSMASH v3.6,~8M 参数)双语验证。
摘要
本文把"临界分词"(critical tokenization)这一理论假设拆解为一组可证伪命题,在真实文本上分两阶段检验。第一阶段用 n-gram 与统计物理量(Zipf 指数 α、互信息幂律衰减 γ、最小描述长度 MDL)刻画分词器的临界结构:我们发现 (i) 中英文均存在使 α 精确逼近 1.0 的特定词表 V*(英 V*=1501, α=0.9998;中 V*=3240, α=1.0014);(ii) token 序列的互信息呈幂律衰减(幂律拟合 R² 显著优于指数),且打乱序列后幂律消失——满足统计物理的临界判据;(iii) 但"MDL 最小值 = 临界点"的强主张被证伪(最小值总落在最大词表),临界点实为压缩收益递减的拐点。第二阶段用容量匹配的神经 LM(~8M 参数,等步数训练)跨 5 组分词器测量验证集 bits-per-char (BPC):英文 BPE 家族在 α∈[0.91,1.09] 内 BPC 仅差 1.4%(宽平台,非尖锐最优);而中文的字符级(α≈1.05,内禀构词单元)在等算力与等信息两个轴上双双最优。第三阶段直接检验框架"动态分词器优于静态"的主张:在同等算力下,无论是静态数据上的词表课程,还是域漂移下的自适应重合并,动态切换分词器都比固定分词器更差——切换扰动压过适应收益,最简形态的"动态>静态"被证伪。综合得到一个比"临界即最优"更准确的可操作结论:分词器最优性是算力—信息双轴权衡,α≈1 是横跨双轴的稳健平衡点,落在语言的内禀构词单元上;而当下可证最优的实践,是预训前用 α≈1 定好词表、贯穿训练全程。
关键词:分词、Zipf 律、临界态、长程相关、最小描述长度、状态空间模型、双语对照
1 引言
主流大语言模型(LLM)采用静态、预训练好的分词器(BPE/WordPiece),分词与模型训练彼此独立。近期有理论假设认为:自然语言处于某种"临界态",存在一个使分词器统计特性(分形维 D、Zipf 指数 α≈1)对齐语言内禀临界的"临界分词",且该分词能最小化总描述长度、加速 Grokking、甚至改写 SFT/RLHF 范式。这类主张多数停留在叙事层面,缺乏可证伪、可复现的检验。
本文不预设其真伪,而是把框架拆成 9 条命题(表 1),用两阶段实验逐一裁决。核心问题三连:
- 分词器是否存在可测的临界结构?(α≈1?长程幂律相关?)
- 该临界点是否是压缩/学习的最优点?
- 结论是否跨语言普适?
2 理论框架与可证伪命题
设原始字符序列x∈X∗x\in\mathcal{X}^*x∈X∗,分词器TTT将其映射为 token 序列z=T(x)z=T(x)z=T(x)。框架提出总描述长度
Ltotal=Ex[−log2pθ(T(x))]⏟L(z): LM 编码代价+β1∣V∣log2∣Vbase∣⏟L(T): 词表代价+β2Δcritic⏟临界正则 \mathcal{L}_{\text{total}}=\underbrace{\mathbb{E}_x[-\log_2 p_\theta(T(x))]}_{L(z):\ \text{LM 编码代价}}+\underbrace{\beta_1|V|\log_2|V_{\text{base}}|}_{L(T):\ \text{词表代价}}+\underbrace{\beta_2\Delta_{\text{critic}}}_{\text{临界正则}}Ltotal=L(z):LM编码代价Ex[−log2pθ(T(x))]+L(T):词表代价β1∣V∣log2∣Vbase∣+临界正则β2Δcritic
其中Δcritic=λD∣DT−Dlang∣+λα∣αT−1∣\Delta_{\text{critic}}=\lambda_D|D_T-D_{\text{lang}}|+\lambda_\alpha|\alpha_T-1|Δcritic=λD∣DT−Dlang∣+λα∣αT−1∣。我们将其分解为表 1 的命题。
表 1 九条命题与裁决汇总(✅证实 / 🟡部分 / ❌证伪 / ⛔未及)
| # | 命题 | 阶段 | 裁决 |
|---|---|---|---|
| P1 | 存在 V* 使 α_T 精确≈1(Zipf 临界吸引子) | 统计 | ✅ |
| P2 | token 序列处于临界态(幂律长程相关) | 统计 | ✅ |
| P3 | D_T(分形维)有意义且区分分词器 | 统计 | ❌(需修正) |
| P4 | MDL 总描述长度在临界点取最小 | 统计 | ❌ |
| P5 | BPE 比字符/词级更接近临界 | 统计 | ✅ |
| P6 | 临界性跨语言普适 | 统计 | ✅(带反转) |
| P7 | 静态分词次优→需联合训练(间接) | 统计 | 🟡 |
| P8 | 临界分词省 15–20% bits | LLM | 🟡(语言依赖) |
| P9 | 临界分词 Grokking 更快 | LLM | 🟡(弱信号) |
| P10 | 动态/联合分词 > 固定分词(等算力) | LLM | ❌(最简形态被证伪) |
3 方法
3.1 语料
- 英文:Project Gutenberg 拼接(Alice / Moby Dick / Tale of Two Cities 等),统计阶段 1.1M 字符,LLM 阶段 18M 训练 + 1M 验证字符。
- 中文:
minimind_data/pretrain_t2t_mini.jsonl,统计阶段 0.7M 字符,LLM 阶段 18M 训练 + 1M 验证字符。 - 所有分词器无损(decode(encode(x))=xdecode(encode(x))=xdecode(encode(x))=x),故残余损失Lres=0L_{res}=0Lres=0,隔离分词器本身的影响。
3.2 分词器
- Char:每字符一个 token(中文即汉字)。
- Word:词表为预分词后的词单元 + UNK。
- BPE:自实现 GPT-2 风格 char-BPE,采用增量 pair-counting(仅更新受影响词),训练加速 15–27×。
- Byte(仅中文 LLM):UTF-8 字节,V=257。
3.3 度量(统计阶段)
- Zipf 指数 α:token 秩-频 log-log 回归斜率,拟合于累计质量 95% 内。
- 互信息幂律衰减 γ:I(d)∼d−γI(d)\sim d^{-\gamma}I(d)∼d−γ,ddd为 token 距离。幂律拟合 R² 与指数拟合 R² 比较;打乱基线(保留频率、破坏顺序)作为对照。
- Higuchi 分形维 D:作用于 token 频率-秩序列。
- BPC:n-gram(插值三阶 + 单阶)交叉熵 / chars-per-token。
- MDL:L(z)+βL(T)L(z)+\beta L(T)L(z)+βL(T),β∈{0.02,0.05,0.1,0.2}\beta\in\{0.02,0.05,0.1,0.2\}β∈{0.02,0.05,0.1,0.2}。
3.4 神经语言模型(LLM 阶段)
- 架构:FRSMASH v3.6——多槽 F-layer(SSM,fla HGRN)+ 线性 SlowMemory + GLA 召回分支(fla chunk_gla),O(T) 复杂度。
- 容量匹配:4 层,按词表微调 hidden 维度把总参数拉平到 7.3–8.9M(消除 embedding 参数差异)。
- 训练:每组同样 1000 步(等算力/等 token),seq=512, batch=32, AdamW(lr=5e-4, β=(0.9,0.95)) + cosine, bf16, grad-clip=1.0。RTX 4090。
- 公平双轴:同时报告 (A) 等算力(等 1000 步)final BPC;(B) 等信息量(BPC @ 同 15M 字符曝光)。
4 统计阶段结果
4.1 命题 P1:α≈1 的临界吸引子(✅ 证实)
词表扫描中,α 单调漂移并精确穿过 1.0:
表 2 英文 BPE 词表扫描(V*=1501, α=0.9998)
| V | 201 | 701 | 1001 | 1501 | 2001 | 4001 | 6942 |
|---|---|---|---|---|---|---|---|
| α | 0.925 | 0.959 | 0.964 | 1.000 | 1.023 | 1.066 | 1.075 |
| γ | 0.623 | 0.260 | 0.217 | 0.183 | 0.166 | 0.136 | 0.118 |
| cpt | 1.46 | 1.77 | 1.84 | 1.91 | 1.96 | 2.07 | 2.15 |
表 3 中文扫描(V*=3240=字符级, α=1.0014;其上 BPE 合并使 α 跌至 0.82–0.85)
| V | 3240(char) | 4001 | 5001 | 6201 | 6801 |
|---|---|---|---|---|---|
| α | 1.001 | 0.822 | 0.829 | 0.839 | 0.848 |
| γ | 0.160 | 0.074 | 0.054 | 0.044 | 0.041 |
| cpt | 1.00 | 1.25 | 1.37 | 1.44 | 1.47 |
跨语言反转:英文的 α≈1 由 BPE 把字符合并到 V≈1500 达成;中文的 α≈1 由汉字本身达成,在字之上继续合并反而把 α 推离 1.0。临界点落在他语言的内禀构词单元上。
4.2 命题 P2:临界态(幂律长程相关)(✅ 证实)
V* 处的互信息衰减,幂律拟合 R² 显著优于指数;打乱序列后 γ 坍塌至 ≈0:
表 4 临界性检验(γ_power = 幂律衰减指数;γ_shuffled = 打乱基线)
| 语言 | 幂律 R² | 指数 R² | γ_power | γ_shuffled |
|---|---|---|---|---|
| 英文 | 0.777 | 0.495 | 0.183 | −0.002 |
| 中文 | 0.826 | 0.520 | 0.160 | +0.0004 |
打乱基线证明 γ 测的是真实序列结构(长程相关),而非频率分布的副产物——满足统计物理的临界判据(尺度无关的幂律相关)。图见results/criticality_{en,cn}.png。
4.3 命题 P3:分形维 D(❌ 需修正定义)
Higuchi 维数对所有分词器落在 0.98–1.01,几乎无区分力(表 5)。分形维本质是连续状态空间概念,直接套到离散 token 序列信息量低。建议:临界性应以 γ(互信息幂律衰减)为主诊断量。
表 5 分词器类型对比(英文)
| V | α | γ | Higuchi D | cpt | |
|---|---|---|---|---|---|
| char | 91 | 0.908 | 1.227 | 1.007 | 1.00 |
| word | 7216 | 1.297 | 0.350 | 0.999 | 1.68 |
| bpe(V*) | 1502 | 1.001 | 0.183 | 1.009 | 1.91 |
4.4 命题 P5/P6:BPE 最接近临界 + 跨语言普适(✅)
BPE(V*) 精确命中 α=1.001 且 γ 最低(0.183,最尺度无关/最临界)。中文对照同样成立(char α=1.002 vs word α=1.148)。图见results/tokcompare_{en,cn}.png。
4.5 命题 P4:MDL 最小 = 临界点?(❌ 证伪)
Ltotal=L(z)+βL(T)\mathcal{L}_{total}=L(z)+\beta L(T)Ltotal=L(z)+βL(T)在所有β 下最小值都落在最大词表(英 6942 / 中 6801),不在 V*。原因:词表代价L(T)=∣V∣log2∣Vbase∣L(T)=|V|\log_2|V_{\text{base}}|L(T)=∣V∣log2∣Vbase∣摊到每字符极小(英 @6942 仅 0.45 bit/char),压不过压缩的持续收益。但V* 落在压缩收益递减的拐点上(英:70% 压缩量于 V≈2001 捕获,紧邻 V*=1501;中:拐点 V≈4501)。→ 临界点 ≠ MDL 绝对最小,而 ≈ 边际收益前沿。图见results/mdl_{en,cn}.png。
5 神经语言模型阶段结果(命题 P8/P9)
5.1 英文:BPE 家族的内点扫描
5 组同族分词器(α 单调 0.91→1.09,V*=bpe1500 为内点),容量匹配 7.4–8.9M 参数,等 1000 步:
表 6 英文 LLM 结果
| 分词器 | α | cpt | 参数 | 等算力 BPC | 等信息 BPC@15M字 |
|---|---|---|---|---|---|
| char | 0.939 | 1.00 | 7.44M | 1.9147 | 1.9252 |
| bpe500 | 0.914 | 1.75 | 7.62M | 1.7963 | 1.9337 |
| bpe1500 (V*) | 0.998 | 2.00 | 8.13M | 1.7833 | 1.9390 |
| bpe3000 | 1.057 | 2.12 | 8.90M | 1.7717 | 1.9509 |
| bpe6000 | 1.093 | 2.22 | 8.36M | 1.7965 | 1.9717 |
- 等算力:浅 U,最优 α≈1.06;BPE 家族挤在 1.772–1.797(跨度仅 1.4%)。
- 等信息:排序反转——越细的分词器信息效率越高(每字符给模型更多递推步)。
- α≈1 是宽平台,非尖锐最优;char→BPE 改善约 7.5%(不到声称的 15–20%)。
5.2 中文:char 为 α 内点的双轴通吃
5 组(byte/char/bpe8000-12000),char(α=1.05) 在粒度上是内点(byte 更细 α=0.71,bpe 更粗 α=0.86-0.88):
表 7 中文 LLM 结果
| 分词器 | α | cpt | 参数 | 等算力 BPC | 等信息 BPC@15M字 |
|---|---|---|---|---|---|
| byte | 0.713 | 0.37 | 7.49M | 5.9439 | 5.9439* |
| char | 1.046 | 1.00 | 8.62M | 4.7733 | 4.8029 |
| bpe8000 | 0.855 | 1.50 | 7.28M | 4.8745 | 5.1088 |
| bpe10000 | 0.869 | 1.58 | 8.05M | 4.8859 | 5.1610 |
| bpe12000 | 0.882 | 1.63 | 8.81M | 4.8849 | 5.1543 |
* byte 因 cpt=0.37,1000 步仅见 6.1M 字,到不了 15M。
- 中文 char(α≈1)在两个轴上都是最优——与英文相反。
- char→byte 改善~24%(落在原声称的 15–20% 区间!),char→bpe 改善 ~2.3%。
- 样本效率(弱 Grokking 信号):char 达 BPC=5.0 仅需 ~9.8M 字符,bpe8000 需 ~17M 字符——临界分词器每字符收敛更快。
5.3 双语对照的核心发现
表 8 双语对照
| 英文 | 中文 | |
|---|---|---|
| 临界单位 | BPE 子词 (bpe1500) | 汉字本身 |
| 等算力最优 | bpe3000 (α=1.06) | char (α=1.05) |
| 等信息最优 | char / bpe500(细) | char |
| 临界是否尖锐最优 | 否(宽平台 1.4%) | 是(双轴通吃) |
差异根源:英文无"原子单位",BPE 在 α≈1 处好但更粗的 BPE 因等算力下多看字符而占优;汉字本身既是 α≈1 又是语义原子单位,故 char 双轴通吃。
5.4 命题 P10:动态/联合分词(❌ 最简形态被证伪)
把框架"动态分词器优于静态"做成可证伪实验:所有条件共用 V_MAX=6001 embedding(消除 embedding 手术),靠restrict_to保持 master ID 一致来中途切换分词器。同等 1000 步算力。
表 9 动态分词实验(lower=better)
| 条件 | final BPC | 说明 |
|---|---|---|
| TEST 1(静态数据) | ||
| static_full | 1.7731 | 全程 full |
| static_1500 (V*) | 1.8013 | |
| static_500 | 1.8138 | |
| curriculum | 1.8569(最差) | 500→1500→3000→full 各 250 步 |
| TEST 2(域漂移 A→B) | (最终 B 集 BPC) | |
| oracle | 1.8093 | full 贯穿 |
| frozen | 1.8468 | 1500 贯穿 A→B |
| dynamic | 1.9085(最差) | A 用 1500,边界扩 full |
- TEST 1:课程式扩词表最差——把预算劈成 4 段、每段换分词,模型每次切换都要重学,不如一开始就用最终分词训满。
- TEST 2:A→B 边界切换分词器比冻结更差(dynamic 1.909 > frozen 1.847)。新增 ~4500 个 embedding 行随机未训,400 步内来不及学——切换扰动 > 适应收益。
- 两种情况都是oracle(一开始选对词表、贯穿全程)最优。
裁决:在最简形态(中途硬切词表)、8M/1000步规模、温和漂移下,动态/联合分词被证伪。框架要 salvage 它,须证明可微/渐进式版本能消除切换扰动——这是明确的下一步技术目标。详见llm_verify/DYN_VERIFICATION_REPORT.md,图dyn_runs/dyn_results.png。
6 讨论:双轴权衡是真正的机理
两阶段实验共同指向一个比"临界即最优"更准确的机理模型。固定容量 LM 的 BPC 同时受两个相反力驱动:
- 压缩轴:粗分词器 cpt 高,等算力(等 token)下模型看到更多字符 → BPC 低(英文等算力最优为 bpe3000)。
- 递推轴:细分词器 cpt 低,等信息(等字符)下模型每字符做更多递推步 → BPC 低(英文等信息最优为 char)。
二者方向相反,α≈1 恰是两轴的交汇平衡点。这解释了为何实践中 BPE~数千词表普遍好用:它处于双轴平衡区,而非某个尖锐最优。中文的"例外"恰恰印证:当 α≈1 的单位同时是语义原子单位(汉字),双轴权衡退化为单点支配,临界点即最优。
对框架的四度修正:
- D_T → γ:分形维对符号序列失效,应以互信息幂律衰减为临界主诊断量。
- MDL 最小 → 拐点:临界点是压缩边际收益前沿,非绝对最小。
- 临界最优 → 双轴平衡:最优性是算力—信息权衡,非单点。
- 动态 > 静态 → 被证伪(最简形态):中途硬切词表的切换扰动压过适应收益;当下可证最优是"预训前用 α≈1 定好词表、贯穿全程"(oracle 总赢)。
7 局限
- 神经阶段为8M 参数 / 1000 步的欠训练小模型;尖锐最优可能在更大规模/更长训练下显现(或更不显现)。“15–20%”"Grokking 加速"作为普适强效应未能在此规模证实。
- 仅英/中两语;日韩等混合书写系统、形态丰富语言未涉及。
- 动态分词实验证伪的是最简形态(中途硬切词表、温和漂移);框架更强的可微/渐进式动态分词未实现检验——若要 salvage,须证明其能消除切换扰动。
- SFT/RLHF 阶段的临界对齐(框架 A2)完全未触及。
- 单次训练(无种子重复);BPE 家族 1.4% 的差距接近该规模的噪声,需多种子确认显著性。
8 结论
我们把"临界分词"从理论叙事钉死在可证伪锚点上:
- ✅α≈1 是稳健的好分词区域,且满足统计物理的临界判据(幂律长程相关,打乱后消失),落在语言的内禀构词单元上(英=子词,中=字)。
- ⚠️是否尖锐最优语言依赖:中文 char 双轴最优(强支持),英文是宽平台(弱支持)。
- 🔑真正机理是算力—信息双轴权衡,α≈1 是平衡点;这比"临界最优"更准、更可指导分词器实践。
- ❌动态/联合分词(最简形态)被证伪:切换扰动 > 适应收益;当下最优是预训前定好词表、贯穿全程。
- ❌ 被下调/证伪:分形维 D 作诊断量、MDL 最小=临界点、15–20% 普适效率、普适 Grokking 加速。
三条被证伪的命题(D、MDL-最小、动态>静态),恰恰是本工作作为科学(而非玄学)的资格证明。
附录 A 复现
# 统计阶段(Python 3.14 + numpy/scipy/matplotlib)cdcritical_tokenization python run_all.py# ~25s, 8 图 + summary.json# LLM 阶段(F:\rwkv\.venv, torch+fla, RTX 4090)cdcritical_tokenization/llm_verify python build_caches.py en&&python train_compare.py en python build_caches.py cn&&python train_compare.py cn# 补 cn 的 bpe10000(见 train_compare 注释)python analyze.py en# 用 Python3.14 出图python analyze.py cn# 第三阶段:动态分词验证python dyn_experiment.py# F:\rwkv\.venv, ~5 分钟python analyze_dyn.py# Python3.14 出图附录 B 图表索引
| 图 | 路径 |
|---|---|
| 词表扫描(中/英) | results/sweep_{en,cn}.png |
| 临界性 MI 衰减 | results/criticality_{en,cn}.png |
| MDL 权衡 | results/mdl_{en,cn}.png |
| 分词器类型对比 | results/tokcompare_{en,cn}.png |
| LLM BPC 曲线 | llm_verify/runs_{en,cn}/bpc_curves_*.png |
| LLM BPC-vs-α | llm_verify/runs_{en,cn}/bpc_vs_alpha_*.png |
| 动态分词实验 | llm_verify/dyn_runs/dyn_results.png |
附录 C 代码模块
| 文件 | 作用 |
|---|---|
critical_tokenization/corpus.py | 语料加载/切分(中英) |
critical_tokenization/tokenizers.py | Char/Word/BPE(增量训练 +restrict_to任意子集) |
critical_tokenization/metrics.py | α, γ, Higuchi D, n-gram BPC, MDL |
critical_tokenization/experiments.py | 统计阶段 4 组实验 |
critical_tokenization/llm_verify/common.py | Byte 分词、参数拉平、模型构建 |
critical_tokenization/llm_verify/build_caches.py | 分词器 token 缓存(双语) |
critical_tokenization/llm_verify/train_compare.py | 容量匹配 LM 训练 + BPC 日志 |
critical_tokenization/llm_verify/analyze.py | 双轴 BPC 分析与作图 |
critical_tokenization/llm_verify/dyn_experiment.py | 动态分词实验(课程 + 域漂移) |
critical_tokenization/llm_verify/analyze_dyn.py | 动态实验作图 |
模型:FRSMASH v3.6(SSM + 线性注意力,fla 加速) · 硬件:NVIDIA RTX 4090 D (24GB) · 框架:PyTorch 2.12 + CUDA 12.6
