归一化层的双重身份:为什么BatchNorm在训练和推理时判若两人

2017年,一个深度学习团队在部署图像分类模型时遇到了诡异的现象:模型在验证集上的准确率比训练时低了近5个百分点。他们检查了数据预处理、超参数设置、模型架构,一切看起来都正常。最后,一位细心的工程师发现了一个被忽视的细节——在验证循环中,他们忘记了调用model.eval()。 ...

16 min · 7741 words

Layer Normalization的可学习参数:为什么gamma和beta正在从大模型中消失

Layer Normalization的可学习参数:为什么gamma和beta正在从大模型中消失 2016年,Jimmy Lei Ba、Jamie Ryan Kiros和Geoffrey Hinton在论文《Layer Normalization》中提出了一个看似简单的设计:在归一化操作后添加两个可学习参数gamma和beta。九年后的今天,LLaMA、Mistral、Gemma等主流大模型都在悄悄移除这些参数——或者至少移除其中一部分。这个趋势背后隐藏着怎样的技术逻辑? ...

13 min · 6440 words

大模型的归一化层:从BatchNorm到RMSNorm的十年技术演进

2015年,Sergey Ioffe和Christian Szegedy在ICML上发表了一篇论文,提出了Batch Normalization。这篇论文后来成为深度学习领域被引用最多的工作之一。但很少有人注意到,这项最初为计算机视觉设计的技术,在自然语言处理领域却"水土不服"——Transformer选择了完全不同的Layer Normalization。 ...

16 min · 7939 words

Transformer为何选择LayerNorm而不是BatchNorm:从序列数据特性到梯度稳定性的深度解析

2015年,Sergey Ioffe和Christian Szegedy在论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》中提出了批归一化(Batch Normalization)。这项技术在ImageNet分类任务上将训练步数减少了14倍,迅速成为计算机视觉领域的标配。然而,当Transformer架构在2017年横空出世时,论文作者们却选择了另一种归一化方式——层归一化(Layer Normalization)。这个选择并非偶然,背后隐藏着NLP数据与CV数据的本质差异,以及深度网络训练稳定性的深刻洞见。 ...

11 min · 5118 words

一个字符有几张脸?Unicode的三十五年编码困境

在Stack Overflow上,一个反复出现的问题困扰着无数开发者:为什么JavaScript中"🤦🏼‍♂️".length的结果是7,而不是1? ...

14 min · 6833 words