自驱动实验室(self-driving lab)把 DMTA 闭环完全自动化:算法设计实验、机器人执行、仪器分析、结果回流更新模型,然后自动决定下一轮做什么——无需人工干预。这是实验自动化的理想形态,但也最容易被过度宣传。
系统构成
| 层 | 组件 | 关键要求 |
|---|---|---|
| 决策层 | 贝叶斯优化、主动学习 | 能处理噪声与批量选择 |
| 规划层 | 把决策翻译成可执行操作 | 需要标准化的操作描述 |
| 执行层 | 液体处理机器人、反应器、加热搅拌 | 可靠性、可重复性 |
| 分析层 | 在线 LC-MS、HPLC、NMR、光谱 | 自动化进样与数据解析 |
| 数据层 | 实验记录、结果解析、模型更新 | 结构化、可追溯 |
| 调度层 | 任务队列、资源管理、错误处理 | 异常恢复能力 |
最容易被低估的是「规划层」与「错误处理」:把「用 X 催化剂在 Y 温度下反应」翻译成机器人的具体动作序列,以及处理「移液枪堵了」「反应物结晶了」这类异常,是实际工程量的大头。
现实进展:哪些已经做到
- 反应条件优化:这是最成熟的应用。固定一个反应,自动筛选催化剂/配体/碱/溶剂/温度组合,用贝叶斯优化收敛到高产率条件。已有多个成功报道。
- 材料与配方优化:光电材料、催化剂、制剂配方的组分优化。
- 简单的分子合成:基于可靠反应(酰胺偶联、Suzuki 等)的类似物库合成。
- 高通量筛选:本来就高度自动化的领域。
现实进展:哪些还做不到
- 复杂多步全合成:需要中间体分离纯化、条件差异大、异常情况多;
- 需要人工判断的操作:相分离、结晶形态观察、判断反应是否完成;
- 探索性化学:尝试文献中没有先例的新反应;
- 非标准化的生物实验:细胞状态判断、显微观察;
- 真正的「端到端做药」:目前没有系统能从靶点自动做到候选化合物。宣传中的「AI 自主发现药物」通常只覆盖了某个环节。
贝叶斯优化:决策层的核心
import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern, WhiteKernel
from scipy.stats import norm
class ReactionOptimizer:
def __init__(self, condition_space):
self.space = condition_space # 编码后的候选条件
self.X_tested, self.y_tested = [], []
def expected_improvement(self, mu, sigma, best_y, xi=0.01):
"""期望改进采集函数"""
with np.errstate(divide="warn"):
imp = mu - best_y - xi
Z = np.where(sigma > 0, imp / sigma, 0.0)
ei = imp * norm.cdf(Z) + sigma * norm.pdf(Z)
ei[sigma == 0.0] = 0.0
return ei
def suggest_batch(self, batch_size=24):
if len(self.X_tested) < 8:
# 冷启动:先做覆盖性好的初始设计
idx = np.random.choice(len(self.space), batch_size, replace=False)
return self.space[idx]
gp = GaussianProcessRegressor(
kernel=Matern(nu=2.5) + WhiteKernel(),
normalize_y=True, n_restarts_optimizer=5)
gp.fit(np.array(self.X_tested), np.array(self.y_tested))
mu, sigma = gp.predict(self.space, return_std=True)
ei = self.expected_improvement(mu, sigma, max(self.y_tested))
# 批量选择时要考虑多样性,避免选到一堆相似条件
selected = []
ei_copy = ei.copy()
for _ in range(batch_size):
i = int(np.argmax(ei_copy))
selected.append(i)
# 惩罚已选点附近的候选
dist = np.linalg.norm(self.space - self.space[i], axis=1)
ei_copy *= (1 - np.exp(-dist**2 / 0.5))
return self.space[selected]
def update(self, X_new, y_new):
self.X_tested.extend(X_new)
self.y_tested.extend(y_new)
落地的关键约束
- 投入巨大:设备、集成、维护的成本很高,只有高频重复的任务才划算。
- 标准化是前提:只有条件参数明确、操作可重复的实验才能自动化。探索性实验反而不适合。
- 错误处理是主要工程量:机器人的可靠性、异常检测与恢复,往往占开发投入的大头。
- 分析环节常是瓶颈:合成可以自动化,但如果分析要人工进样与解谱,闭环就断了。
- 化学范围受限:自动化平台通常只支持有限的反应类型与操作。
- ROI 要认真算:很多情况下,「半自动化 + 熟练技术员」比全自动化更经济。
务实的分级路径
# 不必一步到位,按收益排序逐步推进
# 级别 1:数据自动化(收益最高、成本最低)
# 仪器数据自动采集入库,消除手工录入
# → 立刻改善数据质量与可追溯性
# 级别 2:分析自动化
# 自动进样、自动积分、自动生成结果表
# 级别 3:单元操作自动化
# 平行反应器、自动化后处理
# 级别 4:决策辅助
# 贝叶斯优化建议下一批条件(人工执行)
# → 这一步的收益/成本比通常最好
# 级别 5:闭环自动化
# 全自动执行 + 决策
# 多数团队在级别 1~4 就能获得大部分收益,
# 级别 5 只在高度重复的场景才划算
级别 4(决策辅助)往往是性价比最高的一步:不需要机器人,只需要把贝叶斯优化接进现有的实验流程,就能显著减少实验轮次。
关键要点
- 反应条件优化是最成熟的应用,复杂全合成与探索性化学仍做不到;
- 「规划层」与错误处理是被低估的主要工程量;
- 分析环节不自动化,闭环就断了;
- 级别 4(贝叶斯优化辅助决策)性价比最高,不需要机器人即可实施。
延伸资源
- 条件优化:389《反应条件与产率预测》;DMTA 闭环:355《建立 DMTA 闭环》、400《从设计到合成的闭环》;
- 公司案例:315《XtalPi 晶泰科技》、296《XtalPi ID4Inno》。