PG-LLM基准评测:蛋白突变排序下通用与专业模型谁更强?
2026/8/27 5:46:40 网站建设 项目流程

先说结论:PG-LLM 的价值不在于“又多了一个评测榜单”,而在于第一次有人把通用大语言模型和蛋白专业模型放到了同一套蛋白突变排序规则下进行比较。这个“标准统一”的动作,比 13 款主流 LLM 和 95 种专业模型这两个数字本身更重要。

如果你正在做蛋白质工程、遗传病致病突变分析,或者准备把 LLM Agent 接入生物医药领域的业务系统,你应该关心这个基准。因为蛋白突变排序不是一个论文里的玩具问题,它是基因检测解读、抗体亲和力成熟、酶定向进化这些真实项目里绕不开的环节。过去我们要么依赖昂贵的湿实验,要么依赖各种“自己说了算”的模型评估;现在 PG-LLM 提供了一个可以横向比较的尺子,这直接影响了“我该在任务里选择哪个模型”这个工程决策。

这篇文章会从蛋白突变排序任务的本质讲起,拆解 PG-LLM 评测基准的设计逻辑,对比通用 LLM 与蛋白专属模型在任务上的差异,然后给出一个本地可跑的零样本突变排序示例,最后讨论这类基准的局限和落地建议。

1. 为什么蛋白突变排序需要一份标准化评测基准

先理解一个具体场景。假设你拿到一名患者的全外显子测序数据,发现某个基因上有一个错义突变,比如第 88 位氨基酸从亮氨酸(L)变成了脯氨酸(P)。临床遗传学家需要回答一个问题:这个突变会不会影响蛋白质功能?如果影响,程度有多大?

这个问题,生物学上叫“变异效应预测”(variant effect prediction)。放到蛋白质工程领域,它变成另一个问题:我要设计一种抗体,让某个位置的氨基酸换成哪种残基,能提高它对靶标的亲和力?这时候需要给所有可能的突变体排序,把最有希望的几个挑出来做实验验证。

这两种场景的共同点在于:都需要对蛋白质序列上的氨基酸突变进行排序,而不是单纯二分类为“有害”或“无害”。排序意味着我们要给每一个突变打一个分数,分数高低代表效应强弱。

实验上,深度突变扫描(Deep Mutational Scanning, DMS)可以比较完整地回答这个问题,它在一个实验里并行测量成千上万个突变体的功能表现。但 DMS 实验成本高、周期长,不可能对每一对临床突变都做一遍。因此计算预测是必经之路。

过去几年,计算预测的主流方案是 ESM、ProtTrans、Tranception 这一类蛋白专属语言模型。它们的预训练方式是“蛋白质序列的掩码语言建模”:把一段氨基酸序列随机挖掉几个位置,让模型根据周围残基预测被挖掉的是什么。这个训练目标天然适合突变效应预测——哪个氨基酸替换会破坏序列的统计分布,模型给出的概率变化就能反映出来。

但到了 2023 年之后,通用大语言模型(GPT、Claude、Gemini、Llama 等)的能力边界不断扩展,开始有研究尝试用通用 LLM 做蛋白质功能推理,甚至直接用自然语言描述突变让模型判断致病性。于是行业里出现了一个很实际的问题:通用 LLM 在这种专业任务上到底行不行?如果行,和专门训练的蛋白模型差多少?

这个问题看似简单,回答起来却很困难,因为各家论文用的数据集不一样,任务设置不一样,评估指标也不一样。有的论文只看二分类 AUC,有的论文只看 Spearman 相关系数;有的模型用了 DMS 数据做微调,有的做的是零样本预测。结论自然五花八门,很难横向比较。

PG-LLM 的价值就在这里:它像一份统一命题的考试,把 13 款主流通用 LLM 和 95 种蛋白专业模型放在同一套蛋白突变排序任务里,用统一的数据集、统一的任务设置、统一的评估指标进行打分。这样研究人员才能回答一个之前很难回答的问题:钱应该花在通用大模型的 API 调用上,还是花在训练和部署蛋白专属模型上。

2. 蛋白突变排序的任务本质与难点

要理解 PG-LLM 评测了什么,得先明白蛋白突变排序任务在技术上是怎么定义的。

给定一条野生型蛋白质序列 S(长度为 L),我们把第 i 个位置的氨基酸从野生型残基 r_wt 替换成另一个残基 r_mt,就得到一个突变体。任务的目标是:对一组这样的突变体,按照“功能影响程度”从大到小排序。

这里的“功能影响”由实验数据定义。DMS 实验通常会给出每一个突变体相对野生型的功能得分(如酶活性、结合亲和力、细胞存活率等)。这些实验得分就是排序任务的标签。

模型需要输出一个分数,分数与实验标签的排序一致性越高越好。最常用的排序一致性指标是 Spearman 秩相关系数,它只关心模型分数和实验分数之间的单调关系,不要求绝对值吻合。这个特性很重要,因为模型输出的分数往往不是真实的功能值,只要排序大致正确就能用。

任务难在哪里?有三层:

第一层是数据稀疏。一个蛋白质可能有 19×L 个单点突变(20种氨基酸替换自身之外的19种),但 DMS 实验通常只覆盖其中一部分,而且不同蛋白质的 DMS 数据质量差异很大。

第二层是信号微弱。很多突变对蛋白质功能的影响很小,属于“中性突变”,模型需要在这种几乎没差异的信号中分辨出有限几个关键的有害突变。这比单纯判断“有没有影响”难得多。

第三层是评估方式不统一。零样本预测(zero-shot)和少样本微调(few-shot)对模型的要求完全不同。零样本要求模型只凭预训练阶段学到的知识做出判断;少样本则允许模型在少量 DMS 数据上做适配。如果评测基准不把这两种设置分开,得到的结论容易失真。

PG-LLM 这类标准化基准要解决的,正是第三层问题,同时也为第一层和第二层提供更规范的评估框架。

从底层原理看,我们需要区分两类模型在任务上的工作方式。蛋白专属模型,比如 ESM-2,本质上是一个序列概率模型,它对“某个位置出现某个氨基酸”的概率进行建模。当突变后的序列概率远低于野生型时,模型认为这个突变破坏了蛋白质序列的“自然规律”,从而给出一个不利的分数。这种方法的优点是直接、稳定,预训练目标与任务目标高度一致;缺点是模型不理解“功能”是什么,它只是从序列统计规律推断,对远距离调控、蛋白质相互作用等复杂因素无能为力。

通用 LLM 的工作方式则完全不同。它接受的是符号序列,可以是氨基酸字母,也可以是自然语言描述。它判断突变效应时,依据的是预训练阶段学习到的海量生物医学文献、数据库和常识知识。因此通用 LLM 有可能捕捉到序列统计之外的语义信息,但它也可能把百科知识里的“已有结论”误当成“这个具体突变的预测”,并且在不同提示词模板下表现出非常不稳定的结果。

3. PG-LLM 评测基准的设计思路

从项目标题可以看出,PG-LLM 的核心贡献有三个关键词:首个、面向 LLM、标准化。这三个词分别对应了不同的技术内涵。

“首个”指的是它的历史定位。尽管 ProteinGym 等基准已经被广泛使用,但它们的设计目标主要是评估蛋白专属模型,而不是围绕通用 LLM 的能力边界来设计评测体系。通用 LLM 的输入形式更灵活、输出形式更多样、推理方式也不同。因此需要一个专门面向 LLM 的评测方案,而不是简单套用旧基准。

“面向 LLM”意味着评测设计要考虑 LLM 的特点。比如:

  • 通用 LLM 不能直接输出一个定量的功能分数,但可以让它输出一个 0 到 1 的数值或大小判断,再转换为排序分数。
  • LLM 可以通过自然语言 prompt 接收上下文,评测时需要确定:是只给氨基酸序列,还是同时给蛋白质名称、功能描述、甚至相关文献摘要?
  • LLM 的推理结果受解码参数影响,评测时需要统一温度、max_tokens 等参数,否则结果不可复现。

“标准化”则指向整个评测流程的封闭性和可比性。具体包括:

  • 固定评测数据集,不随使用者的意图变动。
  • 固定任务设置,区分零样本和少样本两套评测协议。
  • 固定评估指标,至少覆盖排序指标和分类指标两类视角。
  • 固定评测代码和模型版本,保证不同团队跑出来的结果可以直接比对。

评测一个模型“好不好”,看起来很简单,但细节里藏满了容易引发争议的决策点。比如:一个通用 LLM 在判断突变效应时,如果把蛋白质名称告诉它,它的结果可能更多来自对已知文献的记忆,而不是对序列本身的理解。这算模型能力还是算记忆泄漏?PG-LLM 作为一份标准化基准,需要在这些问题上给出明确的方案,而这也是它的核心贡献之一。

具体的数据集构成、prompt 模板和模型清单,需要等论文正式发布后以原文为准。这里不展开臆测,但评测设计的基本原则是通用的:任务足够贴近真实场景,指标足够客观,设置足够透明。

4. 通用 LLM 与蛋白专业模型:不是一个维度的对手

PG-LLM 把 13 款主流通用 LLM 和 95 种蛋白专业模型放在同一个榜单里。看到这个设置,第一反应可能是“拿篮球运动员和游泳运动员比跑步”。但实际上,这两种模型在蛋白突变排序任务上恰恰是互补的,把它们放在一起对比,能让研究者做出更理性的选型。

下面用表格梳理两类模型的核心差异。

对比维度通用大语言模型(GPT、Claude、Gemini、Llama 等)蛋白专属模型(ESM、ProtTrans、Tranception 等)
输入形式氨基酸序列文本、自然语言描述、结构化 JSON氨基酸序列(token 化后输入)
预训练数据网页、论文、书籍、代码等多源文本数百万条蛋白质序列(UniProt 等)
预训练目标自然语言下一个 token 预测蛋白质序列掩码重建或语言建模
对蛋白质的理解语义层面的知识关联(文献、数据库)序列统计层面的进化规律
零样本突变预测能力不稳定,强依赖 prompt 设计能力稳定,预训练目标天然适配
可解释性可以输出推理理由,便于审计只输出分数,解释性差
部署成本高,需要 GPU 集群或 API 调用相对低,模型规模可选,几千到几亿参数
典型使用方式知识问答、推理、Agent 调度批量序列打分嵌入到分析 pipeline

从这张表能得出一个很重要的结论:通用 LLM 和蛋白专业模型在突变排序任务上各有不可替代的位置。

如果你的任务非常明确,就是给一批突变排序,并且对成本敏感、要求结果稳定可复现,那么蛋白专属模型仍然是最稳妥的默认选择。ESM-2 这类模型在无监督突变效应预测上的表现经历了大量验证,而且它是开源的,可以在本地部署,不存在 API 数据出境问题。

如果你的任务比较复杂,需要结合文献证据、需要给出可解释结论、需要处理蛋白序列之外的上下文,那么通用 LLM 的语义理解能力就能派上用场。PG-LLM 系统测评的价值在于,它告诉我们这类“语义能力”在突变排序这个具体任务上到底转化成了多少实际收益。

我一直认为,对这类“AI for Science”任务,最理性的认知是:通用 LLM 与专业模型不是替代关系,而是配合关系。合理的 pipeline 通常是这样——先用蛋白专属模型做全突变空间的高通量打分,缩小候选范围;再用通用 LLM 在候选小集合上做语义层面的综合判断,并结合文献证据给出解释;最后把剩余的几个突变交给湿实验验证。

5. 如何读懂一份模型评测结果

PG-LLM 作为评测基准,输出结果最终会落到一些量化指标上。搞清楚这些指标,是正确使用评测结论的前提。

蛋白突变排序任务里,最常见的评估指标是 Spearman 秩相关系数。它的计算方式是:将模型对每一个突变打出的分数排序,和实验标签的排序做秩相关分析。Spearman 相关系数的取值范围是 -1 到 1,1 表示完全正相关,-1 表示完全负相关,0 表示无相关性。在突变效应预测领域,一般能跑到 0.3 以上就说明模型有实用价值了,0.5 以上属于相当不错的表现。

第二个常见指标是 AUC(Area Under the ROC Curve)。它的前提是把任务退化为二分类:把实验标签按阈值分成“有害”和“中性/有益”两组,然后看模型分数是否能区分两组。AUC 为 0.5 时相当于随机猜测,1.0 时完全分类正确。AUC 的优点是直观,缺点是把排序任务压缩成了分类任务,丢失了“排序质量”这个关键信息。

第三个值得关注的指标是 recall@k。在蛋白质工程场景中,我们经常关注“前 k 个推荐里包含多少个真正有效的突变”。比如设计 20 个候选突变体送去做实验,如果模型排序的前 20 个里命中了 15 个有效突变,那么 recall@20 就是 75%。这个指标直接影响实验成本和项目周期。

下表汇总了这些指标的特点。

指标回答的问题适用场景注意事项
Spearman 相关系数模型排序和实验排序一致吗整体排序质量对微小分数的噪声敏感,需要数据规模足够大
AUC模型能区分有害和良性吗临床筛查类任务丢失了排序局部质量信息
recall@k前 k 个推荐里命中多少个蛋白质工程实验筛选需要结合实验预算设置 k

在阅读 PG-LLM 的评测结果时,有两点需要特别留意。

第一,不要只盯一个指标。一个模型可能 Spearman 指标很高,但 top-k 命中率不佳;另一个模型可能 AUC 突出,但整体排序混乱。要根据自己的下游任务找到最适配的指标权重。

第二,要关注评测设置是 zero-shot 还是 few-shot。零样本预测才是对模型通用能力的检验,少样本预测则检验模型在少量数据上的适配效率。这两者面对的任务难度完全不同,放在同一张表里比较时要保持警惕。

6. 实践:本地跑一个零样本突变排序示例

PG-LLM 论文的官方代码我们以正式发布为准。但在论文公布之前,我们可以先在本地跑通一个最常用的零样本突变排序流程,用于理解模型输出和评估指标之间的关系。下面用 ESM-2 小模型演示完整流程。

6.1 环境准备

推荐环境:

  • Python 3.9 或更高版本
  • PyTorch 1.13 或更高版本
  • Hugging Face Transformers 4.30 以上
  • scipy 用于计算 Spearman 相关系数

安装依赖:

pip install torch transformers scipy

如果电脑没有 GPU,也可以使用 CPU 运行。为了演示,我选择facebook/esm2_t6_8M_UR50D这个极小模型,CPU 也能跑动。生产级项目推荐使用更大的esm2_t33_650M_UR50Desm2_t48_15B_UR50D

6.2 模型加载与突变打分函数

# 文件路径:mutation_score.py from transformers import AutoTokenizer, AutoModelForMaskedLM import torch model_name = "facebook/esm2_t6_8M_UR50D" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForMaskedLM.from_pretrained(model_name) model.eval() def predict_mutation_score(sequence, position, wild_aa, mutant_aa): """ 使用掩码概率差方法评估单点突变效应。 position: 0-based 位置索引 wild_aa: 野生型氨基酸单字母编码 mutant_aa: 突变型氨基酸单字母编码 返回 (野生型对数概率, 突变型对数概率, 对数概率差) """ seq_list = list(sequence) # 复制原序列,把目标位置替换为掩码 token masked_seq_list = seq_list.copy() masked_seq_list[position] = tokenizer.mask_token masked_seq = "".join(masked_seq_list) inputs = tokenizer(masked_seq, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) # ESM 序列开头有 <cls> token,所以目标位置要 +1 logits = outputs.logits[0, position + 1, :] log_probs = torch.log_softmax(logits, dim=-1) wt_id = tokenizer.convert_tokens_to_ids(wild_aa) mt_id = tokenizer.convert_tokens_to_ids(mutant_aa) wt_logprob = log_probs[wt_id].item() mt_logprob = log_probs[mt_id].item() return wt_logprob, mt_logprob, mt_logprob - wt_logprob

这段代码实现的是零样本突变预测最经典的“掩码恢复”打分方案。核心逻辑是:把突变位置遮住,让 ESM 模型基于上下文去预测该位置最可能出现的氨基酸。如果模型认为突变后的氨基酸很难出现(对数概率很低),说明这个突变不符合蛋白质序列的进化规律,可能是有害突变。

6.3 对一组突变进行排序并计算 Spearman

接下来我们构造一个小型测试集:选取一条短的蛋白质序列,生成 3 个已知标签的突变,计算排序相关性。

# 文件路径:run_evaluation.py from mutation_score import predict_mutation_score from scipy.stats import spearmanr # 示例:人类血红蛋白 alpha 亚基前 20 个残基 sequence = "MVLSPADKTNVKAAWGKVGAH" mutations = [ {"pos": 0, "wt": "M", "mt": "V", "label": 0.1}, # 影响较小(假设) {"pos": 5, "wt": "A", "mt": "P", "label": 0.8}, # 影响较大(假设) {"pos": 10, "wt": "K", "mt": "E", "label": 0.5}, # 影响中等(假设) ] pred_scores = [] true_labels = [] for mut in mutations: _, _, delta = predict_mutation_score( sequence, mut["pos"], mut["wt"], mut["mt"] ) pred_scores.append(delta) true_labels.append(mut["label"]) print(f"{mut['wt']}{mut['pos'] + 1}{mut['mt']} delta_logprob={delta:.4f} label={mut['label']}") rho, p_value = spearmanr(pred_scores, true_labels) print(f"\nSpearman rho = {rho:.3f}, p-value = {p_value:.4f}")

这里需要注意:delta_logprob是突变型相对野生型的对数概率差。值越负,通常表示模型认为这个突变越有害。因此在计算 Spearman 时,排序方向要和实验 label 方向对齐,如果出现负相关,可以检查是不是符号取反了。

6.4 用通用 LLM 做同样的排序

再来看通用 LLM 的调用方式。这里以 OpenAI 兼容的 Chat Completions API 为例,演示如何让大模型对突变效应打分。

# 文件路径:llm_mutation.py from openai import OpenAI client = OpenAI() model_name = "你实际使用的模型名" # 例如 gpt-4o-mini、deepseek-chat def llm_predict_mutation(sequence, position, wild_aa, mutant_aa): prompt = f"""你是一位计算生物学家。以下是蛋白质序列的单字母氨基酸表示: {sequence} 该蛋白质第 {position + 1} 位的野生型氨基酸是 {wild_aa},该位点突变为 {mutant_aa}。 请评估这个突变对蛋白质功能的影响程度。 只输出一个 JSON,格式如下: {{"effect_score": 0.0 到 1.0 之间的一个浮点数, "reason": "一句话解释"}} 其中 effect_score 越大表示对功能影响越严重。 """ response = client.chat.completions.create( model=model_name, messages=[{"role": "user", "content": prompt}], temperature=0, response_format={"type": "json_object"}, ) return response.choices[0].message.content print(llm_predict_mutation(sequence, 0, "M", "V"))

运行后,大模型会返回类似下面的结果:

{"effect_score": 0.3, "reason": "M1位于信号肽区域,疏水性变化可能影响蛋白转运但不改变成熟蛋白结构。"}

这里推荐使用temperature=0,因为评测场景需要可复现性,温度越高输出波动越大。同时,response_format强制 JSON 输出可以让下游解析更加稳定。

7. PG-LLM 这类基准对工程落地的影响

PG-LLM 不只是学术论文里的一个工具,它对实际的药物研发和生物信息学工程有直接参考价值。

第一个价值是模型选型依据。过去,一个做抗体工程的团队要在 ESM 和某个通用 LLM 之间做选择,只能靠零散论文和拍脑袋。现在有了标准化评测结果,可以直接回答“在突变排序任务上,哪类模型的性价比更高”。如果通用 LLM 的排序表现只是略逊于专业模型,但团队已经有 API 集成基础,那用通用 LLM 统一处理文本和序列任务就是更省人力成本的方案。

第二个价值是 Pipeline 设计参考。评测基准通常不只是给一个分数,它暴露了模型在数据预处理、prompt 设计、输出解析等环节的隐藏问题。比如序列长度限制:通用 LLM 的上下文窗口大,但蛋白专属模型对序列长度有限制;比如 token 化方式:蛋白序列中“A”在通用 tokenizer 里未必对应一个独立 token。这些问题在集成阶段就会暴露出来,而评测基准能提前告诉我们。

第三个价值是团队协作的标尺。在一个 AI 制药团队里,算法团队负责模型,生信团队负责数据处理,药理团队负责实验验证。PG-LLM 的标准评估流程可以成为多团队协作的“验收标准”:新模型上线前,先过一遍基准测试,再决定是否替代旧模型。这能减少很多争论。

第四个价值值得单独强调:它推动评测报告的透明度。很多论文在报告结果时存在选择性披露倾向,比如只报最喜欢的指标。标准化基准的好处是强制所有参与者跑同一套任务,用同一套指标,降低了信息不对称。

8. 现有局限与使用注意事项

任何基准都有边界,PG-LLM 也不例外。在使用其评测结论时,有几点需要保持清醒。

第一,评测数据集覆盖不等于真实世界的全部场景。DMS 数据集的构建依赖具体的实验条件和蛋白质类型,如果一个评测基准主要覆盖了某些蛋白家族,那么结论外推到其他蛋白家族时会有风险。特别是临床遗传学场景,致病突变的判断还涉及剪接、调控、蛋白相互作用等复杂因素,远不是简单的序列突变排序能覆盖的。

第二,通用 LLM 的版本迭代速度远快于评测基准。今天评测的 13 款模型可能三个月后就更新换代了,新的模型版本不在评测范围内。因此在工程实践中,评测基准更像是一个年度体检,而不是每天都要看的实时监控。

第三,提示词设计对 LLM 结果影响巨大。同一个模型,换一种 prompt 写法,结果可能从可用变为不可用。PG-LLM 的评测结果反映的是它规定的 prompt 模板下的表现,而不是模型能力的绝对上限。在实际项目中,需要针对自己的任务做 prompt 优化,直接迁移基准的 prompt 不一定是最优解。

第四,数据泄漏风险是评测 LLM 时的“房间里的大象”。通用 LLM 在预训练时见过大量生物医学文献,如果论文里的某个 DMS 数据集恰好出现在预训练语料中,模型记忆到的实验结论就会污染评测结果。标准化的评测基准应该通过时间切分、数据集隔离等手段降低这种风险,但外部使用者很难完全验证这一点。

第五,不要盲目相信“越大越好”。模型规模大了,推理成本、部署复杂度和延迟都会上升,但评测分数可能只提升几个百分点。在蛋白突变排序这类任务中,一个 6.5 亿参数的 ESM-2 模型和 15B 参数的大模型之间的差距,可能远小于 prompt 工程和集成策略带来的差距。

9. 总结与后续方向

PG-LLM 给蛋白突变排序领域带来的核心价值,是把一场原本混乱的“民间比武”变成了一场规则清晰的“正式比赛”。13 款主流 LLM 和 95 种专业模型的横评结果,为研究人员和工程师提供了一个可以依赖的选型参照。

对于实际项目,我的建议是:不要试图在通用 LLM 和蛋白专属模型之间二选一,而是设计一个分层的 pipeline。用蛋白专属模型做全量序列空间的初筛,用通用 LLM 在小候选集上做语义理解和解释,最后用湿实验验证。这种组合策略能同时利用两类模型的优势。

如果你接下来要深入这个方向,可以从几个层面入手。第一,阅读 PG-LLM 论文原文,重点关注它的数据集构成、prompt 模板和评测代码,这些细节决定了结果的可信度和适用范围。第二,用本文提供的 ESM 零样本流程跑一批自己的突变数据,建立基线分数后再尝试加入通用 LLM 的语义评审环节。第三,关注评测基准的更新机制,看它是否支持研究者提交新模型的评测结果,这将是一个持续跟踪社区进展的好入口。

蛋白突变排序只是 AI for Science 的一个缩影。未来会有更多标准化评测基准出现,覆盖蛋白质结构预测、分子生成、细胞影像分析等方向。对我们这些做应用的人来说,学会读懂一份基准、正确使用它的结论,比追着最新模型跑更重要。建议把 PG-LLM 的评测思路收藏起来,作为后续模型选型和实验设计的重要参考。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询