目录 / 文档-技术白皮书 / 56-报告级方法附录 Template v1.0
I. 章节目标与范围(强制)
- 固定环境—依赖—数据版本—随机源—执行命令—产物签名—审计轨的统一口径,保证实验/评测一次配置,多处重放,导出工件可验证、可追溯、可归档。
- 与第5章(数据与实验设计)、第6章(数学与伪代码)、第7章(计量与校准)、第8章(评测协议)、第11章(实现绑定)对齐。
II. 环境与依赖(强制)
- 容器镜像:image@sha256:<digest>;基础镜像与层级依赖列出版本与哈希。
- 运行域:dev/stage/prod 或等价;CPU/GPU/内存/加速库(CUDA/ROCm/OneAPI)版本显式。
- 依赖锁定:语言包管理器锁文件(requirements.txt/poetry.lock/package-lock.json 等)及其哈希;系统包与内核版本记录。
III. 数据与随机源(强制)
- 数据版本:dataset@version + sha256;分区一致性(train/valid/test 比例)与行序锁定策略。
- 随机源:seed、RNG 后端(numpy|torch|random|cuRAND…)、确定性开关。
- 挂载与缓存:读写分离、只读挂载、缓存失效策略与哈希位点。
IV. 执行命令与参数(强制)
- 最小复现命令:单行或脚本入口(含参数、路径、环境变量);长任务需支持断点续跑与日志路径。
- 数值精度:显式给出 Δell/ε_int/τ_c 等关键容差与步长。
- 失败重试:幂等键(Idempotency-Key)与失败快照策略。
V. 产物与签名(强制)
- 产物类型:yaml/json/pdf 三类;补充 csv/parquet 可选。
- 哈希与签章:sha256、签名证书/指纹、生成时间与来源脚本 script@commit。
- 目录结构:/artifacts/<run_id>/{yaml,json,pdf,logs,plots};清单 manifest.json 列出全部文件与哈希。
VI. 审计轨与归档(强制)
- 审计要素:timestamp/actor/command/env/image@sha256/dataset@version/git@commit/artifact_hash/gate_decisions。
- 归档策略:最少留存 1 年;冷存储与多副本;可验证恢复步骤。
- 对外出具:快照包(tar.zst)与验证脚本 verify_artifacts.py@commit。
VII. 到达时一致性(强制)
- 如评测涉及到达时判据,统一口径并在可复现清单中显式:
- 常量外提:T_arr = ( 1 / c_ref ) * ( ∫ n_eff d ell )
- 一般口径:T_arr = ( ∫ ( n_eff / c_ref ) d ell )
- 同段声明路径 gamma(ell) 与测度 d ell;check_dim=true;将 Δell/ε_int/τ_c 与 delta_form 写入工件元数据。
VIII. 人读 × 机读映射(强制)
人读段落 | 机读字段 | 校核要点 |
|---|---|---|
环境与依赖 | repro.env.*, repro.deps.* | 镜像哈希、锁文件、硬件/驱动版本 |
数据与随机源 | repro.data.*, repro.seed.* | dataset@version+sha256、RNG 与确定性 |
执行命令 | repro.cmd, repro.args, repro.env_vars | 单行可跑,参数齐全 |
数值精度 | repro.numeric.{Δell,ε_int,τ_c} | 容差/步长明确 |
审计与归档 | audit.*, archive.* | 审计条目完备、可恢复 |
产物与签名 | artifacts.*, manifest.* | 三类导出、哈希与签章一致 |
到达时口径 | arrival_time.*, math.check_dim | 两口径+路径/测度+量纲 |
IX. 字段与约束清单(可直接拷贝)
字段路径 | 类型 | 必填 | 约束 |
|---|---|---|---|
repro.image | string | 是 | registry/name:tag@sha256:… |
repro.hardware | obj | 是 | {cpu,ram,gpu:{model,driver},accel} |
repro.deps.lockfiles[] | list | 建议 | 带 sha256 |
repro.data.datasets[] | list | 是 | {name,version,sha256,license} |
repro.seed.value | integer | 是 | 固定 |
repro.seed.backends[] | list | 是 | `numpy |
repro.cmd | string | 是 | 最小复现命令 |
repro.args[] | list | 否 | 关键参数 |
repro.env_vars[] | list | 否 | KEY=VAL |
repro.numeric.{Δell,ε_int,τ_c} | obj | 若含 T_arr 必填 | 数值容差 |
artifacts.types[] | list | 是 | `yaml |
artifacts.hashes[] | list | 是 | sha256: |
manifest.files[] | list | 是 | {path,sha256,size} |
audit.record | list | 是 | 核心审计键集合 |
archive.retention_days | int | 是 | ≥365 |
arrival_time.delta_form | enum | 若含 T_arr 必填 | `general |
arrival_time.path/measure | string | 若含 T_arr 必填 | gamma(ell)/d ell |
math.check_dim | bool | 若含 T_arr 必填 | true |
X. 机读 Schema(YAML;JSON 等价,强制)
repro:
image: "registry/replay:2025.09@sha256:…"
hardware:
cpu: "32c/64t"
ram: "256GiB"
gpu: { model: "A100x2", driver: "535.129", accel: "CUDA 12.2" }
deps:
lockfiles:
- { path: "requirements.txt", sha256: "sha256:…" }
- { path: "poetry.lock", sha256: "sha256:…" }
data:
datasets:
- { name: "cmb_set_v3", version: "v3", sha256: "sha256:…", license: "CC-BY-4.0" }
- { name: "lens_v1", version: "v1", sha256: "sha256:…", license: "CC-BY-4.0" }
seed:
value: 20250927
backends: ["numpy","torch","random"]
cmd: "docker run … replay --suite arrive_time_check.py --dataset cmb_set_v3@v3"
args: ["--batch B1","--region EU"]
env_vars: ["OMP_NUM_THREADS=8","TOKEN=***"]
numeric: { Δell: 1e-3, ε_int: 1e-6, τ_c: 0.01 }
arrival_time:
delta_form: "general"
path: "gamma(ell)"
measure: "d ell"
check_dim: true
artifacts:
types: ["yaml","json","pdf"]
hashes:
- { path: "results.yaml", sha256: "sha256:…" }
- { path: "summary.json", sha256: "sha256:…" }
- { path: "report.pdf", sha256: "sha256:…" }
manifest:
files:
- { path: "logs/run.log", sha256: "sha256:…", size: 1048576 }
- { path: "plots/curve.png", sha256: "sha256:…", size: 98312 }
audit:
record:
timestamp: "2025-09-27T12:34:56Z"
actor: "runner@host"
command: "…"
image: "registry/replay:2025.09@sha256:…"
dataset_versions: ["cmb_set_v3@v3","lens_v1@v1"]
git_commit: "a1b2c3d"
artifact_hash: ["sha256:…"]
gate_decisions:
- { name: "gate_accuracy", rule: ">=0.99@7d", value: 0.995, pass: true }
archive:
retention_days: 365
bundles:
- { name: "snapshot-REL-2025-1001.tar.zst", sha256: "sha256:…" }
verify_script: "verify_artifacts.py@9f8e7d"
XI. 最小样稿(人读摘要 × 机读片段,强制)
- 人读摘要:容器 registry/replay:2025.09@sha256:…,数据 cmb_set_v3@v3(sha256:…),seed=20250927;最小命令如上;导出 yaml/json/pdf 与哈希;归档 365 天。若涉及 T_arr,采用一般口径并声明 gamma(ell)、d ell,check_dim=true。
- 机读片段:
repro: { image:"registry/replay:2025.09@sha256:…", seed:{ value:20250927, backends:["numpy","torch"] } }
artifacts: { types:["yaml","json","pdf"], hashes:[{ path:"results.yaml", sha256:"sha256:…" }] }
archive: { retention_days: 365 }
XII. 校验规则(正则/一致性,强制)
- 镜像:^.+@sha256:[0-9a-f]{64}$;数据哈希:^sha256:[0-9a-f]{64}$。
- 时间:所有 UTC 时间戳需符合 ISO8601;retention_days ≥ 365。
- 到达时:若出现 T_arr,则 arrival_time.path/measure 必填且 math.check_dim=true。
- 产物:artifacts.types ⊇ {"yaml","json","pdf"};manifest.files[*].sha256 全部非空。
- 审计:audit.record 必含 timestamp/actor/image/git_commit/artifact_hash/gate_decisions。
- 幂等:长任务导出需在审计轨记录 Idempotency-Key(若使用)。
XIII. 引用与交叉引用体例(强制)
;所有 EFT.WP.* 引用须显式版本与锚点,并在 references.see[] 提供机读清单。“见《<卷名> vX.Y》Ch.x S/P/M/I…”固定写法:版权与许可(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/