Layer normalisasi dapat terlihat saling menggantikan ketika bentuk output-nya serupa, tetapi invariansinya tidak sama. RMSNorm menskalakan ulang vektor aktivasi menggunakan root mean square tanpa terlebih dahulu mengurangi nilai rata-rata vektor. Layer normalization melakukan centering pada vektor, lalu menskalakannya menggunakan varians.
Tidak adanya operasi centering merupakan perbedaan utamanya. Hal ini mengubah transformasi mana pada vektor aktivasi yang hilang setelah normalisasi dan mana yang tetap terlihat oleh bagian jaringan berikutnya.
Kedua operasi menormalisasi besaran yang berbeda
Untuk vektor aktivasi x dengan d komponen, LayerNorm menghitung mean dan varians pada dimensi yang dinormalisasi:
mu = (1 / d) * sum_i x_i
var = (1 / d) * sum_i (x_i - mu)^2
LayerNorm(x)_i = gamma_i * (x_i - mu) / sqrt(var + eps) + beta_iRMSNorm menggunakan root mean square:
rms = sqrt((1 / d) * sum_i x_i^2 + eps)
RMSNorm(x)_i = gamma_i * x_i / rmsEkspresi ini menunjukkan lebih dari sekadar perbedaan aritmetika. LayerNorm menghilangkan komponen yang dibagi sama oleh semua koordinat melalui pengurangan mu. RMSNorm mempertahankan komponen tersebut pada arah vektor yang dinormalisasi, walaupun magnitudonya dipengaruhi faktor rescaling bersama.
Detail implementasi dapat berbeda, misalnya penempatan dan tipe numerik eps, presisi parameter, atau keberadaan additive bias. Mekanisme utama RMSNorm tetap rescaling berbasis RMS tanpa pengurangan mean.
Centering menentukan invariansi terhadap pergeseran
Pertimbangkan penambahan skalar c yang sama ke setiap komponen vektor aktivasi:
x' = x + c * 1Dengan mengabaikan detail numerik dari eps, LayerNorm menghasilkan nilai terpusat yang sama untuk x dan x'. Konstanta tambahan juga menggeser mean sebesar c, sehingga pengurangan mean menghilangkannya.
RMSNorm tidak memiliki invariansi tersebut. Penambahan c mengubah vektor sekaligus root mean square-nya. Hasil normalisasi umumnya menunjuk ke arah yang berbeda dari hasil untuk vektor awal.
Sifat ini penting saat mempertimbangkan substitusi. Mengganti LayerNorm dengan RMSNorm bukan sekadar mengurangi beberapa operasi aritmetika dari transformasi yang ekuivalen. Jaringan menerima operator normalisasi dengan perilaku berbeda terhadap pergeseran aditif.
Keduanya merespons rescaling positif secara terprediksi
Jika setiap komponen dikalikan skalar positif a, kedua bentuk normalisasi sebagian besar membatalkan skala tersebut ketika eps dapat diabaikan dibanding magnitudo aktivasi.
Untuk RMSNorm,
rms(a * x) = a * rms(x)untuk a positif ketika stabilizing term dihilangkan dari aljabar. Pembagian a * x dengan a * rms(x) mengembalikan vektor ternormalisasi yang sama. LayerNorm memiliki pembatalan skala serupa setelah centering.
eps yang bernilai hingga membuat invariansi skala eksak gagal di dekat magnitudo aktivasi yang sangat kecil karena konstanta tersebut tidak ikut diskalakan bersama input. Karena itu, idealisasi matematis perlu dibedakan dari perilaku implementasi di sekitar nol.
Skala negatif juga menimbulkan pembalikan tanda. Normalisasi membatalkan magnitudo skalar tetapi tidak menghapus tandanya, sehingga -x dipetakan ke negatif dari x yang dinormalisasi sebelum parameter affine diperhitungkan.
RMS bukan standard deviation tanpa pengurangan
Root mean square dan standard deviation hanya sama ketika mean vektor bernilai nol. Hubungannya dapat ditulis sebagai
mean(x^2) = variance(x) + mean(x)^2sehingga
rms(x)^2 = variance(x) + mean(x)^2ketika menggunakan definisi bergaya populasi yang bersesuaian dan mengabaikan eps.
Vektor dengan mean nonzero yang besar dapat memiliki RMS besar meskipun komponennya hanya sedikit bervariasi di sekitar mean tersebut. RMSNorm akan membaginya dengan nilai yang lebih besar. LayerNorm terlebih dahulu menghapus mean dan mendasarkan skalanya pada variasi yang tersisa.
Sebagai contoh, bandingkan
x = [9, 10, 11]dengan
y = [-1, 0, 1]Kedua vektor berbeda dengan pergeseran aditif 10. Nilai setelah centering identik, sehingga LayerNorm memperlakukannya sama sebelum parameter affine. Nilai RMS keduanya sangat berbeda, sehingga RMSNorm tidak memperlakukannya sama.
Parameter affine tidak mengembalikan invariansi yang hilang
Layer normalisasi umumnya memiliki scale gamma per koordinat yang dapat dilatih. LayerNorm juga lazim memiliki parameter aditif beta; API RMSNorm dapat tidak menyediakan additive bias.
Parameter ini bekerja setelah kalkulasi normalisasi yang bergantung pada sampel. beta tetap tidak dapat mereproduksi pengurangan mean input yang berbeda untuk setiap vektor aktivasi. Demikian pula, gamma tetap tidak dapat mengubah normalisasi berbasis RMS menjadi normalisasi berbasis varians untuk input arbitrer.
Hal ini penting ketika membaca definisi model. Jumlah parameter yang mirip atau bentuk tensor yang identik tidak berarti kedua layer menerapkan fungsi yang sama. Statistik yang bergantung pada sampel merupakan bagian dari operasi.
Penempatan pada residual block mengubah jalur sinyal di sekitarnya
Arsitektur transformer dapat menempatkan normalisasi sebelum sublayer atau setelah residual addition. Pilihan arsitektural ini terpisah dari pemilihan RMSNorm atau LayerNorm.
Blok pre-normalized dapat digambarkan sebagai
h_next = h + F(Norm(h))sedangkan bentuk post-normalized dapat digambarkan sebagai
h_next = Norm(h + F(h))Mengubah Norm mengubah transformasi pada lokasi tersebut, tetapi tidak mengubah satu susunan residual menjadi susunan lainnya. Perbandingan perlu mempertahankan placement yang sama jika tujuannya mengisolasi pengaruh aturan normalisasi.
Pemisahan yang sama berlaku pada detail lain di sekitar blok, termasuk residual scaling, implementasi attention, dan struktur feed-forward. RMSNorm merupakan satu komponen, bukan desain blok lengkap.
Aritmetika yang lebih sedikit tidak menjamin latency end-to-end lebih rendah
RMSNorm menghindari penghitungan mean eksplisit dan tidak memerlukan kalkulasi centered variance yang digunakan LayerNorm. Pada tingkat operasi, ini mengurangi pekerjaan.
Runtime end-to-end merupakan klaim terpisah. Kernel fusion, memory traffic, bentuk tensor, hardware, presisi, implementasi framework, dan operasi di sekitarnya dapat mendominasi perbedaan terukur. Model yang memakai RMSNorm tidak seharusnya dinyatakan memiliki keuntungan latency tertentu tanpa pengukuran pada execution path yang relevan.
Perbedaan ini penting bagi developer yang memilih kernel. Jumlah operasi matematis dapat memotivasi pilihan implementasi, tetapi tidak menggantikan profiling.
Substitusi memerlukan bukti pada tingkat model
RMSNorm dan LayerNorm memiliki peran serupa: keduanya mengendalikan skala aktivasi dengan statistik yang dihitung dari vektor aktivasi saat ini. Keduanya berbeda pada statistik yang digunakan dan perlakuan terhadap komponen aditif bersama.
Karena itu, RMSNorm adalah aturan normalisasi yang berbeda, bukan ekuivalen matematis yang dapat langsung menggantikan LayerNorm. Bobot model yang sudah ada dioptimalkan dengan aturan tertentu, sehingga mengganti layer setelah training mengubah fungsi yang direpresentasikan jaringan. Apakah perubahan tersebut dapat diterima bergantung pada perilaku model yang diukur, bukan hanya kompatibilitas tensor.
Untuk pekerjaan implementasi, batas yang paling berguna sederhana: RMSNorm mempertahankan informasi tentang pergeseran aditif yang dihapus LayerNorm, sementara keduanya membatasi skala aktivasi melalui normalisasi yang bergantung pada sampel. Perbedaan itu perlu tetap eksplisit saat membandingkan arsitektur, port, dan kernel teroptimasi.