- Transformer decoder-only telah menjadi arsitektur standar untuk LLM, tetapi pada konteks panjang performanya terganggu oleh attention noise yang membuat model melewatkan informasi penting dan mengalokasikan perhatian ke token yang tidak relevan
- differential attention membagi query dan key menjadi dua grup untuk membuat dua peta softmax attention, lalu menghitung skor attention akhir dengan mengurangkan peta kedua yang diberi λ yang dapat dipelajari
- DIFF Transformer menunjukkan hasil yang lebih baik daripada Transformer saat ukuran model, token pelatihan, dan panjang konteks diperbesar, dan hanya memerlukan sekitar 65% ukuran model atau token pelatihan untuk mencapai performa serupa
- Menunjukkan keunggulan dalam pemodelan konteks panjang, pencarian informasi inti, mitigasi halusinasi, in-context learning, penalaran matematika, dan pengurangan activation outlier; pada QA dan ringkasan, pengaruh konteks yang tidak relevan juga berkurang
- Karena tata letak keseluruhannya tetap sama dengan Transformer dan hanya mengganti softmax attention, jumlah parameter dan komputasi dapat dipertahankan sambil tetap menggunakan kembali FlashAttention
Masalah attention noise pada Transformer
- Transformer decoder-only adalah arsitektur de facto standar untuk LLM, dan intinya adalah attention mechanism yang memberi bobot pada pentingnya token dalam urutan dengan softmax
- LLM kesulitan menemukan informasi inti secara akurat dari konteks, terutama ketika konteks yang tidak relevan makin banyak sehingga petunjuk jawaban mudah tertutup
- Dalam contoh yang harus menemukan jawaban yang disisipkan di tengah tumpukan dokumen, Transformer cenderung memberi attention score kecil pada jawaban dan mendistribusikan score berlebihan ke konteks yang tidak relevan
- Attention score yang tidak bisa diabaikan dan dialokasikan ke konteks yang tidak relevan inilah yang berperan sebagai attention noise
- Contoh Multi-Needle Retrieval pada Figure 1 menunjukkan akurasi Transformer dan Differential Transformer masing-masing 55% dan 85%
Cara kerja differential attention
- DIFF Transformer adalah arsitektur dasar untuk sequence modeling dan LLM yang mempertahankan macro layout Transformer yang ada, tetapi mengganti softmax attention biasa dengan differential attention
- Dari input
X, query, key, dan value diproyeksikan, tetapi query dan key dibagi menjadi dua grupQ1, Q2, K1, K2, sedangkan value tetapV - Keluaran attention dihitung dari selisih dua peta softmax attention
DiffAttn(X) = (softmax(Q1K1^T / √d) − λ softmax(Q2K2^T / √d))V- Struktur ini menghapus common noise dengan mengurangkan peta attention kedua dari peta attention pertama
λadalah scalar yang dapat dipelajari, dan direparameterisasi seperti berikut untuk menyesuaikan dinamika pembelajaranλ = exp(λq1 · λk1) − exp(λq2 · λk2) + λinit- Dalam eksperimen dasar digunakan
λinit = 0.8 − 0.6 × exp(−0.3 · (l − 1)) - Pendekatan memakai
λinityang sama untuk semua layer, misalnya0.8, juga ditinjau, dan pada ablation performanya terlihat cukup tangguh terhadap perbedaan strategi inisialisasi
- Pendekatan ini mirip dengan ide differential amplifier dan headphone peredam bising yang menghilangkan common-mode noise melalui selisih dua sinyal
- Naderi et al. membuktikan bahwa differential attention membuat spectral distribution dari attention matrix lebih seimbang sehingga efektif mengatasi rank collapse
Struktur multi-head dan arsitektur keseluruhan
- Multi-head differential attention menggunakan projection matrix yang berbeda untuk setiap head, dan dalam layer yang sama scalar λ dibagikan antar-head
- Keluaran tiap head secara independen dikenai RMSNorm lalu dikalikan dengan
(1 − λinit), kemudian head-head tersebut digabungkan pada dimensi channel dan diteruskan ke output projectionWO - Notasi GroupNorm pada Figure 2 menekankan bahwa normalisasi diterapkan secara independen pada setiap head
- differential attention cenderung memiliki pola yang lebih sparse sehingga informasi statistik antar-head lebih beragam
- normalisasi per head memperbaiki statistik gradien dengan menormalkan tiap head sebelum penggabungan
- Seluruh layer DIFF Transformer terdiri dari dua modul
MultiHead(LN(Xl)) + XlSwiGLU(LN(Yl)) + Yl
- Secara struktural digunakan pre-RMSNorm dan SwiGLU, mengikuti perbaikan pada keluarga LLaMA
Efisiensi dan stabilitas pelatihan
- differential attention dapat langsung menggunakan kembali FlashAttention, sehingga efisiensi model dapat ditingkatkan secara signifikan
- Jumlah head ditetapkan sebagai
h = dmodel / 2d, dengandsama seperti dimensi head pada Transformer - Pengaturan ini dimaksudkan agar jumlah parameter dan kompleksitas komputasi tetap setara dengan Transformer
- Setelah normalisasi head, digunakan multiplier tetap
(1 − λinit)untuk menyelaraskan aliran gradien dengan Transformer - Appendix G menunjukkan bahwa keseluruhan gradient flow tetap mirip dengan Transformer, sehingga hyperparameter serupa dapat diwariskan dan stabilitas pelatihan terjaga
Hasil eksperimen dan dampak penerapan
- Eksperimen language modeling memperbesar DIFF Transformer dari sisi parameter count, training tokens, dan context length
- Pada scaling curve, DIFF Transformer hanya memerlukan sekitar 65% ukuran model atau token pelatihan untuk mencapai performa language modeling yang mirip dengan Transformer
- Pada downstream task juga menunjukkan performa yang lebih baik daripada Transformer, dan pada evaluasi long-sequence mampu memanfaatkan konteks tambahan dengan efektif saat konteks makin panjang
- Dalam pencarian informasi inti, model ini menunjukkan pola memberi attention score lebih tinggi pada span jawaban dan score lebih rendah pada konteks yang tidak relevan
- Pada QA dan text summarization, model menjadi kurang terdistraksi oleh konteks yang tidak relevan sehingga membantu mengurangi hallucination
- Dalam in-context learning, selain meningkatkan akurasi, model ini juga lebih tangguh terhadap order permutation yang selama ini dianggap sebagai masalah ketahanan kronis
- Hasil pengurangan activation outlier membuka peluang baru untuk quantization
1 komentar
Komentar Hacker News
Rasanya intuisi utamanya terlewat di sini. Saya paham masalah bahwa softmax attention biasa sulit memberi perhatian mendekati 0 pada hal yang tidak relevan, dan saya juga paham bahwa dengan struktur pengurangan, bobot attention yang tepat 0 atau hampir 0 bisa dibuat tanpa nilai aktivasi pencilan
Namun struktur ini tampaknya juga akan mudah menghasilkan bobot attention negatif, yang terlihat sama seperti memberi perhatian positif pada negasi vektor nilai. Secara intuitif, rasanya sulit menyeimbangkan agar semua hal yang tidak penting tetap berada di sekitar 0. Meski begitu, Figure 1 menunjukkan bahwa ini bekerja dengan baik, jadi saya tidak meragukan kemungkinannya; hanya saja saya belum bisa membayangkan secara jelas bagaimana jaringan melakukannya secara konkret
exp()/1+∑exp()Poin kuncinya adalah adanya tambahan 1 pada penyebut. Pada limit negatif, softmax bisa menjadi 0, bukan sekadar suatu epsilon. Menambahkan nilai 0 tambahan ke
xjuga bisa memberi efek yang sama. Kekurangannya, untuk memperbaiki ini model harus dilatih ulang dari awalJika melihat gambar bobot attention pertama, sebenarnya ada skor-skor negatif di bagian noise. Meski begitu, perhatian terhadap bagian itu memang sudah sangat kecil. Peta attention kedua hanya perlu memprediksi noise dari peta pertama, dan karena punya akses penuh ke input pertama, ini pekerjaan yang bisa dilakukan cukup akurat
Kembali ke analogi dunia nyata dalam makalah, headphone peredam bising punya akses ke suara yang terdengar oleh telinga melalui mikrofon, sehingga bisa menghasilkan sinyal pembatalan yang akurat. Demikian pula, peta attention kedua tahu apa yang masuk ke peta pertama, sehingga bisa menghasilkan sinyal pembatalan yang sesuai. Tidak sempurna, tetapi headphone peredam bising juga tidak sempurna, namun tetap bisa mencapai 99%, cukup untuk meningkatkan performa
Pruning sudah cukup mapan dalam literatur sebagai cara yang sangat baik untuk mengurangi jumlah parameter, kira-kira hingga 40%. Model sebenarnya mungkin tidak bekerja persis seperti itu, tetapi tidak mengejutkan jika pada akhirnya ia sekadar mendekati Transformer biasa
Sangat cerdas. Saya suka pekerjaan detail seperti ini, dan perubahannya juga kecil sehingga tampaknya mudah diterapkan orang lain. Bagus sekali
Namun kalimat terakhir di bagian pembuka "2 Differential Transformer" agak membuat khawatir. Mereka mengatakan menggunakan perbaikan dari makalah-makalah sebelumnya, tetapi dari konteks tata bahasanya tidak jelas apakah perbaikan itu dimasukkan baik ke Transformer biasa maupun diff Transformer. Jika tidak, perbandingannya menjadi kabur. Ungkapan "main difference" pada kalimat tepat sebelumnya membuat alarm saya menyala
Tentu saja, peneliti yang beriktikad baik mungkin sudah menyadari ini sehingga merasa tidak perlu memperjelasnya. Namun dalam sebagian riset terpublikasi di bidang ini, kita tidak pernah bisa terlalu berhati-hati
Ini mengingatkan saya pada arsitektur MoE; di dunia itu, kita memilih model kecil terbaik untuk menangani sebagian atau seluruh pekerjaan inferensi. Saya penasaran apakah MoE juga memperoleh keuntungan serupa karena Transformer dipaksa membedakan kemungkinan-kemungkinan alternatif
Bagaimanapun, jika angkanya bertahan, tampaknya ini akan diadopsi luas. Seperti yang dikatakan, secara praktis tampak tidak punya kekurangan dan terlihat mudah direproduksi
Seperti kebanyakan hal di dunia baru machine learning ini, saya benar-benar bingung mengapa ini bisa bekerja
Analogi headphone peredam bising memang membantu, tetapi dalam kasus itu kita tahu jelas mana sinyal dan mana noise. Kalau di sini juga sudah tahu, saya tidak mengerti mengapa perlu melakukan pekerjaan peredaman noise sejak awal
Yang lebih buruk, gradien untuk nilai attention yang rendah menjadi sangat kecil, sehingga diperlukan banyak pembaruan bobot untuk membalikkan kesalahan semacam itu. Sebaliknya, jika output dari dua softmax dikurangkan, model dapat memprediksi bobot yang tepat 0 untuk sebagian nilai, sambil tetap mempertahankan aliran gradien yang masuk akal
Jadi model sebenarnya sudah tahu mana yang noise, tetapi satu softmax membuatnya sulit dikecualikan. Selain itu, pada satu softmax, output semua head dipaksa tetap berada di dalam convex hull dari vektor-vektor nilai, sedangkan pada varian ini setiap head dapat memilih lambda-nya sendiri dan memindahkan rentang output ke luar convex hull yang telah ditentukan oleh nilai-nilai tersebut. Karena itu daya ekspresi model secara keseluruhan meningkat
Contoh yang lebih baik adalah sinyal diferensial yang digunakan dalam audio profesional dan banyak protokol sinyal digital seperti Ethernet, HDMI, dan USB. Alih-alih memakai satu kabel yang direferensikan ke ground, sinyal dikirim sebagai selisih antara dua kabel. Kedua kabel membawa sinyal yang sama dengan polaritas berlawanan, dan karena berjalan berdampingan, noise eksternal diterapkan sama pada keduanya
Tegangan bisa berubah, tetapi selisih tegangan antara kedua kabel tetap sama. Di sisi penerima, ketika kedua tegangan dikurangkan, noise-nya begitu saja saling meniadakan
Cara sederhana untuk melakukan ini adalah menghapus softmax atau memakai sigmoid, tetapi dalam praktiknya softmax tampaknya bekerja lebih baik
Secara sederhana, RoPE adalah strategi modern yang memberi model informasi tentang seberapa jauh jarak query dan key saat melakukan attention. Ini strategi terbaik yang ada saat ini, tetapi punya kelemahan besar: beberapa koneksi antara token yang berjauhan dibuat jauh lebih kuat daripada yang diinginkan. Xpos (https://arxiv.org/pdf/2212.10554) juga merupakan makalah Microsoft yang membahas masalah RoPE, dan pada halaman 4 Figure 1 Anda bisa melihat interpretasi visual kekuatan attention berbentuk gelombang sinus. Awalnya yang diinginkan adalah hal yang mulus
Saya melihat alasan besar Differential Transformer bekerja sangat baik terutama pada sekuens panjang adalah karena ketika
q1danq2sama-sama tidak cocok dengan suatu token, kekuatan relatif RoPE tetap memiliki nilai yang sama, sehingga noise saling meniadakan. Hanya kecocokan yang dimaksud yang tersisa, meski ada biaya berupa pelemahan tertentu pada nilai yang semula dibawa RoPETentu saja ini hanya hipotesis. Ini bisa dengan mudah diverifikasi dengan eksperimen membandingkan keduanya terhadap baseline yang menggunakan alibi attention (https://arxiv.org/pdf/2108.12409). alibi punya trade-off lain yang tidak dapat dikurangi oleh cara ini, tetapi tetap saja hasilnya sangat menarik
Intuisi mengapa ini bekerja tampaknya karena ia mengubah lanskap gradient descent menjadi sedikit lebih ramah, sehingga lebih mudah dipelajari dalam langkah-langkah kecil. Sebab kini jaringan itu sendiri sejak awal dirancang secara eksplisit sesuai gagasan bahwa prediksinya akan memiliki banyak kesalahan pada awalnya dan membaik seiring waktu
Jika saya memahami dengan benar "Differential attention takes the difference between two softmax attention functions to eliminate attention noise", struktur ini tampak seperti trade-off: memakai memori attention 2 kali lipat untuk mendapatkan model berkualitas lebih tinggi, atau parameter lebih sedikit pada kualitas yang serupa
Melihat bagian "6.8B-size DIFF Transformer achieves a validation loss comparable to 11B-size Transformer, requiring only 62.2% of parameters", muncul beberapa pertanyaan. Jika parameternya hanya 60%, apakah itu mengimbangi ruang attention yang dua kali lipat sehingga karakteristik memorinya mirip dengan Transformer tradisional, dan apakah trade-off itu berbeda secara mencolok antara pelatihan dan inferensi
Di makalah tertulis, "We set the number of heads h = dmodel/2d, where d is equal to the head dimension of Transformer. So we can align the parameter counts and computational complexity." Dengan kata lain, mereka mengompensasinya dengan mengurangi jumlah attention head per layer menjadi setengah
Saya penasaran ada cerita apa di balik rumus “We empirically find that the setting λᵢₙᵢₜ = 0.8 − 0.6 × exp(−0.3 · (l − 1)) works well in practice”
lkecil, lebih kecil daripada pada layer belakang. Masuk akal. Sebelum menyimpulkan beberapa posisi yang benar-benar perlu dilihat, kita mungkin ingin memberi sedikit perhatian pada semuanyaNamun sepertinya penulis paper tidak membahas pilihan ini secara terpisah
Inti yang awalnya tidak saya pahami adalah apa yang terjadi jika dua grup atensi mempelajari hal yang sama. Karena mask atensi saling dikurangkan, jika keduanya mengeluarkan nilai yang mirip maka atensi total turun menjadi 0 dan loss membesar
Jadi satu-satunya cara untuk mengurangi loss adalah belajar memperhatikan hal-hal yang berbeda. Salah satu strategi paling sederhana yang bisa mereka pelajari adalah, seperti klaim paper ini, satu grup berfokus pada konteks yang relevan dan grup lain pada konteks yang tidak relevan. Dengan begitu satu grup mempelajari noise, dan grup lainnya mempelajari sinyal. Kenyataannya tentu tidak sebersih itu, tetapi ini berguna sebagai penyederhanaan untuk memahami
Ini masuk akal jika mempertimbangkan bahwa bila kedua salinan identik, output softmax juga identik sehingga selisihnya menjadi 0 di semua tempat. Namun jika yang dikurangkan adalah salinan yang diskalakan, proses normalisasi selisih tampaknya menonjolkan nilai sinyal lebih besar daripada noise, sehingga sinyal terlihat lebih menonjol dibanding sebelum normalisasi
Seolah-olah satu attention head menaikkan bobot ketika terkejut oleh apa yang dipelajari head lain, dan ketika keduanya menemukan hal yang sama, itu dianggap tidak terlalu mengejutkan sehingga bobotnya diturunkan
Harus diakui, “keterkejutan” menempati area yang cukup besar dalam basis pengetahuan saya[1][2][3]. Sebagai emosi subjektif sekaligus fungsi adaptif pikiran, ini adalah salah satu sistem adaptif paling kompleks yang kita ketahui
[1] https://plus.maths.org/content/information-surprise
[2] https://blakeelias.name/papers/Multi-Agent-Cooperation-Intri...
[3] https://complexity.simplecast.com/episodes/81/transcript
Saya penasaran apa yang hilang di sini. Pasti ada trade-off
Saya juga penasaran apakah ini berdampak pada kreativitas atau kemampuan interpolasi antar-konsep. Halusinasi dan kreativitas tampaknya cukup berkaitan. Saya memahami halusinasi sebagai sesuatu yang menyimpang dari ruang interpolasi yang dirasakan manusia sebagai tepat
Tentu saja kesalahan kadang bisa memberi inspirasi, tetapi kreativitas jauh lebih dari sekadar kesalahan
Model bahasa seperti ini adalah prediktor token berikutnya. Token berikutnya diprediksi dengan sampling dari ruang probabilitas yang dikeluarkan model. Proses sampling itu bisa nondeterministik
Halusinasi adalah ketika hasil sampling tersebut menghasilkan token-token yang membentuk kalimat yang salah atau tidak dimaksudkan. Bisa saja semua output model dianggap halusinasi, tetapi kita melatih model agar mengeluarkan ruang yang memiliki probabilitas lebih tinggi untuk menghalusinasikan apa yang kita inginkan. Kalau tidak, ia hanya mengeluarkan noise tak bermakna
“Halusinasi” adalah kata yang benar-benar buruk untuk menjelaskan hal yang dimaksud
Saya penasaran seberapa besar nilai di sini berasal dari meniadakan noise posisi yang dibuat RoPE. Selain model RoPE di sini, saya juga ingin melihat tabel yang membandingkan versi alibi dan baseline alibi
Meski begitu, ini peningkatan yang luar biasa, dan selamat untuk para penelitinya
Apakah yang terjadi di sini adalah softmax tidak bisa mendorong nilai menjadi 0, tetapi dengan mengurangkan dua peta softmax bisa menghasilkan output 0?
Ini masalah yang bagus untuk dipecahkan, tetapi menurut saya pendekatannya keliru
Untuk mengetahui apa yang diperhatikan dan keseluruhan konteks, ini harus dilakukan secara hierarkis. Jika vektor diferensial dihitung dari input yang sama dengan vektor atensi, saya tidak tahu bagaimana ia bisa tahu cara memodifikasi vektor atensi dengan benar