跳到内容
DispatchAtlas
搜索

可复现活动

experiments/ 工作区保存一次活动所产生的一切,以及复现它所需的一切。这一分离是严格 的:配方被跟踪,输出在本地。 活动配置与执行器脚本置于源代码管理;每一项繁重输出 ——生成的基准、运行记录、日志、检查点、证据包,以及环境快照——都留在产生它的机器上, 并按需从配方重新生成。

🗂️ 布局

路径已跟踪保存
configs/活动配置——完整配方:求解器名册、基准套件、运行计数、预算与主种子。
scripts/活动与分析执行器(例如 run_smoke_pilot.py)。
benchmarks/物化的基准实例。
results/运行记录,位于 results/{campaign_id}/{solver_id}/{benchmark_id}/run_{idx}.json
logs/执行日志,位于 logs/{campaign_id}_{YYYYMMDD_HHMMSS}.log
.checkpoints/可恢复的活动状态,位于 .checkpoints/{campaign_id}.json,由配置哈希守护。
evidence-bundles/策展的、按披露层分级的导出,位于 evidence-bundles/{campaign_id}-{tier}/
ENVIRONMENT.md运行时捕获的主机、操作系统、Python 与提交快照。

输出目录在本地存在,并在缺失时由活动执行器自动重建;其下的任何内容都绝不被暂存。

🧱 两层,一个真相来源

  1. 可复现性层(细粒度)。 每次运行都是一条 JSON 记录,位于 results/{campaign_id}/{solver_id}/{benchmark_id}/run_{idx}.json。路径本身即是 索引——活动、然后求解器、然后基准、然后重复——因此证据的任意切片都无需数据库即可 寻址。记录携带一等的时间、收敛、解与求解器努力字段;没有任何分析性内容藏匿于 自由格式的备注中。
  2. 策展层(分级)。 evidence-bundles/{campaign_id}-{tier}/ 保存从运行记录派生 的、按披露层分级的导出。层标识符来自固定的公开安全词汇——corespeedqualityplatform——而一个包始终派生自运行级记录,绝非独立的真相来源。

🔁 可复现性契约

  • 每次活动声明一个主种子;每次运行的种子从它与运行的位置确定性地派生——相同配置、 相同种子、相同记录,逐位一致。
  • .checkpoints/{campaign_id}.json 记录配置哈希。未更改的配置从检查点恢复并跳过 已完成的运行;任何配置更改都会彻底使检查点失效。
  • ENVIRONMENT.md 在执行时对主机、操作系统、Python 与仓库提交进行快照,因此每个 结果都可追溯到产生它的确切代码与机器。
  • 日志按每次执行仅追加。

这些实践——逐次运行的种子、配置与环境捕获,使结果可从其配方重新生成——遵循记录与 复现计算实验的公认标准 (ACM Artifact Review and Badging, Version 1.1, 2020Gundersen & Kjensmo 2018)。

可复现性清单还以一条派生的功效陈述为 30 次运行下限提供理据:在该下限、双侧 0.05 水平 与 0.80 功效下,成对设计在经 ARE 调整的 Wilcoxon 近似下可检测约 0.523 或更大的标准化 效应(Noether 1987;框架:Campelo 与 Takahashi 2019)。该句在渲染时从下限重新计算,因此 它绝不会与它所论证的下限发生漂移。另有两个协议描述符与之并列:一个预算缩放条目,记录 评估预算如何随实例大小增长(Vallada、Ruiz 与 Framiñan 2015 的按规模缩放协议,由实验室的 公平比较清单记录为一条评估缩放规则或记为活动固定),以及一个调优对等条目,携带每个 比较性活动所声明的、每算法相等的调优预算(LaTorre、Molina、Osaba、Poyatos、Del Ser 与 Herrera 2021);一个未声明的对等会诚实地渲染为未声明。

🏃 活动如何写入工作区

  1. configs/ 下创建或调整一份活动配置(smoke-pilot.json 是被跟踪的起点)。

  2. 通过活动执行器运行它——如教程中那样以编程方式、通过一份被 跟踪的配方脚本(uv run python experiments/scripts/run_smoke_pilot.py),或通过 命令行界面:

    uv run dispatchatlas-lab run --config experiments/configs/smoke-pilot.json
  3. 执行器将配置验证为一个确定性计划,写出 results/{campaign_id}/plan.jsonenvironment.json,随后为每次完成的运行加上任何失败尝试,持久化一条内容哈希 记录。

  4. results/ 下检视运行记录,并从同一配置恢复、重放或重跑。重新运行相同配置会 逐位复现相同记录;更改的配置会使检查点失效,而非静默重用。

活动引擎页面完整记录了验证、干运行预算、执行模式、重试、 恢复与重放验证。

📦 从运行记录到证据包

导出路径将一个已完成的活动目录转化为 evidence-bundles/{campaign_id}-{tier}/ 下的 一个策展包:

uv run dispatchatlas export `
  --campaign-dir .\experiments\results\smoke-pilot `
  --target-dir .\experiments `
  --authorized-output-root .\experiments `
  --tier core

tools/build_campaign_evidence.py 在规模化时驱动同一路径,从一份记录的配置为每一层 构建基准目录、活动、分析与包。证据包页面描述各层; 分析导出描述统计内容。

🔒 公开安全边界

公开页面从不直接读取此工作区:文档站点与结果门户仅消费 从策展层产生的、已提交且经披露过滤的导出。工作区中的私有项目台账被源代码管理忽略, 绝不到达公开面。