在这里插入图片描述

论文:Training Language Models via Neural Cellular Automata
作者:Dan Lee, Seungwook Han, Akarsh Kumar, Pulkit Agrawal(MIT · Improbable AI Lab)
链接:arXiv:2603.10055 · 代码

自然语言 pre-training 的三重困境

大型语言模型(LLMs)的能力主要在 pre-training 阶段习得。规模定律(scaling laws)告诉我们,模型越大、数据越多,性能越好。然而这条路正在逼近三个硬性天花板。

  • 高质量文本有限。Will We Run Out of Data? Limits of LLM Scaling Based on Human-Generated Data(2022)预测,人类产出的高质量文本将在 2028 年前被耗尽。继续沿现有路线扩张,所需数据量呈指数增长,但供给却是有限的。
  • 人类偏见的污染。自然语言是人类认知的有损记录,内嵌了各类社会偏见。使用这些数据训练的模型在对齐方面面临持续挑战,而清洗和筛选数据本身代价高昂。
  • 知识与推理的纠缠。语言模型在自然文本上学习时,无法将"事实性知识"与"推理能力"解耦,两者以难以分离的方式混合在同一参数空间中。

这三重困境共同指向一个根本问题:自然语言是通往智能的唯一路径吗?

本文作者的答案是:不是。他们提出用神经元胞自动机(Neural Cellular Automata,NCA)生成的纯合成数据,对语言模型进行"pre-pre-training",即在接触任何自然语言之前,先让模型在合成的时空结构数据上完成一轮训练。

核心假设:结构比语义更重要

在深入方法之前,有必要理解这项工作背后的核心理论假设。

作者认为,LLMs 中涌现的推理能力(few-shot learning、chain-of-thought 等),其本质依赖的是自然语言的底层计算结构,而非其语义内容本身。

自然语言文本之所以有用,不是因为它谈论的是人类世界,而是因为它蕴含了从推理轨迹到程序性指令的多样结构。next-token prediction 迫使模型内化支持这些结构的潜在计算过程。(Language modeling is compressionA latent space theory for emergent abilities in large language models)

基于这一假设,如果能够人工合成一种数据,使其:

  1. 具有与自然语言相似的统计结构 (Learning to see by looking at noise) 如近似的尺度不变性 (Relations between the statistics of natural images and the response properties of cortical cells) 或者 Zipfian 分布 (Data distributional properties drive emergent in-context learning in transformersHuman behavior and the principle of least effort);
  2. 蕴含丰富且多样的时空规律;
  3. 能够系统性地控制复杂度;
  4. 可以无限低成本地生成,

那么这种数据就有可能替代自然语言承担"结构学习"的功能。

这个想法的支撑来自两个方向:

  • 视觉领域已有工作证明,在分形、噪声等合成图像上预训练的视觉模型能够向真实图像迁移(Procedural Image Programs for Representation Learning);
  • 理论上,An Explanation of In-Context Learning as Implicit Bayesian Inference 证明了 in-context learning 等价于对潜在规律的隐式 Bayesian 推断,而这一推断机制与数据的语义无关,只与其统计结构有关。

在这里插入图片描述

Neural Cellular Automata(NCA)是什么?

NCA 是经典 Conway 生命游戏的神经网络泛化版本。在经典 cellular automata(CA)中,每个格子的状态根据固定规则更新;而在 NCA 中,这个规则被替换为一个参数化的神经网络 f θ f_\theta fθ

基本设置

本文使用 12 × 12 12 \times 12 12×12 的二维离散网格,周期性边界条件(左右、上下循环相连),状态字母表大小 n = 10 n = 10 n=10(每个格子可以处于 10 种状态之一,用 10 维 one-hot 向量表示)。

转移动态由神经网络 f θ f_\theta fθ 控制,将每个格子的 3 × 3 3 \times 3 3×3 邻域映射到下一时刻状态的概率分布:

c i ( t + 1 ) ∼ softmax  ⁣ ( f θ  ⁣ ( c N ( i ) ( t ) ) τ ) c_i^{(t+1)} \sim \text{softmax}\!\left(\frac{f_\theta\!\left(c_{N(i)}^{(t)}\right)}{\tau}\right) ci(t+1)softmax τfθ(cN(i)(t))

其中 c i ( t ) c_i^{(t)} ci(t) 是格子 i i i 在时刻 t t t 的状态, N ( i ) N(i) N(i) 是其 3 × 3 3 \times 3 3×3 邻域, τ = 10 − 3 \tau = 10^{-3} τ=103 是一个极小的温度参数——使采样几乎确定性(几乎总是选取 logit 最大的状态),同时保留极微小的随机性。

f θ f_\theta fθ 的网络结构为: 3 × 3 3 \times 3 3×3 卷积(4 channels) → \to cell-wise MLP(hidden size 16,ReLU 激活) → \to 输出 10 个 logits。

多样性的来源

每生成一条训练序列, θ \theta θ 和初始状态 c ( 0 ) c^{(0)} c(0) 都会随机重新采样:

  • θ \theta θ:网络权重随机初始化;
  • c ( 0 ) c^{(0)} c(0):每个格子的初始状态从 { 0 , 1 , … , 9 } \{0, 1, \ldots, 9\} {0,1,,9} 均匀采样。

这意味着每条序列都是由一套独特的"物理定律"驱动的——模型无法记忆具体规则,只能在每条序列的 context 中实时推断。这一设计刻意对齐了 in-context learning 的 Bayesian 框架。

复杂度的控制

NCA 动态的复杂度差异巨大:有些 θ \theta θ 会让格子快速收敛到固定点或短周期循环(低熵、低复杂度),有些则会产生混沌、不可预测的时空结构(高熵、高复杂度)。

作者使用 gzip 压缩率作为复杂度的实用度量——由于 Lempel-Ziv 压缩提供了 Kolmogorov 复杂度的可计算上界(An Introduction to Kolmogorov Complexity and Its Applications),gzip 压缩率是序列内在复杂度的合理代理指标:
r = compressed bytes raw bytes × 100 % r = \frac{\text{compressed bytes}}{\text{raw bytes}} \times 100\% r=raw bytescompressed bytes×100%

  • 压缩率低( r ≈ 20 % r \approx 20\% r20%)意味着序列高度规律、可压缩性强
  • 压缩率高( r ≥ 50 % r \geq 50\% r50%)意味着序列具有丰富的不可压缩结构

默认筛选策略:保留 r ≥ 50 % r \geq 50\% r50% 的序列(50%+ 复杂度带)用于 pre-pre-training。

从格子状态到语言模型 Token

NCA 产生的是一个二维的离散格子序列,而语言模型需要的是一维的整数 token 序列。这中间需要一套 tokenization 方案。

Patch Tokenization

参考 Vision Transformer(An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale)的 patch tokenization 思路,作者将每个时间步的 12 × 12 12 \times 12 12×12 格子用非重叠的 2 × 2 2 \times 2 2×2 patch切分,每个 patch 包含 4 个格子。每个 patch 内的 4 个格子状态各取 { 0 , … , 9 } \{0, \ldots, 9\} {0,,9},将其组合为一个整数(双射映射):
token_id = s 1 ⋅ 10 3 + s 2 ⋅ 10 2 + s 3 ⋅ 10 + s 4 \text{token\_id} = s_1 \cdot 10^3 + s_2 \cdot 10^2 + s_3 \cdot 10 + s_4 token_id=s1103+s2102+s310+s4

其中 s 1 , s 2 , s 3 , s 4 ∈ { 0 , … , 9 } s_1, s_2, s_3, s_4 \in \{0, \ldots, 9\} s1,s2,s3,s4{0,,9} 是 patch 内四个格子的状态。这样产生的词汇表大小恰好为 10 4 = 10000 10^4 = 10000 104=10000 个 patch token。 12 × 12 12 \times 12 12×12 的网格被切分成 6 × 6 = 36 6 \times 6 = 36 6×6=36 个 patch,每个时间步贡献 36 个 token。

序列构造

每个时间步的 36 个 patch token 按行优先顺序排列,并在两端加上特殊分隔符:
⟨ grid ⟩ ,   p 1 , p 2 , … , p 36 ⏟ 36 patch tokens ,   ⟨ / grid ⟩ \langle\text{grid}\rangle,\ \underbrace{p_1, p_2, \ldots, p_{36}}_{\text{36 patch tokens}},\ \langle/\text{grid}\rangle grid, 36 patch tokens p1,p2,,p36, /grid

多个时间步首尾拼接,截断至最长 1024 tokens,构成一条训练序列。每条序列约覆盖 ⌊ 1024 / 38 ⌋ ≈ 27 \lfloor 1024 / 38 \rfloor \approx 27 1024/3827 个时间步的 NCA 演化过程。

训练目标

与语言模型的 pre-training 完全一致,使用标准的自回归 cross-entropy 损失:
L = − ∑ i = 1 N log ⁡ p ϕ ( x i ∣ x < i ) \mathcal{L} = -\sum_{i=1}^{N} \log p_\phi(x_i \mid x_{<i}) L=i=1Nlogpϕ(xix<i)

其中 x = ( x 1 , x 2 , … , x N ) x = (x_1, x_2, \ldots, x_N) x=(x1,x2,,xN) 是 tokenized 轨迹, p ϕ p_\phi pϕ 是 transformer 参数化的概率分布。

由于每条序列对应唯一的 θ \theta θ(动态规则),模型要准确预测下一个 patch,必须从当前 context 中推断出这条序列背后的隐藏规律,再据此预测。

这与 An Explanation of In-Context Learning as Implicit Bayesian Inference 提出的"in-context learning = 对潜在概念的隐式 Bayesian 推断"在形式上完全对应。

只不过这里的"概念"是 NCA 的转移规则 θ \theta θ,而非自然语言的语义主题。

Pre-Pre-Training 框架

三阶段训练范式

本文采用三阶段训练范式:

阶段 数据 目标
Pre-pre-training NCA 合成轨迹(164M tokens) 学习可迁移的计算原语
Pre-training 自然语言语料(OpenWebText / OpenWebMath / CodeParrot) 习得语言知识
Fine-tuning 任务数据集 特定任务适配

本文主要研究第一阶段到第二、三阶段的迁移效果。

模型与迁移设置

模型使用 Llama-based transformer,参数规模 1.6B(24 层,32 heads,hidden size 2048,weight-tying)。

NCA pre-pre-training 结束后,执行以下迁移操作:

  • 丢弃并重新初始化 embedding 层:NCA 词汇表(10000 个 patch token)与自然语言词汇表完全不同,无法复用;
  • 保留所有 transformer 层权重(attention、MLP、LayerNorm):这些层在 NCA 训练中习得的计算结构被期望能够迁移;
  • pre-training 阶段更新全部参数:没有任何参数被冻结。

Baselines

实验设置了三个基线对比方法:

  • Scratch:随机初始化,直接在自然语言数据上 pre-training,不做任何 pre-pre-training;
  • C4 pre-pre-training:先在 C4 自然语言数据集上 pre-pre-training(匹配 token 预算),再迁移到目标域;
  • Dyck pre-pre-training:先在 K-Dyck 形式语言数据上 pre-pre-training(参考 Between Circuits and Chomsky: Pre-pretraining on Formal Languages Imparts Linguistic Biases,2025),K-Dyck 是另一种非语义合成数据方案。

K-Dyck 语言是什么?

K-Dyck 语言( D k D_k Dk)是经典括号匹配语言的推广:有 k k k 种不同类型的括号对,合法序列要求所有括号类型正确且完全匹配。例如 k = 2 k=2 k=2 时括号对为 ()[]([]) 合法而 ([)] 不合法。其形式文法为:

S    →    ε    ∣    S   S    ∣    a 1   S   b 1    ∣    a 2   S   b 2    ∣    ⋯    ∣    a k   S   b k S \;\to\; \varepsilon \;\mid\; S\,S \;\mid\; a_1\, S\, b_1 \;\mid\; a_2\, S\, b_2 \;\mid\; \cdots \;\mid\; a_k\, S\, b_k SεSSa1Sb1a2Sb2akSbk

本文使用 k = 128 k = 128 k=128(128 种括号对,256 个 token 类型)、无限嵌套深度的 K-Dyck 数据,通过随机展开上述上下文无关文法(CFG)生成训练序列。
K-Dyck 要求模型学会追踪括号的嵌套层级与类型匹配,这与代码的结构(函数调用嵌套、条件块、括号匹配)高度同构,因此在 HumanEval 上表现与 NCA 相当。
然而,K-Dyck 的本质是单一 CFG 的多样实例化,计算多样性的天花板是固定的;相比之下,NCA 的每条序列有独立的随机 θ \theta θ,覆盖了从简单规则到图灵完备的广泛计算函数类,多样性远超 K-Dyck。

主要实验结果

NCA Pre-Pre-Training 持续改善语言建模

在这里插入图片描述
在这里插入图片描述

对三个下游自然语言语料分别进行完整 pre-training,评估指标为验证集困惑度(perplexity)。

语料 困惑度改善 收敛加速 Token 效率增益
OpenWebText 6% 1.5× 31%
OpenWebMath 5% 1.4× 27%
CodeParrot 4% 1.6× 49%

困惑度改善在整个训练过程中持续存在并往往进一步扩大,排除了"这只是一个更好的初始化"的解释,NCA pre-pre-training 真正提高了 token 效率。

在三种模型规模(400M、600M、1.6B)上,NCA 均优于所有三个基线,多个随机种子下结果一致。相对增益随模型规模增大而减小,符合预期(更大的模型本身是更强的基线,边际改善更难获得)。

最令人惊讶的以小胜大

仅 160M tokens 的 NCA 数据,优于 1.6B tokens 的 C4 自然语言数据,即便后者在 token 预算上多出 10 倍,即便保留 C4 的 embedding 层也不例外。

作者对此解释,在 1.6B tokens 这一有限预算下,C4 pre-pre-training 仍处于训练的早期阶段,根据 compute-optimal scaling laws(Training Compute-Optimal Large Language Models,2022),1.6B 参数的模型需要约 32B tokens 才能充分训练。在这个早期阶段,模型主要习得浅层局部模式(句法模式、词语搭配等),而非具有广泛迁移价值的长程依赖跟踪和 in-context rule inference 能力。

NCA 序列则更纯粹:每条序列都强制执行一个完整的规则推断任务,没有任何语义捷径可以走。每个 NCA 序列代表一个独特函数,使得每个 token 都在贡献对通用计算机制的学习,而非领域特定的统计模式。

迁移至下游推理任务

困惑度是语言建模质量的代理指标,但不是我们终极关心的能力。作者进一步评估了在推理 benchmarks 上的表现:
在这里插入图片描述

几点值得注意的现象:

  • 在 HumanEval 的较高 pass@k 上,Dyck pre-pre-training 与 NCA 相当甚至略优。作者认为这源于 Dyck 语言与 code 的结构重叠——两者都需要追踪嵌套逻辑和分隔符模式。
  • 在 BigBench-Lite 的 pass@4 上,NCA 的优势最为显著(36.5% vs. 29.7% vs. 25.9%),表明 NCA 训练的模型在反复采样时覆盖了更广的正确解空间。
  • pass@k 中的 k k k 越大,NCA 的相对优势越明显,说明 NCA pre-pre-training 提升的是模型解空间的多样性(多次采样能找到正确解的概率),而非单次预测的确定性。

机制分析:什么驱动了迁移?

Attention 层是最具迁移价值的组件

为了定位迁移信号来自哪里,作者进行了选择性重初始化实验:在 NCA pre-pre-training 结束后,分别重新初始化不同的组件(Attention、MLP、LayerNorm),然后执行 pre-training,观察性能变化。

结论非常明确,重新初始化 attention 权重导致的性能退化最大,在 OpenWebText 和 CodeParrot 上均如此。MLP 和 LayerNorm 的影响则呈现领域依赖性:

  • 在 OpenWebText 上,保留 MLP 和 LayerNorm 反而降低了迁移效果——这些层编码了 NCA 特有的统计量,干扰了语言学习;
  • 在 CodeParrot 上,这些组件的影响可以忽略不计。

这一发现支持了如下的功能分工假说:

  • Attention 层:学习通用的长程依赖追踪机制和 in-context learning 电路(induction heads,In-Context Learning and Induction Heads,2022),可以跨域迁移;
  • MLP 层:存储领域特定的知识和统计模式,迁移效果取决于源域(NCA)与目标域的对齐程度。

复杂度与目标域的匹配原则

在这里插入图片描述

复杂度调控实验:以不同 gzip 压缩率区间(20-30%,30-40%,40-50%,50%+)的 NCA 数据分别进行 pre-pre-training,比较迁移效果。

核心发现:最优 NCA 复杂度因下游域而异,且与目标语料库的内在复杂度直接对应:

目标域 语料 gzip 率 最优 NCA 复杂度带
OpenWebText ~70% 50%+(高复杂度)
OpenWebMath ~58% 50%+(高复杂度)
CodeParrot ~32% 30-40%(中等复杂度)

这一"复杂度匹配原则"(complexity matching principle)提供了一个在自然语言 pre-training 中从未有过的调控杆:与其增加通用 token 数量,不如调整合成数据的复杂度分布使其与目标域对齐,以更低的计算代价获得更好的迁移效果。

Alphabet Size 的 Scaling 行为

在这里插入图片描述

对 NCA 状态字母表大小 n ∈ { 2 , 10 , 15 } n \in \{2, 10, 15\} n{2,10,15} 的消融实验揭示了一个反直觉的现象。

更大的 alphabet( n = 10 , 15 n = 10, 15 n=10,15)会产生更复杂的 NCA 动态,但其扩展规律呈现反向 U 形:在中等 token 预算时效果最优,超过后趋于平稳甚至退化。

出人意料的是,最小的 alphabet( n = 2 n = 2 n=2)在 token 预算增大时仍持续改善,展现出最佳的扩展性。作者推测原因是:较小的规则空间将采样集中于具有更一致、更普遍可迁移结构的动态上。较大 alphabet 虽然能表达更复杂的动态,但在没有主动引导的情况下,难以保证采样到的 NCA 具有最优的迁移价值。

为什么合成数据能优于语言数据?

In-context Rule Inference 的"纯粹性"

在自然语言文本中,模型可以依赖词语的语义共现先验作为预测捷径——例如,看到"巴黎"就预测"法国",看到"if" 就预测"then"。这些捷径有时会阻碍模型学习更深层的计算机制(Shortcut Learning in Deep Neural Networks,2020 称之为"shortcut learning")。

在 NCA 序列中,每条序列的动态规则完全由随机 θ \theta θ 决定,模型没有任何语义捷径可以走。唯一的预测策略是:从 context 中推断 θ \theta θ,再据此推断下一个状态。这迫使模型发展出更纯粹的 in-context rule inference 能力。

An Explanation of In-Context Learning as Implicit Bayesian Inference(2022)的 Bayesian 框架表述:NCA pre-pre-training 鼓励模型进行

p ( θ ∣ x < i ) ∝ p ( x < i ∣ θ ) ⋅ p ( θ ) p(\theta \mid x_{<i}) \propto p(x_{<i} \mid \theta) \cdot p(\theta) p(θx<i)p(x<iθ)p(θ)

的隐式推断,而自然语言 pre-pre-training 在有限 token 预算下大量学习的是更浅层的 p ( x i ∣ x < i ) p(x_i \mid x_{<i}) p(xix<i) 的表面统计规律。

Epiplexity:确定性过程也能产生有用信息

经典信息论认为确定性变换不能增加信息量,这似乎质疑了 NCA(本质上是确定性动态系统)为何能提供有用的训练信号。

From Entropy to Epiplexity: Rethinking Information for Computationally Bounded Intelligence(2026)提出的 epiplexity 概念回答了这个问题:对于计算能力有限的观察者,确定性过程可以产生"有用的结构信息"。NCA 的局部规则(如 Conway 生命游戏中的滑翔机)能够产生涌现结构,而一个有限容量的模型无法暴力模拟这些涌现——它必须学习能够在更粗粒度抽象层次上预测演化的表征。正是这种"学习抽象表征"的压力,与语言建模对"学习语言规律"的压力存在深层对应。

NCA 作为通用计算的样本

NCA 作为一类计算系统,覆盖了从平凡(固定点)到图灵完备(Turing Universality of the Game of Life,证明 Conway 生命游戏是图灵完备的)的广泛计算函数。这种多样性使得记忆单个规则变得不可行,迫使模型学习普遍的规则推断机制。相比之下,K-Dyck 或字符串复制这类先前的合成任务,每种任务只对应一类固定的计算结构,多样性有限。

Token 效率的定量计算

论文在附录中定义了一个更精确的 Token Efficiency Gain 指标:

Token Efficiency Gain = 1 − T PPT NCA + T PT NCA T PPT base + T PT base \text{Token Efficiency Gain} = 1 - \frac{T_{\text{PPT}}^{\text{NCA}} + T_{\text{PT}}^{\text{NCA}}}{T_{\text{PPT}}^{\text{base}} + T_{\text{PT}}^{\text{base}}} Token Efficiency Gain=1TPPTbase+TPTbaseTPPTNCA+TPTNCA

其中 T PPT T_{\text{PPT}} TPPT 是 pre-pre-training 阶段消耗的 token 数, T PT T_{\text{PT}} TPT 是在 pre-training 阶段达到 scratch baseline 最终 loss 所需的 token 数。对于 scratch baseline, T PPT base = 0 T_{\text{PPT}}^{\text{base}} = 0 TPPTbase=0

该指标衡量的是:在达到等效性能的情况下,总 token 消耗的节省比例。

实测结果:

目标域 Token Efficiency Gain
OpenWebText 31%
OpenWebMath 27%
CodeParrot 49%

以 CodeParrot 为例,这意味着:使用 NCA pre-pre-training 后,达到 scratch 模型最终性能只需 51% 的总 token 预算,节省了近一半的计算资源。

NCA 数据的统计特性:为什么它"像"自然语言?

在这里插入图片描述

附录 A 的分析揭示了 NCA 数据具有与自然语言相似的重尾 Zipfian(幂律)分布:token 频率随 rank 的下降呈幂律衰减,与 OpenWebText、OpenWebMath、CodeParrot 的分布高度相似。

Learning to See by Looking at Noise 提出了"naturalistic data" 的概念:重要的不是数据本身是否来自自然,而是数据是否复现了自然界的统计结构。Zipfian 分布和 approximate scale-invariance 是自然语言的两大关键统计特征,NCA 数据恰好同时具备。

局限性与未来工作

已知局限

  • Alphabet 扩展的瓶颈。对于较大的 alphabet( n = 10 , 15 n = 10, 15 n=10,15),存在明显的 token 预算下的 U 形收益曲线:在中等预算时效果最优,超过后改善停滞。这表明有效的合成 pre-training 高度依赖数据生成器的结构选择,而非仅仅是数据规模。
  • 复杂度度量的局限。Gzip 压缩率和 alphabet 大小是复杂度的两个视角,但复杂度本身是多维的,一个序列可以高度可压缩却具有丰富的长程依赖,或反之。目前缺乏能够精确刻画"哪种复杂度对哪种任务有益"的理论框架。
  • 能否完全替代自然语言? 目前的工作仅验证了 NCA 作为 pre-pre-training 信号的价值,并未回答"能否用 NCA 完全替代自然语言 pre-training" 这一更根本的问题。

未来方向

  • 原则性的合成数据设计方法:如何根据目标域的计算特性,自动设计最优的合成数据生成器?复杂度匹配的方向是已经明确的,但精确化的方法尚待开发。
  • 更多维度的复杂度调控:NCA 网络规模、网格尺寸、epiplexity 等维度的影响尚未系统研究。
  • 迈向完全合成 pre-training:作者的终极愿景是在合成数据上完成全部 pre-training,再用少量筛选后的自然语言进行 fine-tuning 以习得语义。NCA 代表了向这一目标迈出的第一步。

总结

这篇工作提出并验证了一个挑战直觉的核心命题:精心设计的合成数据(NCA)可以在数量远少于自然语言的情况下,提供更有效的语言模型预训练信号。

其成功背后的机理可以归结为两点:

  1. 结构而非语义:NCA 的时空结构迫使模型学习 in-context rule inference 这一通用计算能力,而不是浅层的语义共现模式;
  2. 可控的复杂度:NCA 提供了自然语言数据中从未有过的调控维度,可以系统性地调整合成数据的复杂度分布,使其与目标域的计算特性对齐。

这项工作的意义不仅在于"NCA 有效",而在于它开辟了一条新的研究方向:问题不再是"合成 pre-training 是否可行",而是"如何设计能最大化模型学习效果的合成数据分布"。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐