当前位置: 首页 > news >正文

简化版Transformer

Transformer 架构可以说是近期深度学习领域许多成功案例背后的主力军。构建深度 Transformer 架构的一种简单方法是将多个相同的 Transformer 「块」(block)依次堆叠起来,但每个「块」都比较复杂,由许多不同的组件组成,需要以特定的排列组合才能实现良好的性能。

自从 2017 年 Transformer 架构诞生以来,研究者们基于其推出了大量衍生研究,但几乎没有改动过 Transformer 「块」。

那么问题来了,标准 Transformer 块是否可以简化?

在最近的一篇论文中,来自 ETH Zurich 的研究者讨论了如何在不影响收敛特性和下游任务性能的情况下简化 LLM 所必需的标准 Transformer 块。基于信号传播理论和经验证据,他们发现可以移除一些部分,比如残差连接、归一化层(LayerNorm)、投影和值参数以及 MLP 序列化子块(有利于并行布局),以简化类似 GPT 的解码器架构以及编码器式 BERT 模型。

对于每个涉及的组件,研究者都探讨了是否可以在不降低训练速度的情况下将其移除(包括每次更新步骤和运行时间),以及为此需要 Transformer 块进行哪些架构修改。

然而,目前该理论只考虑初始化时的模型,而且往往只考虑初始前向传递,因此无法揭示深度神经网络训练动态的许多复杂问题,例如残差连接对训练速度的助益。虽然信号传播对修改动机至关重要,但研究者表示,他们不能仅从理论上就得出简化的 Transformer 模块,还要依靠经验见解。

在实际应用方面,考虑到目前训练和部署大型 Transformer 模型的高昂成本,Transformer 架构的训练和推理流水线的任何效率提升都代表着巨大的潜在节约意义。如果能够通过移除非必要组件来简化 Transformer 模块,既能减少参数数量,又能提高模型的吞吐量。

这篇论文也提到,移除残差连接、值参数、投影参数和序列化子块之后,可以同时做到在训练速度和下游任务性能方面与标准 Transformer 相匹配。最终,研究者将参数量减少了 16%,并观察到训练和推理时间的吞吐量增加了 16%。

相关文章:

  • 高效学习 React 框架AntDesign Pro
  • 2023.11.29 -hmzx电商平台建设项目 -核销主题阶段总结
  • XUbuntu22.04之OBS30.0设置录制音频降噪(一百九十六)
  • 基于SpringBoot母婴商城
  • 【面经八股】搜广推方向:面试记录(二)
  • 1、Linux_介绍和安装
  • 时间序列预测实战(二十一)PyTorch实现TCN卷积进行时间序列预测(专为新手编写的自研架构)
  • 知识蒸馏代码实现(以MNIST手写数字体为例,自定义MLP网络做为教师和学生网络)
  • 解决keil右键Go To Definition跳转不过去的问题
  • JAVA小游戏简易版王者荣耀
  • 【PyTorch】(二)加载数据集
  • 如何使用内网穿透实现无公网ip环境访问VScode远程开发
  • pip安装、更新、卸载
  • CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术
  • Java中xml映射文件是干什么的
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 5、React组件事件详解
  • co模块的前端实现
  • git 常用命令
  • JavaScript设计模式系列一:工厂模式
  • js操作时间(持续更新)
  • JS字符串转数字方法总结
  • MySQL QA
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python_bomb----数据类型总结
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 如何利用MongoDB打造TOP榜小程序
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用Swoole加速Laravel(正式环境中)
  • 算法之不定期更新(一)(2018-04-12)
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 写给高年级小学生看的《Bash 指南》
  • MPAndroidChart 教程:Y轴 YAxis
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • # 达梦数据库知识点
  • #QT项目实战(天气预报)
  • (1)(1.9) MSP (version 4.2)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)WCF的Binding模型
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (万字长文)Spring的核心知识尽揽其中
  • (转载)从 Java 代码到 Java 堆
  • .describe() python_Python-Win32com-Excel
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Core 成都线下面基会拉开序幕
  • .NET 分布式技术比较
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .Net转前端开发-启航篇,如何定制博客园主题