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

RMSNorm:均方根归一化总结

RMSNorm均方根归一化总结1. RMSNorm 是什么RMSNorm的全称是Root Mean Square Normalization中文可以叫均方根归一化它是 Transformer 大模型中常用的一种归一化方法例如 LLaMA、Qwen、DeepSeek、Gemma 等模型中都常见。它的核心作用是只控制向量整体尺度不改变向量的均值中心。也就是说RMSNorm 本质上不是一个神秘概念而是一个非常直接的数学操作对一个多维向量计算它的整体能量大小然后把它缩放到一个稳定尺度。2. RMSNorm 的数学公式假设一个 token 的隐藏向量是x [x1, x2, x3, ..., xd]其中d是隐藏维度xi是第i个特征分量。RMSNorm 首先计算这个向量的均方根RMS⁡(x)1d∑i1dxi2ε \operatorname{RMS}(x)\sqrt{\frac{1}{d}\sum_{i1}^{d}x_i^2\varepsilon}RMS(x)d1​i1∑d​xi2​ε​然后把每个分量除以这个 RMS 值再乘上一个可学习的缩放参数yixiRMS⁡(x)⋅gi y_i\frac{x_i}{\operatorname{RMS}(x)}\cdot g_iyi​RMS(x)xi​​⋅gi​其中x_i输入向量的第i个分量d隐藏向量维度ε防止除零的小常数g_i可学习缩放参数通常叫weight。3. 一个简单算例假设输入向量是x [3, 4]它的 RMS 是RMS sqrt((3^2 4^2) / 2) sqrt(25 / 2) ≈ 3.535所以归一化之后x_norm [3 / 3.535, 4 / 3.535] ≈ [0.848, 1.131]这说明 RMSNorm 做的事情是把向量整体能量拉回到一个稳定范围。它不关心这个向量的均值是多少只关心这个向量整体“有多大”。4. RMSNorm 的物理意义可以把 Transformer 中每个 token 的隐藏向量看成一个多维信号x [特征1, 特征2, 特征3, ..., 特征d]每个 token 经过 Attention、MLP、残差连接之后它的向量幅值可能变大也可能变小。比如token A 的隐藏向量整体幅值很大 token B 的隐藏向量整体幅值很小如果不做尺度控制后续的矩阵乘法、Attention score、MLP 激活都可能变得不稳定。RMSNorm 做的事情可以理解为保留向量的主要方向只重新调节向量的长度。也可以理解为原始向量 方向 长度 RMSNorm 主要保留方向把长度拉回合理范围所以 RMSNorm 不是在“理解语义”也不是一个复杂概念而是一个多维特征尺度控制器。5. RMSNorm 和 LayerNorm 的区别LayerNorm 的基本操作是先减均值再除标准差近似写成LayerNorm⁡(x)x−mean⁡(x)std⁡(x) \operatorname{LayerNorm}(x)\frac{x-\operatorname{mean}(x)}{\operatorname{std}(x)}LayerNorm(x)std(x)x−mean(x)​RMSNorm 的基本操作是不减均值只除 RMS近似写成RMSNorm⁡(x)xRMS⁡(x) \operatorname{RMSNorm}(x)\frac{x}{\operatorname{RMS}(x)}RMSNorm(x)RMS(x)x​方法是否减均值是否除尺度核心作用LayerNorm是是调整中心 调整尺度RMSNorm否是只调整尺度RMSNorm 的优势否是计算更简单工程更高效6. 为什么大模型喜欢 RMSNorm6.1 计算更简单LayerNorm 通常需要计算mean variance sqrt divideRMSNorm 只需要计算平方平均 sqrt divide它少了减均值和中心化方差的步骤因此工程实现更简单计算成本也更低。6.2 适合 Transformer 的残差结构现代 Transformer 常用 Pre-Norm 结构例如x x Attention(RMSNorm(x)) x x MLP(RMSNorm(x))也就是说在进入 Attention 或 MLP 之前先对输入做尺度归一化。RMSNorm 在这里的作用是每次进入 Attention / MLP 之前把输入尺度稳定住。这样可以避免残差连接不断叠加之后隐藏向量的数值尺度失控。6.3 保留均值信息LayerNorm 会做x - mean(x)这会把向量的均值信息去掉。而 RMSNorm 不减均值只控制整体能量。所以它更像是在说我只控制你的能量不动你的整体偏置结构。在大模型中这通常已经足够稳定而且计算更省。7. Python 手写 RMSNorm下面是一个不用 PyTorch 的纯 Python 版本importmathdefrms_norm(x,weight,eps1e-6): x: 输入向量长度为 d weight: 可学习缩放参数长度为 d eps: 防止除零 dlen(x)# 1. 计算均方值mean_square0.0forvalueinx:mean_squarevalue*value mean_squaremean_square/d# 2. 计算 RMSrmsmath.sqrt(mean_squareeps)# 3. 归一化并乘可学习缩放参数y[]forxi,wiinzip(x,weight):y.append((xi/rms)*wi)returny x[3.0,4.0]weight[1.0,1.0]print(rms_norm(x,weight))输出大概是[0.8485, 1.1313]8. PyTorch 版本 RMSNormimporttorchclassRMSNorm(torch.nn.Module):def__init__(self,dim,eps1e-6):super().__init__()self.epseps self.weighttorch.nn.Parameter(torch.ones(dim))defforward(self,x):# x shape: [batch_size, seq_len, hidden_dim]# 沿最后一维 hidden_dim 计算 RMSrmstorch.sqrt(torch.mean(x*x,dim-1,keepdimTrue)self.eps)# 除以 RMS控制尺度x_normx/rms# 乘可学习缩放参数returnx_norm*self.weight输入形状一般是x: [batch_size, seq_len, hidden_dim]RMSNorm 是沿着最后一维hidden_dim做归一化。9. 从工程角度理解 RMSNorm在 Transformer 中每一层通常会有 Attention 和 MLP。如果没有归一化残差连接会不断把新的变化叠加到原来的向量上x x Attention(x) x x MLP(x)多层之后向量尺度可能越来越大或者在某些情况下变得非常不稳定。RMSNorm 插入之后就变成x x Attention(RMSNorm(x)) x x MLP(RMSNorm(x))它的作用不是改变模型结构的本质而是给每一次变换前的输入加一个尺度约束。可以把它理解为每次进入复杂变换之前先把输入向量的能量调到一个可控范围。10. 最终总结RMSNorm 的本质可以压缩成一句话对每个 token 的隐藏向量计算它的整体能量 RMS然后把向量除以这个能量让进入 Attention / MLP 之前的尺度稳定下来。它不是复杂概念也不是必须神秘化命名。从数学上看它就是多维向量的尺度归一化从物理意义上看它就是控制多维信号的整体能量从工程作用上看它就是稳定 Transformer 层间数值尺度减少训练和推理中的数值波动所以你可以把 RMSNorm 理解成一个只调长度、不强行移动中心的多维向量尺度控制器。

相关文章:

RMSNorm:均方根归一化总结

RMSNorm:均方根归一化总结 1. RMSNorm 是什么? RMSNorm 的全称是 Root Mean Square Normalization,中文可以叫:均方根归一化它是 Transformer 大模型中常用的一种归一化方法,例如 LLaMA、Qwen、DeepSeek、Gemma 等模型…...

年度名场面!黄仁勋逛胡同被投喂豆汁,眉头紧锁。网友:弥补了没有喝过 XX 的遗憾

5 月 15 日,「黄仁勋 南锣鼓巷」话题突然在多平台引爆热议。谁能想到,手握 5 万亿美刀市值的科技大佬,私下里竟是胡同干饭人。昨天在大会堂还是西装革履,今天老黄换上他的经典皮肤套装,带几名随行人员低调逛南锣鼓巷和…...

小学生如何高效通过GESP七八级

‌GESP 7-8级是通往信息学竞赛复赛的关键跳板‌,对小学生而言,需结合科学规划、系统学习与真题实战。以下是高效通关路径: 一、明确目标:GESP 7-8级的核心价值 1、‌GESP C 7级 ≥80分‌ 或 ‌8级 ≥60分‌ → 可免CSP-J初赛&…...

集成三相桥驱动的MCU:AiP8F7201电机控制方案解析

1. 项目概述:为什么我们需要“集成三相桥式驱动的微控制器”?在电机控制领域,尤其是消费电子、家电、工业自动化这些我们每天都会接触到的场景里,工程师们一直在和一堆“麻烦”作斗争。想象一下,你要设计一个驱动无刷直…...

GESP学习,如何判断孩子是否适合跳级

判断孩子是否适合跳级,核心是综合评估其学术能力、心理成熟度、社交适应力及政策合规性‌。以下是基于教育规律与官方政策的系统性判断标准: 一、学术能力:是否真正“学有余力” 1、‌成绩特别优异‌: 在当前年级中,各…...

6541616

56465651...

探索GitHub导航菜单:平台功能、解决方案、资源及GlycemicGPT项目全揭秘

导航菜单包含登录、外观设置等选项,还有平台、解决方案、资源、开源、企业版等板块。平台有AI代码创作(如GitHub Copilot、GitHub Spark等)、开发者工作流(如Actions、Codespaces等)、应用程序安全(如GitHu…...

基于RK3568J核心板的隔离网闸设计:硬件选型、系统架构与工程实践

1. 项目概述:当嵌入式核心板遇上网络安全“守门员”最近几年,“科技与狠活”这个词火遍全网,让大家对各种产品的成分和安全性都多了一份审视。其实,除了我们吃进嘴里的东西,另一个看不见摸不着却至关重要的领域——网络…...

Swift集成飞书开放平台:feishu-swift SDK架构解析与实战指南

1. 项目概述与核心价值最近在折腾一个需要深度集成飞书开放平台的项目,目标是构建一个能与飞书服务端API高效、稳定交互的iOS原生应用。在技术选型阶段,我几乎翻遍了GitHub和各大技术社区,最终锁定了ricsy/feishu-swift这个开源库。简单来说&…...

前台测试想转后台优化?这4个条件缺一不可,否则别折腾

很多做前台测试的兄弟都问过同一个问题:我能不能转后台?今天这篇文章,一次性把后台工程师的准入清单说清楚。一、基础条件:5条缺一不可年龄20-50岁太小的缺经验,太大的学新东西慢,这个区间刚刚好。有网优基…...

深入解析浮点数内存存储与IEEE 754标准:从0.1+0.2≠0.3说起

1. 从一次“诡异”的计算错误说起前几天,一个刚入行的同事跑来找我,一脸困惑地给我看了一段Python代码。他写了个简单的循环累加,想计算0.1加10次,理论上应该等于1.0。但打印出来的结果却是0.9999999999999999。他反复检查了代码&…...

Swift集成飞书生态:使用feishu-swift SDK实现高效开发

1. 项目概述:一个连接飞书与Swift生态的桥梁最近在折腾一个内部工具,需要把iOS App里的某些数据自动同步到飞书文档里,方便团队协作查看。一开始想用飞书官方API直接写,但发现Swift这边原生的HTTP请求和JSON处理起来有点啰嗦&…...

AI短剧拉片应用软件2026推荐,助力高效内容分析

AI短剧拉片应用软件2026推荐,助力高效内容分析在当今的娱乐市场中,AI短剧凭借其紧凑的剧情、便捷的观看方式,受到了广大观众的喜爱。据艾瑞咨询《2026 年中国短剧行业发展报告》显示,2026 年 AI 短剧市场规模持续增长,…...

DGX服务器上Spark性能优化:NUMA绑定与GPU资源精细调度实践

1. 项目概述与核心价值最近在折腾一个挺有意思的项目,叫adadrag/nemoclaw-dgx-spark。乍一看这个名字,像是把几个八竿子打不着的技术名词硬凑在了一起:adadrag像是个开发者代号,nemoclaw听着像某个工具或框架,dgx让人联…...

手机短剧拉片软件2026推荐,助力高效内容分析

手机短剧拉片软件2026推荐,助力高效内容分析在当今的影视行业中,手机短剧以其短小精悍、节奏紧凑的特点受到了广大观众的喜爱。对于创作者来说,如何深入分析这些短剧,学习其中的创作技巧,成为了提升自身水平的关键。据…...

为什么92%的团队在ElevenLabs多角色对话项目中3周内失败?——基于17个真实SaaS客户日志的根因分析

更多请点击: https://intelliparadigm.com 第一章:为什么92%的团队在ElevenLabs多角色对话项目中3周内失败?——基于17个真实SaaS客户日志的根因分析 ElevenLabs 的 VoiceLab API 虽然提供了强大的多说话人语音合成能力,但其多角…...

开源AI本地化框架py-gpt:微内核插件化架构与RAG应用实战

1. 项目概述:一个本地化、可扩展的AI应用框架最近在折腾AI应用本地化部署的朋友,可能都绕不开一个核心矛盾:既想享受大语言模型(LLM)强大的对话和推理能力,又对数据隐私、网络依赖和持续付费心存顾虑。市面…...

为什么预训练再好的VLA,在新任务上普通SFT 并不好用?CapVector给出了原因和方案

Vision-Language-Action(VLA)模型现在已经很强了。 但一个很现实的问题是: 预训练再充分的 VLA,到了新任务上,普通 SFT 往往并不好用。 很多工作发现: 训练收敛慢少量 demonstration 不够泛化能力并没有…...

高效大语言模型优化全攻略:从量化、LoRA到推理引擎实战

1. 项目概述:为什么我们需要关注高效大语言模型?最近在GitHub上看到一个叫“Awesome-Efficient-LLM”的项目,点进去一看,好家伙,简直是个宝藏。这个项目本质上是一个精心整理的资源列表,专门收集那些致力于…...

Adobe-GenP 3.0深度解析:破解Adobe Creative Cloud订阅验证的技术实现

Adobe-GenP 3.0深度解析:破解Adobe Creative Cloud订阅验证的技术实现 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe Creative Cloud订阅模式为设…...

告别玄学:给STM32/CH32V的SD卡SPI驱动加上超时、重试与状态机

从零构建工业级SD卡SPI驱动:超时重试与状态机设计实战 在嵌入式系统中,SD卡作为可靠的大容量存储介质被广泛应用。然而许多开发者都经历过这样的困境:实验室测试完美的SD卡驱动,一旦部署到真实环境中就频繁出现读写失败、卡死甚至…...

AI Agent Harness Engineering 的安全攻防:你的智能体如何被欺骗、劫持与利用

AI Agent Harness Engineering 安全攻防深度解析:你的智能体如何被欺骗、劫持与利用 关键词 AI Agent安全、Harness工程、Prompt注入、工具劫持、智能体攻防、LLM安全、权限逃逸 摘要 随着AI Agent从概念验证走向大规模产业落地,作为智能体控制平面的Harness层已成为攻防…...

思源宋体TTF完全指南:7种字重免费解决中文排版难题

思源宋体TTF完全指南:7种字重免费解决中文排版难题 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目找不到合适的字体而烦恼吗?无论是网页设计…...

AI Agent交互设计新范式:基于Leader Key的可编程对话流实践

1. 项目概述与核心价值最近在折腾AI智能体(AI Agent)的开发,发现一个挺有意思的现象:很多开发者,包括我自己在内,在初期都会把大量精力花在模型调用、工具链集成这些“硬核”功能上,却常常忽略了…...

朋友学过都说好的家电清洗培训 行业前景与培训内容科普解读

家电清洗培训行业前景随着人们生活水平的提高,家电的普及率越来越高,对家电清洗的需求也日益增长。据相关数据显示,近年来家电清洗市场规模呈现逐年上升的趋势。在城市中,越来越多的家庭开始重视家电的清洁与保养,以延…...

企业出海聘用海外员工该怎么挑选靠谱名义雇主服务商?

很多企业出海初期,都会卡在海外员工聘用这一步:没有海外实体,没法合法签合同、缴社保,想找名义雇主服务商,又怕选到不靠谱的,踩坑又不合规。结合我这几年帮出海企业对接服务商的经验,今天不玩虚…...

Minecraft服务器技能数据自动化管理:mcpskills-cli命令行工具实战指南

1. 项目概述与核心价值 最近在折腾一些Minecraft服务器的自动化管理,发现很多重复性的技能配置、权限同步工作特别耗时。手动去游戏里敲指令,或者对着配置文件一条条改,效率低还容易出错。就在这个当口,我发现了 alibiinformatio…...

BallonsTranslator:3分钟搞定漫画翻译的终极AI辅助工具

BallonsTranslator:3分钟搞定漫画翻译的终极AI辅助工具 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https…...

Mochi语言解析:轻量级编程语言的设计原理与应用实践

1. 项目概述:一个为现代应用而生的轻量级编程语言最近在社区里看到不少朋友在讨论mochilang/mochi这个项目,作为一个对编程语言设计和运行时实现有浓厚兴趣的老码农,我立刻就被吸引住了。简单来说,Mochi 是一个新兴的、以轻量级和…...

使用 QLineF 从 QTransform 提取角度信息

我们在对 QGraphicsItem 进行变换时,QT 提供了很多便捷的方法。但当我们想获取当前变换的角度时却有些困难,因为 QTransform 没有提供获取角度的方法。在文章Qt 从 QTransform 逆向解出 Translate/Scale/Rotate(平移/缩放/旋转)分…...