【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要好一点。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

随手集☞Spring知识盘点

概述 定义 Spring框架的提出者是程序员Rod Johnson,他在2002年最早提出了这个框架的概念,随后创建了这个框架。Spring框架的目标是简化企业级Java应用程序的开发,通过提供一套全面的工具和功能,使开发者能够更加高效地构建高质量…

JVM参数调优

JVM参数调优 文章目录 JVM参数调优前言JVM参数类型查看运行的Java程序,JVM参数是否开启,具体值为多少?题外话(坑题)查看JVM默认参数工作中常用的JVM基本配置参数查看堆内存打印JVM默认参数生活常用调优参数GC垃圾收集参…

【测开求职】校招生在面测开前需要了解的信息

博主在2021年拿到了字节测开实习的offer,实习时长4个月,并于2023年秋招拿到了字节测开的校招offer,仅以本专栏记录对该岗位的所思所想。 目录 1. 测试开发需要做什么工作2. 为什么选择测试开发3. 测试开发不如开发吗4. 如何准备测试开发 1. …

华为“天才少年”4万字演讲:现在的AI技术要么无趣,要么无用

华为“天才少年”4万字演讲:现在的AI技术要么无趣,要么无用|钛媒体AGI© AI科技组 (图片来源:unsplash) 近期,一篇4万字的演讲风靡于国内人工智能(AI)学术圈。 原…

基于 Rust 标准库 API 使用 200 行代码实现 Http 1.1 协议简易服务

1. 背景 早在之前学过一波 Rust,但是由于没用武之地,没过多久又荒废了,最近想捡起来下。刚好看见有群里小伙伴说学习 Http 网络协议太难怎么办?其实很多技术都是相通的,只要你理解了技术的本质就可以自己实现它&#…

Midjourney艺术家分享|By Moebius

Moebius,本名让吉拉德(Jean Giraud),是一位极具影响力的法国漫画家和插画师,以其独特的科幻和幻想风格而闻名于世。他的艺术作品不仅在漫画领域内受到高度评价,也为电影、时尚和广告等多个领域提供了灵感。…

备考ICA----Istio实验16---HTTP流量授权

备考ICA----Istio实验16—HTTP流量授权 1. 环境准备 kubectl apply -f istio/samples/bookinfo/platform/kube/bookinfo.yaml kubectl apply -f istio/samples/bookinfo/networking/bookinfo-gateway.yaml访问测试 curl -I http://192.168.126.220/productpage2. 开启mtls m…

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes(简称K8s)是一个开源的容器编排平台,旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案,帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于Kubern…

Linux:Centos9:配置固定ip

centos9的网卡位置移动到了 /etc/NetworkManager/system-connections/ 下面 查看网卡 ifconfig 当前有两块网卡,我要去配置ens160的一个固定的ip,让其ip为192.168.6.20/24,网关为192.168.6.254.dns为:1.1.1.1 vim /etc/Netwo…

GPT3, llama2, InternLM2技术报告对比

GPT3(September 22, 2020)是大语言应用的一个milestone级别的作品,Llama2(February 2023)则是目前开源大模型中最有影响力的作品,InternLM2(2023.09.20)则是中文比较有影响力的作品。…

基于jsp+Spring boot+mybatis的图书管理系统设计和实现

基于jspSpring bootmybatis的图书管理系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获…

基于SpringBoot Vue宠物领养系统

一、📝功能介绍 基于SpringBoot Vue宠物领养系统 角色:管理员、用户 当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到宠物领养救助平台的导航条显示首页、宠物招领、宠物认领、 宠物论坛、宠物资讯、后台管…