均方层归一化RMSNorm(均方根标准化)

一、理论基础

layer normalization 重要的两个部分是平移不变性和缩放不变性。 Root Mean Square Layer Normalization 认为 layer normalization 取得成功重要的是缩放不变性,而不是平移不变性。因此,去除了计算过程中的平移,只保留了缩放,进行了简化,提出了RMS Norm(Root Mean Square Layer Normalization),即均方根 norm。

均方层归一化RMSNorm(均方根标准化)

Layer Normalization (LayerNorm)Root Mean Square Layer Normalization (RMSNorm)
对特征张量按照某一维度或某几个维度进行0均值,1方差的归一化 操作
LayerNorm 是一种标准化方法,它计算一个样本的均值和方差,然后使用这些来对样本进行归一化。这种方法是独立于批量大小的,使得模型更加稳定。
RMSNorm是对LayerNorm的一个改进,没有做re-center操作(移除了其中的均值项),可以看作LayerNorm在均值为0时的一个特例。论文通过实验证明,re-center操作不重要。RMSNorm 也是一种标准化方法,但与 LayerNorm 不同,它不是使用整个样本的均值和方差,而是使用平方根的均值来归一化,这样做可以降低噪声的影响。

二、代码实现


# 均方根标准化 class RMSNorm(torch.nn.Module): def __init__(self,normalized_shape,eps=1e-5,devices=None,dtype=None,**kwargs): super().__init__() self.weight=torch.nn.Parameter(torch.empty(size=normalized_shape,device=devices,dtype=dtype)) #待训练的参数 self.eps=eps def forward(self,hidden_state:torch.Tensor): input_type=hidden_state.dtype variace=hidden_state.to(torch.float32).pow(2).mean(-1,keepdim=True) hidden_state=hidden_state*torch.rsqrt(variace+self.eps) return (hidden_state*self.weight).to(input_type) if __name__ == '__main__': x=RMSNorm(normalized_shape=[3,4]) y=x(torch.randn(size=(3,4))) print(y)

https://arxiv.org/pdf/1910.07467

原创文章。转载请注明: 作者:JiangYuan 网址: https://www.icnma.com
Like (0)
JiangYuan管理
Previous 21/05/2025 21:01
Next 17/06/2025 10:48

猜你想看

  • SGLang, Ollama, VLLM, LLaMA.cpp推理框架对比

    这篇文章对 SGLang、Ollama、VLLM 和 LLaMA.cpp 四款大模型工具进行了多维度的对比,包括性能、易用性和适用场景等方面。 SGLang 的性能卓越,使其特别适合企业级应用。 Ollama 的安装便捷性使其非常适合个人轻量级…

    08/01/2025
    022.1K0
  • Agent基本原理和LangChain实现Agent应用

    Agent 应用适用场景 Agent 是大语言模型(LLM)的主要应用形态,通过大语言模型的推理能力和使用工具的能力完成复杂的任务: Agent 智能体=大模型推理能力 +工具使用能力 如果你有以下的业务场景,Agent 应用架构是…

    21/05/2024
    03.7K0
  • 大模型的N种并行训练方法汇总

    数据并行 数据并行,就是将数据集分为N份,分别装载到N个GPU节点中,每个GPU节点持有一个完整的模型副本,分别基于每个GPU中的数据去进行梯度求导。在GPU0上对每个GPU中的梯度进行累加,最后,再将GPU0聚合后的结果…

    21/03/2024
    04.2K0
  • DeepSeek-R1是怎样炼成的?

    DeepSeek-R1反响非常大,主要是因为使用较低的成本得到了OpenAI O1的效果。开源还便宜。 在这篇文章中,我们将了解它是如何构建的。 目录: DeepSeek-R1 的训练方法 1. 大规模推理导向强化学习 (R1-Zero) 2. R1 …

    28/01/2025
    04.2K0
  • Embedding模型微调:基于已有数据快速构建训练与评估数据集

    ? 本文目标 本文主要面向希望在特定领域或任务中提升Embedding模型表现的初学者。希望读完之后,能帮助大家: 准确理解Embedding模型微调的核心概念及其对数据集的依赖。 初步掌握基于已有数据构建高质量微调训练集…

    21/05/2025
    01.9K0