Transformer性能优化 运算和显存 (transferwise)

本文目录导航:
Transformer性能优化:运算和显存
Transformer在深度学习畛域中表演着关键角色,尤其在人造言语处置、图像处置等畛域施展着关键作用。
自留意力机制造为Transformer的外围,其简直无成见的个性在少量数据的允许下,为Transformer提供了弱小的建模才干,但同时也带来了运算和显存限度的疑问。
这些疑问使得Transformer在处置长序列疑问时受限。
为处置此疑问,本文将引见一些代表性的上班,论述它们如何优化Transformer的性能。
经典的Transformer结构蕴含编码器(Encoder)和解码器(Decoder)两个部分,关键组件有:多头自留意力(Multi-Head Self-Attention)、位置前馈网络(Position-wise Feed-forward)以及残差衔接(Residual Connect)。
在这一结构中,多头自留意力模块和位置前馈网络模块在运算资源消耗上占据关键位置。
为优化Transformer的性能,钻研者们对结构启动了改良。
一种基于递归衔接的改良方法是Transformer-XL,它经过引入一个记忆形态,将以后段处置时应用前一个段的一切层暗藏向量序列启动综合,以此衔接长文本的一切段落。
在引入片段级递归机制后,Transformer-XL能够清楚提高测试效率,并且随着序列长度的增大而愈发清楚。
为处置每个段落增加相反位置编码造成的序列间位置区分疑问,Transformer-XL驳回相对位置编码,经过计算以后位置与依赖单词的相对位置相关来优化编码环节。
另一种改良方法是引入稠密留意力机制,以增加计算开支。
Sparse Transformer是早期基于这一思绪的上班之一,它经过从新定义留意力计算环节,提出稠密留意力形式,如Strided Attention和Fixed Attention,区分实用于有法令数据和文本数据,有效降落了Transformer的计算复杂度。
Longformer在此基础上进一步设计了Sliding Window、Dilated Sliding Window和Global Attention三种形式,针对NLP义务专门优化了留意力范围,经过试验验证了其在自回归义务和下游义务上优于原始Transformer的效果。
Reformer则驳回部分哈希算法来失掉每个字符须要关注的范围,经过定义哈希函数和哈希值来对相似的token启动汇集,仅对在桶中的元素启动留意力计算,以此优化Transformer的效率。
在部分敏感哈希的基础上,论文提出多轮哈希试验,验证了其在重复句子预测义务中的效果,展现了部分哈希函数无需训练的高灵敏性。
同时,论文提出了可逆残差结构,经过奇妙拆分防止了在训练环节中记载每层激活值的内存需求,进一步优化了Transformer模型。
Linformer则从低秩合成的角度登程,经过奇特值合成证实了Attention矩阵可以被正当降维,从而将复杂度从平方级降落至线性级。
在实践运行中,Linformer经过给key和value矩阵增加线性变换来成功降维,简化了计算环节。
虽然这种方法成功了高效运转,但在自回归生成义务中存在无法有效覆盖序列消息的毛病,使得Linformer仅实用于MLM预训练义务。
在线性留意力改良中,Linear Transformer和Performer经过引入核函数代替softmax,成功了运算复杂度的降落。
Performer进一步提供了通常证实,经过向量采样和正交化技术来优化核函数映射,使得留意力计算愈加高效。
这些改良方法在长序列相关义务上体现出较高的效率和效果,为处置Transformer在处置长序列疑问时的运算和显存限度提供了有效路径。
总的来说,经过递归衔接、稠密留意力、部分哈希、低秩合成和线性留意力等改良战略,钻研者们在提高Transformer处置长序列义务的性能和效率方面取得了清楚成绩。
这些优化方法不只无通常上提供了深化了解,而且在通常中为Transformer模型的运行提供了更宽泛的或许性。
Reformer详解
为了应答二次复杂度造成处置长序列疑问的应战,作者提出了一系列技术以优化Transformer的效率。
通常,Transformer的效率受限于参数量大、内存消耗高以及训练语料库宏大的疑问。
但是,作者经过深化剖析发现,实践内存需求或许并不如预期般宏大,因此须要寻觅其余优化路径。
作者首先提出,关于一个典型的Transformer层,虽然参数量为0.5B,内存需求仅需2GB,而处置64K个1024维的token激活值,当批次大小设定为8时,所需内存也是2GB,与模型训练所需的17GB语料库存储相婚配。
这标明在单个机器上启动微调是可行的,但疏忽了几个关键起因。
为处置这些疑问,作者驳回了部分敏感哈希(LSH)技术,对Transformer启动了优化。
在传统的Transformer中,Q、K、V区分由输入特色向量经过不同的投影层失掉。
但是,LSH关注的模型中,Q和K驳回相反的投影层。
试验标明,这样的参数优化并未影响模型的性能。
留意力计算的关键复杂度起源于公式中的softmax操作。
softmax的作用在于加大大的值、增加小的值,造成关键由最大元素组成。
因此,关于每个查问,只需关注键中与该查问最凑近的子集。
例如,在64K长度的K中,每个查问仅须要思考32或64个最凑近的键子集。
接上去,作者讨论了如何极速在多个值中找到最凑近的子集的疑问,传统两两对比方法无法行,LSH经过部分敏感哈希来减速检索。
不同于惯例哈希算法旨在增加抵触极速成功增删改查,LSH应用抵触减速检索,效果清楚。
直观地说,假设哈希函数关于“左近”点的碰撞概率高于“相距很远”的点,则其是部分敏感的。
LSH的基本思维相似于一种空间域转换,假定在原有的数据空间中,相似的向量经过哈希函数转换后依然具备很高的相似度;反之,不相似的向量转换后应不具备相似性。
关于文档相似度计算等实例,作者经过k-shingling和最小哈希方法启动引见。
经过k-shingling将文本转换为稠密向量,而后经常使用最小哈希方法,将文本转换为词表对应的01向量示意。
最终失掉一个汇合,每个元素是一个向量,代表一个文本,便于启动相似度计算。
LSH方法在实践运行中展现出高效性,作者经常使用的LSH并非最小哈希函数。
实践运行中,只需求左近的向量以高概率失掉相反的哈希,并且哈希桶的大小以高概率相似。
经过球上随机投影成功这一指标,确保了在特定条件下,相反bucket内的元素具备较高的相关性。
LSH留意力优化了Transformer的留意力机制,经过限度关注的汇合仅在相反的哈希桶内,提高了计算效率。
在批处置数据时,经常使用了share-QK attention确保了q和k的一致,防止了q与自身关注,从而坚持了模型性能。
此外,经过增加chunk操作,优化了bucket大小的不平均性,提高了批次操作的效率。
多轮LSH方法进一步降落了相似的q被分到不同桶内的概率,经过多重哈希降落出现概率,成功了遮盖配置。
关于训练自回归文本生成等场景,经过与位置索引关联,经常使用相反的陈列对位置索引启动从新排序,而后经常使用比拟操作来计算掩码,成功了有效的遮盖。
全体而言,Reformer技术成功降落了Transformer在内存上的复杂度,尤其处置了显存疑问。
虽然在期间复杂度上存在潜在差距,特意是因为在计算留意力时须要对数据启动排序、非延续读取等疑问,Reformer展现了在期间换空间战略上的有效运行,为处置长序列疑问提供了高效处置打算。
【大模型基础】Transformer全流程详解
Transformer是一种弱小的神经网络架构,它以预测单词为外围,让咱们以“我爱”为例,讨论其上班原理。
首先,Transformer的结构包括一个Encoder,其配置是接纳一序列向量X,并输入另一序列向量H,经常使用自留意力机制成功消息的高效传递。
每个Encoder由多个block组成,每个block外部蕴含几个层,驳回残差衔接增强模型性能。
Multi-head attention是自留意力机制的外围,它能够处置多维度消息。
接上去,经过残差衔接和Layer Normalization(层归一化)处置,再经过全衔接层和另一层Layer Normalization进后退一步计算。
参与Positional Encoding是为了让模型识别输入的顺序消息。
Transformer架构经过始终优化,例如经过调整Norm层(如PowerNorm),或许提早经常使用Layer Norm层,以优化模型性能。
Decoder的关键义务是接纳Encoder的输入并生成预测结果,驳回自回归形式,即依赖于先前的输入和Encoder消息预测下一个词。
但是,自回归模型存在Error Propagation疑问,即一旦早期预测有误,后续预测会遭到重大影响。
为了防止这种状况,Decoder中的Masked Multi-head attention与Encoder有所不同,但详细细节在P50-11:50处还有待倒退。
文章评论