乐趣区

关于人工智能:蛋白质深度学习

本文次要面向两类指标读者: 一类是想应用机器学习的生物学家,一类是想进入生物学畛域的机器学习研究者。如果你不相熟生物学或机器学习,依然欢送你浏览本文,但有时你可能会感觉有点读不太懂!如果你曾经相熟这两者,那么你可能基本不须要本文 —— 你能够间接跳到咱们的示例 notebook 以查看这些模型的理论利用:

  • 微调蛋白质语言模型 (PyTorch,TensorFlow)
  • 应用 ESMFold 进行蛋白质折叠 (PyTorch,因为 OpenFold 仅反对 PyTorch,所以目前仅反对 PyTorch)

面向生物学家的科普: 语言模型是什么鬼?

用于解决蛋白质的模型深受 BERT 和 GPT 等大语言模型的启发。因而,为了理解这些模型是如何工作的,咱们要回到 2016 年左右,那时大语言模型还没有呈现,特朗普还没有入选,脱欧还没有产生,深度学习 (Deep Learning,DL) 还是个日日新的超级新星 …… DL 胜利的关键在于它应用人工神经网络来学习数据中的简单模式。不过,深度学习有一个关键问题 —— 它须要 大量 的数据能力失常工作,而在很多工作中,基本没那么多数据。

假如你想训练一个 DL 模型,输出一个英语句子,并判断它是否合乎语法。所以你筹备了训练数据,格局如下:

Text Label
The judge told the jurors to think carefully. Correct
The judge told that the jurors to think carefully. Incorrect

实践上,这个工作在过后是齐全可行的 —— 如果你将如上格局的训练数据输出深度学习模型,它就能够学着去预测新句子是否合乎语法。但在实践中,它的成果并不怎么好,因为在 2016 年,大多数人都从一个随机初始化的新模型开始他们的每项工作。这意味着 模型必须仅从给定的训练数据中学习它们须要晓得的所有!

咱们来了解一下这到底有多难,假如你是一个机器学习模型,我提供给你一些训练数据用于实现我心愿你学习的工作。如果我给你的训练数据如下:

Text Label
Is í an stiúrthóir is fearr ar domhan! 1
Is fuath liom an scannán seo. 0
Scannán den scoth ab ea é. 1
D’fhág mé an phictiúrlann tar éis fiche nóiméad! 0

在这里,我抉择了一种我心愿你从未曾见过的语言,所以我猜你曾经可能开始对你是否能学会这个工作不太自信了。兴许在数百或数千个样本之后,你可能会开始留神到输出中一些反复呈现的单词或模式,而后你可能开始可能作出比随机机猜想更好的判断,但即便这样,一旦呈现新单词或之前没见过的措辞马上就可能难住你,让你猜错。独一无二,这也是 DL 模型过后的体现!

当初咱们试试雷同的工作,但这次应用英语:

Text Label
She’s the best director in the world! 1
I hate this movie. 0
It was an absolutely excellent film. 1
I left the cinema after twenty minutes! 0

当初事件变得简略了 —— 工作只是预测电影评论是侧面 (1) 还是负面 (0) 的。仅应用两个正例和两个反例,你就能以靠近 100% 的准确率实现这项工作,因为 你本来就具备大量的英语词汇和语法常识,并具备电影和情感相干表白的文化背景。 如果没有这些常识,事件就会变得更像第一个工作 —— 你须要浏览大量的例子能力开始发现输出中的表白模式,即便你花工夫钻研了数十万个的例子你的猜想依然远不如在英语工作中只有四个例子精确。

要害冲破: 迁徙学习

在机器学习中,咱们把这种将先验常识迁徙到新工作的概念称为“迁徙学习”。在 DL 上应用迁徙学习是 2016 年左右该畛域的一个次要指标。预训练词向量之类的货色 (十分乏味,但超出了本文的范畴!) 在 2016 年的确存在并且容许迁徙一些常识到新的模型,然而这种常识迁徙依然比拟浮浅,模型依然须要大量的训练数据能力很好地工作。

这种状况始终继续到 2018 年。2018 年,两篇巨著横空出世,第一篇引入了 ULMFiT 模型,第二篇引入了 BERT 模型。这两篇论文是让自然语言迁徙学习真正发挥作用的开创性论文,尤其是 BERT 标记着预训练大语言模型时代的发轫。两篇论文独特应用了一个技巧,那就是它们利用了深度学习中人工神经网络的固有性质 —— 先花较长的工夫在有着丰盛训练数据的文本工作上训练神经网络,而后将整个神经网络复制到新工作中,仅用新工作的数据更新或从新训练与网络输入绝对应的多数神经元。

上图来自 ULMFiT 论文,它展现了在三个独立的工作上应用迁徙学习与从头开始训练模型相比带来的微小的性能晋升。在许多状况下,应用迁徙学习的成果相当于领有超过 100 倍的训练数据。不要遗记这是 2018 年公布的 —— 古代的大语言模型能够做得更好!

这样做的起因是,在解决任何重要工作的过程中,神经网络学习到很多输出数据的结构性常识 —— 如对于视觉神经网络,输出的是原始像素,模型学习到了如何辨认直线、曲线和边缘; 对于文本神经网络,输出的是原始文本,模型学习到了无关语法结构的细节。而这些信息并不特定于某些工作。—— 迁徙学习起作用的要害起因是 解决工作须要晓得的很多信息都不是特定于该工作的! 要对电影评论进行分类,你不须要理解很多对于电影评论的常识,但你须要大量的英语和文化背景常识。通过抉择训练数据丰盛的工作,咱们能够让神经网络学习此类“畛域常识”,而后将其利用于咱们关怀的新工作,而在这些新工作中训练数据可能更难获取。

至此,心愿你曾经理解了什么是迁徙学习,并且大语言模型是一个通过大量文本数据训练而得的大型神经网络,这使其成为迁徙到新工作的次要备选计划。咱们将在上面看到雷同的技术如何利用​​于蛋白质,但首先我须要为另一半观众写一篇介绍。如果你曾经相熟这方面的常识,你能够随时跳过下一部分!

面向机器学习研究者的科普: 蛋白质是什么鬼?

简而言之,蛋白质能够做很多事件。有些蛋白质是 —— 它们充当化学反应的催化剂。当你的身材将营养物质转化为能量时,从食物到肌肉静止的每一步都由一种酶催化。一些蛋白质是 结构性的 ,它们的性能是提供稳定性以及塑形,例如结缔组织的蛋白质。如果你看过化妆品广告,你可能看到过 胶原蛋白 弹性蛋白 以及 角蛋白,这些是形成咱们皮肤和头发构造的蛋白质。

其它蛋白质对衰弱和疾病至关重要 —— 每个人可能都记得无关 COVID-19 病毒的 spike 蛋白 的有数新闻报道。COVID spike 蛋白与人类细胞外表一种名为 ACE2 的蛋白质联合,使其可能进入细胞并传递病毒 RNA 的有效载荷。因为这种相互作用对感化至关重要,因而在 COVID 大风行期间对这些蛋白质及其相互作用进行建模是一个热门钻研焦点。

蛋白质由多个 氨基酸组成 。氨基酸是绝对简略的分子,它们都具备雷同的分子结构,而该构造的化学性质容许氨基酸交融在一起,从而使单个分子能够成为一条长链。这里要害是要晓得氨基酸品种不多 —— 只有 20 种规范氨基酸,某些生物体上可能还有一些其余非标准的氨基酸,但总量不多。导致蛋白质微小多样性的起因是 这些氨基酸能够按任何程序组合,而由此产生的蛋白质链能够具备截然不同的形态和性能,因为链的不同局部会粘连以及彼此折叠。与文本类比一下: 英语只有 26 个字母,但想想你能够用这 26 个字母的组合写出各种单词。

事实上,因为氨基酸的数量很少,生物学家能够为每一种氨基酸调配一个不同的字母。这意味着你能够像编写文本字符串一样编写蛋白质!例如,假如一种蛋白质链中有这些氨基酸: 甲硫氨酸、丙氨酸和组氨酸。这些氨基酸的 对应的字母 是 M、A 和 H,因而咱们能够将该链写为“MAH”。不过,大多数蛋白质含有数百甚至数千个氨基酸,而不仅仅是三个!!

上图显示了一种蛋白质的两种示意模式。所有氨基酸都蕴含碳 – 碳 – 氮 (C-C-N) 序列。当氨基酸交融到蛋白质中时,这种反复模式将贯通始终,咱们称为蛋白质的“骨架”。然而,氨基酸的不同之处在于它们的“侧链”,侧链指的是附着在 C-C-N 主链上的原子。图的下半局部有标记为 R1、R2 和 R3 的侧链,它们能够是任何氨基酸。在图的上半局部,地方氨基酸有一个 CH3 侧链 – 那么该氨基酸即为 丙氨酸,由字母 A 示意(图片起源)。

只管咱们能够将其写成文本字符串,但蛋白质实际上并不是一种“语言”,至多不是诺姆 – 乔姆斯基认可的任何一种语言。但它们的确有一些相似语言的特色,从机器学习的角度来看,它们是一个与文本十分类似的畛域: 只有一部分字符串是有“意义”的。随机文本是垃圾,随机蛋白质只是一个无形状的斑点。

此外,如果你只是孤立地思考蛋白质的一部分,信息就会失落,就像当你只浏览从较长文本中提取的某个句子时,信息也会失落。蛋白质的一个区域可能只有在其它局部存在的状况下才会出现其天然形态,因为须要其它局部帮忙稳固和改正其形态!这意味着被全局自注意力很好地捕捉到的那种长程作用力对于正确建模蛋白质十分重要。

至此,心愿你对蛋白质是什么以及为什么生物学家如此关怀它们有一个根本的概念 —— 只管氨基酸“字母表”、很小,但它们具备宽泛的构造和性能多样性。因而如果能仅通过观察氨基酸的原始“字符串”来了解和预测蛋白质的构造和性能对钻研是十分有价值的。

联袂 – 蛋白质机器学习

当初咱们曾经理解了应用语言模型进行迁徙学习是如何工作的,同时咱们还理解了什么是蛋白质。一旦你有了这些背景常识,下一步就不难了 —— 咱们能够在蛋白质上利用雷同的迁徙学习思维!咱们不是在波及英文文本的工作上事后训练模型,而是在输出是蛋白质且有大量可用训练数据的工作上训练它。一旦咱们这样做了,咱们的模型就有心愿学到很多对于蛋白质构造的常识,就像语言模型学到了很多对于语言构造的常识一样。这使得预训练的蛋白质模型有心愿能够迁徙到任何其它基于蛋白质的工作!

生物学家想在哪些工作上用机器学习训练蛋白质模型?最驰名的蛋白质建模工作是 蛋白质折叠。该工作是,给定像“MLKNV……”这样的氨基酸链,预测蛋白质最终会折叠成什么形态。这是一项极其重要的工作,因为精确预测蛋白质的形态和构造能够深刻理解蛋白质作用和机理。

早在古代机器学习呈现之前,人们就始终在钻研这个问题。最早的一些大规模分布式计算我的项目,如 Folding@Home,以超精的空间和工夫分辨率应用原子级模仿来模仿蛋白质折叠。甚至还存在一个专门的 _蛋白质晶体学_畛域,该畛域的研究者应用 X 射线衍射来察看从活细胞中拆散出的蛋白质的构造。

然而,与许多其余畛域一样,深度学习的到来扭转了所有。AlphaFold,尤其是 AlphaFold2 应用了 transformer 构造的深度学习模型,并在模型上减少了针对蛋白质数据的解决,在仅从原始氨基酸序列预测新型蛋白质构造方面获得了杰出的后果。如果你对蛋白质折叠感兴趣,咱们强烈建议你看看 咱们的 ESMFold notebook —— ESMFold 是一种相似于 AlphaFold2 的新模型,但它是一种更“纯”的深度学习模型,不须要任何内部数据库或搜寻操作即可运行。因而,设置过程不像 AlphaFold2 那样苦楚,模型运行得更快,同时仍放弃杰出的准确性。

上图为多杀巴斯德氏菌的 氨基葡萄糖 – 6 – 磷酸脱氨酶 同源二聚体的预测构造。该构造和可视化图是由上文中的 ESMFold notebook 在几秒钟内生成的。深蓝色示意构造置信度最高的区域。

不过,蛋白质折叠并不是咱们惟一感兴趣的工作!生物学家可能想做更多的蛋白质分类工作 —— 比方他们想预测蛋白质将在细胞的哪个局部起作用,或者在蛋白质产生后其中哪些氨基酸会被批改。在机器学习的语言中,当你想对整个蛋白质进行分类 (例如,预测其亚细胞定位) 时,这类工作可被建模为 序列分类 (sequence classification); 当你想对每个氨基酸进行分类时 (例如,预测哪些氨基酸会被翻译后润饰 (Post-translational modification,PTM) ),这类工作可被建模为 词分类 (token classification)

不过,要害的一点是,只管蛋白质与语言十分不同,但它们能够通过简直完全相同的机器学习办法来解决 —— 在一个大的蛋白质序列数据库上进行大规模预训练,而后通过 迁徙学习 迁徙到其它训练数据可能少得多的工作。事实上,在某些方面它甚至比像 BERT 这样的大型语言模型还要简略,因为不须要简单的分词和词解析 —— 蛋白质没有分词,因而最简略的办法是间接将每个氨基酸转换成单词。

听起来很酷,但从何下手?

如果你曾经相熟深度学习,那么你会发现微调蛋白质模型的代码看起来与微调语言模型的代码十分类似。咱们提供了 PyTorch 和 TensorFlow 两个示例供你起步。你能够从像 UniProt 这样的凋谢蛋白质数据库中获取大量标注数据,UniProt 除了提供 REST API 接口以供拜访数据外还提供了一个丑陋的 Web 界面。你的次要艰难是找到乏味的钻研方向进行摸索,这我就心有余而力不足了 —— 但我置信有很多生物学家违心与你单干!

反之,如果你是一名生物学家,你可能有很多想法想尝试,但可能对深入研究机器学习代码有点胆怯。别怕!咱们精心设计了示例 (PyTorch、TensorFlow),这些示例中的数据加载局部与其余局部齐全独立。这意味着如果你有一个 序列分类 词分类 工作,你只须要构建一个蕴含蛋白质序列及其应答标签的数据集,而后把咱们的数据加载代码换成你本人写的用于加载你的数据集的代码就好了。

只管示例中应用 ESM-2 作为根底预训练模型,因为它在以后是最先进的。该畛域的钻研人员可能还相熟其余模型,如 Rost 实验室的 ProtBERT (论文链接) 是同类中最早的模型之一,并且引起了生物信息学界的极大趣味。只需将示例代码中的 checkpoint 门路从 facebook/esm2xxx 改为 Rostlab/prot_bert 之类的,示例中的代码就能够应用 ProtBERT 模型了。

结语

深度学习和生物学的穿插畛域将在将来几年成为一个十分沉闷和成绩丰硕的畛域。然而,使得深度学习倒退如此迅速的起因之一是人们能够疾速重现后果并调整新模型以供本人应用。本着这种精力,如果你训练了一个你认为对社区有用的模型,请分享它!下面那些 notebook 中都蕴含将模型上传到 Hub 的代码,其余钻研人员能够在 Hub 上自在拜访和构建它们 – 除了对该畛域的益处之外,这也能够让你的论文被更多人见到和援用。你甚至能够应用 Spaces 做一个实时的网络演示版,以便其余钻研人员能够输出蛋白质序列并收费取得后果,而无需编写一行代码。祝你好运,愿审稿人对你青眼相加!


英文原文: https://hf.co/blog/deep-learning-with-proteins

原文作者: Matthew Carrigan

译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的利用及大规模模型的训练推理。

排版 / 审校: zhongdongy (阿东)

退出移动版