- decoder-only Transformer, LLM’lerin standart mimarisi haline geldi; ancak uzun bağlamlarda kritik bilgileri kaçırıp alakasız token’lara dikkat dağıtan attention gürültüsü performansı sarsıyor
- differential attention, query ve key’i iki gruba ayırıp iki softmax attention map oluşturduktan sonra, öğrenilebilir λ uygulanmış ikinci haritayı çıkararak nihai attention score’unu hesaplıyor
- DIFF Transformer, model boyutu, eğitim token’ları ve bağlam uzunluğunu büyüten deneylerde Transformer’dan daha iyi sonuçlar gösterdi; benzer performans için gereken model boyutu veya eğitim token’ı yaklaşık %65 düzeyinde kaldı
- Uzun bağlam modelleme, kritik bilgi erişimi, halüsinasyon azaltma, in-context learning, matematiksel akıl yürütme ve activation outlier azaltmada avantaj gösterirken; QA ve özetlemede alakasız bağlamın etkisini azaltıyor
- Genel yerleşimi Transformer ile aynı tutup yalnızca softmax attention’ı değiştirdiği için, parametre sayısı ve hesaplama maliyeti korunurken FlashAttention da yeniden kullanılabiliyor
Transformer’ın attention gürültüsü sorunu
- decoder-only Transformer, LLM’lerin fiilî standart mimarisidir ve merkezinde, dizi içindeki token önemini softmax ile ağırlıklandıran attention mechanism bulunur
- LLM’ler bağlam içindeki kritik bilgiyi doğru biçimde bulmakta zorlanır; özellikle alakasız bağlam arttıkça doğru cevabın ipuçları daha kolay gömülür
- Belge yığınının ortasına eklenmiş doğru cevabın bulunması gereken örneklerde, Transformer doğru cevaba düşük attention score verirken alakasız bağlama aşırı score dağıtma eğilimi gösterir
- Alakasız bağlama dağıtılan ve göz ardı edilmesi zor bu attention score’lar attention noise olarak işlev görür
- Figure 1’deki Multi-Needle Retrieval örneği, Transformer ve Differential Transformer doğruluğunu sırasıyla %55 ve %85 olarak gösterir
Differential attention nasıl çalışır
- DIFF Transformer, sequence modeling ve LLM’ler için temel bir mimaridir; mevcut Transformer’ın makro yerleşimini korur ve standart softmax attention’ı differential attention ile değiştirir
- Girdi
Xüzerinden query, key ve value projekte edilir; ancak query ve key,Q1, Q2, K1, K2olmak üzere iki gruba ayrılır, value iseVolarak kalır - attention çıktısı, iki softmax attention map’in farkı olarak hesaplanır
DiffAttn(X) = (softmax(Q1K1^T / √d) − λ softmax(Q2K2^T / √d))V- Yapı, ilk attention map’ten ikinci attention map’i çıkararak ortak gürültüyü temizler
λöğrenilebilir bir scalar’dır ve öğrenme dinamiklerini hizalamak için şu şekilde yeniden parametrelenirλ = exp(λq1 · λk1) − exp(λq2 · λk2) + λinit- Temel deneylerde
λinit = 0.8 − 0.6 × exp(−0.3 · (l − 1))kullanılır - Tüm katmanlarda aynı
λinit, örneğin0.8, kullanma yaklaşımı da incelenmiş ve ablation çalışmalarında başlatma stratejisindeki farklara karşı görece dayanıklı performans görülmüştür
- Bu yaklaşım, iki sinyalin farkıyla common-mode noise’u kaldıran differential amplifier ve gürültü engelleyici kulaklıkların fikrine benzer
- Naderi ve arkadaşları, differential attention’ın attention matrix’in spektral dağılımını daha dengeli hale getirerek rank collapse sorununu etkili biçimde çözdüğünü kanıtladı
Multi-head yapı ve genel mimari
- multi-head differential attention, her head için farklı projection matrix kullanır; aynı katman içinde scalar λ, head’ler arasında paylaşılır
- Her head çıktısına bağımsız olarak RMSNorm uygulanır, ardından
(1 − λinit)ile çarpılır; sonra head’ler channel dimension boyunca concatenate edilip çıktı projeksiyonuWOüzerinden geçirilir - Figure 2’deki GroupNorm gösterimi, her head’e bağımsız normalization uygulandığını vurgular
- differential attention daha sparse örüntüler gösterme eğilimindedir; bu yüzden head’ler arası istatistiksel bilgi daha çeşitlidir
- head bazlı normalization, concatenate öncesi her head’i normalize ederek gradient istatistiklerini iyileştirir
- Tüm DIFF Transformer katmanı iki modülden oluşur
MultiHead(LN(Xl)) + XlSwiGLU(LN(Yl)) + Yl
- Yapı olarak pre-RMSNorm ve SwiGLU kullanılır; bu da LLaMA ailesindeki iyileştirmeleri takip eder
Verimlilik ve eğitim kararlılığı
- differential attention, FlashAttention’ı doğrudan yeniden kullanabildiği için model verimliliğini önemli ölçüde artırabilir
- head sayısı
h = dmodel / 2dolarak ayarlanır; buradad, Transformer’daki head dimension ile aynıdır - Bu ayar, Transformer ile parametre sayısı ve hesaplama karmaşıklığını eşleştirmek içindir
- Head normalization sonrasında sabit çarpan
(1 − λinit)kullanılarak gradient akışı Transformer ile hizalanır - Appendix G, genel gradient akışının Transformer’a benzer kaldığını gösterir; bu da benzer hyperparameter’ların devralınabilmesini ve eğitim kararlılığının korunmasını sağlar
Deney sonuçları ve uygulama etkisi
- Dil modelleme deneyleri, parameter count, training tokens ve context length artırılarak DIFF Transformer’ı ölçeklendirdi
- Scaling curve üzerinde DIFF Transformer, Transformer ile benzer dil modelleme performansına ulaşmak için gereken model boyutu veya eğitim token’ında yaklaşık %65 seviyesinde kalır
- Downstream task’larda da Transformer’dan daha iyi performans gösterdi ve long-sequence değerlendirmelerinde bağlam uzadıkça bunu daha etkili kullandı
- Kritik bilgi erişiminde, doğru span’e daha yüksek attention score; alakasız bağlama ise daha düşük score verme örüntüsü görüldü
- QA ve text summarization’da alakasız bağlamdan daha az etkilenerek hallucination sorununu hafifletir
- in-context learning’de doğruluğu artırırken, kronik bir dayanıklılık sorunu sayılan order permutation karşısında da daha sağlamdır
- activation outlier’ları azaltması, quantization için yeni fırsatlar sunar
1 yorum
Hacker News yorumları
Buradaki temel sezgiyi kaçırıyor gibiyim. Sıradan softmax attention'ın alakasız şeylere sıfıra yakın dikkat vermekte zorlanması sorununu anlıyorum; çıkarma yapısı olduğunda da aykırı aktivasyon değerleri olmadan tam olarak ya da neredeyse 0 olan dikkat ağırlıkları üretilebileceğini anlıyorum.
Ancak bu yapı negatif attention ağırlıkları da kolayca üretecek gibi görünüyor; bu da değer vektörünün negatifine pozitif dikkat vermekle aynı şey gibi duruyor. Sezgisel olarak, ilgilenilmeyen şeylerin hepsini 0 civarında tutan dengeyi kurmak zor görünüyor. Yine de Figure 1 bunun iyi çalıştığını gösterdiği için olasılığından şüphe etmiyorum; ama ağın bunu somut olarak nasıl başardığını zihnimde canlandıramıyorum
exp()/1+∑exp()olmalı.Paydada 1 eklenmesi kritik nokta. Negatif sonsuzda softmax herhangi bir epsilon değil, 0 olabilir.
x'e ek bir 0 değeri koymak da aynı etkiyi verebilir. Dezavantajı, bunu düzeltmek için modeli baştan yeniden eğitmek gerekmesiİlk attention ağırlığı görseline bakarsanız, gürültü bölgesinde gerçekten negatif skorlar var. Yine de o bölgeye verilen dikkat zaten çok küçük. İkinci attention haritasının yalnızca birincideki gürültüyü tahmin etmesi gerekiyor; birinci girdiye tamamen erişebildiği için bunu oldukça doğru yapabileceği bir iş.
Makaledeki gerçek dünya benzetmesine dönersek, gürültü önleyici kulaklıklar mikrofona kulakta duyulan sese erişim sağladığı için doğru bir iptal sinyali üretebilir. Benzer şekilde ikinci attention haritası da birinciye neyin girdiğini bildiğinden buna karşılık gelen iptal sinyalini üretebilir. Mükemmel değil, ama gürültü önleyici kulaklıklar da mükemmel değil; yine de %99'a kadar yaklaşabiliyor ve bu performans artışı için yeterli
Budama, parametre sayısını şaşırtıcı derecede iyi azaltan bir yöntem olarak literatürde zaten epey yerleşmiş durumda ve yaklaşık %40'a kadar azaltabiliyor. Gerçek model tam olarak böyle çalışmayabilir; ama sonuçta sıradan bir Transformer'ı yaklaştıran bir yol olsa da şaşırtıcı olmaz
Çok zekice. Bu tür ince işleri seviyorum; değişiklik de küçük olduğundan başkalarının kolayca uygulayabileceği görünüyor. Harika.
Yine de "2 Differential Transformer" bölümünün girişindeki son cümle beni biraz endişelendirdi. Önceki makalelerdeki iyileştirmeleri kullandıklarını söylüyor; ama dilbilgisel bağlamdan bu iyileştirmenin hem sıradan Transformer'a hem de diff Transformer'a uygulanıp uygulanmadığı belirsiz. Uygulanmadıysa karşılaştırma bulanıklaşır. Hemen önceki cümledeki "main difference" ifadesi bende alarm yaktı.
Elbette iyi niyetli araştırmacılar bunun farkında olup özellikle açıklama gereği duymamış olabilir. Ama bu alandaki bazı yayınlanmış araştırmalarda ne kadar dikkatli olunsa azdır
MoE yapısını akla getiriyor; o dünyada çıkarım işinin bir kısmını ya da tamamını ele alacak en uygun küçük model seçiliyor. Transformer alternatif olasılıkları ayırt etmeye zorlanırken MoE'nin de benzer bir kazanç elde edip etmediğini merak ediyorum.
Her durumda sayılar korunursa yaygın şekilde benimsenecek gibi. Dediğin gibi, esasen dezavantajı yok gibi görünüyor ve yeniden üretmesi de kolay görünüyor
Makine öğreniminin bu yeni dünyasındaki çoğu şey gibi, bunun neden çalıştığı gerçekten kafa karıştırıcı
Gürültü engelleyen kulaklık benzetmesi yardımcı oluyor, ama o durumda neyin sinyal neyin gürültü olduğunu açıkça biliyoruz. Burada da biliyorsak, başta neden gürültü engelleme işi yapmamız gerektiğini anlamıyorum
Daha kötüsü, düşük attention değerlerinin gradyanı çok küçülür; bu yüzden bu tür hataları geri almak için çok sayıda ağırlık güncellemesi gerekir. Buna karşılık iki softmax'in çıktısını çıkarınca model bazı değerler için tam olarak 0 olan ağırlıkları tahmin edebilir ve makul bir gradyan akışını da korur
Yani model neyin gürültü olduğunu zaten biliyor, ancak tek softmax bunu dışlamayı zorlaştırıyor. Ayrıca tek softmax'te tüm head'lerin çıktısı değer vektörlerinin konveks zarfı içinde kalmaya zorlanırken, bu varyantta her head kendi lambda'sını seçerek çıktı aralığını değerlerin önceden belirlediği konveks zarfın dışına taşıyabiliyor. Bu yüzden genel modelin ifade gücü artıyor
Daha iyi bir örnek, profesyonel seste ve Ethernet, HDMI, USB gibi birçok dijital sinyal protokolünde kullanılan diferansiyel sinyal. Toprağı referans alan tek bir hat kullanmak yerine, sinyal iki hat arasındaki fark olarak gönderilir. İki hat aynı sinyali zıt polaritede taşır ve yan yana ilerledikleri için dış gürültü ikisine de aynı şekilde uygulanır
Gerilim değişir, ama iki hat arasındaki gerilim farkı aynı kalır. Alıcı tarafta iki gerilim çıkarılınca gürültü basitçe birbirini götürür
Bunu yapmanın basit bir yolu softmax'i kaldırmak ya da sigmoid kullanmak olurdu; ancak pratikte softmax daha iyi çalışıyor gibi görünüyor
Basitçe söylersek RoPE, attention yaparken sorgu ile anahtarın birbirinden ne kadar uzakta olduğuna dair bilgiyi modele veren modern bir strateji. Şu anda mevcut en iyi strateji, ancak uzaktaki token'lar arasındaki bazı bağlantıları istenenden çok daha güçlü hâle getiren büyük bir dezavantajı var. Xpos (https://arxiv.org/pdf/2212.10554) da Microsoft'un RoPE sorununu ele aldığı bir makale; 4. sayfadaki Figure 1'e bakarsanız sinüs dalgası biçimindeki attention şiddetinin görsel yorumunu görebilirsiniz. Aslında istenen şey pürüzsüz olması
Differential Transformer'ın özellikle uzun dizilerde iyi çalışmasının büyük nedeni bence şu:
q1veq2herhangi bir token'la eşleşmediğinde bile RoPE'nin göreli şiddeti aynı değeri aldığı için gürültü birbirini götürüyor. Yalnızca amaçlanan eşleşme kalıyor; ancak bunun bedeli RoPE'nin normalde getirdiği değerin bir miktar zayıflamasıElbette bu sadece bir hipotez. İkisini de alibi attention (https://arxiv.org/pdf/2108.12409) kullanan bir baseline ile karşılaştırarak deney yapmak bunu kolayca doğrulayabilir. alibi'nin bu yöntemin hafifletemeyeceği başka ödünleşimleri var, ama yine de gerçekten ilginç bir sonuç
Neden çalıştığına dair sezgi, gradyan inişi manzarasını biraz daha dostça hâle getirip küçük adımlarla öğrenmeyi kolaylaştırması gibi görünüyor. Çünkü artık ağın kendisi, başlangıçta tahminde çok hata yapıp zamanla iyileşeceği fikrine açıkça uyacak şekilde tasarlanıyor
"Differential attention takes the difference between two softmax attention functions to eliminate attention noise" ifadesini doğru anladıysam, bu yapı attention belleğini 2 kat kullanma karşılığında daha yüksek kaliteli bir model ya da benzer kalitede daha az parametre elde etme ödünleşimi gibi görünüyor
"6.8B-size DIFF Transformer achieves a validation loss comparable to 11B-size Transformer, requiring only 62.2% of parameters" kısmına bakınca birkaç soru doğuyor. Parametre sayısı yalnızca %60 ise, attention alanının iki kat olması bunu telafi edip geleneksel Transformer ile benzer bellek özellikleri sağlıyor mu; ayrıca bu ödünleşimin eğitim ile çıkarım arasında belirgin şekilde değişip değişmediğini merak ediyorum
Makalede şöyle deniyor: "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." Başka bir deyişle, bunu telafi etmek için katman başına attention head sayısını yarıya indiriyorlar
"We empirically find that the setting λᵢₙᵢₜ = 0.8 − 0.6 × exp(−0.3 · (l − 1)) works well in practice" ifadesinin arkasında nasıl bir hikâye olduğunu merak ediyorum
ldeğerlerinde negatif attention terimini arka katmanlara göre daha küçük yapıyor gibi görünüyor. Makul. Sonunda gerçekten bakılması gereken birkaç konuma karar vermeden önce her şeye biraz dikkat vermek istersinizAncak makalede yazarın bu tercihi ayrıca tartışmadığını düşünüyorum
Başta anlamadığım temel nokta, iki attention grubunun aynı şeyi öğrenmesi durumunda ne olacağıydı. Attention maskelerini birbirinden çıkardıkları için ikisi de benzer değerler üretirse toplam attention 0'a düşer ve kayıp büyür
Bu yüzden kaybı azaltmanın tek yolu, farklı şeylere dikkat etmeyi öğrenmeleridir. Öğrenebilecekleri en basit stratejilerden biri, makalenin iddia ettiği gibi, bir grubun ilgili bağlama, diğerinin ilgisiz bağlama odaklanmasıdır. Böylece bir grup gürültüyü, diğeri sinyali öğrenir. Gerçekte bu kadar keskin ayrılmaz, ama anlamak için bir basitleştirme olarak yararlı
İki kopya aynıysa softmax çıktılarının da aynı olacağını ve farkın her yerde 0'a ineceğini düşününce bu mantıklı. Ama ölçeklenmiş bir kopyayı çıkarınca, farkı normalize etme süreci sinyal değerlerini gürültüye göre daha fazla öne çıkarıp normalizasyon öncesine kıyasla sinyali belirginleştiriyor gibi görünüyor
Bir attention head'i başka bir head'in öğrendiği şeye şaşırırsa ağırlığı artırıyor, ikisi de aynı şeyi bulursa bunu pek şaşırtıcı saymayıp ağırlığı düşürüyor gibi
Kabul etmek gerekirse “şaşkınlık” bilgi tabanımda epey büyük bir yer kaplıyor[1][2][3]. Öznel bir duygu ve zihnin uyum sağlama işlevi olarak, bildiğimiz en karmaşık adaptif sistemlerden biri
[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
Burada neyi kaybettiğimizi merak ediyorum. Mutlaka bir ödünleşim vardır
Yaratıcılığı ya da kavramlar arasında interpolasyon yapma yeteneğini etkileyip etkilemediğini de merak ediyorum. Halüsinasyon ile yaratıcılık oldukça ilişkili görünüyor. Halüsinasyonu, insanların uygun bulduğu interpolasyon uzayından sapmış şey olarak anlıyorum
Elbette hatalar bazen ilham verebilir, ama yaratıcılık hatadan çok daha fazlasıdır
Bu tür dil modelleri sonraki token tahminleyicileridir. Sonraki token, modelin çıktıladığı olasılık uzayından örneklenerek tahmin edilir. Bu örnekleme süreci deterministik olmayabilir
Halüsinasyon, bu örneklemenin sonucu olarak yanlış ya da amaçlanmayan cümleler oluşturan token'ların ortaya çıkmasıdır. Modelin ürettiği her şeyi halüsinasyon olarak da görebiliriz, ama biz modeli, istediğimiz şeyleri halüsinasyon etme olasılığı daha yüksek bir uzay üretmesi için eğitiriz. Aksi halde yalnızca anlamsız gürültü üretir
“Halüsinasyon”, açıklamaya çalıştığı şey için gerçekten berbat bir kelime
Buradaki değerin ne kadarının RoPE'nin yarattığı konumsal gürültüyü dengelemesinden geldiğini merak ediyorum. Yalnızca buradaki RoPE modellerini değil, alibi sürümüyle alibi temel çizgisini karşılaştıran bir tablo da görmek isterdim
Yine de muazzam bir iyileştirme; araştırmacıları tebrik ederim
Burada olan şey, softmax'in değerleri 0'a itememesi ama iki softmax haritasını çıkarınca 0 çıktı üretilebilmesi mi
Çözülmesi gereken iyi bir problem, ama yaklaşımın yanlış olduğunu düşünüyorum
Neye dikkat edildiğini ve tüm bağlamı bilmek için bunun hiyerarşik bir şekilde yapılması gerekir. Fark vektörü attention vektörüyle aynı girdiden hesaplanıyorsa, attention vektörünü nasıl doğru biçimde değiştireceğini nasıl bilebilir, anlamıyorum