225

AI 制药工具工程化:从脚本到企业内部平台

把零散脚本沉淀为可复用、可复现、可协作的内部平台,是 AI 制药工具规模化落地的关键。这篇给出分阶段演进路径与每个阶段该解决的问题。

多数 AI 制药团队的工具都始于个人脚本:某个人的 Notebook 能跑通对接流程,另一个人有一套自己的清洗代码。这种状态在探索期效率最高,但一旦要多人协作、要复现半年前的结果、要支撑多个项目,就会全面崩溃。把脚本沉淀成平台,是规模化的必经之路——关键是分阶段推进,而不是一上来就搞大工程。

四个阶段

阶段 形态 解决的核心问题
1 脚本 个人 Notebook 与零散脚本 能不能跑通
2 库 内部 Python 包 + 环境锁定 能不能复用与复现
3 流水线 工作流引擎编排 + 数据版本化 能不能规模化与追溯
4 平台 Web 界面 + 服务化 + 权限 非计算背景的同事能不能用

不要跳级。没有稳定的内部库就上工作流引擎,只会得到一堆编排着不可靠脚本的复杂系统。多数团队在阶段 2 和 3 之间就能获得大部分收益。

阶段 2:先把库做扎实

  • 统一入口函数:把「标准化分子」「算指纹」「准备受体」这类高频操作固化成内部包的函数,全团队只有一个实现。
  • 锁死依赖版本:RDKit、OpenMM 等工具的行为跨版本有变化。用 lock 文件或容器镜像固定环境,否则半年后重跑会得到不同结果
  • 写测试:至少给标准化、特征化这类核心函数写单元测试,用几个已知分子做回归测试。
  • 约定数据格式:统一分子标识(用什么做主键——InChIKey 还是内部 ID)、统一单位(IC50 还是 pIC50)、统一缺失值表示。这一条看似琐碎,实际是后期最多痛苦的来源。

阶段 3:流水线与可追溯

  • 工作流引擎:Snakemake、Nextflow、Prefect、Airflow 都可以。选型不重要,重要的是有一个统一的地方定义「流程是什么」,而不是散在每个人的 shell 历史里。
  • 数据版本化:数据集、模型、结果都要有版本。DVC、LakeFS 或简单的内容哈希 + 元数据表都行。核心要求是:拿到一个结果,能追回它用了哪版数据、哪版代码、哪些参数。
  • 实验追踪:MLflow、W&B 或自建表,记录每次训练的数据划分、超参、指标。没有记录的实验等于没做过——三个月后没人记得那个 0.85 的 AUC 是怎么来的。
  • 计算资源调度:对接、MD、FEP 都是重计算,需要队列管理与优先级,避免一个人占满集群。

阶段 4:平台化

  • 只在需求明确后做:Web 界面成本高、维护重。只有当非计算背景的药化同事需要自助使用时才值得。
  • 从最高频的一两个场景切入:通常是「提交一批分子做性质预测」和「查看对接结果」。做深这两个,比做二十个半成品功能有用。
  • 结果要可解释:给药化同事看的界面必须展示预测的不确定性、相似的已知分子、模型适用域提示。只给一个数字会导致过度信任
  • 权限与合规:项目数据隔离、操作审计、敏感结构的访问控制,在医药行业是硬要求。

贯穿始终的三条原则

  • 可复现优先于功能丰富:一个能稳定复现的简单流程,价值远高于十个跑不通第二遍的炫酷功能。
  • 贴着真实工作流做:先观察研究者实际怎么工作,再决定自动化什么。凭想象设计的平台通常没人用。
  • 留出逃生口:平台不可能覆盖所有需求,必须允许用户导出中间数据、用自己的脚本处理。封闭的平台会被绕过。

关键要点

  • 按「脚本 → 库 → 流水线 → 平台」分阶段演进,不要跳级;
  • 锁死依赖版本与统一数据格式,是最容易被忽视也最疼的两点;
  • 没有记录的实验等于没做过,实验追踪要尽早建立;
  • 可复现优先于功能丰富,并始终给用户留逃生口。

延伸资源