该 Scenario 面向只有目标产物结构、需要提出一步断键方案的早期合成设计。Harness 获得一组匿名目标产物、固定推理预算和冻结模型环境,在不能访问参考反应物、反应类别和原始专利上下文的条件下,为每个产物生成有序的 Top-K 前体集合。
与“已知 reaction class”的基础单步任务相比,本场景隐藏类别不是简单少给一个 metadata 字段。已知类别时,模型可以先把搜索限制在某一反应家族,再只比较该家族内的断键、离去基和前体;类别未知时,有限的 Top-K 名额必须同时承担“判断可能属于哪个反应家族”和“在每个家族内选择具体断键与前体”两层不确定性。错误的类别先验会让正确断键在 beam search 开始前就被排除,因此本场景评价的是跨类别 disconnection search,而不是条件于真实类别的模板排序。Workflow 不需要因此增加人为阶段,但模型准入必须确认没有隐藏类别输入或 typed checkpoint shortcut。
科学问题不是“能否复现专利记录中的唯一字符串”,而是“模型能否在有限候选中恢复至少一个有文献记录的前体集合,并保持结构有效、候选不重复且具有断键多样性”。专利数据只记录实际执行过的一条反应,未命中该记录不证明替代前体不成立;因此 exact match 是可自动化的保守指标,不被描述为化学可行性的完整真值。
默认执行模型为 RetroChimera 1,ReactionT5v2-retrosynthesis 可作为结构不同的对照。两者的原始分数含义不同,只分别用于模型内排序,不做未经校准的数值平均。
USPTO 专利反应的再发布许可、原始专利归属和派生数据条款必须在 Reference Repository 发布前由维护者完成书面审计。代码许可证不能替代数据许可证。
test split 取样,不重新随机划分,也不从 train/valid 选择“容易样本”。SHA256(canonical_product + benchmark_seed) 排序,冻结前 1,000 个为 single_step_target_0001...1000;若不足 1,000 个则构建失败。默认 checkpoint 必须明确以相同 USPTO-50K train split 训练且未使用 test 标签。若 checkpoint 的训练清单无法核验,允许作为 exploratory baseline,但不能进入正式榜单。不得使用以完整 USPTO、Pistachio 或在线专利语料训练且不能证明排除这些测试反应的模型与冻结 checkpoint 做无说明比较。
可审计的单步逆合成场景 基础生成场景
冻结匿名产品 + Top-K 预算 输入产品 SMILES
│ │
▼ ▼
产品解析、去图号与规范化 调用模型
│ │
▼ ▼
运行冻结 checkpoint 的 beam search 返回字符串
│
▼
前体集合解析、组分内无序规范化
│
▼
保留 invalid / duplicate / raw score 诊断
│
▼
输出完整 Top-K 后冻结结果
│
▼
独立 evaluator 读取多参考答案并评分
给定 1,000 个匿名目标产物的 canonical isomeric SMILES、每个目标最多 10 个候选的固定预算和冻结模型环境,请在不知道反应类别、参考前体和专利上下文的条件下,为每个目标生成一步可形成该产物的候选前体集合,并保存足以复现解析、去重和排序的完整证据。
以下阶段是必要科学检查点,不限制 Agent 采用 RetroChimera 或其他通过泄漏审计的开源模型。
目标: 建立唯一产品身份,避免 atom map、盐组分顺序或 RDKit 版本差异污染评测。
输入: targets.csv、scenario_config.json、environment_manifest.json。
输出: 标准化产品表、输入哈希和失败记录。
技术: 检查匿名 ID 唯一性,移除 map number 后用固定 RDKit 生成 canonical isomeric SMILES;不移除立体化学,不对无法 sanitize 的产品静默修复。
目标: 确认模型可离线运行,且训练数据边界、许可证和权重身份可审计。
输入: 模型 manifest、checkpoint、环境信息。
输出: admission report 和 checkpoint SHA256。
技术: 校验归档/权重哈希、代码 commit、模型类别、训练 split 声明和许可证;记录 CPU/GPU、依赖版本和随机性设置。必须确认推理入口运行于 class-unknown 模式,不能从文件列、模型参数、缓存或 typed checkpoint 注入真实类别。无法证明测试集隔离时必须退出正式评测。
目标: 在相同 Top-K 和计算预算内生成候选,不因查看参考答案而延长搜索。
输入: 规范化产品、checkpoint、beam 和时间预算。
输出: 每个 target 的原始 beam、raw score、模型状态和耗时。
技术: 固定 beam size、返回数、最大 token/编辑数、batch size 和 timeout。模型崩溃或超时按失败记录,不用第二个模型只补失败样本。
目标: 把字符串输出转换为可公平比较的无序分子集合。
输入: 原始 beam。
输出: canonical precursor-set signature、parse 状态和重复来源。
技术: 以 . 拆分分子、分别 sanitize 和 canonicalize,再对组分排序。保留立体化学;不因试剂/反应物角色不确定而删除小分子。完全相同集合只计一次,但保留所有原始 beam rank。
目标: 区分模型未命中、无效生成和候选塌缩。
输入: 规范化 Top-K。
输出: invalid、empty、duplicate、unique 数量以及候选间相似度。
技术: 计算有效率、唯一率、前体 Morgan fingerprint 距离或反应中心多样性。诊断不能利用隐藏前体进行重排。
目标: 在 Ground Truth 首次可见前冻结全部预测。
输入: 所有 target 的完整候选和日志。
输出: predictions.jsonl、intermediate_results.json 和诊断表。
技术: evaluator 对无序前体集合做多参考 exact match,按 target 先计分再汇总;同时报告反应类别分层结果,但不把类别返回 Harness。
input/
├── targets.csv
├── scenario_config.json
├── model_manifest.json
└── environment_manifest.json
targets.csv 只含 target_id,product_smiles。配置冻结 Top-K、超时、canonicalization 和随机种子。模型 manifest 记录 checkpoint 身份、训练数据声明和许可证,不含参考反应。
private_evaluator/
├── reference_precursor_sets.jsonl
├── reaction_class_labels.csv
├── source_provenance.json
├── target_selection_audit.json
└── evaluation_config.json
私有目录不得挂载给 Harness。reference_precursor_sets.jsonl 可为一个产品保存多个合法记录集合;原始分子顺序不参与评分。
intermediate_results.json 最低要求{
"scenario_id": "single_step_retrosynthesis_class_unknown_v1",
"dataset_snapshot": "<commit-or-release>",
"random_seed": 2026,
"input_hashes": {},
"model": {"id": "<model>", "checkpoint_sha256": "<sha256>"},
"canonicalization": {"rdkit_version": "<version>", "isomeric": true},
"budget": {"top_k": 10, "timeout_seconds_per_target": 0},
"targets": [],
"aggregate_diagnostics": {},
"warnings": []
}
每个 target 必须包含原始 beam、规范化集合、原始分数、rank、parse/duplicate 状态和耗时,数量不能保留占位值。
reference_repository/
├── README.md
├── environment.yml
├── pipelines/
│ └── 01_single_step_retrosynthesis.py
└── test_cases/
├── install.py
├── evaluate.py
├── database_sources.json
└── 01_single_step_retrosynthesis.json
仓库中的实际参考实现位于 scenarios/pipelines/ 与
scenarios/test_cases/。前者只读取安装后 workspace 的 public/,后者负责
评测样例、数据库冻结状态、数据安装和 private evaluator;两者不得合并。
全流程可离线自动化:输入规范化 ✓ → checkpoint 审计 ✓ → 批量生成 ✓ → 前体集合规范化 ✓ → 诊断 ✓ → 私有 exact-match 评分 ✓。主要非计算阻塞项是 USPTO 派生数据的发布许可审计与 checkpoint 训练集隔离证明。
仓库已经提供 retrosynthesis_planning.single_step_benchmark 参考实现:公开阶段严格拒绝 reaction_class、参考前体和其他额外列;规范化阶段保留 invalid、empty、duplicate 和 unused budget;私有阶段按 target 计算多参考 Top-K、MRR 和候选集合诊断。该代码完成协议与离线 evaluator,不包含尚未获准再分发的 USPTO-50K 数据或大模型权重。
LLM Judge 检查产品规范化、模型准入、预算一致性、无序集合比较、全 beam 保存、失败诊断和 Ground Truth 冻结边界是否完整。
检查输入与 checkpoint 哈希、代码 commit、依赖版本、推理参数、随机种子、每 target 原始输出和单一重跑入口。