GxP 统计计算环境 · Jaime Yan · English

第二部分 — 文献:领域现状

文献综述四:流水线、可复现性与标准

SCE 归根结底,是一条负有职责的流水线。本章回顾这个领域为让流水线 可复现而发展出的机制——以及将塑造未来五年的那场标准对话。

流水线工具的谱系

"工作流应当知道自己的依赖图"这一思想——跳过已是最新的步骤、让过时 的步骤失效——可以上溯到 GNU Make,而它最成熟的 R 原生表达是 Will Landau 的 {targets}(ropensci),即 {drake} 的继任者。它的表述值得 逐字引用的关注:当所有目标都是最新时,"这就是结果与底层代码和数据 相符的证据",这使流水线本身成了一件信任工具。{targets} 属于探索 性传统——但这个洞见可以分毫不差地迁移到受监管的工作中:一条能证明 自己处于最新状态的流水线,已经生成了它一半的审计追踪。

临床生态把同一个洞见裹进了合规的外衣:{whirl} 执行流水线脚本,带 结构化日志与日志验证;{logrx} 在执行时刻捕获锁定的软件包版本与代码 哈希;{envsetup} 把环境供给标准化。它们各自都不是一个 SCE,合在一起 则勾勒出了一个。

锁定世界

R 中的可复现性,在依赖图之外还有第二层含义:环境可复现性,即把 "语言加软件包"的世界钉住。标准做法——{renv} 锁文件、CRAN 快照仓库, 以及据此构建的容器镜像——在 R Validation Hub 的可复现性讨论与 PHUSE 开源指南(如姊妹论文所援引)中均有记载,在受监管的 R 部署中实际上已 是通行做法。本书倡导的实践者式精进是:把容器镜像摘要本身当作一件工件 ——一个自我举证的参照环境——从而让"这次运行身在哪个世界?"变成一次 哈希查询,而不是一场重建仪式。

标准的对话

有三条标准化线索,将在本十年余下的时间里塑造 SCE 的架构:

这场综述意味着什么

把四章文献叠起来,一个形状浮现了。监管框架说:证据,与风险相称。 验证文献给出:筛查,然后预期用途证据,然后受治理的 AI。 平台文献 给出:部件、目录,以及诚实的免责声明。 流水线文献给出:依赖图、 锁,以及正在汇合的标准。 其中没有任何一处给出那个绑定:一个组合的 环境,其每一次执行都把三种证据——准确性、可复现性、可追溯性——作为 副产品一并发出。第三部分陈述这个绑定的原则,第四部分把它造出来。

检验。 以受监管的规模,问任何一条流水线那个 {targets} 式的问题: "如果自上次运行以来什么都没有变,你能否不重跑就证明输出仍与输入 相符?" 必须重新执行才能自安的流水线是在记忆;能从自己的图里作答的 流水线,才是在记录。