目录 / 文档-技术白皮书 / 54-复现实验清单 Template v1.0
I. 目标与范围(Purpose & Scope)
- 统一随机源(Seeds)、随机性(RNG)与确定性(Determinism)的控制策略与验证方法,覆盖数据打乱、参数初始化、算子实现、并发与时间依赖,确保复现实验结果可重复、可量化等价。
- 凡涉及路径量(到达时/相位),正文显式 gamma(ell) 与测度 d ell,数据侧记录 delta_form ∈ {general, factored};所有表达括号化,发布要求 p_dim = 1.0 并随附 check_dim_report.json。
II. 输入与依赖(Inputs & Dependencies)
- 依赖:第4章(环境锁定)、第5章(数据快照与血缘)、第6章(权重参数与新鲜度)、第7章(脚本与命令)。
- 引用:统一“卷名 + 版本 + 锚点(P/S/M/I)”,锚点直指率 ≥ 90%;跨卷覆盖口径 coverage.mode ∈ {k, alpha, quantile} 保持一致。
III. 随机源策略(Seed Policy)
- 全局:固定 seed_global,并对 random/numpy/frameworks 分别设置种子。
- 数据面:数据打乱、分层采样、切分(split.yaml)使用同一或明示映射的种子;重试不得改变样本顺序。
- 模型面:权重初始化、dropout、数据增强等随机过程使用可追溯种子流(按阶段派生 seed_stage = H(seed_global, stage))。
- 并发面:线程/流数固定,跨进程种子以 rank 派生,确保 DDP/FSDP 等场景的等价性。
IV. 确定性与非确定算子(Determinism & Non-Determinism)
- 确定性开关:启用框架确定性(如 torch.use_deterministic_algorithms(True)、cudnn.deterministic=True、禁用 benchmark)。
- 算子白/黑名单:列出允许的确定实现与禁止的非确定内核(如部分稀疏/归约/排序算子);提供替代实现或回退。
- 数值一致性:启用稳定算法(混洗/归约的 Kahan/Pairwise)、固定 matmul/conv 后端与 cublasLt 重排策略。
- 时间依赖:禁止 wall-clock 注入随机性;日志/标记时间不参与计算路径。
V. 路径与相位对齐(Path & Phase Alignment)
- 评测与告警前按“时间→路径→相位”对齐;数组满足 len(gamma_ell)=len(d_ell)=len(n_eff)≥2。
- 统一口径(两式等价):
T_arr = ( 1 / c_ref ) * ( ∫ n_eff d ell );T_arr = ( ∫ ( n_eff / c_ref ) d ell );
相位:Phi = ( 2π / λ_ref ) * ( ∫ n_eff d ell )。 - delta_form 必须回显至产物元数据;维度闭合 p_dim = 1.0。
VI. 容忍度与等价判定(Tolerances & Equivalence)
- 指标容忍:为主/辅指标给出对齐容忍(如 |ΔMAE| ≤ τ_mae、|ΔLatency_P95| ≤ τ_lat)。
- 位级容忍:同平台/同库允许 bit-wise 相等或 ULP≤N;跨平台允许小幅差异但需落入同一覆盖区间。
- 曲线与区间:收敛曲线与区间带(k/alpha/quantile)必须重合或在容忍带内。
VII. 并行与分布式(Parallel & Distributed)
- 通信确定性:固定后端、聚合顺序与减少不确定性的聚合策略(如分层 All-Reduce)。
- 检查点恢复:保存/恢复优化器状态、AMP 标量、随机状态;恢复后产物 sha256 等价。
- 数据并行对齐:分片/采样器使用相同 seed 与 epoch 派生规则,禁止因 rank 变化导致样本漂移。
VIII. 机读配置(Machine-Readable Configs)
A. seed_policy.yaml
version: "1.0.0"
seed_global: 20250924
frameworks:
torch:
use_deterministic_algorithms: true
cudnn: { deterministic: true, benchmark: false }
numpy: { seed: 20250924 }
random: { seed: 20250924 }
parallel:
threads: 8
streams_per_gpu: 2
ddp:
backend: "nccl"
bucket_cap_mb: 25
seed_per_rank: "H(seed_global, rank)"
ops:
allowlist: ["conv2d_deterministic","matmul_stable","sort_stable"]
denylist: ["conv_winograd_nondet","atomic_reduction_nondet"]
time:
forbid_wallclock_random: true
B. determinism_matrix.yaml
version: "1.0.0"
platforms:
- { os: "Ubuntu-22.04", cuda: "12.2", driver: "535.146.02", torch: "2.2.2+cu122" }
checks:
bitwise_equal: ["same_platform"]
ulp_tolerance: { cross_platform: 8 }
metrics_tolerance:
mae: 1.0e-4
auc: 2.0e-3
latency_p95_s: 5.0e-3
coverage: { mode: "k", k: 2 }
C. rng_state.json(示例)
IX. 质量门映射(Gate Mapping)
- G1 Schema 完整:seed_policy/ determinism_matrix/ rng_state 字段齐备;
- G2 引用合规:锚点直指率 ≥ 90%;
- G3 路径规范:gamma/measure/delta_form 齐备、步长合规;
- G4 量纲闭合:p_dim = 1.0,check_dim_report.json 通过;
- G5 新鲜度:clock_state="locked";
- G6 覆盖一致:区间口径与跨卷一致;
- G7 协方差一致:不确定度传播的数值与随机性假设与误差卷一致,Σ PD;
- G8 唯一性与无环:产物 sha256 唯一、lineage 无环。
- 触发 S1–S5 即停止并回退,必要时标注 [Restricted]。
X. 反例与修正(Anti-Patterns & Fixes)
- 反例:未括号化 T_arr = ∫ n_eff / c_ref d ell → 修正:括号化为统一口径。
- 反例:未固定 seed 或 DDP 各 rank 种子不同步 → 修正:统一 seed_global 与 seed_per_rank 派生。
- 反例:启用非确定内核 → 修正:切换确定实现或降低并行以满足确定性。
- 反例:跨平台结果落在不同覆盖区间 → 修正:收紧容忍或提升精度/稳定算法,直至区间一致。
- 反例:恢复后产物 sha256 改变 → 修正:补全恢复的优化器/AMP/RNG 状态并重新校验。
XI. 交叉引用(Cross-References)
- 第4章(环境锁定)、第5章(数据快照)、第6章(权重参数与新鲜度)、第7章(脚本与命令)、第9章(指标与门)、第10章(复现实验流程)。
- 《模型卡》Ch.6/Ch.10/Ch.12;《误差预算卡》Ch.8/Ch.9;《管线卡》Ch.7/Ch.12。
XII. 勾选清单(Checklist)
- seed_policy.yaml / determinism_matrix.yaml / rng_state.json 已生成并入库。
- 启用框架确定性;非确定内核已替换或禁用;并发与线程/流数固定。
- 路径对齐显式 gamma/measure/delta_form;len(path) ≥ 2、Δell 合规;p_dim = 1.0。
- 指标/区间对齐在容忍带内;跨平台结果位于同一覆盖区间。
- /validate 通过 G1–G8;异常按 [Restricted] 标注并在 audit.jsonl 落审计。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/