本文主要是介绍RNN发展(RNN/LSTM/GRU/GNMT/transformer/RWKV),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
RNN到GRU参考:
https://blog.csdn.net/weixin_36378508/article/details/115101779
tRANSFORMERS参考:
seq2seq到attention到transformer理解
GNMT
2016年9月
谷歌,基于神经网络的翻译系统(GNMT),并宣称GNMT在多个主要语言对的翻译中将翻译误差降低了55%-85%以上,
Google’s Neural Machine Translation System: Bridging the Gapbetween Human and Machine Translation
1. NMT的问题:
NMT是神经网络翻译系统,通常会含用两个RNN,一个用来接受输入文本,另一个用来产生目标语句,但是这样的神经网络系统有三个弱点:
1.训练速度很慢并且需要巨大的计算资源,由于数量众多的参数,其翻译速度也远低于传统的基于短语的翻译系统(PBMT);
2.对罕见词的处理很无力,而直接复制原词在很多情况下肯定不是一个好的解决方法;
3.在处理长句子的时候会有漏翻的现象。
解决问题
1.为了解决翻译速度问题,谷歌在翻译过程中使用了低精度的算法(将模型中的部分参数限制为8bit)以及使用了TPU。
2.为了更好的处理低词频的词,谷歌在输入和输出中使用了sub-word units也叫wordpieces,(比如把’higher‘拆分成‘high’和‘er’,分别进行处理)
3.在beamsearch中,谷歌加入了长度规范化和奖励惩罚(coverage penalty)使对翻译过程中产生的长度不同的句子处理更高效并且减少模型的漏翻。在进行了这么多改进之后,谷歌宣称,在英-法,英-中,英-西等多个语对中,错误率跟之前的PBMT系统相比降低了60%,并且接近人类的平均翻译水平。
2.GNMT的结构
encoder + attention + decoder
此外,如我们所想,要使翻译系统有一个好的准确率,encoder和decoder的RNN网络都要足够深,以获取原句子和目标语句中不容易被注意的细节,在谷歌的实验中,没增加一层,会使PPL降低约10%。
而GNMT中,RNN使用的是8层(实际上Encoder是9层,输入层是双向LSTM。)含有残差连接的神经网络,残差连接可以帮助某些信息,比如梯度、位置信息等的传递。
同时,attention层与decoder的底层以及encoder的顶层相连接,如下图所示:
2.1 残差连接解决梯度爆炸和消失问题
上面提到,多层堆叠的LSTM网络通常会比层数少的网络有更好的性能,然而,简单的错层堆叠会造成训练的缓慢以及容易受到剃度爆炸或梯度消失的影响,在实验中,简单堆叠在4层工作良好,6层简单堆叠性能还好的网络很少见,8层的就更罕见了,为了解决这个问题,在模型中引入了残差连接,如图:
2.2 encoder双向lstm
一句话的译文所需要的关键词可能在出现在原文的任何位置,而且原文中的信息可能是从右往左的,也可能分散并且分离在原文的不同位置,因为为了获得原文更多更全面的信息,双向RNN可能是个很好的选择,
在本文的模型结构中,只在Encoder的第一层使用了双向RNN,其余的层仍然是单向RNN,粉色的LSTM从左往右的处理句子,绿色的LSTM从右往左,二者的输出先是连接,然后再传给下一层的LSTM,如下图Bi-directions RNN示意图:
RWKV
RWKV(Receptance Weighted Key Value)是一个结合了RNN与Transformer双重优点的模型架构,由香港大学物理系毕业的彭博首次提出。
其名称源于其 Time-mix 和 Channel-mix 层中使用的四个主要模型元素:
R(Receptance):用于接收以往信息;
W(Weight):是位置权重衰减向量,是可训练的模型参数;
K(Key):是类似于传统注意力中 K 的向量;
V(Value):是类似于传统注意力中 V 的向量。
RWKV模型作为一种革新性的大型语言模型,
结合了RNN的线性复杂度和Transformer的并行处理优势,
引入了Token shift和Channel Mix机制来优化位置编码和多头注意力机制,
解决了传统Transformer模型在处理长序列时的计算复杂度问题。
RWKV在多语言处理、小说写作、长期记忆保持等方面表现出色,可以主要应用于自然语言处理任务,例如文本分类、命名实体识别、情感分析等。
RWKV 模型通过 Time-mix 和 Channel-mix 层的组合,以及 distance encoding 的使用,实现了更高效的 Transformer 结构,并且增强了模型的表达能力和泛化能力。
Time-mix 层与 AFT(Attention Free Transformer)层相似,采用了一种注意力归一化的方法,以消除传统 Transformer 模型中存在的计算浪费问题。
Channel-mix 层则与 GeLU(Gated Linear Unit)层相似,使用了一个 gating mechanism 来控制每条通道的输入和输出。
另外,RWKV 模型采用了类似于 AliBi 编码的位置编码方式,将每个位置的信息添加到模型的输入中,以增强模型的时序信息处理能力。这种位置编码方式称为 distance encoding,它考虑了不同位置之间的距离衰减特性,RWKV结构如下图所示:
2.timing mixing
3. channel mixing
4. 耗时对比
这篇关于RNN发展(RNN/LSTM/GRU/GNMT/transformer/RWKV)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!