首页 SEO技术 正文

便捷引见Transformer

SEO技术 2024-10-28 22
便捷引见Transformer

本文目录导航:

便捷引见Transformer

Transformer是一种弱小的Seq2seq模型,其外围在于处置输入序列和输入序列的对齐疑问。

它宽泛运行在诸如语音识别、文本翻译(如将台语转成中文,经过1500小时的乡土剧数据训练)、语音翻译、聊天机器人、问答系统(QA疑问)以及语法剖析等多畛域,但为了顺应不同义务,往往会联合特质化模型以提高成果。

Transformer的架构由Encoder和Decoder两局部造成。

Encoder接纳输入向量,经过Self-attention机制处置,经过多个Block(蕴含Self-attention和全衔接层)的处置,输入一个示意序列的向量。

原始Transformer中,还引入了位置编码和Residual Connection,以及Layer Normalization,以优化模型功能。

而Decoder则分为自回归(Autoregressive)和非自回归(Non-autoregressive)两种,前者经过逐字生成并依赖前文,后者则试图并行生成并管理输入长度,但功能通常较差。

Encoder与Decoder之间的交互经过Cross Attention成功,Decoder经过这个机制从Encoder失掉消息。

在训练环节中,Transformer应用Teacher Forcing技术,给Decoder提供正确的答案,同时引入Copy Mechanism和Beam Search等技巧来增强模型的生成才干。

Scheduled Sampling则协助处置训练集与测试集的不婚配疑问。

总的来说,Transformer仰仗其灵敏的架构和训练战略,成为了序列到序列义务中的关键工具,始终经过改良和优化优化在各种义务中的体现。

【Transformer 位置编码】改良Transformer位置编码,成功最强SOTA方法!

本文聚焦于改良Transformer位置编码,以成功最优SOTA方法。

自2017年Transformer架构提出后,位置编码成为钻研热点。

本文以2022年ICLR的一篇论文“Train short, Test long: Attention with linear biases enables input length extrapolation”为例,具体讨论位置编码的改良战略。

位置编码关键分为相对位置编码和相对位置编码两大类。

相对位置编码经过函数公式或可学习参数取得每个token的位置编码,间接参与到token输入表征中。

而相对位置编码(RPE)在self-attention环节中,关注以后token时,应用其余token与其的相对位置编码传递位置消息。

其中,Sinusoidal位置编码是最基础的相对位置编码形式,其公式设计旨在让模型学习到token之间的相对位置相关。

虽然尝试了可学习位置编码,但二者结果相似,且Sinusoidal编码在序列长度外推方面体现杰出,因此成为Transformer模型的首选。

Sinusoidal编码实践上具备有限序列长度外推才干,但在embedding维度较小时,不同位置词的position embedding差异清楚,当维度增大后,差异逐渐减小。

关于BERT-large 768维度的embedding,或者已足够,但更复杂状况则需探求更适合的位置编码形式。

另一种方法是经过参数初始化构建位置矩阵,让模型学习到相对位置编码。

这种形式在训练成功后不可成功序列外推,但基于档次合成思绪,可以处置超长文本处置疑问。

但是,最优参数a的选用需经过试验验证。

另外,FLOATER等钻研应用递归模型,确保结构学习到位置消息。

相对位置编码作为transformer架构罕用形式,强调相邻词间强位置相关。

位置编码类型可进一步划分为XLNet、T5和DeBERTa等。

“Attention with Linear Biases (ALiBi)”是2022年ICLR文章提出的一种陈腐位置编码方法。

它优化了Transformer的期间复杂度,清楚优化了训练效率和内存经常使用。

经过在Q*K^T上加上天位编码,成功更优的外推才干,展现出比Sinusoidal编码更好的模型外推功能。

本文深化讨论了位置编码的改良战略,从基本的Sinusoidal编码到相对编码、学习编码,再到“Attention with Linear Biases”的翻新运行,旨在为人造言语处置畛域提供更高效、更准确的模型构建方法。

Scaled Dot Product Attention (SDPA) 在 CPU 上的 功能优化

PyTorch 2.0 引入了 SDPA(Scaled Dot Product Attention 的优化),以改良 Transformer 中的 MHA(multi-head attention)功能。

SDPA 旨在处置大型言语模型(LLM)的两个关键痛点,以后版本关键允许 CUDA 设施,未来将在下一个版本中参与 CPU 版本。

该优化算法分为三种,其中两种成功无损减速,不扭转数学计算,因此不损失精度。

以下是对 SDPA 优化算法的概述及其如何处感功能疑问的具体说明。

在早期版本中,PyTorch 1.3 曾经对 启动优化,关键经过将点乘运算融合,清楚缩小了对 attn 操作的内存访问。

这种优化方法基于将 Q、K、V 的大小与 T(序列长度)和 K(每个头的特色大小)的相关思考在内,经过融合操作大幅度提高了功能。

SDPA 优化算法的改良环节从最后的 efficient attention 算法开局,逐渐演进至 flash attention。

外围在于如何经过 tiling(即数据块化)防止在内存中调配大块的 attn 数据,从而应用缓存长处减速 pointwise 操作。

原始 scaled dot product attention 的计算环节可以合成为三个步骤。

首先引入 lazy softmax 来防止为 attn 调配实践内存,仅在每个线程中保管一些累积值,从而清楚缩小内存占用。

但是,这种成功形式在功能上还有待优化,由于它造成计算退步,但仍能大幅缩小内存需求。

进一步优化触及在 KV 数据上实施数据块化,缩小对输入的写操作次数,经过每次迭代计算 q_i 与一个 K block 和 V block 的内积结果。

这种方法虽参与了计算的规模,但同时优化了内存访问形式,使其更具效率。

为了进一步缩小 KV 数据的读取次数,优化算法将 Q 数据启动块化处置,每次迭代计算一个 Q block 与一个 KV block,以此缩小对 KV 数据的读取。

这一步骤经过参与计算规模,成功了对内存访问的优化,同时保障缓存命中率,提高功能。

在浮点数类型上成功 SDPA 包括对 float16 或 bfloat16 的允许,关键经过经常使用 float32 启动累积运算,并应用配件减速优化,如 Intel Xeon 上的 AMX 配件减速。

SDPA 在处置因果掩码(Causal mask)时,经过在 s_i 缓存中运行掩码来缩小不用要的 GEMM(矩阵乘法)运算,从而进一步提高功能。

实践运行中,经过数据块化技术,可以清楚提高处置效率。

优化环节中遇到的应战包括负载不平衡疑问,须要平衡在不同维度(如批次、头部、数据块)上的并行处置,以确保功能平衡。

此外,内存访问不平衡和并行性疑问也需处置,例如如何让 GEMM 和 pointwise 运算并行口头,以提高全体效率。

虽然存在这些应战,SDPA 优化算法经过逐渐迭代和优化,有效优化了 Transformer 模型在 CPU 上的功能,为大规模言语模型的训练和推理提供了更高效的允许。

谈谈做SEO提升都有哪些技巧
« 上一篇 2024-10-28
结构优化设计方法简介
下一篇 » 2024-10-28

文章评论