附录
附四 复现清单
一、模型
- 模型族:公开的多种子、多规模检查点系列(详见第六十一章)。
- 使用:四个规模(14M、31M、70M、160M),每规模五个种子,取最终检查点。
- 噪声基线:每规模一号种子的倒数第二个公开检查点与最终检查点。
- 未使用:410M 及以上(磁盘与算力所限)。
- 附加消融(探索性,不计入判决):最大规模上的”只换数据次序”与”只换权重初始化”两组各三个。
检查点总数:24 个(主系列 20 + 基线 4),另加探索性 6
个。
二、探针集
- 总数 112 条:分布内 64 条,分布外三类各 16 条。
- 摘要值前十六位:
e3b9d8a2795cceee
- 复现的第一步是重建探针集并核对此值。若不一致,后续一切读数不可比——这是本清单中唯一有确定通过标准的检验。
三、脚本
四个,功能如下:
- 探针生成:重建探针集并计算摘要值。
- 表示抽取:逐模型下载、前向、抽取隐藏状态与输出分布。
- 条款一分析:计算表征距离、行为距离、基线与比值,按探针分组输出。
- 消融对比分析:最大规模上三组干预的对照。
四、原始读数
两份,构成本书全部数字的唯一来源:主系列四个规模的全部读数(含分组),以及三组干预的对照读数。
本书正文中的每一个数字都可追到这两份文件。
五、硬件与环境
- 单核处理器,3 GB 内存,单精度浮点。
- 最大规模上单个模型前向约需数分钟;整跑时间主要花在下载与前向上。
- 磁盘为硬约束:每跑完一个模型必须立刻清理缓存。
六、四个已踩过的坑
- 磁盘会爆——逐个模型下载、抽取、清理。
- 散度会因零概率项下溢为无效值——必须显式把零概率项按零处理。这是实现修复,不改变距离定义。
- 不要在已具不变性的度量之前再加一层对齐——多加的那一层只引入新的自由参数。
- 开跑前做自配对返零检验——同一检查点与自身配对,走完全部计算,每一格应为零。首跑未做,代价是一次返工(第六十一章第六节)。
七、复现到什么程度
- 完全可复现:探针集(有确定通过标准)、距离计算(给定同一批状态,结果确定)。
- 可复现但有代价:前向计算,需逐个取用检查点。
- 不可完全复现:不同硬件或精度下,隐藏状态有末位差异,距离在小数第三位上可能不同。复现的标准是同一量级与同一相对关系,不是逐位相同。
- 无法复现:若所用公开检查点被撤下或替换。本书能做的只有把名称、版本号与摘要值全部写明。
八、这份清单挡不住的三件事
清单写完,把它挡不住的写出来,与附三第八节同一个用意。
挡不住之一:材料消失。
见第七节。若公开检查点被撤下,本跑不可复现,而这不是复现者的问题,也不是本书能预防的问题。
挡不住之二:判据错误。
一份完整的复现清单能保证别人跑出同样的数字,不能保证那些数字有意义。首跑的噪声基线是可复现的——任何人按清单跑都会得到同样的
0.0306——而它跨规模不可比这件事,复现一百次也不会显形。复现性与正确性是两件事,而本清单只管前者。
挡不住之三:同一套设备的系统偏向。
若所有复现者都用同一批公开模型、同一套工具、同一类探针,那么他们复现的不只是读数,也复现了那批材料所携带的偏向。第四十六章第二节列过三处错配——规模点分布、检查点间隔、种子数量——它们对每一个复现者同样生效。
因此本清单的正确用法是:用它核对”我跑的是不是同一件事”,而不是用它论证”这件事是对的”。
三件合起来给出一条对复现这个概念的限制,它与第九章第二节那条论证是同一个形状:复现所保证的,是在被认可的操作等价类内部结果稳定;而等价类的边界是被定的。
本清单第七节那三档(完全可复现、有代价、不可完全复现)就是本书为这次实验划下的边界,写明它,是为了让别人能质疑这条边界本身,而不是只能在边界之内重跑。