2B 训练只慢 19%:Witnesses 让训练者自证用了哪些数据

Training Witnesses: Trusting the Training without Trusting the Trainer

Houjun Liu, Pratyusha Sharma

cs.LG, cs.CR

2026-09-28

Witnesses 以每步参数指纹加 1% 随机重放挑战认证 LLM 训练,2B 规模速度开销 1.19×,投毒级数据攻击近必被查出,验证者流式验证、内存恒定。

这篇在解决什么

ICLR 今年收到 6 万篇投稿,没有人力复现其中任何一小部分。一篇论文声称「在数据 D 上训了模型 M、得到分数 S」,读者的选项只有两个:信,或者花几十万美元重跑训练。验证负担一直压在读者这边,预训练动辄几千卡之后更不现实。已有三条技术路线都走不通:zkSNARK 类密码学证明(zkDL)在 1000 万参数模型上每步就要接近一秒;统计式溯源(Choi et al. 2023)靠模型对训练数据的记忆痕迹反推,能证明「用过 X」,测不出「偷偷加了 Y」;概率审计(Madrigal-Cianci & Chordia 2026)要频繁检查点和重放,训练者、验证者两边都贵。这些方法还大多绑死特定训练拓扑。这篇把举证责任倒过来:训练者训练时顺带生成一份便宜的密码学证书,任何第三方都能低成本查验,证书只承诺训练代码的哈希,训练技巧本身不披露。

方法

系统叫 Witnesses。训练每一步都在一条 append-only、逐条签名的记录链(tape)上留痕,记录三样东西的承诺:更新前的参数 sketch、更新后的参数 sketch、这步用的数据批次哈希。优化器状态另用一个多轮哈希绑定,保证相邻记录状态连续,中途换不掉。

三个设计撑起整个协议:

工程上再加一层:优化器状态选择性卸载(思路来自 ZeRO-Offload)、拷贝与通信重叠、Python driver 与 Rust worker 流水线,把开销压进通信空隙。整个系统的信任根是一个白盒密码学混淆的虚拟机,负责度量其余组件、派生密钥。

结果

性能在通信受限的分片设置下最好,因为拷贝能被通信盖住:

设置指标原训练加 Witnesses开销
FSDP/TP-2,2.02B每步耗时443.0 ms526.4 ms1.19×
FSDP/TP-2,2.02B每 GPU 显存12.45 GiB13.80 GiB1.11×
DDP,1.03B每步耗时110.5 ms161.9 ms1.47×
DDP,1.03B每 GPU 显存11.67 GiB12.99 GiB1.11×

检测能力在 100M 模型上做了对抗性评测,检查率固定 1%:

验证侧:证书每 token 约 20 出头字节,验证速度每 token 百微秒量级,验证器常驻内存恒定在 200 MiB 上下,不随证书长度增长,可以全程流式。

为什么重要

预训练 baseline 一直是「各说各话」:数据、顺序、未声明的干预都不透明。这份工作给了一个工程上可负担的凭证:训练者花 1.19× 的代价,换来第三方不重跑训练就能查询任意样本的进出。对开源权重发布,这是「没偷数据」的自证渠道;对数据合规(测试集污染、版权语料、隐私数据排除),第一次有了同时回答包含与排除两类查询的机制。配套的 leaderboard(dvbench.org)把凭证做成可提交、可公共验证的形式。冷水也要泼:这是基础设施,价值与采用人数成正比;2B 离 frontier 训练还有两三个数量级,「学术与开源权重规模立即可用」是作者自己划的边界。

局限与存疑

作者承认的:只覆盖训练过程,评测流程只做序列化 attestation,leaderboard 明确不验证打分程序,刷榜仍可能发生在评测侧;对初始状态 θ0 不做任何声明(为兼容 fine-tuning),假设其中夹带的未声明信息可由验证者直接看出;soundness 是概率性的,靠 nonce 与 1% 检查率挡 grind,作者估算攻击者平均要跑 100 次完整训练才能撞出一次通过。

更值得追问的:信任根是白盒密码学混淆 VM,「不能被逆向、不能被伪造」在这里是工程假设,不是可证明的安全。白盒密码学在学术界被实际攻破的记录不少,zkVM 路线才有形式化保证,论文为了速度选了前者。DDP 下开销 1.47×,说明 1.19× 是分片设置的最优值,不是普遍上界。评测覆盖 dense GPT 在 DDP/FSDP/TP 下 100M 到 2B,RLHF、多阶段训练这类更乱的真实管线还没碰。

术语

原文与代码

社区讨论

相关论文

全部论文解读