Senior
39
Pre-layer norm vs post-layer norm: в чём разница, какие где используются и почему?
Answer from AI
sobes.tech AI
Pre-layer norm и post-layer norm — это два варианта расположения слоя нормализации (обычно LayerNorm) в архитектуре трансформеров.
Post-layer norm — классический подход, где нормализация применяется после сложения выходов слоя и входа (residual connection). То есть схема: x + Sublayer(x) -> LayerNorm. Использовался в оригинальной статье Vaswani et al. (2017).
Pre-layer norm — нормализация применяется перед основным слоем, схема: LayerNorm(x) -> Sublayer -> x + output.
Различия и последствия
- Стабильность обучения: Pre-layer norm обычно обеспечивает более стабильное и быстрое обучение, особенно при больших глубинах трансформера. Это связано с тем, что градиенты лучше распространяются через нормализованный вход.
- Градиентный поток: В post-layer norm градиенты могут затухать или взрываться, что усложняет обучение глубоких моделей.
- Использование: Современные большие модели (GPT-3, T5, PaLM) чаще используют pre-layer norm из-за его преимуществ в стабильности и эффективности обучения.
Итог
- Если строите глубокую трансформерную модель, рекомендуется использовать pre-layer norm.
- Post-layer norm проще и был первым, но может требовать дополнительных трюков для стабильности.
# Пример pre-layer norm в псевдокоде
def transformer_block(x):
norm_x = LayerNorm(x)
out = Sublayer(norm_x)
return x + out
# Пример post-layer norm
def transformer_block(x):
out = Sublayer(x)
return LayerNorm(x + out)