Выбор ответа Middle Инициализация и нормализация обновлено

Почему в трансформерах LayerNorm

Вопрос

Почему в трансформерах используют LayerNorm (или RMSNorm), а не BatchNorm?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: LayerNorm нормирует каждый токен по его признакам и не зависит от батча и длины. Статистики BatchNorm по батчу шумны при маленьких батчах, плохо дружат с паддингом последовательностей разной длины и авторегрессионной генерацией по одному токену.

Варианты ответа

  1. LayerNorm нормирует каждый токен по его признакам и не зависит от батча и длиныправильный ответ
  2. BatchNorm нельзя применять к векторам токенов, только к картам признаков свёрточных сетей
  3. LayerNorm не имеет обучаемых параметров, поэтому меньше переобучается
  4. BatchNorm медленнее в 10 раз из-за синхронизации статистик между GPU

Разбор

Статистики BatchNorm по батчу шумны при маленьких батчах, плохо дружат с паддингом последовательностей разной длины и авторегрессионной генерацией по одному токену. LayerNorm считает среднее и дисперсию по признакам каждого объекта отдельно, поведение одинаково на обучении и инференсе. RMSNorm ещё проще: делит на корень из среднего квадрата без вычитания среднего.

  • BatchNorm к векторам применим.
  • У LayerNorm есть γ и β.
  • Дело не в скорости.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме