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。这就是很多人一定要搞线性注意力的原因。

相关推荐
youngerwang16 分钟前
【字节跳动 AI 原生 IDE TRAE 】
ide·人工智能·trae
youngerwang24 分钟前
AI 编程环境与主流 AI IDE 对比分析报告
ide·人工智能
猿小猴子24 分钟前
主流 AI IDE 之一的 Google Antigravity IDE 介绍
ide·人工智能·google·antigravity
Teacher.chenchong40 分钟前
GEE云端林业遥感:贯通森林分类、森林砍伐与退化监测、火灾评估、森林扰动监测、森林关键生理参数(树高/生物量/碳储量)反演等
人工智能·分类·数据挖掘
2501_941147422 小时前
人工智能赋能智慧城市互联网应用:智能交通、能源与公共管理优化实践探索》
人工智能
咚咚王者3 小时前
人工智能之数据分析 numpy:第十五章 项目实践
人工智能·数据分析·numpy
水月wwww3 小时前
深度学习——神经网络
人工智能·深度学习·神经网络
司铭鸿3 小时前
祖先关系的数学重构:从家谱到算法的思维跃迁
开发语言·数据结构·人工智能·算法·重构·c#·哈希算法
机器之心4 小时前
从推荐算法优化到AI4S、Pico和大模型,杨震原长文揭秘字节跳动的技术探索
人工智能·openai
johnny2334 小时前
AI加持测试工具汇总:Strix、
人工智能·测试工具