Phase 1 报告 §11 硬门槛:「没有真实数据 pilot,只能称'格式兼容',不能称'真实实验验证'」。本页把"接入真实数据"这个门槛拆成纯配置工作——CLI 已跑通 CSV→BatchRecord→batch_id 隔离→holdout 评估→RO-Crate 1.1 导出→PilotReport 全流程。要跑真实数据,只需把 --input 换成真实 CSV。
合成数据(8 批次 / 56 观测点)跑通全流程,但 RMSE_rel = 0.44 / Coverage = 1.00。原因:poly3 拟合不了 sigmoidal 生物量生长曲线。这不是缺陷——正说明这是"参考骨架"而非"生产级模型"。换成真实数据 + 换代理模型(engine/surrogate.py GP)即可。诚实标注边界,比虚假达标重要。
纯 stdlib,复用 PR-08 脚本。必需列 batch_id,其他列按 BatchRecord 语义自动映射。
按 batch_id 隔离划分训练/校准/测试,防信息泄漏。默认 4/2/2,可配置。
训练代理 → 校准 conformal 区间 → 在测试批次算 RMSE_rel + coverage。诚实报告两个指标。
12 PROV-O 实体:CreativeWork + DataSet + SoftwareSourceCode + Association + Plan + Generation。
诚实 verdict(advisable / needs_data / unmeasurable)+ 数据 sha + 证据等级 + KPI 达标判定。
# 默认跑 data/pilot_reference/synthetic_batch.csv # 8 批次 / 56 观测点 / evidence_grade=development_demo python scripts/pilot_reference.py
# 把 --input 换成真实 CSV 即可 python scripts/pilot_reference.py \ --input /path/to/real/batch_biomass.csv \ --evidence-grade retrospective \ --output-dir outputs/pilot_real_001 \ --pilot-id REAL-001
| 列名 | 说明 |
|---|---|
| batch_id | 批次标识(必需)。建议含日期前缀以便按时间序划分,如 2026-10-01-B01。 |
| t_h | 时间点(小时)。同一 batch_id 下可有多个 t_h 观测点。 |
| biomass_od600 | 主指标(生物量 OD600)。当前参考实现用作 y。 |
| reactor_id | 设备 ID(可选,映射到 BatchRecord.process_context) |
| organism / strain | 生物体标识(可选) |
| media_lot | 培养基批次(可选,映射到 materials) |
| ph / do_pct / temperature_c / glucose_g_l / iptg_mm | 过程变量(可选,自动收进 variables) |
| 指标 | 值 | 目标 | Status |
|---|---|---|---|
| n_batches | 8(train=4 / calib=2 / test=2) | ≥ 5(batch_id 隔离最低要求) | meeting |
| RMSE_rel mean | 0.44 | ≤ 0.05 | 未达标 |
| Coverage mean | 1.00 | ≥ 0.95 | meeting |
| evidence_grade | development_demo | — | 合成 |
| verdict | needs_data | — | needs_data |
| 原因 | poly3 拟合不了 sigmoidal 生物量生长曲线。这不是缺陷——正说明这是"参考骨架"而非"生产级模型"。换成 engine/surrogate.py 的 GP 或换真实数据 + 换模型即可。 |
||
| verdict | 触发条件 |
|---|---|
| advisable | RMSE_rel ≤ 0.05 且 coverage ≥ 0.95(同时达标 Phase 1 KPI) |
| needs_data | 两者未同时达标(可能需补数据,可能模型不合适) |
| unmeasurable | holdout 评估未能执行(如 numpy/scipy 缺失、无测试批次) |
这不是"生产级" pilot。它证明的是骨架:CSV→BatchRecord→batch_id 隔离→评估→RO-Crate 全流程能跑通,且每一步都有可审计的产物。要升级为生产级 pilot 需要:
1️⃣ 真实数据(evidence_grade=retrospective 或 prospective)
2️⃣ 更合适的代理(engine/surrogate.py GP / FNO,不是 poly3)
3️⃣ 足够批次(≥ 10 训练 + ≥ 3 校准 + ≥ 2 测试)
4️⃣ 预登记 batch_id split(在见到测试数据前锁定划分)
| 路径 | 内容 |
|---|---|
data/pilot_reference/synthetic_batch.csv | 合成参考数据(8 批次 / 56 观测点) |
scripts/pilot_reference.py | CLI 主脚本(250 行,纯 stdlib + numpy/scipy) |
outputs/pilot_reference/pilot_report.json | 当前合成数据 pilot 报告 |
outputs/pilot_reference/holdout_metrics.json | holdout 评估细节(逐批次 RMSE_rel / coverage) |
outputs/pilot_reference/rocrate/ro-crate-metadata.json | RO-Crate 1.1(12 PROV-O 实体) |
本页面是 KPI Dashboard 中 kpi-prod-first-real-data-time 的实现路径。当真实数据 pilot 跑通且 verdict=advisable,KPI 可从 unmeasurable 转为 meeting,Phase 1 才算完成。