【RMSNorm】Root Mean Square Layer Normalization

【RMSNorm】Root Mean Square Layer Normalization

  • 论文信息
    • 阅读评价
  • Abstract
  • Introduction
  • Related Work
  • Background
  • RMSNorm
  • Experiments

论文信息

名称内容
论文标题Root Mean Square Layer Normalization
论文地址https://arxiv.org/abs/1910.07467
发表时间2019-10-16
研究领域NLP, LayerNorm
提出方法RMSNorm

阅读评价

  论文改进了大模型领域常用的LayerNorm,提出RMSNorm(均方差层归一化)。相比于LayerNormRMSNorm开销更小,训练更快,性能与LayerNorm基本相当。

  论文在LayerNorm的基础上,提出更简单的RMSNorm,并从公式推导与实验对比上证明了RMSNorm的有效性。

  个人感受:RMSNorm已经是目前通用的归一化了,看了一下T5、Llama、Qwen的源码,用的都是RMSNorm


  以下是对论文每个部分的简单介绍。

Abstract

  层归一化(LayerNorm)在各种深度神经网络的应用比较成功,可以稳定模型训练、促进模型收敛。但LN的缺点是计算开销较大。

  LN有两个特性:重新居中(re-centering)不变性和重新缩放(re-scaling)不变性。本篇论文假设 LayerNorm 中的重新居中不变性是可有可无的,并提出均方根层归一化(RMSNorm)。

【注】重新居中(re-centering)不变性和重新缩放(re-scaling)不变性就是名字听起来唬人一点,其实很简单。在后文“background”中讲到LN的计算公式的时候我会进行介绍。

  RMSNorm 计算更简单,因此比 LayerNorm 更高效。 使用不同网络架构对多个任务进行的大量实验表明,RMSNorm 的性能与 LayerNorm 相当,但在不同模型上的运行时间减少了 7%∼64%。

Introduction

  LN目前也在深度神经网络领域广泛使用,并且效果良好。

  但是LN的缺点就是计算开销大,模型一旦比较大,LN的缺点就更加突出。所以在某些时候,LN给模型带来的计算开销甚至抵消了LN给模型带来的加速收敛效果。

【注】这句话的意思是,假设引入LN可以让模型训练快100分钟,但是引入LN增加了计算量,LN计算本身就要花120分钟,这样是得不偿失。

  LN有两个特性:重新居中(re-centering)不变性和重新缩放(re-scaling)不变性。作者认为重新居中(re-centering)不变性并不是LN有效的原因,所以他把这个特性删去,提出了RMSNorm。

Related Work

  先简单介绍了三种归一化:BatchNorm、WeightNorm、LayerNorm。

  随后介绍了一些对LN改进效率的工作,但是这些工作都没有删去重新居中(re-centering)不变性。

Background

  这部分介绍了LayerNorm的公式。原论文里面的公式略微有点冗余,为了方便大家理解,此处我用通用的变量来表示LayerNorm:

  给定一个网络的某一层的激活 H = h 1 , h 2 , . . . , h N {H = {h_1, h_2, ..., h_N}} H=h1,h2,...,hN,其中 h i h_i hi 是该层中第 i i i 个神经元或特征的激活值。

【注】正常使用大模型情况下,batch=32,seq=512, dim=768。此处的 H H H就是一个batch中的一个token的向量,即 H H H维度为768。

  计算该层激活的均值 μ \mu μ 和标准差 σ \sigma σ

μ = 1 N ∑ i = 1 N h i σ = 1 N ∑ i = 1 N ( h i − μ ) 2 + ϵ \mu = \frac{1}{N} \sum_{i=1}^{N} h_i \\ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (h_i - \mu)^2 + \epsilon} μ=N1i=1Nhiσ=N1i=1N(hiμ)2+ϵ

  其中 ϵ \epsilon ϵ是一个非常小的数,以避免除以零。

  对每个激活 h i h_i hi 进行归一化:
h ^ i = h i − μ σ \hat{h}_i = \frac{h_i - \mu}{\sigma} h^i=σhiμ

  应用增益 γ \gamma γ和偏置 β \beta β参数进行缩放和平移:
y i = γ h ^ i + β y_i = \gamma \hat{h}_i + \beta yi=γh^i+β
  其中增益 γ \gamma γ和偏置 β \beta β是可学习的参数,它们分别初始化为 1 和 0。

【注】LN的重新居中(re-centering)不变性和重新缩放(re-scaling)不变性是指在 LN 过程中引入的可学习参数增益 γ \gamma γ和偏置 β \beta β所带来的特性。
——————————————————
重新居中(Re-centering)不变性
LN 通过偏置参数 β \beta β实现重新居中。在 LN 的归一化过程中,每个激活值 h i h_i hi都会被减去同一层激活的均值 μ \mu μ,然后乘以增益 γ \gamma γ并加上偏置 β \beta β。偏置 β \beta β的存在允许模型学习到激活值的最佳居中位置,这就是重新居中不变性。即使输入数据发生了变化,模型也可以通过调整偏置 β \beta β来保持激活值的分布相对稳定。
——————————————————
重新缩放(Re-scaling)不变性
LN 通过增益参数 γ \gamma γ实现重新缩放。在归一化后,每个激活值 h i h_i hi会被乘以 γ \gamma γ。增益 γ \gamma γ的存在允许模型学习到激活值的最佳缩放因子,这就是重新缩放不变性。模型可以通过调整 γ \gamma γ来控制激活值的尺度,从而适应不同的数据分布和任务需求。

RMSNorm

  在LayerNorm的基础上,RMSNorm不再求均值 μ \mu μ 和标准差 σ \sigma σ,而是直接计算均方根 R M S RMS RMS

R M S = 1 N ∑ i = 1 N ( h i ) 2 + ϵ RMS=\sqrt{\frac{1}{N} \sum_{i=1}^{N} (h_i)^2 + \epsilon} RMS=N1i=1N(hi)2+ϵ

  对每个激活 h i h_i hi 进行归一化:
h ^ i = h i R M S \hat{h}_i = \frac{h_i}{RMS} h^i=RMShi

  RMSNorm也可以应用增益 γ \gamma γ和偏置 β \beta β参数进行缩放和平移:
y i = γ h ^ i ( + β ) y_i = \gamma \hat{h}_i (+ \beta) yi=γh^i(+β)
  但是实际上,此时偏置 β \beta β已经不再有意义,通常不再使用偏置。

Experiments

  简单截了4张实验结果图,其中“Testxx”栏表示数据集的评价指标,越大越好,“Time”栏表示运行了k个Step所花的时间,越少越好。

在这里插入图片描述

图1 实验结果

在这里插入图片描述

图2 实验结果

在这里插入图片描述

图3 实验结果

在这里插入图片描述

图4 实验结果

  主要还是比较RMSNorm是否比LN的时间短,并且效果不相上下?根据上述4张图,可以看到RMSNorm确实比LN要好一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518116.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux练习-交互式传参

在shell脚本中,read 向用户显示一行文本并接受用户输入 #!/bin/bash read -p 依次输入你的姓名、年龄、家乡 name age home echo 我是$name,年龄$age,我来自$home

12种常见的软件架构风格

什么是软件架构? 软件架构是定义软件系统的高级结构和组织的过程。它涉及识别和选择正确的组件,决定它们之间如何交互,以及确定它们应该如何组织以实现特定的目标。软件架构的目标是创建一个可维护、可扩展和安全的系统,能够满足…

小红书自动化仿写发文机器人了解一下

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

权限认证SpringCloud GateWay、SpringSecurity、OAuth2.0、JWT一网打尽!

权限认证SpringCloud GateWay、SpringSecurity、OAuth2.0、JWT一网打尽 一、SpringCloud GateWay 1.它是如何工作的? ​ 客户端向 Spring Cloud Gateway 发出请求。如果Gateway处理程序映射确定一个请求与路由相匹配,它将被发送到Gateway Web处理程序。…

蓝桥杯第十四届--异或和之和

题目描述 给定一个数组 Ai,分别求其每个子段的异或和,并求出它们的和。或者说,对于每组满足 1 ≤ L ≤ R ≤ n 的 L, R ,求出数组中第 L 至第 R 个元素的异或和。然后输出每组 L, R 得到的结果加起来的值。 输入格式 输入的第一…

基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 关键概念与模型 4.2数学模型 5.完整程序 1.程序功能描述 基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出ACO优化的收敛曲线,规划路径结果和每一条路径的满载率。 2.测试软…

C# MES通信从入门到精通(8)——C#调用Webservice服务进行数据交互

前言 在上位机开发领域,使用webservice来访问客户的终端Mes系统是一项必备的技能,本文详细介绍了如何在c#中调用webservice服务,不仅介绍了使用添加服务引用直接调用webservice中的方法外还介绍了使用http的post方法调用webservice方法,过程详细且均为实战经验总结,对于初…

十个排序算法

目录 冒泡排序(Bubble Sort) 选择排序(Select Sort) 插入排序(InsertSort) 希尔排序(ShellSort) 计数排序(CountSort) 快速排序(QuickSort) 归并排序(Merge Sort&a…

chatGPT4无法登录

遇到问题:chatgpt网站上点击登录(log in),网站就会跳转并显示:unable to connect 解决方法:不要用亚洲节点,亚洲节点被全面封禁,在全局代理中可以换成美国的节点

故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab) 模型描述 偏最小二乘法(Partial Least Squares, PLS)是一种统计建模方法,用于建立变量之间的线性关系模型。它是对多元线性回归方法的扩展,特别适用于处理高维数据和具有多重共线性的数据集。…

Idea显示无法自动装配。找不到‘ xxx’类型的Bean

虽然只标红,不报错,但是看着非常别扭! 原因: 当我们在使用Autowired注解的时候,默认requiredtrue,表示注入的时候bean必须存在,否则注入失败。 解决方案一: 在自动转配的注解后面添加(require…

AcWing 788. 逆序对的数量——算法基础课题解

AcWing 788. 逆序对的数量 题目描述 给定一个长度为 n 的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i 个和第 j 个元素&#xff0c;如果满足 i<j且 a[i]>a[j]&#xff0c;则其为一个逆序对&#xff1b;否则不是。…

HTML基础知识详解(上)(如何想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言&#xff1a;在学习前端基础时&#xff0c;必不可少的就是三大件&#xff08;html、css、javascript &#xff09;&#xff0c;而HTML&#xff08;超文本标记语言——HyperText Markup Language&#xff09;是构成 Web 世界的一砖一瓦&#xff0c;它定义了网页内容的含义和…

一点点金融 5

一点点金融 5 怎么判断是短期回撤&#xff0c;还是趋势反转&#xff1f;市场行为和价格波动背后的深层次原因是什么&#xff1f;1. 成交密度与价格区间2. 投资者心理与市场情绪3. 供需动态4. 价格波动的自我实现性挖掘技术策略的原理分析步骤交易策略实施风险管理 技术分析者怎…

深入探索MySQL:成本模型解析与查询性能优化,及未来深度学习与AI模型的应用展望

码到三十五 &#xff1a; 个人主页 在数据库管理系统中&#xff0c;查询优化器是一个至关重要的组件&#xff0c;它负责将用户提交的SQL查询转换为高效的执行计划。在MySQL中&#xff0c;查询优化器使用了一个称为“成本模型”的机制来评估不同执行计划的优劣&#xff0c;并选择…

获取天翼网关TEWA-708E超级管理员密码

Download RouterPassView 参考&#xff1a;破解光猫超级管理员密码&#xff08;网关型号&#xff1a;TEWA-708E&#xff09; - 知乎

华清远见STM32MP157开发板助力嵌入式大赛ST赛道MPU应用方向项目开发

第七届&#xff08;2024&#xff09;全国大学生嵌入式芯片与系统设计竞赛&#xff08;以下简称“大赛”&#xff09;已经拉开帷幕&#xff0c;大赛的报名热潮正席卷而来。嵌入式大赛截止今年已连续举办了七届&#xff0c;为教育部认可的全国普通高校大学生国家级A类赛事&#x…

复杂度的讲解

1.算法效率 如何衡量一个算法的好坏&#xff1f;从两个维度&#xff0c;时间和空间&#xff08;算法运行的快慢&#xff0c;消耗的空间大不大&#xff09;。因为计算机硬件领域的高速发展&#xff0c;如今计算机的存储量已经达到了一个很高的程度&#xff0c;所以现在我们一般…

MyBatis的xml实现方式

1、该项目引入的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…

DotNetBar的SlidePanel和metroTilePanel使用笔记

一、前言 界面组件DotNetBar2中的2个控件属性SlidePanel和metroTitlePanel的使用方法&#xff0c;网上相关资源较少&#xff0c;就一些属性的使用学习记录如下&#xff1a; SlideSideDevComponents.DotNetBar.Controls.eSlideSide.Top/Bottom/Right/Left 及 metroTilePanel和m…