- decoder-only Transformer LLM का मानक ढांचा बन गया है, लेकिन लंबे context में महत्वपूर्ण जानकारी छूट जाना और असंबंधित tokens पर attention बांटना—यानी attention noise—performance को अस्थिर करता है
- differential attention query और key को दो groups में बांटकर दो softmax attention maps बनाता है, फिर सीखने योग्य λ लागू किए गए दूसरे map को घटाकर अंतिम attention score की गणना करता है
- DIFF Transformer ने model size, training tokens और context length बढ़ाने वाले experiments में Transformer से बेहतर नतीजे दिखाए, और समान performance के लिए आवश्यक model size या training tokens लगभग 65% स्तर के हैं
- यह लंबे context modeling, महत्वपूर्ण जानकारी retrieval, hallucination घटाने, in-context learning, math reasoning और activation outlier कम करने में फायदे दिखाता है; QA और summarization में असंबंधित context का प्रभाव घटता है
- पूरा layout Transformer जैसा ही रखा गया है और केवल softmax attention को बदला गया है, इसलिए parameters की संख्या और computation समान रखते हुए FlashAttention का भी पुन: उपयोग संभव है
Transformer में attention noise की समस्या
- decoder-only Transformer LLM का वास्तविक standard architecture है, और इसके केंद्र में sequence के अंदर tokens के महत्व को softmax से weight करने वाला attention mechanism है
- LLM को context में महत्वपूर्ण जानकारी ठीक से ढूंढने में कठिनाई होती है; खासकर जितना अधिक असंबंधित context होता है, सही जवाब का संकेत उतनी आसानी से दब जाता है
- ऐसे उदाहरण में जहां documents के ढेर के बीच डाला गया सही जवाब ढूंढना होता है, Transformer सही जवाब को केवल छोटा attention score देता है और असंबंधित context को जरूरत से ज्यादा score बांटने की प्रवृत्ति दिखाता है
- इस तरह असंबंधित context को दिया गया, अनदेखा करना मुश्किल attention score attention noise की तरह काम करता है
- Figure 1 का Multi-Needle Retrieval उदाहरण Transformer और Differential Transformer की accuracy क्रमशः 55% और 85% दिखाता है
Differential attention कैसे काम करता है
- DIFF Transformer sequence modeling और LLM के लिए base architecture है, जो मौजूदा Transformer का macro layout बनाए रखता है और सामान्य softmax attention को differential attention से बदलता है
- input
Xसे query, key, value को project किया जाता है, लेकिन query और key कोQ1, Q2, K1, K2दो groups में बांटा जाता है, और value कोVरखा जाता है - attention output दो softmax attention maps के अंतर से compute होता है
DiffAttn(X) = (softmax(Q1K1^T / √d) − λ softmax(Q2K2^T / √d))V- यह ऐसी संरचना है जो पहले attention map से दूसरे attention map को घटाकर common noise हटाती है
λएक सीखने योग्य scalar है, और learning dynamics को मिलाने के लिए इसे इस तरह reparameterize किया जाता हैλ = exp(λq1 · λk1) − exp(λq2 · λk2) + λinit- मूल experiments में
λinit = 0.8 − 0.6 × exp(−0.3 · (l − 1))का उपयोग किया गया - सभी layers में समान
λinit, जैसे0.8, इस्तेमाल करने का तरीका भी जांचा गया, और ablation में initialization strategy के अंतर के प्रति performance अपेक्षाकृत robust दिखी
- यह तरीका दो signals के अंतर से common-mode noise हटाने वाले differential amplifier और noise-cancelling headphones के विचार से मिलता-जुलता है
- Naderi et al. ने साबित किया कि differential attention attention matrix के spectral distribution को अधिक संतुलित बनाकर rank collapse को प्रभावी ढंग से हल करता है
Multi-head संरचना और पूरा architecture
- multi-head differential attention कई heads के लिए अलग-अलग projection matrices इस्तेमाल करता है, और एक ही layer के अंदर scalar λ को heads के बीच share करता है
- प्रत्येक head output पर अलग से RMSNorm लागू किया जाता है, फिर उसे
(1 − λinit)से multiply किया जाता है; इसके बाद heads को channel dimension में concatenate करके output projectionWOसे गुजारा जाता है - Figure 2 में GroupNorm notation यह जोर देकर दिखाता है कि प्रत्येक head पर independent normalization लागू होता है
- differential attention में अधिक sparse patterns होने की प्रवृत्ति होती है, इसलिए heads के बीच statistical information अधिक विविध होती है
- head-wise normalization concatenate से पहले प्रत्येक head को normalize करके gradient statistics सुधारता है
- पूरा DIFF Transformer layer दो modules से बना होता है
MultiHead(LN(Xl)) + XlSwiGLU(LN(Yl)) + Yl
- संरचनात्मक रूप से यह pre-RMSNorm और SwiGLU का उपयोग करता है, जो LLaMA series के improvements का अनुसरण करता है
Efficiency और training stability
- differential attention FlashAttention को सीधे reuse कर सकता है, जिससे model efficiency काफी सुधर सकती है
- heads की संख्या
h = dmodel / 2dके रूप में सेट की जाती है, जहांdTransformer के head dimension के समान है - यह setting Transformer के साथ parameters की संख्या और computational complexity मिलाने के लिए है
- head normalization के बाद fixed multiplier
(1 − λinit)का उपयोग करके gradient flow को Transformer से मिलाया जाता है - Appendix G दिखाता है कि पूरा gradient flow Transformer जैसा ही बना रहता है, जिससे समान hyperparameters inherit किए जा सकते हैं और training stability सुनिश्चित की जा सकती है
Experiment results और application effects
- language modeling experiments में parameter count, training tokens और context length बढ़ाने की दिशा में DIFF Transformer को scale किया गया
- scaling curve में DIFF Transformer को Transformer जैसी language modeling performance पाने के लिए आवश्यक model size या training tokens लगभग 65% स्तर के हैं
- downstream tasks में भी इसने Transformer से बेहतर performance दिखाई, और long-sequence evaluation में context बढ़ने पर उसका प्रभावी उपयोग किया
- महत्वपूर्ण जानकारी retrieval में यह सही answer span को अधिक attention score और असंबंधित context को कम score देने वाला pattern दिखाता है
- QA और text summarization में असंबंधित context से कम distract होने के कारण hallucination घटता है
- in-context learning में यह accuracy बढ़ाने के साथ-साथ, लंबे समय से robustness issue माने जाने वाले order permutation के प्रति भी अधिक robust है
- activation outlier घटाने के परिणाम quantization के लिए नए अवसर प्रदान करते हैं
1 टिप्पणियां
Hacker News पर राय
लगता है कि यहां मुख्य intuition छूट रही है। सामान्य softmax attention में अप्रासंगिक चीजों को 0 के करीब attention देना मुश्किल है—यह समस्या समझ में आती है, और subtractive structure होने पर outlier activations के बिना भी ठीक-ठीक या लगभग 0 attention weights बनाए जा सकते हैं—यह भी समझ में आता है।
लेकिन यह structure negative attention weights भी आसानी से बना देगा, और यह value vector के negation पर positive attention देने जैसा लगता है। intuitively, जिन चीजों में रुचि नहीं है उन सभी को 0 के आसपास बनाए रखने का संतुलन मुश्किल लगता है। फिर भी Figure 1 दिखाता है कि यह अच्छी तरह काम करता है, इसलिए संभावना पर शक नहीं है, पर network असल में इसे कैसे करता है, इसकी तस्वीर साफ नहीं बन पा रही।
exp()/1+∑exp()होना चाहिए।denominator में 1 जुड़ना ही मुख्य बात है। negative limit में softmax किसी epsilon के बजाय 0 हो सकता है।
xमें एक extra 0 value डालने से भी वही effect मिल सकता है। drawback यह है कि इसे ठीक करने के लिए model को शुरू से फिर train करना पड़ेगा।पहले attention weight figure को देखें तो noise वाले हिस्से में सच में negative scores हैं। फिर भी उस हिस्से पर attention वैसे भी बहुत छोटा है। दूसरे attention map को बस पहले वाले के noise की prediction करनी है, और चूंकि उसे पहले input तक पूरा access है, यह काम वह काफी accurate तरीके से कर सकता है।
paper की real-world analogy पर लौटें तो noise-canceling headphones microphone के जरिए कानों तक पहुंचने वाली sound तक access रखते हैं, इसलिए वे accurate cancellation signal दे सकते हैं। उसी तरह, दूसरा attention map जानता है कि पहले में क्या input जा रहा है, इसलिए संबंधित cancellation signal दे सकता है। यह perfect नहीं है, लेकिन noise-canceling headphones भी perfect नहीं होते, फिर भी 99% तक पहुंच जाते हैं और performance improvement के लिए काफी होता है।
pruning parameter count को हैरान कर देने वाली हद तक घटाने का तरीका है और literature में पहले से काफी स्थापित है; इसे लगभग 40% तक घटाया जा सकता है। actual model ठीक इसी तरह काम करे यह जरूरी नहीं, लेकिन अंत में अगर यह साधारण Transformer को approximate करने जैसा हो तो आश्चर्य नहीं होगा।
बहुत clever है। इस तरह का बारीक काम अच्छा लगता है, और बदलाव भी छोटा है, इसलिए दूसरों के लिए इसे adopt करना आसान दिखता है। शानदार।
हालांकि "2 Differential Transformer" section की शुरुआत का आखिरी वाक्य थोड़ा चिंता पैदा करता है। वे कहते हैं कि वे पिछले papers के improvements इस्तेमाल करते हैं, लेकिन grammatical context से साफ नहीं है कि वे improvements general Transformer और diff Transformer दोनों में डाले गए हैं या नहीं। अगर नहीं, तो comparison धुंधला हो जाता है। ठीक पिछले वाक्य में "main difference" phrase की वजह से signal on हो गया।
बेशक, अगर researchers अच्छे इरादे वाले हैं तो उन्हें यह पता होगा और शायद उन्हें इसे स्पष्ट करने की जरूरत महसूस नहीं हुई होगी। लेकिन इस field के कुछ published research में कितनी भी सावधानी बरतें, कम ही है।
MoE architecture याद आता है; उस दुनिया में inference task के कुछ या पूरे हिस्से को संभालने के लिए सबसे अच्छा छोटा model चुना जाता है। सोच रहा हूं कि क्या Transformer को alternative possibilities अलग-अलग करने के लिए force करने से MoE को भी ऐसा ही फायदा मिला है।
खैर, अगर numbers टिके रहते हैं तो यह widely adopt होगा। जैसा कहा, practically कोई downside नहीं दिखता और reproduce करना भी आसान लगता है।
मशीन लर्निंग की इस नई दुनिया की ज़्यादातर चीज़ों की तरह, यह सचमुच उलझाने वाला है कि यह काम क्यों करता है
noise-cancelling headphones वाली उपमा मदद करती है, लेकिन उस मामले में साफ़ पता होता है कि signal क्या है और noise क्या। अगर यहाँ भी पता है, तो समझ नहीं आता कि शुरुआत में noise हटाने का काम करना ही क्यों पड़े
इससे भी बुरी बात यह है कि कम attention values का gradient बहुत छोटा हो जाता है, इसलिए ऐसी गलती को पलटने के लिए बहुत सारे weight updates की ज़रूरत पड़ती है। इसके उलट, दो softmax के outputs को घटाने पर model कुछ values के लिए बिल्कुल 0 weight predict कर सकता है, और उचित gradient flow भी बना रहता है
यानी model को पहले से पता है कि noise क्या है, लेकिन single softmax उसे बाहर रखना मुश्किल बना देता है। साथ ही, single softmax में सभी heads के outputs को value vectors के convex hull के भीतर रहने के लिए मजबूर किया जाता है, लेकिन इस variant में हर head अपना lambda चुनकर output range को values द्वारा पहले से तय किए गए convex hull के बाहर ले जा सकता है। इसलिए पूरे model की expressive power बढ़ जाती है
बेहतर उदाहरण differential signaling है, जिसका इस्तेमाल professional audio और Ethernet, HDMI, USB जैसे कई digital signal protocols में होता है। ground के reference वाली एक wire इस्तेमाल करने के बजाय, signal दो wires के बीच के difference के रूप में भेजा जाता है। दोनों wires वही signal opposite polarity में ले जाती हैं, और साथ-साथ गुजरती हैं, इसलिए external noise दोनों पर एक जैसा लागू होता है
voltage बदलेगा, लेकिन दोनों wires के बीच voltage difference वही रहेगा। receiver end पर दोनों voltages को घटाने पर noise बस cancel हो जाता है
इसे करने का simple तरीका softmax हटाना या sigmoid इस्तेमाल करना हो सकता है, लेकिन व्यवहार में लगता है कि softmax बेहतर काम करता है
आसान शब्दों में, RoPE एक modern strategy है जो attention करते समय model को यह जानकारी देती है कि query और key कितनी दूर हैं। यह अभी की best strategy है, लेकिन इसकी एक बड़ी कमी है कि यह दूर स्थित tokens के बीच कुछ connections को अपेक्षा से कहीं ज़्यादा strong बना देती है। Xpos (https://arxiv.org/pdf/2212.10554) भी Microsoft का RoPE problem पर paper है, और page 4 के Figure 1 में sine-wave जैसी attention strength की visual interpretation देखी जा सकती है। असल में हम चाहते हैं कि यह smooth हो
मुझे लगता है कि Differential Transformer के खासकर लंबी sequences में अच्छा काम करने की बड़ी वजह यह है कि जब
q1औरq2किसी token से match नहीं करते, तब भी RoPE की relative strength समान value रखती है, इसलिए noise cancel हो जाता है। केवल intended match बचता है, हालांकि इसकी कीमत यह है कि RoPE से मूल रूप से आने वाली value कुछ हद तक कमजोर हो जाती हैबेशक यह सिर्फ hypothesis है। दोनों की तुलना alibi attention (https://arxiv.org/pdf/2108.12409) इस्तेमाल करने वाले baseline से experiment करके आसानी से verify की जा सकती है। alibi में अलग trade-offs हैं जिन्हें यह method कम नहीं कर पाएगा, फिर भी यह वाकई दिलचस्प result है
यह क्यों काम करता है, इसकी intuition शायद यह है कि यह gradient descent landscape को थोड़ा अधिक friendly बना देता है, जिससे छोटे steps में सीखना आसान होता है। क्योंकि अब network को खुद शुरुआत में prediction में कई errors करने और समय के साथ बेहतर होने के विचार के अनुरूप explicitly design किया गया है
अगर “Differential attention takes the difference between two softmax attention functions to eliminate attention noise” को मैंने सही समझा है, तो यह architecture attention memory को 2 गुना इस्तेमाल करने के बदले higher-quality model, या similar quality पर fewer parameters पाने वाला trade-off लगता है
“6.8B-size DIFF Transformer achieves a validation loss comparable to 11B-size Transformer, requiring only 62.2% of parameters” वाले हिस्से को देखकर कुछ सवाल उठते हैं। अगर parameters सिर्फ 60% हैं, तो क्या attention space दोगुना होना उसे offset करके पारंपरिक Transformer जैसी memory characteristics देता है, और क्या यह trade-off training और inference के बीच noticeably अलग होता है, यह जानना चाहूँगा
paper में लिखा है, “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.” दूसरे शब्दों में, वे इसे compensate करने के लिए हर layer में attention heads की संख्या आधी कर देते हैं
“We empirically find that the setting λᵢₙᵢₜ = 0.8 − 0.6 × exp(−0.3 · (l − 1)) works well in practice” वाले सूत्र के पीछे क्या कहानी रही होगी, यह जानने की उत्सुकता है
l, में negative attention term को पीछे की layers से छोटा बनाता हुआ लगता है। यह plausible है। क्योंकि यह तय करने से पहले कि वास्तव में देखने लायक कुछ positions कौन-सी हैं, आप शायद हर चीज़ पर थोड़ा-थोड़ा ध्यान देना चाहेंगेहालांकि paper में लेखक इस choice पर अलग से चर्चा करते हुए नहीं दिखते
शुरुआत में जो मुख्य बात समझ नहीं आई थी, वह यह थी कि अगर दो attention groups एक ही चीज़ सीख लें तो क्या होगा। क्योंकि attention masks को एक-दूसरे से घटाया जाता है, अगर दोनों मिलते-जुलते values output करें तो कुल attention 0 पर गिर जाता है और loss बढ़ जाता है
इसलिए loss घटाने का इकलौता तरीका यह है कि वे अलग-अलग चीज़ों पर ध्यान देना सीखें। वे जो सबसे सरल strategies सीख सकते हैं उनमें से एक, जैसा paper दावा करता है, यह है कि एक group relevant context पर focus करे और दूसरा irrelevant context पर। इस तरह एक group noise सीखता है और दूसरा signal। असल में यह इतना साफ-साफ नहीं बंटता, लेकिन समझने के लिए simplification के तौर पर उपयोगी है
यह देखते हुए बात समझ आती है कि अगर दोनों copies identical हों, तो softmax output भी identical होगा और difference हर जगह 0 हो जाएगा। लेकिन scaled copy घटाने पर, difference को normalize करने की प्रक्रिया signal values को noise से ज़्यादा उभारती है, जिससे normalization से पहले की तुलना में signal अधिक prominent दिखता है
जैसे एक attention head अगर दूसरे head ने जो सीखा उससे “surprised” हो तो weight बढ़ा दे, और अगर दोनों एक ही चीज़ खोजें तो उसे खास surprising न मानकर weight घटा दे
मानना पड़ेगा कि “surprise” मेरे knowledge base में काफी बड़ा क्षेत्र घेरता है[1][2][3]। एक subjective emotion और mind के adaptive function के रूप में, यह उन सबसे complex adaptive systems में से एक है जिन्हें हम जानते हैं
[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
यहां क्या खोता है, यह जानने की उत्सुकता है। कोई trade-off तो ज़रूर होगा
यह भी जानना चाहूंगा कि क्या इसका creativity या concepts के बीच interpolation की क्षमता पर असर पड़ता है। hallucination और creativity काफी संबंधित लगते हैं। मेरी समझ में hallucination वह है जो उस interpolation space से हट जाता है जिसे मनुष्य उचित मानते हैं
बेशक गलतियां कभी-कभी प्रेरणा दे सकती हैं, लेकिन creativity गलती से कहीं ज़्यादा बड़ी चीज़ है
ऐसे language models next-token predictors हैं। अगला token model द्वारा output किए गए probability space से sample करके predict होता है। यह sampling process non-deterministic हो सकता है
hallucination वह स्थिति है जब उस sampling के result में ऐसे tokens आ जाएं जो झूठा या अनचाहा वाक्य बना दें। model जो कुछ output करता है, उसे hallucination माना जा सकता है, लेकिन हम model को ऐसा space output करने के लिए train करते हैं जहां वह हमारी desired चीज़ hallucinate करने की अधिक संभावना रखे। नहीं तो वह सिर्फ meaningless noise निकालेगा
“hallucination” जिस चीज़ को explain करने की कोशिश करता है, उसके लिए वाकई बहुत खराब शब्द है
यहां value का कितना हिस्सा RoPE से पैदा होने वाले positional noise को cancel करने से आता है, यह जानने की उत्सुकता है। यहां के RoPE models के अलावा, alibi version और alibi baseline की तुलना वाली table भी देखना चाहूंगा
फिर भी यह बहुत बड़ा improvement है, और researchers को बधाई
क्या यहां जो हो रहा है वह यह है कि softmax values को 0 तक push नहीं कर सकता, लेकिन दो softmax maps को घटाने पर 0 output बनाया जा सकता है?
हल करने के लिए अच्छा problem है, लेकिन मुझे approach गलत लगती है
किस चीज़ पर attention दिया गया और पूरे context को समझने के लिए इसे hierarchical तरीके से करना चाहिए। अगर differential vector उसी input से compute होता है जिससे attention vector, तो मुझे समझ नहीं आता कि उसे कैसे पता होगा कि attention vector को सही तरह से कैसे modify करना है