У четвертій статті, присвяченій впровадженню vLLM з нуля, ми звернемо увагу на ще один, здавалося б, простий, але важливий компонент архітектури Transformer: RMSNorm (нормалізація середнього кореневого квадрата). Давайте спочатку розберемося, що таке нормалізація, припустимо, ви тільки що закінчили випускний іспит і виходять результати трьох курсів: Математика: 120 з 150 Англійська: 80 зі 100 Фізика: 160 з 200 Який курс найкращий? Якщо ви порівняєте безпосередньо 120, 80, 160, то прийдете до найкращого висновку у фізиці. Але реальна ситуація така, що ці три курси насправді однаково хороші. Математика: 120/150 = 80% Англійська: 80/100 = 80% Фізичні: 160/200 = 80% В цьому і полягає основна ідея нормалізації: перетворення даних різної розмірності і різних діапазонів в єдиний стандарт для порівняння. Чому нейронні мережі потрібно нормалізувати? Уявіть, що ви граєте в гру з обміном повідомленнями. Перша особа сказала «Я люблю яблука», а коли це перейшло до десятої особи, це стало «Мені подобається ананас». Саме з цією проблемою стикаються глибокі нейронні мережі. Кожен шар мережі виконує певні обчислення на вході, а потім передає результати на наступний рівень. Проблема в тому, що в міру збільшення числа шарів ці значення стають все більш неконтрольованими - або вибухають, або безслідно зникають. Подібно до гри в обмін повідомленнями, інформація поступово спотворюється під час передачі. Додавання в модель шару нормалізації може знизити ймовірність градієнтного вибуху або зникнення, а процес навчання моделі стає більш стабільним. Технологія нормалізації еволюціонувала від BatchNorm до LayerNorm і, нарешті, до RMSNorm, ставши стандартною конфігурацією для великих моделей. Моя стаття введе вас в історію еволюції технології нормалізації, якщо вам цікаво, ви можете перевірити оригінальну статтю.