GLM|基因组语言模型的学习笔记
今天一早,Will 说基因组语言模型 Evo 模型登上了 Science 封面文章。我立马跑去下载学习,眼前一亮的通讯作者 Brian L. Hie,名副其实的后浪
。因为 Brian 参与了 ESM 系列工作,也发表了蛋白语言模型进行抗体亲和力成熟的 Science 和 Nature Biotechnology 文章,所以他对语言模型的理解肯定是出类拔萃的。结合小王讲到,邵斌老师更早的DNA语言模型 megaDNA 也是刚刚见刊等信息。作为小白的我趁此机会学习基因组语言模型,顺便输出一波,Please enjoy。
本文最后也会对蛋白语言模型 PLM 和 GLM 进行对比;还会吸取从群友交流学习到的知识,对语言模型的size是否越大越好的问题做出讨论!
AI4Protein 2024
AI4Protein领域在2024大事件的问卷调研!
目录
1. 背景
1.1. 什么是基因组语言模型 GLM? 1.2. GLM的类型 1.3. GLM的下游应用 1.4. GLM有哪些 1.5. 怎么理解困惑度 Perplexity?
2. 案例1: Evo
2.1. 为什么不选择 Transformer? 2.2. 什么是 StripedHyena? 2.3. Evo各种下游任务的表现 2.3. 设计 CRISPR-Cas体系
3. 案例2: megaDNA
4. 案例3: LucaOne
5. PLM vs GLM
5.1. GLM和PLM的区别 5.2. Evo文章的对比 5.3. Sergey论文里的对比 5.4. GLM和PLM的系统性对比
6. 大模型的size是否越大越好?
参考文献
1. 背景
1.1. 什么是基因组语言模型 GLM ?
基因组语言模型(gLMs),即在大语言模型基础上训练而成的模型,只不过它是在 DNA 序列等包含基因信息的数据训练的,具有显著提升我们对基因组及其复杂功能的理解潜力,这些功能是由不同尺度的 DNA 元件相互作用而产生的 [1]。
1.2. GLM的类型
GLM 的主体部分通常是一个深度学习模型,如 Transformer 或 CNN(表1
),它通过分析DNA序列来学习核苷酸的上下文依赖分布。GLM 的类型其实和蛋白语言模型 PLM分类 是一样的,可以分为以下两类:
掩码语言模型 MLM:这是一种训练任务,模型需要预测被随机掩盖的序列中缺失的核苷酸,这有助于模型学习序列的内部结构和功能元件。MLM 通常是 Encoder-only的,这类语言模型可以简单理解为填词填空的学习。
因果语言模型 CLM:这是另一种训练任务,模型在给定前序核苷酸的情况下预测下一个核苷酸。这有助于模型学习序列的因果关系和生物学功能。CLM 通常是 Dncoder-only的,这类语言模型可以简单理解为与ChatGPT类似,需要一个一个吐出结果。
1.3. GLM的下游应用
功能性转录因子结合位点(TFBS)预测:gLM可以通过学习序列中的基序(motif)来预测潜在的TFBS,这有助于我们理解基因组中的调控元件。
下图a
是一个预测出的基序,它可能代表了调控基因表达的蛋白质的结合位置。变异效应预测:通过比较变异前后的序列概率,gLM可以预测变异对基因功能的影响,这对于理解遗传变异和疾病之间的关系非常重要。
下图b
显示了变异的最小等位基因频率(MAF)与gLM分数(如对数似然比,LLR)之间的相关性。这种相关性表明gLM能够评估变异对基因功能的影响,其中LLR较高的变异可能更有害。序列设计:gLM可以用于设计具有特定功能的新的生物序列,例如,通过采样学习到的概率分布来生成新的启动子序列,这些序列可以在特定细胞类型中驱动高或低的基因表达。
下图c
展示了如何使用不同的控制标签来指导gLM设计启动子序列,这些序列能够在特定的细胞类型中驱动高或低的基因表达。基因表达预测:gLM可以预测基因表达水平,这对于理解基因调控网络和设计合成生物学系统非常有价值。
下图d
展示了gLM如何学习不同类别的基因组窗口(如基因区域)的表示,并通过可视化展示了这些表示中包含的信息。
1.4. GLM有哪些
表1
提供了现有基因组语言模型(gLMs)的概览 [1],统计了它们使用的预训练数据(Data)、任务类型(Task)、模型架构(Architecture)、标记化方法(Tokenization)以及各自的独特特点。这些模型按照它们公开发布的日期顺序列出。表中提到的缩写包括SSM(状态空间模型)、CNN(卷积神经网络)、BPE(字节对编码)、CLM(因果语言建模)和MLM(掩蔽语言建模)。
表1
中的信息显示了gLMs在设计和应用上的多样性,以及研究人员如何根据不同的研究目标选择或设计合适的模型架构和训练策略。这些模型的开发和应用为基因组学研究提供了新的视角和工具。下文我会选取Evo、megaDNA、LucaOne,以及Sergey 的 GLM 文章等案例进行更深一步的理解和阐述。
1. 背景
1.5. 怎么理解困惑度 Perplexity?
一个自然语句的概率
取 log 连乘变成连加,就是 log-likelihood
在逆向折叠模型,比如:ESM-IF 和 proteinMPNN 就可以输出 log-likelihood数值。它是一个负数,越高越接近于0,说明概率越高、结果越好**。
Perplexity
困惑度(Perplexity)是测试集一个句子概率的倒数,按单词数量 N 进行归一化:
所以极限情况就是 Perplexity 为1,在语言模型中 Perplexity 数值越低越好,越低说明语句具有更高的自然概率。
通过上面的公式,log-likelihood 和 Perplexity 的关系也就不言而喻了。log-likelihood 上升,Perplexity 肯定下降(图4
)。
2. 案例1: Evo
Evo 是今天刚在 Science 见刊的封面文章 [2],其实小王随笔对这篇论文已经讲解的足够生动和深刻,读者可以直接跳转阅读。下面讲述一下编者自己的学习理解:
2.1. 为什么不选择 Transformer,选择StripedHyena?
基因组的数据长度太长,平均在3mb,
下图D
,Transformer学不好这么长的依赖关系基因组数据有许多的不同门(phylum)和纲(class),例如 Bacteroidota 是拟杆菌门,
下图E
性能更优:在比较不同的模型架构时,StripedHyena具有更低的困惑低 PPL,
下图F
。可扩展性和计算效率:StripedHyena在DNA序列数据上展现出了更好的缩放率(scaling law),这意味着随着模型或数据规模的增加,其性能提升更为显著,
下图G
。下游任务,StripedHyena架构在预测蛋白质功能、ncRNA功能以及基因表达调控等方面,表现出了与特定领域语言模型相媲美的性能,甚至在某些任务上超过了它们。
2.2. 什么是 StripedHyena?
StripedHyena 其实是一个类似 ChatGPT 的一个因果语言模型(下图
),结合前文可知,Evo 其实是一个类似 Progen2 的 CLM。
StripedHyena 的中文音翻是条纹鬣狗,它已经开源在 Github(https://github.com/togethercomputer/stripedhyena
)和 Hugging Face(https://huggingface.co/togethercomputer/StripedHyena-Nous-7B
)。
2.3. Evo 各种下游任务的表现
下图B
展示了蛋白Fitness预测,Evo展现出与蛋白语言模型相当的性能。
下图D
是zero-shot ncRNA Fitness预测,Evo超过其他同类模型;
下图F
Promoter活性预测;
下图G
是在蛋白表达量预测,Evo表现最佳;
2.3. 设计 CRISPR-Cas 体系
笔者一直信奉“找专业的人,做专业的事”的原则。Evo 文章的作者之一 Patrick David Hsu 是张锋的博生,他也是 CRISPR-Cas9 体系的早期关键开发者,所以本文能够成功设计 CRISPR-Cas 体系他功不可没。
Evo 设计的 EvoCas9 能够裂解(clevage)EvoCas9-1 sgRNA,左边 SpCas9 是阳性对照组实验。同时还不难发现,EvoCas9 的裂解 EvoCas9-1 sgRNA 速率更快、活性更高,在5分钟已经出现更多的裂解产物(2条短的RNA)。简而言之,设计的 EvoCas9不仅有活性有功能,且活性优于对照组,下图F
。同时作者在下图I、J
展示了 AF3 预测的结构EvoCas9-1 sgRNA 单体,以及蛋白-RNA复合物结构。
3. 案例2: megaDNA
北理工邵斌老师的 megaDNA 是很早就做的DNA语言模型 [3],有insight。该模型采用三层 transformer 结构,去克服 transformer 模型只能处理短序列的局限。megaDNA 最终包含1.5亿个参数,可以一次性分析长达10万个碱基的DNA序列,足以覆盖多数噬菌体的完整基因组。
下图a
展示了megaDNA模型在基因组序列上的应用,包括预测基因必需性、遗传变异对蛋白质功能的影响、调控元件活性以及未标注序列的分类。
下图b
展示了使用megaDNA模型对lambda噬菌体基因组进行体外诱变分析的过程。通过模拟基因编码区域内的突变,研究者们发现必需基因的突变导致模型损失增加,而非必需基因的突变则没有这种影响。
下图c
展示了lambda噬菌体基因组中不同基因的模型损失变化。图中显示了必需基因、非必需基因以及50 bp非重叠窗口的模型损失变化。
下图d
展示了通过计算基因编码区域(蓝色)、起始密码子(橙色)和终止密码子(绿色)的突变对模型损失的影响,来预测必需基因。使用接收者操作特征曲线下面积(AUROC)来评估模型的预测能力。
下图e
展示了使用模型嵌入来预测大肠杆菌必需基因infA的突变对蛋白质功能的影响。
下图f
展示了使用模型预测T7噬菌体基因组中单核苷酸多态性(SNPs)的影响。
下图g
展示了使用模型嵌入来进行Klebsiella oxytoca、Pseudomonas protegens Pf-5和Escherichia coli DH10B的5'非翻译区(5'UTR)的翻译效率预测。
下图h
展示了使用模型嵌入预测调控元件活性。
下图i
展示了使用模型嵌入对来自噬菌体、细菌和古菌的未标注序列进行分类。
下图j
展示了在生成的序列中发现的潜在调控元件,如启动子和核糖体结合位点(RBS)。
下图k
展示了使用模型嵌入对生成的序列进行分类预测。
这些结果展示了megaDNA模型在基因组序列理解和生成方面的能力,包括从单核苷酸分辨率学习噬菌体基因组的结构模式,以及在没有进一步微调的情况下预测基因必需性。此外,该模型还能够生成长达96 K碱基对的序列,这些序列包含潜在的调控元件和注释为具有噬菌体相关功能的蛋白质。
4. 案例3: LucaOne
LucaOne 是阿里云开发的目前全生物系统的核酸语言 + 蛋白语言的融合基座模型。换句话说,LucaOne由核酸(DNA、RNA)和蛋白质序列联合训练而来 [4]。通过一系列实验,研究人员发现 LucaOne 能广泛适用各种下游任务。更高关于LucaOne感兴趣的读者可量子位的解读。
5. PLM vs GLM
5.1. GLM 和 PLM 的区别
下图1a
和下图1b
展示了gLMs和pLMs在预训练阶段的差异[6]:
gLMs主要在非编码区域进行预训练; pLM则在CDS编码区域上进行预训练; gLM自身在预训练时基因组数据大多是非连续的编码区域,而微调时使用的是连续的CDS序列,这种分布的巨大变化可能会影响gLMs在蛋白质任务上的表现; 微调阶段:对于gLM,需要将DNA序列翻译成对应的CDS序列,然后使用这些序列进行模型微调; 微调阶段:对于pLM,可以直接使用蛋白质的氨基酸序列进行微调。
前面介绍这么多,其实笔者和读者也许都只关心一个核心问题,即:在下游任务上 GLM 是否比 PLM 展现出更多的优势?
5.2 Evo文章的对比
下图
是Evo文章在蛋白 fitness 预测任务上的表现,可见:Evo和Progen2模型效果相当,预测准确性的 PR 相关系数低于 ESM-1v 和 ESM2 模型。
结论:所以,可以说在蛋白fitness预测任务上,基因语言模型 Evo 是中等的 蛋白语言模型 PLM 水平。
5.3 Sergey 论文里的对比
Sergey 作为 David Baker 的高徒,最早是研究蛋白共进化,开发了RSO蛋白骨架设计、BindCraft设计Binder、ColabFold使用MMseq2加速结构预测、ColabDesign等算法。以至于当大家看到 Sergey 参与语言模型的工作 [5],群友直呼:怎么到哪都有Sergey?
Sergey此论文的中的模型并非纯粹的GLM,从下图
可以看到这是个GLM和PLM的Hybrid杂交版本。
下图A
展示了EC编号分类任务上的准确性Accuracy,这里比较了使用pLM(ESM2)生成的上下文无关(context-free)蛋白质嵌入和使用gLM(genomic language model)生成的上下文相关(contextualized)蛋白质嵌入的性能。结果显示,上下文相关的嵌入在预测酶功能方面表现更好,这表明了gLM学习到的基因组上下文信息对于提高蛋白质功能预测的准确性是有帮助的。
下图B
展示了在统计上显著的F1分数差异,其中gLM表示的上下文相关嵌入在73个EC类别预测中的36个上比pLM表示的上下文无关嵌入有更高的F1分数。这进一步证明了上下文信息对于提高功能预测的重要性。
下图C
展示了精确度-召回率曲线,用于比较pLM和gLM在EC编号分类任务上的性能,可以看到是GLM更好。
下图D
展示了使用上下文相关(gLM)和上下文无关(pLM)嵌入计算的MGYPs(MetaGenomic Protein Yields)的方差分布。这些MGYPs在数据库中出现至少100次。图中显示了上下文相关嵌入的方差分布(橙色)与上下文无关嵌入的方差分布(蓝色)之间的差异。上下文相关嵌入的方差分布显示出更长的右尾(kurtosis = 1.02,skew = 1.08),表明gLM能够捕捉到基因组上下文中的更多变化,这可能与基因的水平转移频率有关。
结论:在 Sergey 论文的 EC number 的分类预测任务上,GLM由于额外学习到了的基因组上下文信息,GLM+PLM性能比单独PLM更优。
5.4 GLM和PLM的系统性对比
除了上面介绍的两篇论文,还有论文[6]对GLM和PLM做了系统性的对比、详尽的分析,下面一起来看看它的结果吧!
5.4.1 五个蛋白任务上评估对比
下图c
展示了 GLM 模型 NT-v2、DNABERT2、PLM模型 ESM-2和ESM-1b 在五个不同的蛋白质任务上的性能:
熔点预测,GLM更优; 蛋白质稳定性预测,GLM差一些; 荧光预测,GLM和PLM持平; β-内酰胺酶活性预测,GLM差一些; 二级结构预测SSP,GLM差一些;
5.4.2 GLM熔点预测性能更优的原因
接下来文章继续探讨了基因组语言模型(gLMs)在蛋白质熔点预测任务上性能优越性的原因。
下图a
展示了在蛋白质熔点预测任务上,通过向NT-v2和ESM-2模型的嵌入中分别添加GC含量和物种信息,对模型性能的影响。说明GLM是由于有额外的GC、物种信息,才在蛋白熔点预测任务上更准确。
下图b
部分展示了不同物种在熔点预测数据集中的分布,说明不同物种蛋白的熔点有明显的分布差异。
下图c
则通过t-SNE降维技术展示了预训练后的NT-v2和ESM-2模型嵌入空间的结构,特别是它们如何根据物种信息进行组织。很明显基因语言模型NT-v2能够有效的的区分物种信息。
下图d和e
展示了NT-v2和ESM-2在物种识别任务上的准确性,验证了gLM是否能够从序列中识别出物种信息。
结论:所以,gLM在蛋白质熔点预测任务上的优越性能,很大程度上可以归因于,它们能够识别和利用物种级别的codon使用偏差。
5.4.3 GLM和PLM嵌入Embedding的区别
下图
表明gLMs和pLMs在组织蛋白质序列嵌入空间时遵循不同的原则:
gLM倾向于根据突变位置来组织序列;
pLM则根据突变后氨基酸的相同性来组织序列;
这种差异在嵌入空间的局部结构中尤为明显,并且即使在降维后也保持显著。
这揭示了gLM和pLM在表示蛋白质序列时可能存在的根本差异,并为未来研究如何利用这两种模型的优势提供了基础。
5.4.4 GLM和PLM的互补联合使用
下图
展示了基因组语言模型(gLMs)和蛋白质语言模型(pLMs)在蛋白质任务上的性能是具有互补性,并且通过互补结合这两种模型,可以实现更好的性能。
下图a
展示了如何构建一个联合基因组-蛋白质模型。这个模型使用了NT-v2和ESM-2两个子模型的输出,将它们的最终嵌入向量连接起来,然后通过一个单层回归头来进行预测。
下图b
展示了在四个回归任务上,联合模型与单独的gLMs和pLMs的性能对比。结果显示,联合模型在所有任务上都至少与单独的模型表现一致,而且在某些任务上超过了单独的模型。
下图c
展示了在蛋白质稳定性预测任务上,联合模型的性能达到了最新的最佳状态,甚至超过了使用额外数据和多任务学习的其他文献方法。
联合模型之所以能够提升性能,是因为gLMs和pLMs捕获了不同的但互补的序列表示。这种互补性表明,结合两种模型的优势可以克服各自的局限性,从而在蛋白质任务上取得更好的结果。
结论:GLM和PLM在蛋白下游任务上各有优缺点,可以通过联合互补的方式提高蛋白相关下游任务预测的准确性。
6. 大模型的size是否越大越好?
笔者在Evo文章图1F、G
看到了对模型size大小测试的实验结果,之前也和群友讨论过此问题。
这里涉及到模型size、数据集大小、性能评估指标三者之间的关系*。而性能评估指标又包含两类:
困惑度、Vaild loss等模型的指标
在具体下游任务数据集上评估的准确性指标
这里论文 Evo[ 2]和宋乐老师的论文 [7] 都是采用第一类指标,Kevin Yang的论文 [8] 是把不同参数量的蛋白语言模型在具体下游任务上进行评估。欢迎对此问题感兴趣的读者前去阅读学习。
AI4Protein领域的模型越做越大,很显然已经成为了一种趋势下图
。
如果数据是无限的,把模型做大理论上Scaling law依然存在,性能也能继续增强。但现在似乎有一个问题是生物数据的增长速度下图
,似乎远远跟不上模型的增长速度[9]。
仅有650M参数的AlphaFold2模型,成功的关键因素肯定不是依靠模型的大小,而在于MSA的检索增强。但如果有一天AlphaFold模型能够完全做大的模型,不再依赖MSA的检索,那也许会是欢歌载舞的一天。笔者很喜欢检索增强的策略,因为检索到的数据更保真、质量也更高,如果其他模型能够充分利用这一点,把检索到数据进行表示学习和原数据表示融合,我相信再各种下游任务任务上能有更加出色的表现和性能。
本文是笔者关于基因组语言模型GLM的学习笔记,简单举例了Evo、megaDNA、LucaOne等三个GLM。后面结合几篇文章对比了GLM和蛋白语言模型在下游任务的表现,发现GLM和PLM的互补是进一步提高性能的关键。简单讨论了一下对模型大小的个人观点,读者肯定对此也许有其他看法。笔者算是正在努力学习的小白,难免存在认知不到位的情况,十分欢迎读者在留言区讨论和补充,虚心接受和吸纳不同的观点,感谢笔芯💗。
2024.11.16于地球的某个角落写完。
参考文献
[1]. Review: Benegas, Gonzalo, et al. "Genomic language models: opportunities and challenges." arXiv preprint arXiv:2407.11435 (2024).
[2]. Nguyen, Eric, et al. "Sequence modeling and design from molecular to genome scale with Evo." BioRxiv (2024): 2024-02.
[3]. megaDNA: Shao, Bin, and Jiawei Yan. "A long-context language model for deciphering and generating bacteriophage genomes." Nature Communications 15.1 (2024): 9392.
[4]. He, Yong, et al. "LucaOne: Generalized Biological Foundation Model with Unified Nucleic Acid and Protein Language." bioRxiv (2024): 2024-05.
[5]. Hwang, Yunha, et al. "Genomic language model predicts protein co-regulation and function." Nature communications 15.1 (2024): 2880.
[6]. Boshar, Sam, et al. "Are genomic language models all you need? Exploring genomic language models on protein downstream tasks." Bioinformatics 40.9 (2024): btae529.
[7]. Cheng, Xingyi, et al. "Training Compute-Optimal Protein Language Models." bioRxiv (2024): 2024-06.
[8]. Li, Francesca-Zhoufan, et al. "Feature reuse and scaling: Understanding transfer learning with protein language models." bioRxiv (2024): 2024-02.
[9]. https://epoch.ai/blog/biological-sequence-models-in-the-context-of-the-ai-directives
进群交流
进群请认真填问卷!
广告勿扰,广告勿扰。
往期合集
干货文章|线上报告|蛋白设计|综述|Binder|Co-design|Benchmark|AF3|David Baker|ESM|MaSIF|结构预测|语言模型|骨架生成|逆向折叠|抗体设计|多肽设计|酶设计|稳定性|药物设计
关注我们
死磕自己,愉悦大家
专注于*AI蛋白相关的论文解读&学术速运