В четвертой статье о реализации vLLM с нуля мы обратим внимание на еще один, казалось бы, простой, но крайне важный компонент архитектуры Transformer: RMSNorm (нормализация по среднему квадрату). Сначала давайте посмотрим, что такое нормализация. Предположим, вы только что сдали финальные экзамены, и результаты по трем предметам вышли: Математика: 120 баллов (максимум 150) Английский: 80 баллов (максимум 100) Физика: 160 баллов (максимум 200) Какой предмет вы сдали лучше всего? Если вы просто сравните 120, 80 и 160, вы придете к выводу, что физика лучше всего. Но на самом деле: все три предмета сданы одинаково хорошо. Математика: 120/150 = 80% Английский: 80/100 = 80% Физика: 160/200 = 80% Это и есть основная идея нормализации: преобразовать данные с разными единицами измерения и диапазонами в единый стандарт для сравнения. Почему нейронным сетям нужна нормализация? Представьте, что вы играете в игру "испорченный телефон". Первый человек говорит "Мне нравятся яблоки", а к десятому человеку это превращается в "Мне нравятся ананасы". Это и есть проблема, с которой сталкиваются глубокие нейронные сети. Каждый слой сети выполняет некоторые вычисления над входными данными, а затем передает результат следующему слою. Проблема в том, что с увеличением количества слоев эти значения становятся все более неконтролируемыми — либо они взрываются, либо исчезают без следа. Как в игре "испорченный телефон", информация постепенно искажается в процессе передачи. Добавление слоя нормализации в модель может снизить вероятность взрыва или исчезновения градиента, что делает процесс обучения модели более стабильным. Нормализационные технологии сначала эволюционировали от BatchNorm к LayerNorm, а затем до RMSNorm, став стандартом для больших моделей. В моей статье я проведу вас через историю эволюции нормализационных технологий, заинтересованные могут ознакомиться с оригиналом.