当前位置: 首页 > article >正文

DNAGPT:一个用于多个DNA序列分析任务的通用预训练工具

摘要

GPT系列的成功证明了GPT可以从序列中提取一般信息,从而使所有下游任务受益。这促使我们使用预训练的模型来探索DNA序列中隐藏的信息。然而,DNA序列分析中的数据和任务需求具有复杂性和多样性,因为DNA相关数据包含不同类型的信息,如序列、表达水平等,而目前还没有专门针对这些特征设计的模型。在此,我们提出了DNAGPT,这是一个通用的基础模型,它预训练了来自9个物种的超过100亿个碱基对,可以对任何DNA序列分析任务进行微调。我们的模型可以同时处理或输出DNA序列和编号。此外,我们独特的令牌设计允许用户根据自己的任务需求设计提示,使其适用于任何类型的任务。我们在分类、回归和生成任务上评估了我们的模型。我们证明了DNAGPT从预训练中获益,因此可以为任何下游任务带来性能增益。我们的模型不仅是基因组学分析领域的新尝试,也为基础模型在生物学中的应用提供了新的方向。

引言

DNABERT 在人类参考基因组上进行预训练,然后在下游数据集上进行微调,从而使单个预训练的模型能够泛化到不同类型的数据上。然而,该模型只能处理与基因组信号和区域( genomic signal and regions,GSR )相关的任务,无法用于其他类型的任务一个失败的例子任务类型将是从DNA序列中回归mRNA丰度。在这种情况下,模型需要同时输入DNA序列和mRNA半衰期值,以便输出相应的mRNA丰度值。

本文介绍了一种多物种DNA序列的预训练,并提出了一种符号语言来统一DNA序列分析中的多样性任务。我们提出了DNAGPT,这是一个用于DNA序列分析的通用预训练工具。

综上所述,DNAGPT通过在预训练过程中融合来自多个物种的参考基因组来增强来自不同物种的DNA分析任务。此外,基于符号语言的微调策略使DNAGPT能够处理多种范式的DNA分析任务,允许在不增加任何训练头的情况下实现下游任务之间的无缝切换,使得预训练模型在生物学领域的应用范围更加广泛。

DNAGPT结构

模型结构

c . DNAGPT的模型结构。
不同类型的令牌由不同的编码头分别处理,然后组合在一起作为主干的输入。

我们使用了基于Transformer的自回归解码器和掩蔽的自注意力模块来训练DNAGPT。为了更好地处理数值信息,我们在单个模型中对DNA序列和数字进行端到端的联合预训练。详细的网络结构在图1c中给出。我们的模型可以处理离散的和连续的token,其中离散的token表示编码的DNA序列,连续的token表示编码的数字。采样后的DNA序列首先被处理成一串无重叠的k-mers令牌输入,然后被送入顺序嵌入层进行编码作为嵌入。将这些数字直接送入一个数值嵌入层,编码为与DNA嵌入协同训练的嵌入。然后我们将这两种嵌入串接在一起,并将它们送入一个GPT中。GPT的输出也被分为两类嵌入,并由分类头处理以分类不同的令牌和回归头生成数字。其结构如图d所示。

d .嵌入层和解码头的详细信息。
该图说明了不同编码头的放大视图。在处理输入数据时,根据数据类型使用不同的head进行映射。

符号语言设计

目前,大多数DNA预训练方法只是简单地使用来自自然语言的策略,在模型设计时没有考虑DNA序列的特点和具体的生物任务。DNA序列没有自然语言那样的组织结构,可以分为词、句子、段落和其他结构。目前针对预训练模型的数据采样策略为非等间隔且最大化输入长度采样,没有考虑下游任务中DNA序列的输入长度不固定。这导致预训练和下游任务在训练范式上存在显著差异。我们首先设计了一种基于DNA序列的符号语言架构,其中bps作为最小单位,非重叠的k-mers代替传统的k-mers 采样生成DNA单词。为了构建句子结构,我们将不同长度的DNA单词组合成DNA句子,然后基于句子结构构建句子级别的预训练任务。之后,将可变长度的DNA句子也进行整合,形成DNA段落,其中DNA段落的长度为输入GPT模型的最大序列长度

为了构建DNA序列的层次化组织,我们设计了一种符号语言架构。如图2a所示,规则的输入和输出令牌为离散令牌和连续令牌,分别表示DNA序列和编号。指令令牌用于向模型提示模型应该输出哪些令牌的下一个序列。例如,' Human ' ' AATAAA '表示我们编码一个人类AATAAA多聚腺苷酸化信号,' Bovine ' ' AATAAA '表示我们编码一个牛AATAAA多聚腺苷酸化信号。类似地," M′′0.3155 > "表明我们将一个数编码到模型中,在" B′′X′"中," B′"是二分类的指令标记,其中分类标记(用来表示二分类问题的结果)"是"表示"是","否"表示"否"。进一步,为了更好地构建连接,我们使用Connection令牌来形成两个系列令牌的连接,其中′+′表示两个系列令牌的集合,′=′表示输入和输出的关系。具体来说,当我们想从DNA序列和mRNA半衰期值来预测mRNA的表达水平时,我们可以将输入编码为' Human ' ' ATCGTC ' ' + ' ' M ' ' - 0.3484 ' ' = ' ' M ' ' 0.9854 '。该序列表明,我们希望该模型可以从' ATCGTC '序列和输入编号' - 0.3484 '中生成信息,并输出结果编号' 0.9854 '。保留的形符包括从' 0 '到' 9 '的数字,一些未使用的大写字母,如' K '、' L '等,以及一些特殊符号,如' * '、' / '等。这些预留的标记可以用于构建更多的DNA序列分析任务。

a.在DNAGPT中使用了令牌。

多物种预训练

预训练任务

基于提出的符号语言,我们可以根据DNA序列的特点,为DNAGPT设计预训练任务。我们构建了3个任务,包括GPT的正常预训练任务和2个专门用于DNA序列分析的任务。

下一个令牌预测

下一个令牌预测是NLP中经典的预训练任务。GPT利用了这种技术,它可以根据前一个令牌预测下一个可能的令牌。最近,通过增加更多的参数和更多的训练数据,GPT-3和GPT-4在各种任务上表现出显著的性能。在DNAGPT中,我们还使用下一个令牌预测策略作为基本的预训练任务。

鸟嘌呤 - 环蛋白含量预测

为了更好地理解输入DNA序列,我们设计了鸟嘌呤-环氨酸(GC)内容预测任务。 GC含量在转录组分析中起着至关重要的作用,因为它可以提供有关基因组结构的基本信息,例如结构变化和转录活性。在此任务中,我们通过将GC内容作为数字输入到DNAGPT中引入了数值编码。这种方法允许对数值数据和序列进行联合培训,从而使DNAGPT能够适应更广泛的数据类型和下游任务。同时,用于预测GC含量的DNA序列设置为动态长度。具体而言,我们将GC内容预测任务随机插入整个段落。这种方法的优点是,它允许模型学习一个动态的接收场,使其能够更灵活地适应不同类型的下游任务。

序列顺序预测

我们注意到,DNA的序列顺序在基因表达和转录中起着重要作用。诸如Tata Box和AATAAA PAS之类的信号通常具有指导表达或转录的固定顺序。因此,我们设计了一个序列顺序预测任务。由于DNA分子具有由两个互补链组成的双螺旋结构,然后我们随机逆转序列,并让模型预测我们的序列是否已逆转。这种方法使我们的模型能够专注于输入中关键的,顺序敏感的序列,从而为下游任务提供了更多的启发式信息。

同时,与BERT中的全局注意力不同,GPT模型具有单向性注意力,即模型只能从左到右进行推理并生成令牌。通过反转DNA序列,该模型在推断token时可以从全局的角度进行预测,而不仅仅依赖于前向序列。

预训练损失

因此,如图1e所示,我们说明了预训练期间DNAGPT的模型输入,输出和真实数据。在计算任务输出的损失后,令牌预测和序列顺序预测,我们使用了交叉渗透损失,而对于任务GC比率预测,我们使用了平均平方误差(MSE)损失。

e.DNAGPT的模型输入、输出和真实值。
使用交叉熵损失和均方误差( MSE )损失将这些标记根据不同的性质分为两种情况。

方法

DNAGPT的预训练

在数据采样阶段,我们采用非重叠的k - mers采样策略来处理DNA序列数据。在采样时,我们去除' N ' (记为'未检测到')含量比大于0.05的序列。此外,我们以0.5的概率进行随机翻转。然后,我们根据符号语言和我们设计的预训练任务对每个输入的DNA序列和数值信息进行编码。

DNAGPT-M由12层基于单向注意力的变压器块组成,每层包含12个注意力头,隐含层大小为768。模型中经过训练的参数为0.1亿。学习率设置为1e-4,采用余弦衰减调度器。权重衰减设置为1e-2。我们选择的优化器为Adam W,betas设置为( 0.9、0.95),动量设置为0.937。

与DNAGPT-M类似,DNAGPT-H使用了相同的模型和超参数,但预训练数据由9个物种的基因组变为只有人类参考基因组。

非重叠的k-mer采样

一个k-mer由k个核苷酸组成。当采用基于k-mer的采样策略时,以前的方法涉及重叠采样,即无论k的取值如何,每次采样过程中的偏移量总是1。在模型中固定输入令牌数N的情况下,采用该策略的DNA序列输入的有效长度为N - k + 1。在非重叠k - mers策略中,shift等于K。这样,在相同的输入令牌长度N下,模型的输入碱基长度可以从( N + k - 1)扩展到( k × N),有效地将DNA序列输入长度比当前模型增加了约k倍

DNAGPT的微调

在对DNAGPTs进行微调时,首先根据下游任务的任务格式选择不同的模型架构。也就是说,如图1c和d所示,在保证模型主干完全相同的同时,我们选择合适的编码头。对于分类和生成任务,我们只需要选择顺序头和分类进行输入和输出编码。对于回归任务和更复杂的复合任务,我们需要结合数值头和回归头进行联合编码。在确定模型架构后,我们将预训练的权重加载到模型中,未使用的头部的权重将被丢弃。然后,我们可以使用下游任务的数据来微调DNAGPTs。在微调过程中,我们在所有下游任务中使用相同的超参数。用于微调的超参数如下:最大学习速率,5 × 10 - 5;学习调度器,与预热余弦;优化器,Adam W;暖期,5;权重衰减,1e - 1;块大小,8;

在基因组信号和区域识别中,我们使用了顺序头和分类头。我们使用的指标有ACC (准确率)、F1 ( F1分数)、MCC (马修斯相关系数)、Precision和Recall。我们将在表中报告完整的结果。S2。在mRNA表达水平预测中,我们同时调用序列头和数字头来处理序列和数字的输入。对于输出表达水平,我们使用了回归头来输出值。在人工人类基因组生成中,我们只使用序列头和分类头来处理输入和输出序列。在微调过程中,我们在输入序列的最后一个位置添加停止符号来确定模型的输出长度。在生成测试序列时,我们在后处理步骤中删除了所有没有生成停止符号的序列和那些停止符号位置不正确的序列。对于测试时间的调整,在不需要进一步训练和改变其他超参数的情况下,我们仅通过调整生成温度来生成测试序列。本实验证明,通过调整生成温度,我们可以使用固定的模型生成更多样的序列,而不需要任何额外的训练。


http://www.kler.cn/a/582577.html

相关文章:

  • Pytorch 第十回:卷积神经网络——DenseNet模型
  • 图论Day2·搜索
  • 大模型安全新范式:DeepSeek一体机内容安全卫士发布
  • JS—闭包:3分钟从入门到放弃
  • 数据结构:排序详解(使用语言:C语言)
  • 赶紧白P这款免费神器!
  • 差分数组题目
  • 机器学习(吴恩达)
  • 有关MyBatis的缓存(一级缓存和二级缓存)
  • 【第四节】windows sdk编程:windows 中的窗口
  • 基于Python+SQLite实现校园信息化统计平台
  • java校验String是否符合时间格式 yyyy-MM-dd HH:mm:ss
  • vs2022用git插件重置--删除更改(--hard)后恢复删除的内容
  • Qt 6.6.1 中 QPixmap::grabWindow() 的用法与替代方案
  • Spring之生命周期Bean的生成过程
  • python-leetcode-K 和数对的最大数目
  • 【Godot4.3】RenderingServer总结
  • c++介绍运算符重载九
  • vscode接入DeepSeek 免费送2000 万 Tokens 解决DeepSeek无法充值问题
  • 5秒学会excel中序号列自动增加,不是拖动,图解加说明,解决序号自增多了手拖太累