Self-Play Pretraining with Zero Data
Aditya Cowsik, Kfir Dolev, Michael Y. Li, G. Bruno De Luca, Nourya Cohen, Noah D. Goodman, Yoav Levine
cs.AI, cs.CL
2026-09-25
两个随机初始化的 transformer 自博弈:生成器写程序造数据、学习器学输出,不用任何自然数据,零样本 loss 在文本图像音频等模态上随算力幂律下降,指数与真实数据预训练相当。
大模型的进步靠在越来越多的数据上做预训练,但这些数据始终是替模型准备好的:语料清洗、混合配比、手工设计的合成生成器,每一步都掺进人的判断,数据供给的上限也就是人类知识。更一般的做法是让模型自己学会生成对自己最有用的数据,数据瓶颈从人类知识挪到算力上。这篇论文(Stanford、Tel Aviv University 等合作)是朝这个方向的概念验证,问的是一个极端问题:一条自然数据都不给,模型自己造的课程能不能学出迁移到真实数据上的结构。
设置极简。两个结构相同的 decoder-only transformer,全部从随机权重起步:生成器负责写程序,学习器负责学程序的输出。程序用一种 Brainfuck 式的极简图灵完备语言写成(8 条指令外加 10 个单字符宏),在一台通用图灵机上执行,配上随机输入纸带,吐出字节序列;学习器用普通的下一字节交叉熵预测这些序列。全程字节级、词表 256,从第一个 token 到最后一个都没有自然数据。
关键在生成器怎么训练。它走 RL 路线,奖励是「学习进度」:一个程序的输出在学习器上诱导的梯度,如果与学习器最近一段训练的参数移动方向对齐(回看窗口取已训练轮数的一半,内积由 AdamW 预条件子定义),就拿高奖励。已经掌握的内容梯度趋近零,学不会的噪声梯度与学习方向不对齐,两者都拿不到奖励;只有踮脚够得着的内容被持续选中,课程随学习器能力自动升级。作者最早试过更直观的「难度奖励」,但往可预测序列里掺随机字节就能无限变难,这条路是退化的。
工程上有一圈兜底:程序池每轮混合新采样、变异、回放三类,兼顾探索与防遗忘;策略梯度用 GRPO 式组内归一化加重要性比裁剪;再叠加奖励加权的 SFT 做专家迭代。执行语义保证任何程序串都合法(未配对括号当空操作、纸带循环、步数封顶),生成器永远写不出「报错」。
主实验是 scaling law。有效算力按集成规模 × 参数量 × token 数计算,量级从 10^15 到 10^19,模型最大 25M 参数,单次训练预算封顶 34.36B token。零样本验证 loss(评估集从未参与梯度更新)在文本、图像、音频、语音、旋律、数学、DNA、代码上随算力呈幂律下降,拟合形式 L(C) = E + A·C^-b:
| 数据集 | 自博弈 b | 文献中真实数据 b |
| DCLM 文本 | 0.123 | 0.048–0.099 |
| CIFAR-10(HWC) | 0.066 | 0.065–0.10 |
| 16-bit 音频 | 0.141 | 0.12–0.14 |
| Metamath | 0.129 | 0.17 |
| C 源码 | 0.116 | 0.17 |
| DNA(8 符号) | 0.435 | 0.01–0.06 |
自博弈的指数与直接在真实数据上预训练大体相当,部分还略高;DNA 是唯一的异常点,高出一个数量级,论文标注为例外但没有解释机制。
两个对照说明适应性课程不可省。同样程序空间、固定 Solomonoff 先验采样,scaling 慢得多,说明光有通用程序空间不够,得学会往哪分配算力;PCFG(手工设计的层次结构先验)在文本和代码上仍占优,但在图像、音频、旋律上被自博弈反超,其模型在 ICL 评测里也只在关联召回一项强。
生成器确实在找结构。均匀采样 1.64×10^8 个程序,只出现等差数列一族(1,526 次);斐波那契、等比、二次、三次序列零命中,按此估计首现轮次超过 53,000;自博弈在第 512 轮前把五族全部找齐。生成器也在持续变好:用 16 个不同训练终点的生成器各造一份语料、重训 1M 参数学习器,终点越晚,语料的 epiplexity 越高、OOD 验证 loss 越低。学习器还免费拿到 in-context learning:反转字符串、栈操作、关联召回三个任务在足够示例下逼近 100% 准确率(greedy 解码);SUM 任务约 4 个示例学会低 4 位求和,8 个示例学会高 4 位。
实用角度,自博弈 checkpoint 可以当「预预训练」打底。24.4M 模型热启动后,ESC-50 收敛用 320M token(随机初始化 496M),CIFAR-10 用 421M(588M),全程每个 loss 水位都先到达,只是收敛末端差距收窄。这笔账没有计入自博弈本身的算力。
合成数据通常被当成自然语料的放大器,这篇给出设计空间的另一个端点:数据完全由算力生成。论文把 Chinchilla 公式的数据项拆成「偶发信息」与「普适预测结构」两种资源,自博弈只增长后者,并以此解释为什么完全不看目标分布的合成数据也能降低真实数据上的 loss。哪怕这条路线永远不能替代真实数据,它也把「模型能从多小的种子自举出多少可迁移结构」量化了,曲线和指数都是齐的,可以直接拿来推理。25M 参数、4K 上下文的规格离工业预训练很远,作为受控实验是干净的:两个模型都从随机初始化出发,任何迁移都只能来自自博弈过程本身。
作者自己列的:全部实验在 25M 参数以下、4K 上下文,放大到生产规模未验证,可能需要表达力更强的编程语言;偶发信息(关于具体世界的事实)不可能凭空生成,这条路线不能替代自然数据;超参与模型选择用了 DCLM+DNA 验证 loss,有有限的泄漏;预预训练对比没有计入自博弈算力成本。
读下来另有两处要留意。其一,DNA 指数 0.435 远超文献区间 0.01–0.06,只被标注为例外,而 DNA 恰好是模型选择信号的两个数据集之一,这个巧合值得追问。其二,「指数与自然数据预训练相当,说明普适结构是 scaling 的主要成分」这层解读建立在一个假设式推导上(观测到的数据指数近似两个衰减率中的较小者),作者自己也只用了谨慎的措辞;等比、斐波那契这些被发现的数学序列与迁移之间是相关还是因果,论文承认尚未做电路分析或课程消融验证。