大模型关于归一化会问的面试问题
时间: 2025-06-29 13:07:53 浏览: 5
### 大模型中的归一化常见面试问题及答案
#### 层归一化(Layer Normalization)的作用是什么?
层归一化是一种用于稳定和加速神经网络训练的技术。其主要作用是在每一层的激活函数之前对数据进行标准化处理,从而减少内部协变量偏移现象。这有助于提高梯度传播效率并加快收敛速度[^1]。
```python
import torch.nn as nn
class Model(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(Model, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.ln = nn.LayerNorm(hidden_size) # Layer normalization layer
def forward(self, x):
out = self.fc1(x)
out = self.ln(out) # Apply layer normalization before activation function
return out
```
#### 批量归一化(Batch Normalization)与层归一化有何不同?
批量归一化是对整个批次的数据进行统计计算均值和方差来进行规范化操作;而层归一则只关注单一样本,在该样本特征维度上做同样的事情。因此BN依赖于batch size大小以及mini-batch内样本分布情况,LN则不受此影响更适用于RNN/LSTM等序列建模任务中[^2]。
#### 在大规模预训练语言模型里为什么倾向于采用层归一化而不是批量归一化?
由于大模型通常具有非常深的架构并且可能涉及长程依赖关系捕捉的任务特性,所以更加推荐使用层归一化来替代传统的批处理方式。因为前者能够更好地保持每一步骤间的一致性和稳定性,这对于防止梯度消失/爆炸至关重要。此外,随着Transformer类结构成为主流,自注意力机制使得各位置之间相互关联紧密,此时再利用基于batch统计数据的方法反而可能导致性能下降甚至不稳定的结果出现[^3]。
阅读全文
相关推荐


















