SwiGLU membagi input feed-forward transformer ke dua jalur proyeksi, menerapkan SiLU pada satu jalur, lalu mengalikan kedua hasil secara elemen per elemen. Proyeksi kedua bukan statistik tambahan: nilainya langsung mengendalikan jalur yang sudah diaktivasi sebelum proyeksi output.
Untuk hidden state x, bentuk struktural yang umum adalah:
g = SiLU(x W_gate)
u = x W_up
h = g * u
y = h W_downBias, orientasi proyeksi, lebar intermediate, dan nama parameter dapat berbeda antar arsitektur. Batas yang mendefinisikan operasi ini adalah perkalian elemen per elemen antara cabang proyeksi nonlinear dan cabang proyeksi lainnya.
Gate bergantung pada input
Blok feed-forward dua proyeksi konvensional dapat digambarkan sebagai:
h = activation(x W_up)
y = h W_downSwiGLU menambahkan satu proyeksi lagi dari input yang sama:
h = SiLU(x W_gate) * (x W_up)Setiap koordinat intermediate bergantung pada dua respons linear terhadap x. Satu respons melewati SiLU; respons lain tetap linear sebelum perkalian. Produk keduanya dapat meredam, memperbesar, membalik tanda, atau menolkan koordinat sesuai nilai yang dihasilkan kedua cabang.
Istilah gate tidak berarti probabilitas. SiLU tidak dibatasi pada [0, 1], dan cabang linear juga tidak memiliki batas untuk input finite tanpa pembatasan. Produk tersebut merupakan interaksi multiplikatif, bukan sakelar biner atau bobot routing ternormalisasi.
SwiGLU adalah varian GLU dengan SiLU pada cabang gate
Keluarga gated linear unit menggabungkan dua cabang proyeksi melalui perkalian elemen per elemen. Variannya berbeda pada fungsi yang diterapkan ke cabang yang lazim disebut gate.
SwiGLU memakai fungsi SiLU, yang juga dapat ditulis sebagai Swish dengan beta satu:
SiLU(z) = z * sigmoid(z)Jika dimasukkan ke bentuk gated:
SwiGLU(x) = SiLU(x W_gate) * (x W_up)Nama SwiGLU menunjukkan bentuk nonlinear pada gate. Nama tersebut tidak menetapkan layout residual transformer, posisi normalisasi, partisi tensor-parallel, atau dimensi intermediate yang persis.
Jumlah parameter bergantung pada lebar intermediate
Blok feed-forward biasa dengan lebar model d dan lebar intermediate m umumnya memiliki dua matriks besar dengan perkiraan jumlah bobot:
P_plain = d*m + m*d = 2*d*mBlok SwiGLU memiliki tiga matriks besar:
P_swiglu = d*m + d*m + m*d = 3*d*mjika ketiganya memakai lebar intermediate m yang sama dan bias tidak digunakan.
Perbandingan itu tidak berarti model SwiGLU harus memiliki bobot feed-forward 50 persen lebih banyak daripada model nongated yang dibandingkan. Arsitektur dapat memilih m yang lebih kecil untuk blok gated. Untuk menyamakan jumlah matriks dominan dengan blok biasa, relasi sederhananya menjadi:
3*d*m_gated ~= 2*d*m_plain
m_gated ~= (2/3) * m_plainCheckpoint nyata dapat membulatkan lebar demi alignment perangkat keras atau memilihnya berdasarkan kriteria arsitektur lain. Konfigurasi checkpoint, bukan nama aktivasi, menentukan jumlah parameter aktual.
Urutan proyeksi merupakan bagian dari semantik checkpoint
Dua proyeksi input tidak dapat dipertukarkan hanya karena shape keduanya sama. SiLU diterapkan ke satu cabang sebelum perkalian:
SiLU(x W_gate) * (x W_up)Menukar matriks yang tersimpan secara umum mengubah fungsi:
SiLU(x W_up) * (x W_gate)Perkalian elemen per elemen memang komutatif, tetapi memindahkan SiLU dari satu nilai proyeksi ke nilai lainnya secara umum tidak mempertahankan fungsi. Konverter model dapat menghasilkan tensor dengan shape benar namun tetap merusak komputasi feed-forward jika pemetaan proyeksi gate dan up tertukar.
Proyeksi output memiliki peran berbeda. Proyeksi ini memetakan representasi intermediate yang sudah digating kembali ke lebar output blok. Memperlakukannya sebagai salah satu dari dua cabang input akan mengubah aliran tensor sekaligus makna checkpoint.
Perkalian mengubah permukaan numerik
Produk intermediate memperkenalkan perilaku numerik yang tidak ada pada satu cabang teraktivasi. Nilai finite besar dari kedua jalur proyeksi dapat menghasilkan produk dengan magnitudo jauh lebih besar, sedangkan nilai kecil pada salah satu jalur dapat meredam koordinat.
Runtime finite-precision dapat melakukan fusion pada proyeksi, SiLU, perkalian, atau operasi di sekitarnya. Fusion dapat mengubah batas rounding dan traffic memori tanpa mengubah graph matematis yang dimaksud. Presisi accumulator, titik casting, dan implementasi kernel tetap menjadi detail runtime yang dapat menghasilkan perbedaan numerik kecil.
SwiGLU sendiri tidak membatasi tensor intermediate. SiLU tumbuh mendekati linear untuk input positif besar, sementara cabang lain bersifat linear. Karena itu, produknya tidak memiliki batas finite yang berlaku untuk semua arsitektur ketika magnitudo input tidak dibatasi.
Tensor parallelism harus mempertahankan alignment cabang
Pada implementasi terdistribusi, proyeksi gate dan up dapat dipartisi ke beberapa perangkat. Perkalian elemen per elemen mengharuskan koordinat intermediate yang bersesuaian dari kedua cabang tetap sejajar.
Runtime dapat menggabungkan kedua proyeksi input menjadi satu operasi matriks yang lebih besar lalu memisahkan outputnya secara logis. Transformasi implementasi tersebut tidak mengubah definisi SwiGLU. Titik pemisahan dan layout bobot tetap harus merekonstruksi tensor gate dan up checkpoint secara tepat.
Posisi komunikasi bergantung pada skema tensor-parallel yang dipilih. SwiGLU sendiri tidak mewajibkan operasi kolektif tertentu. Klaim tentang all-reduce, all-gather, atau volume komunikasi memerlukan layout sharding dan strategi runtime yang konkret.
Blok gated tetap lokal pada setiap token
Pada posisi feed-forward transformer standar, proyeksi bekerja secara independen pada hidden vector setiap token dengan bobot yang sama. SwiGLU mengubah interaksi kanal di dalam transformasi per token tersebut; operasi ini tidak menambahkan komunikasi antartoken.
Attention tetap menjadi komponen yang mencampur informasi antarposisi token pada blok transformer konvensional. Layer feed-forward SwiGLU dapat dievaluasi secara paralel untuk posisi token berbeda setelah hidden state inputnya tersedia.
Batas ini penting saat mengaitkan biaya serving. Kerja attention yang bergantung pada sequence dan kerja feed-forward per token tumbuh melalui dimensi tensor yang berbeda serta dapat memiliki bottleneck perangkat keras yang berbeda. Keberadaan SwiGLU menunjukkan komputasi feed-forward bergating, bukan klaim tentang sublayer yang mendominasi latensi.
Kontrak arsitektural SwiGLU bersifat spesifik: dua proyeksi menerima hidden state yang sama, SiLU mentransformasi cabang gate yang ditentukan, kedua cabang dikalikan per koordinat, lalu proyeksi output meneruskan hasilnya. Lebar intermediate, kebijakan bias, sharding, fusion, dan eksekusi numerik tetap merupakan properti model serta runtime yang konkret.