RNN 和 Transformer 复杂度比较

简介: RNN 和 Transformer 复杂度比较

这里假设BatchSize为 1,就是单样本的情况。

原始 RNN 块:

(1)单步计算 H,包含两个矩阵向量乘法,和一个激活,复杂度HidSize²

(2)一共有SeqLen步,所以整体复杂度SeqLen * HidSize²

LSTM 块:

(1)单步计算 F I C_hat O,包含八个矩阵向量乘法,和四个激活:HidSize²

(2)单步计算 C,包含两个逐元素乘法,和一个加法;HidSize²

(3)单步计算 H,包含一个逐元素乘法和一个激活;HidSize²

(4)一共有SeqLen步,所以整体复杂度SeqLen * HidSize²

TF 块:

(1)计算 QKV,包含三个矩阵乘法,SeqLen * HidSize²

(2)计算注意力矩阵,包含 HeadCount 个 矩阵乘法,HeadCount * HeadSize * SeqLen²

由于HidSize = HeadCount * HeadSize,实际上是HidSize * SeqLen²

(3)Softmax 激活,HeadCount * SeqLen² << HidSize * SeqLen²

(4)计算 O,包含HeadCount个矩阵乘法,HeadCount * HeadSize * SeqLen² = HidSize * SeqLen²

(5)计算输出向量,包含一个矩阵乘法SeqLen * HidSize²

(6)FFN ,两个矩阵乘法,SeqLen * HidSize²

(6)整体复杂度,SeqLen * HidSize² + HidSize * SeqLen²

HidSize是每层之间传输的嵌入向量的维度,大概几百维。

聊天的时候SeqLen大概几十到一百,明显低于HidSize,这个时候二者是差不多的。

长文本翻译的时候SeqLen是几千,那么 RNN 明显比 Transformer 快。

等于说,Transformer 的高复杂度缺点被并行掩盖了。在单机单卡这种不能并行的环境,效率远不如 RNN。这就是很多人一定要搞线性注意力的原因。

相关文章
|
3月前
|
机器学习/深度学习 资源调度 数据可视化
Mamba详细介绍和RNN、Transformer的架构可视化对比
Transformer体系结构已经成为大型语言模型(llm)成功的主要组成部分。为了进一步改进llm,人们正在研发可能优于Transformer体系结构的新体系结构。其中一种方法是Mamba(一种状态空间模型)。
324 2
|
7月前
|
机器学习/深度学习 自然语言处理 并行计算
Transformer相比RNN和LSTM有哪些优势?
Transformer相比RNN和LSTM有哪些优势?
219 0
|
11月前
|
机器学习/深度学习 自然语言处理
RWKV项目原作解读:在Transformer时代重塑RNN
RWKV项目原作解读:在Transformer时代重塑RNN
142 0
|
12月前
|
机器学习/深度学习 人工智能 缓存
在Transformer时代重塑RNN,RWKV将非Transformer架构扩展到数百亿参数
在Transformer时代重塑RNN,RWKV将非Transformer架构扩展到数百亿参数
212 0
|
12月前
|
机器学习/深度学习 存储 自然语言处理
图解NLP模型发展:从RNN到Transformer
本文以NLP模型发展为脉络,详细地解释了RNN、LSTM、GRU、seq2seq、注意力机制和Transformer。每一个技术都给出了清晰的图形化解释,便于大家理解。其中重点解释了Transformer的各个部分,因为Transformer 作为一个重要的里程碑,影响并创建了许多先进的 NLP 模型,如 GPT-3、BERT 等。
657 1
图解NLP模型发展:从RNN到Transformer
|
机器学习/深度学习 存储 测试技术
Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
144 0
Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
|
机器学习/深度学习 自然语言处理 并行计算
NLP三大特征提取器全梳理:RNN vs CNN vs Transformer
在进行 NLP 模型训练前,请先选择一个好的特征提取器。
577 0
NLP三大特征提取器全梳理:RNN vs CNN vs Transformer
|
5月前
|
机器学习/深度学习 自然语言处理 TensorFlow
tensorflow循环神经网络(RNN)文本生成莎士比亚剧集
我们将使用 Andrej Karpathy 在《循环神经网络不合理的有效性》一文中提供的莎士比亚作品数据集。给定此数据中的一个字符序列 (“Shakespear”),训练一个模型以预测该序列的下一个字符(“e”)。通过重复调用该模型,可以生成更长的文本序列。
|
2天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】循环神经网络(RNN)与LSTM详解
【4月更文挑战第30天】本文探讨了处理序列数据的关键模型——循环神经网络(RNN)及其优化版长短期记忆网络(LSTM)。RNN利用循环结构处理序列依赖,但遭遇梯度消失/爆炸问题。LSTM通过门控机制解决了这一问题,有效捕捉长距离依赖。在Python中,可使用深度学习框架如PyTorch实现LSTM。示例代码展示了如何定义和初始化一个简单的LSTM网络结构,强调了RNN和LSTM在序列任务中的应用价值。
|
8天前
|
机器学习/深度学习 数据可视化 网络架构
Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
25 8

热门文章

最新文章

相关实验场景

更多