一项关于"自然语言分词是否存在内禀临界点,以及该点是否最优"的可证伪研究。
含 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 是横跨双轴的稳健平衡点,落在语言的内禀构词单元上。
关键词:分词、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 | 🟡(弱信号) |
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 双轴通吃。
6 讨论:双轴权衡是真正的机理
两阶段实验共同指向一个比"临界即最优"更准确的机理模型。固定容量 LM 的 BPC 同时受两个相反力驱动:
- 压缩轴:粗分词器 cpt 高,等算力(等 token)下模型看到更多字符 → BPC 低(英文等算力最优为 bpe3000)。
- 递推轴:细分词器 cpt 低,等信息(等字符)下模型每字符做更多递推步 → BPC 低(英文等信息最优为 char)。
二者方向相反,α≈1 恰是两轴的交汇平衡点。这解释了为何实践中 BPE~数千词表普遍好用:它处于双轴平衡区,而非某个尖锐最优。中文的"例外"恰恰印证:当 α≈1 的单位同时是语义原子单位(汉字),双轴权衡退化为单点支配,临界点即最优。
对框架的三度修正:
- D_T → γ:分形维对符号序列失效,应以互信息幂律衰减为临界主诊断量。
- MDL 最小 → 拐点:临界点是压缩边际收益前沿,非绝对最小。
- 临界最优 → 双轴平衡:最优性是算力---信息权衡,非单点。
7 局限
- 神经阶段为 8M 参数 / 1000 步的欠训练小模型;尖锐最优可能在更大规模/更长训练下显现(或更不显现)。"15--20%""Grokking 加速"作为普适强效应未能在此规模证实。
- 仅英/中两语;日韩等混合书写系统、形态丰富语言未涉及。
- 静态分词器对比;框架主张的"动态/联合训练分词器"未实现检验(P7 仅间接)。
- SFT/RLHF 阶段的临界对齐(框架 A2)完全未触及。
- 单次训练(无种子重复);BPE 家族 1.4% 的差距接近该规模的噪声,需多种子确认显著性。
8 结论
我们把"临界分词"从理论叙事钉死在可证伪锚点上:
- ✅ α≈1 是稳健的好分词区域,且满足统计物理的临界判据(幂律长程相关,打乱后消失),落在语言的内禀构词单元上(英=子词,中=字)。
- ⚠️ 是否尖锐最优语言依赖:中文 char 双轴最优(强支持),英文是宽平台(弱支持)。
- 🔑 真正机理是算力---信息双轴权衡,α≈1 是平衡点;这比"临界最优"更准、更可指导分词器实践。
- ❌ 被下调/证伪:分形维 D 作诊断量、MDL 最小=临界点、15--20% 普适效率、普适 Grokking 加速。
两条被证伪的命题,恰恰是本工作作为科学(而非玄学)的资格证明。
附录 A 复现
bash
# 统计阶段(Python 3.14 + numpy/scipy/matplotlib)
cd critical_tokenization
python run_all.py # ~25s, 8 图 + summary.json
# LLM 阶段(F:\rwkv\.venv, torch+fla, RTX 4090)
cd critical_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
附录 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 |
附录 C 代码模块
| 文件 | 作用 |
|---|---|
critical_tokenization/corpus.py |
语料加载/切分(中英) |
critical_tokenization/tokenizers.py |
Char/Word/BPE(增量训练) |
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 分析与作图 |
模型:FRSMASH v3.6(SSM + 线性注意力,fla 加速) · 硬件:NVIDIA RTX 4090 D (24GB) · 框架:PyTorch 2.12 + CUDA 12.6