लंबा संदर्भ मेमोरी की सीमा से टकराता है
मॉडल को इनपुट के रूप में जितना अधिक टेक्स्ट दिया जाता है, उसके लिए हर नए प्रॉम्प्ट को प्रोसेस करना उतना ही भारी हो जाता है। in-context learning का क्लासिक तरीका मांग करता है कि मॉडल हर अनुरोध पर पूरे संदर्भ को "दोबारा पढ़े"। इसका मतलब है कि प्रतिक्रिया का समय और GPU मेमोरी की खपत, दोनों इनपुट टेक्स्ट की लंबाई के साथ बढ़ते हैं। व्यवहार में यह दसियों हज़ार टोकन पर ही ध्यान देने योग्य हो जाता है, और 128K टोकन पर संसाधन बेहद अकुशलता से खर्च होते हैं।
इससे भी बदतर, सामान्य ट्रांसफॉर्मर में एक नेटिव कॉन्टेक्स्ट विंडो होती है, जिसके बाहर गुणवत्ता तेजी से गिर जाती है। भले ही मॉडल औपचारिक रूप से लंबा इनपुट स्वीकार कर ले, वह टेक्स्ट के बीच के विवरणों को "भूलने" लगता है। यह needle-in-a-haystack जैसे कार्यों में विशेष रूप से स्पष्ट दिखता है, जब बड़ी मात्रा में जानकारी में एक महत्वपूर्ण तथ्य खोजना होता है।
MoNe का विचार: संदर्भ को अलग मेमोरी में रखना
MoNe (Modular Neural Memory) विधि संदर्भ की लंबाई और अनुरोध की लागत के बीच सीधी निर्भरता को खत्म करने का सुझाव देती है। यह एक हल्की मॉड्यूलर न्यूरल मेमोरी है, जो पहले से तैयार, फ्रोज़न ट्रांसफॉर्मर मॉडल से जुड़ती है। बेस मॉडल को दोबारा प्रशिक्षित करने की आवश्यकता नहीं है — बस एक बाहरी मॉड्यूल जोड़ना पर्याप्त है, जो संदर्भ के साथ काम करने की जिम्मेदारी ले लेता है।

मुख्य तरकीब यह है कि मेमोरी कैसे संरचित है। MoNe इनपुट टेक्स्ट को पूरा नहीं, बल्कि निश्चित आकार के खंडों में प्रोसेस करता है। मॉड्यूल के अंदर फास्ट वेट नेटवर्क का उपयोग किया जाता है — वे परीक्षण के चरण में ही सीखते हैं, अपने पैरामीटर को लेयर-स्तर पर लोकल ग्रेडिएंट्स के साथ अपडेट करते हैं। यह जटिल लगता है, लेकिन मूल रूप से इसका मतलब है: मेमोरी मुख्य मॉडल के वेट में हस्तक्षेप किए बिना विशिष्ट टेक्स्ट के अनुकूल हो जाती है।
दो-चरणीय आर्किटेक्चर: अलग प्रीप्रोसेसिंग, अलग अनुरोध
इन्फरेंस दो स्वतंत्र चरणों में विभाजित है। पहले चरण में प्रीप्रोसेसिंग की जाती है: मॉडल संदर्भ को खंडों में पढ़ता है, उनसे की और वैल्यू बनाता है और उन्हें बाहरी मेमोरी में संग्रहीत करता है। यह चरण रैखिक है — लागत टेक्स्ट की लंबाई के अनुपात में बढ़ती है, लेकिन यह एक बार का ऑपरेशन है।
दूसरे चरण में — जब अनुरोध आता है — मेमोरी मूल संदर्भ की ओर नहीं जाती। इसके बजाय, यह केवल अनुरोध के टोकन से की और वैल्यू उत्पन्न करती है। संदर्भ टोकन दोबारा नहीं पढ़े जाते, जिसका अर्थ है कि प्रतिक्रिया का समय मूल टेक्स्ट की लंबाई पर बिल्कुल निर्भर नहीं करता। औपचारिक रूप से इसे प्रीप्रोसेसिंग के लिए O(N) और अनुरोध के लिए O(1) के रूप में व्यक्त किया जाता है, जहाँ N संदर्भ की लंबाई है।
इस विभाजन के कारण, GPU मेमोरी का पीक उपयोग N के बढ़ने के साथ नहीं बढ़ता। यह एक महत्वपूर्ण लाभ है: बहुत लंबे संदर्भ में भी मॉडल सभी इनपुट टोकन को एक साथ मेमोरी में रखने की कोशिश नहीं करता।
व्यवहार में इसका क्या मतलब है
लेखकों ने RULER बेंचमार्क पर इस दृष्टिकोण का परीक्षण किया, जिसमें "सुई को घास के ढेर में खोजना" और विशिष्ट शब्द निकालने के परिदृश्य शामिल हैं। यहीं पर मानक in-context learning संदर्भ की लंबाई बढ़ने पर स्पष्ट रूप से खराब हो जाता है। इसके विपरीत, MoNe स्थिर परिणाम दिखाता है और उन लंबाईयों पर सामान्यीकरण करता है जो बेस मॉडल की नेटिव विंडो से काफी अधिक हैं।
दक्षता पर विशेष रूप से जोर दिया जाना चाहिए। 128K टोकन के साथ काम करते समय, MoNe सामान्य ICL की तुलना में कम्प्यूटेशनल लागत और पीक GPU मेमोरी को लगभग 80% कम कर देता है। साथ ही, मॉड्यूल के अतिरिक्त पैरामीटर केवल 6.4% हैं — यानी मॉडल को संग्रहीत करने के लिए मेमोरी का ओवरहेड न्यूनतम है।

निष्कर्ष
MoNe लंबे संदर्भ की समस्या पर एक नया दृष्टिकोण है। कम्प्यूटेशनल शक्ति बढ़ाने या जटिल अटेंशन तंत्र बनाने के बजाय, शोधकर्ता संदर्भ के साथ काम को एक अलग मॉड्यूल में स्थानांतरित करने का सुझाव देते हैं। इसे ट्रांसफॉर्मर के दोबारा प्रशिक्षण की आवश्यकता नहीं है, यह कुछ पैरामीटर जोड़ता है, लेकिन अनुरोध का समय स्थिर कर देता है और पीक मेमोरी को टेक्स्ट के साथ बढ़ने नहीं देता।
फिलहाल यह अंतरराष्ट्रीय शोधकर्ताओं के समूह का arXiv पर एक प्रीप्रिंट है। लेकिन दिशा आशाजनक दिखती है: यदि विधि व्यापक कार्यों पर पुष्ट हो जाती है, तो यह सामान्य फ्रोज़न मॉडल को ऐसी प्रणालियों में बदलने का एक व्यावहारिक तरीका बन सकती है जो उनकी आर्किटेक्चर में गंभीर बदलाव किए बिना बहुत लंबे दस्तावेज़ों के साथ आराम से काम करती हैं।



