登录

科学网—我国科学家实现首个生成式DNA大语言模型


速读:我们实现了首个1.5亿参数的针对完整基因组序列的生成式大语言模型,我认为是一个从0到1的工作。 让人兴奋的是我们发现语言模型生成的基因组片段竟然能够被注释出基因,而基因的数目和密度接近于天然噬菌体。 下一个问题是为什么要开发针对DNA序列的大语言模型? 我们知道人类的语言是一种序列信息,而生命的语言DNA也是一种序列信息。 其中一个应用是之前模型或者生物信息学软件无法实现的,就是必需基因的预测。
我国科学家实现首个生成式DNA大语言模型

精选

已有 7024 次阅读

2024-11-8 20:27

| 系统分类: 观点评述

这里可能有点标题党,主要想宣传一下我们最近于《自然·通讯》杂志发表的工作。这是今年由本人担任通讯作者的第二篇《自然·通讯》杂志文章,也是纯计算方向。我们实现了首个 1.5 亿参数的针对完整基因组序列的生成式大语言模型,我认为是一个从 0 到 1 的工作。

先解释一下这里面的几个概念。首先,什么是“生成式”语言模型。简单来说,就是以GPT为代表的语言模型。类似于我们用chatGPT或文心一言时,只需输入简短的提示,模型便能生成长篇的内容,也就是模型具有强大的产生新内容的能力。自transformer架构提出以来,发展出了语言模型的两个流派,一个是BERT模型,采用类似完形填空的方式来训练;一个是GPT模型,采用词语接龙的方式来进行训练。可以想见,后者更接近普通人说话或者写作的过程,即逐字地构建句子和段落,因而它具备更强大的生成能力,也是现在大语言模型的主流架构。生成式任务一方面与人类语言和沟通的形式天然一致,因为遣词造句是交流的基础。另一方面,词语接龙本身是一类比较难的任务,能够完成这类任务的语言模型实际上已经很好地掌握了序列数据中所蕴含的信息和概念。

下一个问题是为什么要开发针对DNA序列的大语言模型?我们知道人类的语言是一种序列信息,而生命的语言DNA也是一种序列信息。生成式大语言模型在人类语言处理和生成上取得了巨大的成功,成为我们阅读,学习和写作的有力助手。我们就想能否把这套方法应用在生命的序列上,即在生命的语言DNA上训练大语言模型,从而帮助我们解读DNA编码的信息,设计出具有特定功能的DNA片段,甚至构建具有医疗或者工业应用价值的新型微生物。倘若我们能像写作有意义的文字一样编写具有功能的DNA序列,像阅读论文一样从DNA编码中获取有价值的信息,那么这样的模型将具有巨大的学术和应用价值。

训练基于DNA序列的语言模型既有优势,也有挑战。优势在于训练数据的规模。历史的经验表明,语言模型的训练效果高度依赖于训练数据的规模大小,数据越多,模型可以做的更大,训练的效果也会越好。目前最先进的大语言模型几乎已经穷尽了互联网上所有能找到的所有语言数据。而随着DNA测序技术的飞速发展,DNA序列积累的速度非常快,比如一个完整人类基因组的测序成本已经从本世纪初的约一亿美元下降到现在的几百美元。我之前工作的布洛德研究所自2013年以来已经测序了约70万人的完整基因组。而这些大规模数据还没有得到有效的应用,对机器学习来讲无疑是很大的一个“富矿”。然而,训练这类DNA语言模型也存在困难,这也是这些‘富矿”尚未被有效开发的原因。主要挑战是生成式语言模型难以应用于长序列。输入序列越长而显存消耗越大,大约是平方关系。也就是长度变为两倍,消耗显存为四倍。蛋白质序列一般比较短,几百个氨基酸居多,所以我们已经有还不错的蛋白质语言大模型。而对于DNA序列,即使是简单的噬菌体(针对细菌的病毒)也往往长达几万个碱基对,传统的transformer模型难以处理这种长片段。

从去年开始,语言模型的输入长度问题得到了极大关注,研究者提出了很多解决这一问题的技术。如果大家有印象的话,GPT-3.5模型刚发布的时候,最大的输入长度也就是四千字左右,而随着技术的进步,现在的GPT-4模型已经能够处理几万个字符的输入了。我们也借鉴了最新的长读长模型的研究结果,即目前在meta工作的大语言模型专家 Yu Lili 博士提出的多层Transformer结构。我们模型设计了三层的transformer结构,用来处理不同精度的DNA信息,最终实现了大约10万个碱基对的读长,这个长度虽然小于人类基因组的长度,甚至小于细菌的完整基因组,但已经足够覆盖噬菌体的基因组了。所以我们从这种比较小的基因组出发。把完整的基因组序列作为模型的输入来进行训练。我们采集了大约10万个高质量噬菌体基因组序列进行模型训练,训练后也就得到我们的megaDNA模型。

训练模型出来的第一件事就是测试它生成DNA片段的能力,由于我们第一个实现了这类模型,所以完全没有前人的经验可以借鉴。比如,我们需要验证生成的DNA片段是否有生物学意义。为此我们使用了针对噬菌体的生物信息学软件对生成的新DNA序列进行了分析。让人兴奋的是我们发现语言模型生成的基因组片段竟然能够被注释出基因,而基因的数目和密度接近于天然噬菌体。此外,这些基因的上游也包含可能启动转录和翻译过程的DNA片段。通过对这些预测出基因的分析,我们发现其编码的蛋白也能够折叠成有意义的结构,可能发挥出跟噬菌体生命过程有关的功能。从已有的生物信息学软件看来,这些生成的序列与天然序列在结构上并没有显著差异。

我认为这是一个非常让人振奋的结果,因为我们第一次证明了生成式语言模型能够应用于大片段DNA序列,能够产生出有生物学意义的DNA片段,包括调控序列以及基因序列。这就意味着我们有可能“照搬”大语言模型这几年充分积累的经验和技术,应用于大规模的DNA序列,从而构建出更大且功能更加完善的生命系统版的ChatGPT。我们的模型有1.5亿参数,但相比于动辄上百亿参数的人类语言模型而言,仍然还是一个很小的模型。它所使用的训练数据相较于已有的DNA测序数据来讲微不足道。因此从模型和训练数据大小上看至少还有几百倍的提升空间,我觉得这是这篇工作最让人激动的地方之一。

当然除了生成新的基因组DNA序列之外,我们的megaDNA模型还有很多其他应用。其中一个应用是之前模型或者生物信息学软件无法实现的,就是必需基因的预测。比如在噬菌体中,有些基因是必需基因,如果这些基因丧失了功能,噬菌体就不能完成完整的复制的过程。实验上确定必需基因十分繁琐而耗时,通常需要对每个基因进行敲除实验来观察噬菌体能否正常复制。大约做一到两个噬菌体就可以发一篇实验文章。而我们的模型能够在不经过任何调整和额外训练的情况下,对必需基因进行计算预测。我们在lambda噬菌体这种大家广泛研究的模式生物上做了验证,发现我们的模型取得了良好的表现。进一步的,我们的模型有可能在几万个噬菌体基因组上得到应用,去找寻对应的必需基因,虽然预测精度相对实验可能略低,但在效率上有了极大的提升。

我们模型的其他应用这里就不赘述了,有兴趣的老师同学欢迎阅读我们的原始文章。这个工作对我个人的意义远超一篇普通的《自然·通讯》。如人饮水,冷暖自知。没有家人的支持,我不会有机会和精力进入这个领域。也要感谢我的合作者闫嘉伟老师的支持。2023年的12月18日,我和妻子跟奥本山医院约好晚上五点钟去住院临产。下午两点妻子去午休,我在电脑前匆忙地把初稿上传到了预印本平台bioRxiv。又过了十几个小时,我们哭着和笑着迎接了一个新的生命。在宝宝发出啼哭的那一刻,我才意识到,一个人的荣辱得失,在生命的奇迹前原来微不足道。

-- “回首向来萧瑟处,也无风雨也无晴。” --

11 月于 北京草就。

文章链接: https://www.nature.com/articles/s41467-024-53759-4

代码链接 : https://github.com/lingxusb/megaDNA

转载本文请联系原作者获取授权,同时请注明本文来自邵斌科学网博客。 链接地址: https://blog.sciencenet.cn/blog-927304-1459229.html

上一篇: 李约瑟之问与大模型

主题:序列|大语言模型|训练|一个|于训练数据|完整基因组