Hotdry.

Article

Cradle ML 蛋白质先导优化管线:从蛋白语言模型到 g-DPO 偏好对齐

解析 Cradle 蛋白质先导优化管线的核心架构:预训练语言模型、进化微调(evotuning)、分组直接偏好优化(g-DPO)及预测器-日志器协同机制,提供可复用的阈值参数与工程决策要点。

2026-05-14mlops

先导化合物优化(Lead Optimisation)是药物设计流程中将「勉强能用」的分子推向「真正有效」的关键环节,也是大多数设计项目成败的分水岭。传统上,该阶段依赖定向进化 —— 随机引入突变、测试、保留有效突变并迭代 —— 但这种方式在探索空间与数据效率上存在显著瓶颈。随着蛋白质序列数据的爆发式积累与深度学习能力的提升,以 Cradle 为代表的生物技术公司正在构建一套端到端的机器学习驱动管线,将预训练语言模型、进化微调、偏好对齐与实验验证紧密耦合。本文深入解析 Cradle 蛋白质先导优化管线的工程实现,从模型架构到关键参数,提供可直接落地的认知框架。

蛋白质序列的语言建模基础

理解该管线的第一步是认识到蛋白质本质上是一种「语言」。蛋白质由 20 种氨基酸残基串联而成,可以表示为字符序列(如 MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMK...),每种氨基酸对应字母表中的一个字符。这一表示直接启发了将自然语言处理技术迁移到蛋白质建模的思路。

管线的核心 backbone 是一个基于 Transformer 的蛋白质语言模型,训练范式采用掩码语言建模(Masked Language Modelling, MLM)。具体而言:将蛋白质序列中部分残基遮蔽,要求模型预测被遮蔽位置原本应该是什么氨基酸。模型输出一个概率分布,表示每个氨基酸(20 种)出现在该位置的可能性。这种训练方式使模型被迫学习序列的上下文依赖关系 —— 某一位点的最佳残基取决于周围残基的类型与位置关系。

预训练阶段使用包含数千万条天然蛋白质序列的数据集。模型在此阶段习得的是「自然蛋白质的统计规律」:哪些氨基酸组合在进化上是合理的,哪些突变可能破坏蛋白质的功能或表达。这一知识本身已有实用价值 —— 给定一个候选修改,模型可以评估该修改是否「看起来像天然蛋白」。如果某位置原本是 G(甘氨酸),模型预测该位置 0.001% 概率为 W(色氨酸)但 40% 概率为 V(缬氨酸),则 W 替换很可能导致蛋白质失活。但需要警惕的是,这种判断依赖进化先验,理论上可能存在功能性人造蛋白质与天然蛋白质差异极大 —— 此类情况对任何基于数据驱动的模型都是根本性挑战。

预训练完成后,模型已经具备「判断某一位点应该放什么氨基酸」的能力,这构成了后续所有微调的基础。需要注意的是,模型此时的优化目标是「像天然蛋白质」,而非「在特定任务上更有效」—— 后者是微调阶段需要解决的问题。

进化微调:从通用到专精

预训练模型对所有天然蛋白质一视同仁,其建议对于任何特定设计任务而言过于泛化。先导优化总是针对一个具体的模板蛋白质 —— 它已经具备一定功能性,但尚未达到设计目标。关键问题是如何将模型「拉向」与该模板相关的蛋白质空间,使其建议更可能产生功能性改进。

答案是进化微调(Evotuning)。其核心思想是利用同源蛋白质(Homologs)—— 与模板共享进化祖先的蛋白质。这些同源蛋白很可能具备相似的功能,因此对它们的学习本质上是在聚焦模型的「注意力」。具体实现依赖多序列比对(Multiple Sequence Alignment, MSA):在大规模蛋白质序列数据库中检索与模板统计上可能同源的序列,然后将它们按残基位置对齐,使得结构 / 功能相似的位置叠在一起。

MSA 的实际输出形如:

Query    : M K T A Y G L S E R N
Hit 1    : M K S A Y G L T E R N    (91% similar)
Hit 2    : L K T A Y G L S D R N    (81% similar)
Hit 3    : M R T A Y G I S E K N    (73% similar)
           ─────────────────────
Conserv. : x x x ✔ ✔ ✔ x x x x ✔

识别出的保守位点(如第 4、5、6、11 位在所有同源蛋白中一致)往往对蛋白质结构或功能至关重要,任何建议在这些位置上应与模板保持一致。实际的 MSA 会返回数千条同源序列,这种规模的进化信息为微调提供了丰富的任务专用数据。

将预训练模型在 MSA 得到的同源序列上继续训练,即完成了 Evotuning。此时模型「收敛」到模板蛋白所在的进化邻域,其建议会自然倾向于功能相关区域 —— 从「任意天然蛋白」优化为「这个特定蛋白的功能变种」。但这仍然只是「更可能功能性」的优化,还没有直接针对「活性更高、稳定性更好」等具体指标进行指导。

g-DPO:利用实验数据进行偏好对齐

Evotuning 之后,模型知道「什么样的修改看起来像天然蛋白」,但还不知道「什么样的修改对当前任务更有价值」。这需要引入实验数据 ——assay(生物测定)结果。每一轮湿实验返回一组蛋白质变体及其对应功能测量值,形如:

Sequence                          Activity   Stability
─────────────────────────────────────────────────────
M K T A Y G L S E R N ...          0.82       54.1
M K T A Y G L T E R N ...          0.79       53.8
M K S A Y G L S E R N ...          0.91       52.4
M R T A Y G L S E R N ...          0.44       55.0
...

这些数据是将模型推向任务最优的信号。但如何将单个标量测量转化为模型能学习的偏好信号?Cradle 的方案是分组直接偏好优化(Grouped Direct Preference Optimisation, g-DPO)。

传统的 DPO(Direct Preference Optimisation)源于大语言模型后训练,其基本格式是「提示 - 偏好对」:给定一个提示,模型给出两个候选响应,人类标注哪个更好,模型学习这种偏好。在蛋白质场景中,形式并不直接匹配 —— 没有「两个完整蛋白质序列」的明确配对,且测定值是连续分布而非二元偏好。

g-DPO 的核心创新在于分组策略:首先将序列聚类为相似序列组,然后在组内形成偏好对。这种设计的直觉是:组内序列仅在少数几个残基上存在差异,模型在此学习「微妙的位点变化如何影响功能」。相比之下,跨组比较学到的是「明显不同的蛋白质之间的功能差异」,信息密度较低。通过仅在组内构造偏好对,模型更有效地学习「什么样的局部修改能提升活性」。

具体操作上,设置一个阈值将测定值二值化:高于阈值的变体标记为「好」,低于阈值的标记为「差」,然后从同一聚类中选择好 / 差配对进行 DPO 训练。阈值的选择需要平衡数据量与信号质量 —— 过高会导致可用配对过少,过低则可能引入噪声。这一步将实验数据中的功能信号注入模型,使其建议开始向「更高活性、更高稳定性」的方向偏移。

g-DPO 训练后的模型被称为 Logiter(生成器),其角色是给出「给定模板与掩码位置,应该替换为什么氨基酸」的概率分布。Logiter 是管线中负责生成候选修改建议的核心组件 —— 它结合了进化先验(Evotuning)与功能偏好(g-DPO),产生的建议既「像天然蛋白」又「更可能有效」。

预测器:表征复用与回归头

Logiter 给出了「在哪里改、改成什么」的建议,但并没有给出「这个修改预计会提升多少」的量化预测。预测器(Predictor)承担这一角色:输入蛋白质序列,输出该序列在 assay 上的预测测量值。

预测器的设计利用了一个关键洞察 —— 预训练语言模型内部习得的表征本身已经编码了丰富的序列信息。Transformer 的每一层都会对序列中每个位置输出一个高维向量(表征),这些向量经过逐层 refinement,最终用于氨基酸预测。如果模型能准确预测「这个位置放哪个氨基酸」,说明它已经学到了关于「什么样的序列是功能性的」的结构性知识 —— 这些知识对预测「这个序列的功能强度」同样有价值。

预测器的架构是将 Evotuned 模型的输出表征接入一个简单的回归头(Regression Head),通常是一个小型全连接网络。回归头的作用是将高维、任务无关的表征「翻译」为具体的测定值预测。训练数据来自实验返还的序列 - 测定值对。由于表征提取自 Evotuned 模型(而非随机初始化),大部分信息已经具备,回归头只需学习「如何将通用表征用于本任务的测定值预测」—— 这是一种高效的知识迁移。

需要注意的是,实验数据存在批次效应(Batch Effects):同一批 assay 通常在 96 孔板中进行,测量过程可能存在板级偏差(如边缘效应、温度梯度),导致同一批内所有测量受到共同噪声影响。高质量的预测器需要具备批效应建模能力 —— 这通常通过在模型中引入批次作为协变量或使用分层归一化技术来实现。忽略批次效应会导致预测器学习到虚假的板间信号而非真实的序列 - 功能关系。

端到端协同:Logiter 生成与 Predictor 过滤

管线在实际运行时采用双模型协同模式:Logiter 负责生成,Predictor 负责过滤与优先级排序。

生成阶段,Logiter 对模板序列中的多个候选位置逐一评估,输出每个位置上各氨基酸替换的「偏好概率」。这给出的是条件分布 ——「如果我们要改这个位置,改为哪个氨基酸最好」。但 Logiter 本身不知道「哪个位置最值得改」—— 确定待修改位点是另一个模块(Masking Model)的职责,限于篇幅本文不详述。

过滤阶段,Predictor 对 Logiter 的建议候选进行功能预测。对于每个候选变体(序列 + 修改),Predictor 输出活性 / 稳定性等指标的预测值。这些预测值用于对候选进行排序,优先级最高的变体优先送入湿实验验证。

这种「生成 - 过滤」分离的设计有两个优点:其一,Logiter 专注于「序列空间中的梯度方向」(什么样的修改更有前景),Predictor 专注于「量化预测」(这个修改预计提升多少),职责分离便于各模块独立优化;其二,Predictor 可以对任意候选(包括 Logiter 建议之外的可能性)进行评估,提供了一种灵活的价值评估机制,不受限于生成模型的隐式偏好。

实际工程中,还需要考虑预测的不确定性。高置信度的预测可以优先送测;低置信度区域可能需要更保守的探索策略或借助主动学习等技术来减少不确定性。

关键阈值与工程决策要点

基于管线架构,以下参数与决策点对工程实践具有直接指导意义:

预训练数据规模:Cradle 在数千万条天然蛋白质上训练基础语言模型。这反映了蛋白质领域的 Scaling Law—— 模型需要足够大的数据来捕捉进化多样性。若计算资源有限,建议至少覆盖 UniProt 的完整非冗余集(约 2 亿条序列),并确保采样覆盖主要蛋白质家族。

MSA 同源检索阈值:构建 MSA 时,同源序列相似度下限通常设置在 30-70% 区间。过高的相似度(如 >90%)导致 MSA 过于保守,丢失功能性变体信息;过低的相似度(如 <30%)引入假阳性,可能破坏进化信号的可靠性。建议以 50-70% 作为初始搜索区间,并通过保守位点占比(如>60% 位点保守)来验证 MSA 质量。

g-DPO 阈值设定:将连续测定值二值化为偏好标签的阈值选择直接影响模型学习效果。经验上,建议阈值为数据分布的上四分位数(75th percentile)—— 这确保「好」的样本确实代表功能性提升,而非统计噪声。数据量较少时,可适当降低至中位数以增加训练样本,但需警惕引入标签模糊。

聚类粒度:g-DPO 中组内序列相似度阈值建议设置在 85-95%(基于编辑距离或嵌入余弦相似度)。高于 95% 可能导致组内样本过于相似、配对信息不足;低于 85% 可能引入过多变异来源,使偏好信号变得模糊。

回归头架构:预测器的回归头通常使用 2-3 层全连接网络,隐藏维度为 256-512,激活函数选用 ReLU 或 GELU。鉴于表征维度通常在 768-1280 范围,过大的回归头可能导致过拟合。输出层根据 assay 数量设置 —— 单目标回归使用单个神经元,多目标回归使用多个独立输出头,可共享部分隐藏层。

批次效应处理:建议在模型中显式建模批次效应,方式包括:将批次 ID 作为额外输入特征,或使用批次感知的归一化层(如 BatchNorm 变体)。在训练时,应确保不同批次的样本混合分布,避免模型对特定批次产生依赖。

候选数量与实验吞吐:Logiter 通常为每个掩码位置生成 Top-K 候选(如 K=5),结合候选位点数(如 10-20 个)后,单次生成轮次可能产生 50-100 个候选。Predictor 过滤后,实际送测数量通常在 20-50 范围,这取决于湿实验的通量能力。建议在第一轮使用较宽的候选集以探索空间,后续轮次根据积累数据逐步收紧。

闭环迭代:从实验数据到模型更新

管线的精髓在于实验 - 建模的闭环迭代。每一轮湿实验返还的序列 - 测定值数据会持续注入两个模型:g-DPO 利用偏好对进一步对齐 Logiter,回归头利用新增数据点持续微调 Predictor。随着迭代轮次增加,两个模型对当前设计任务的适配度逐步提升,候选推荐的质量与预测准确性均应有所改善。

Cradle 的差异化优势在于拥有自营湿实验室 —— 这使实验反馈周期大幅缩短,设计 - 测试 - 学习闭环的频率远高于将实验外包的公司。在实际项目中,闭环周期从数周压缩到数天意味着同等时间内可以探索更大蛋白质空间,对于竞争激烈的药物设计项目而言这是决定性的时间优势。

对于不具备湿实验能力的团队,建议建立与 CRO(合同研究组织)的稳定协作关系,并优化实验数据的格式标准化与传输效率。同时,应提前规划数据存储架构,确保实验返还的序列 - 测定值对能够高效地流入模型训练流程。

总结与展望

Cradle 的蛋白质先导优化管线展示了一条将语言模型技术、成功经验与实验验证深度集成的工程路径。预训练阶段建立的「天然蛋白」先验通过 Evotuning 聚焦到任务专属区域,g-DPO 将实验数据中的功能偏好注入生成模型,最终 Logiter 与 Predictor 形成「生成 - 评估」的协同机制。管线的每个模块均可独立优化或替换,为不同资源条件下的团队提供了渐进式采用的可能性。

当前管线仍有进一步探索的空间:Masking Model(确定待修改位点)将在后续文章中详述;表征空间中的隐式优化(如基于梯度的方法直接修改序列)尚未展开;多目标优化(同时平衡活性、稳定性、毒性等多个指标)仍是开放挑战。对于希望在蛋白质设计领域构建 ML 能力的团队,理解这一管线的设计哲学 —— 模块化、可迭代、以实验数据为锚 —— 比复现具体实现更为重要。

资料来源:Magnus Ross,An idiot's guide to lead optimisation for proteinshttps://magnusross.github.io/posts/protein-lead-optimisation-1/。

mlops

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com