वह असमानता जो टियरिंग को लाभदायक बनाती है
यदि आप एजेंट मेमोरी डिज़ाइन करने के तरीके में एक चीज़ बदलते हैं, तो वह यह होनी चाहिए: स्टोरेज की लागत और अटेंशन की लागत को एक ही चीज़ मानना बंद करें।
मैंने 19 सिस्टमों में इस पर गहराई से काम किया है, और जो निष्कर्ष बार-बार सामने आता है वह यह है कि जो सिस्टम मेमोरी को अच्छी तरह से संभालते हैं, वे ज़रूरी नहीं कि सबसे उन्नत रिट्रीवल वाले हों। वे वे हैं जिन्होंने यह समझ लिया कि कौन सी मेमोरी को प्रॉम्प्ट में शामिल करना चाहिए। यह एक अलग समस्या है, और इसका एक अलग समाधान है।
स्टोरेज सस्ता है। अटेंशन महंगी है। 128k-कॉन्टेक्स्ट मॉडल 110k औसत दर्जे के कॉन्टेक्स्ट को पढ़ रहा है, वह अनुभवजन्य रूप से उसी मॉडल से बेहतर एजेंट नहीं है जो 8k सावधानीपूर्वक चुने गए कॉन्टेक्स्ट को पढ़ रहा है। इस पर शोध सुसंगत है: जैसे-जैसे कॉन्टेक्स्ट शोर से भरता है, रिट्रीवल की गुणवत्ता घटती जाती है, और यह गिरावट रैखिक नहीं होती। मॉडल केवल अप्रासंगिक सामग्री को अनदेखा नहीं करता। वह इसे प्रोसेस करता है, और यह प्रोसेसिंग सिग्नल को दबा देती है।
स्टोरेज में यह गुण नहीं है। डेटाबेस में पड़ा एक तथ्य रखने में कोई लागत नहीं आती। लागत तब आती है जब आप उसे रिट्रीव करके प्रॉम्प्ट में लोड करते हैं। इसका मतलब है कि सवाल यह नहीं है कि "क्या मुझे इसे स्टोर करना चाहिए?" बल्कि "क्या मुझे इसे रिट्रीव करना चाहिए, और यदि हाँ, तो कब?"
यह रीफ्रेमिंग ही वह जगह है जहाँ से टियरिंग आती है। अलग-अलग मेमोरी आइटम के अलग-अलग एक्सेस पैटर्न होते हैं। कुछ चीज़ें एजेंट को हर टर्न में चाहिए: उपयोगकर्ता का नाम, उनका वर्तमान प्रोजेक्ट, उनकी बताई गई प्राथमिकताएँ। कुछ चीज़ें अक्सर चाहिए, लेकिन हमेशा नहीं: हाल के निर्णय, खुले प्रश्न, पिछले कुछ सत्रों के एपिसोडिक तथ्य। कुछ चीज़ें तब मिलनी चाहिए जब ज़रूरत हो, लेकिन कभी भी हर टर्न पर बोझ नहीं बननी चाहिए: तीन महीने पहले की मीटिंग नोट्स, पूर्ण किए गए कार्य, कच्ची ट्रांसक्रिप्ट, एकमुश्त संदर्भ सामग्री।
एक फ्लैट स्टोर तीनों श्रेणियों को एक समान मानता है। हॉट आइटम कोल्ड आइटम की सर्च लागत चुकाते हैं। कोल्ड आइटम प्रॉम्प्ट को शोर से भर देते हैं। आइटम के अधिक प्रासंगिक होने पर उनके उन्नयन के लिए कोई तंत्र नहीं है, और कम प्रासंगिक होने पर उनके बाहर होने के लिए कोई तंत्र नहीं है। OS सादृश्य सटीक है: CPU में L1, L2, L3, RAM, SSD और डिस्क इसलिए नहीं हैं क्योंकि बाइट्स अलग हैं, बल्कि इसलिए कि एक्सेस की आवृत्ति परिमाण के क्रम में भिन्न होती है। 19 सिस्टमों में से सात ने मेरे देखने से पहले ही स्पष्ट टियरिंग बना ली थी। उनमें से दो को विस्तार से समझना उपयोगी है।
MemoryOS एक संदर्भ कार्यान्वयन के रूप में
MemoryOS 19 सिस्टमों में टियर्ड मेमोरी का सबसे स्पष्ट कार्यान्वयन है। तीन टियर, प्रत्येक का एक अलग डेटा आकार, एक अलग लेटेंसी बजट, और एक अलग भूमिका।
शॉर्ट-टर्म टियर एक Python deque है जिसमें अधिकतम 10 QA जोड़े हैं। कोई एम्बेडिंग नहीं, कोई सर्च इंडेक्स नहीं, कोई हीट ट्रैकिंग नहीं। यह शुद्ध वार्तालाप कच्चा माल है, पिछले दस आदान-प्रदान, माइक्रोसेकंड लेटेंसी पर उपलब्ध। जब deque भर जाता है, तो सबसे पुराना जोड़ा मिड-टर्म टियर में चला जाता है।
मिड-टर्म टियर में 2000 सत्रों तक का स्थान होता है। प्रत्येक सत्र में एक सारांश, एक एम्बेडिंग, एक कीवर्ड सेट, और हीट काउंटर होते हैं। टियर को Faiss के साथ इंडेक्स किया जाता है और cosine similarity द्वारा खोजा जाता है। जब टियर क्षमता तक पहुँचता है, तो सबसे ठंडे सत्रों को हटा दिया जाता है। जब एक सत्र पर्याप्त गर्म हो जाता है, तो इसे लॉन्ग-टर्म टियर में पदोन्नत किया जाता है।
लॉन्ग-टर्म टियर एक 90-आयामी मनोविज्ञान और संरेखण स्कीमा है, दो नॉलेज-बेस deque, एक उपयोगकर्ता तथ्यों के लिए और एक सहायक तथ्यों के लिए, प्रत्येक अधिकतम 100 प्रविष्टियों तक सीमित है। यह स्थायी परत है, जो सत्रों में जीवित रहती है और उपयोगकर्ता का टिकाऊ मॉडल रखती है।
पदोन्नति को नियंत्रित करने वाला हीट फॉर्मूला Python की बारह पंक्तियाँ है। तीन सिग्नल: विज़िट आवृत्ति, एक LFU एनालॉग; इंटरेक्शन गहराई, विषयगत जुड़ाव के लिए एक प्रॉक्सी; और रीसेंसी डिके, 24 घंटे के आधे जीवन के साथ एक्सपोनेंशियल। एक सेगमेंट 5.0 पर पदोन्नति सीमा पार करता है। पदोन्नति के बाद, विज़िट और इंटरेक्शन काउंटर शून्य पर रीसेट हो जाते हैं, और हीट लगभग 1.0 पर वापस आ जाती है।
डिज़ाइन निर्णय जिसे आसानी से अनदेखा किया जा सकता है: हीट पदोन्नति को नियंत्रित करता है, रिट्रीवल को नहीं। रिट्रीवर विशुद्ध रूप से सिमैंटिक है, मिड-टर्म एम्बेडिंग पर cosine similarity। हीट एक पृष्ठभूमि सिग्नल है जो तय करता है कि किसी सेगमेंट को लॉन्ग-टर्म टियर में जाना चाहिए या नहीं। दोनों चिंताएँ अलग-अलग हैं, और यह अलगाव स्वयं सूत्र से अधिक महत्वपूर्ण है।
MemoryOS जो छोड़ देता है, उसका नाम लेना उचित है। गुणांक 1.0 पर हार्डकोडेड हैं, वास्तविक उपयोग पैटर्न से वज़न सीखने का कोई तंत्र नहीं है। कोई डिमोशन पथ नहीं हैं; एक बार जब कोई चीज़ लॉन्ग-टर्म टियर तक पहुँच जाती है, तो वह वहीं रहती है। और सूत्र आवृत्ति को महत्व पर अनुकूलित करता है। एक महत्वपूर्ण लेकिन दुर्लभ तथ्य, एक साथी का नाम, एक चिकित्सा स्थिति, एक कठिन बाधा, कभी भी पदोन्नति सीमा पार नहीं कर सकती यदि वह केवल एक बार सामने आती है। एक बार मिड-टर्म टियर सेगमेंट को हटा देता है, तो तथ्य चला जाता है।
Hindsight का सिद्धांत-व्युत्पन्न टियर
Hindsight एक पूरी तरह से अलग शुरुआती बिंदु से उसी तीन-टियर संरचना पर पहुँचता है। जहाँ MemoryOS OS कैश सिद्धांत पर आधारित है, वहीं Hindsight संज्ञानात्मक विज्ञान पर आधारित है।
तीन टियर हैं: World, Experience, और Observations। World ब्रह्मांड के बारे में वस्तुनिष्ठ दावे रखता है, ग्राउंड ट्रुथ, हमेशा-ऑन, लंबे समय तक जीवित। Experience सिस्टम के स्वयं के प्रथम-व्यक्ति कार्यों को रखता है, एपिसोडिक रिकॉर्ड। Observations में World और Experience तथ्यों से प्राप्त समेकित विश्वास होते हैं, जिनमें स्रोत मेमोरी आईडी, एक प्रूफ काउंट, और एक हिस्ट्री फ़ील्ड होती है जो यह ट्रैक करती है कि विश्वास कैसे विकसित हुआ है।
तीनों टियर एक ही डेटाबेस तालिका में रहते हैं, जो एक फैक्ट-टाइप डिस्क्रिमिनेटर द्वारा विभेदित होते हैं। प्रति फैक्ट प्रकार आंशिक HNSW इंडेक्स बनाए जाते हैं। स्कीमा एकीकृत है; एक्सेस पैटर्न नहीं हैं।
Hindsight में पदोन्नति काउंटर-संचालित नहीं है। यह बैच्ड LLM-संचालित समेकन है। जब एक नया तथ्य लिखा जाता है, तो इसे एक async ऑपरेशन तालिका में कतारबद्ध किया जाता है। एक पृष्ठभूमि कार्यकर्ता मौजूदा अतिव्यापी Observations के साथ नए तथ्यों को लाता है, एक बैच प्रॉम्प्ट बनाता है, और मॉडल से क्रिएट, अपडेट और डिलीट करने के लिए कहता है। स्रोत मेमोरी को पुनः प्रसंस्करण को रोकने के लिए एक समेकित-पर टाइमस्टैम्प से चिह्नित किया जाता है। प्रत्येक नया तथ्य, चाहे वह कितनी भी बार एक्सेस किया गया हो, Observations टियर में पदोन्नति के लिए माना जाता है।
यह MemoryOS से मुख्य अंतर है। ऊपरी टियर पदोन्नति को हीट के बजाय समेकन से जोड़कर, Hindsight महत्वपूर्ण-लेकिन-दुर्लभ तथ्यों के लिए अंधे स्थान से बचता है। एक एकल समेकन पास प्रत्येक नए तथ्य पर विचार करता है। आवृत्ति इस बात के लिए अप्रासंगिक है कि कोई चीज़ उन्नत होती है या नहीं।
स्पष्ट रूप से कहें: दो सिस्टम, अलग-अलग प्रथम सिद्धांत, अलग-अलग कार्यान्वयन भाषाएँ, अलग-अलग लक्ष्य उपयोग के मामले, और दोनों तीन टियर पर उतरते हैं जिनमें नीचे कच्चा माल, बीच में एक कार्यशील परत, और शीर्ष पर एक संश्लेषित स्थायी परत होती है। दोनों async पदोन्नति का उपयोग करते हैं। दोनों निचले टियर तक प्रोवेनेंस रखते हैं। यह वही है जो सॉफ़्टवेयर आर्किटेक्चर में अभिसरण विकास जैसा दिखता है, और यह सबसे मजबूत संकेत है जो मैं जानता हूँ कि एक पैटर्न लोड-बेयरिंग है।
@supermemory का जॉनर-कंडीशनड टियरिंग
supermemory प्रबंधित API डिप्लॉयमेंट शेप में काम करता है, जो आर्किटेक्चर को बदले बिना कार्यान्वयन को बदलता है। तीन टियर हैं: स्टैटिक प्रोफाइल, डायनेमिक प्रोफाइल, और डॉक्यूमेंट और चंक स्टोर।
स्टैटिक प्रोफाइल स्थिर दीर्घकालिक तथ्य रखता है, हॉट टियर। इसे प्रोफाइल एंडपॉइंट से एक स्टैटिक ऐरे के रूप में लौटाया जाता है, एज पर कैश किया जाता है, जिसका लेटेंसी बजट लगभग 50ms है। डायनेमिक प्रोफाइल हालिया और एपिसोडिक कॉन्टेक्स्ट रखता है, वॉर्म टियर। कई प्रविष्टियों में एक forgetAfter फ़ील्ड होता है जो TTL सेट करता है। डॉक्यूमेंट और चंक स्टोर कोल्ड टियर है, जब आवश्यकता होती है तब सर्च एंडपॉइंट के माध्यम से क्वेरी की जाती है।
टियर असाइनमेंट राइट टाइम पर होता है। एक एक्सट्रैक्शन LLM प्रत्येक आने वाली मेमोरी को isStatic बूलियन और वैकल्पिक रूप से forgetAfter मान के साथ वर्गीकृत करता है। वर्गीकरण एक बंद एक्सट्रैक्शन प्रॉम्प्ट द्वारा लागू किया जाता है, जो सभी उपभोक्ताओं के लिए समान है।
प्रबंधित API डिप्लॉयमेंट शेप तीन चीज़ों को सक्षम बनाता है जिन्हें एक इन-प्रोसेस डिज़ाइनर सीधे कॉपी नहीं कर सकता लेकिन समझना चाहिए। कोल्ड-टियर डेटा सस्ते हार्डवेयर पर रखा जा सकता है, कच्चे बाइट्स के लिए ऑब्जेक्ट स्टोरेज, मेटाडेटा और चंक के लिए एक मानक रिलेशनल स्टोर, हॉट प्रोफाइल एज पर अलग से कैश किया जाता है। हॉट टियर का अपना एंडपॉइंट होता है जिसका अपना SLA होता है, सर्च पथ से अलग। और एक्सट्रैक्शन प्रॉम्प्ट केंद्रीकृत है, जिसका अर्थ है कि टियर असाइनमेंट एक सुसंगत तरीके से होता है जो प्रति-एजेंट वर्गीकरण के साथ शायद ही कभी होता है।
ट्रेड-ऑफ वास्तविक हैं। रिमोट हॉट टियर तभी तेज़ है जब नेटवर्क तेज़ हो। एजेंट इंजन के टियर वर्गीकरण को ओवरराइड नहीं कर सकता। एक्सट्रैक्शन प्रॉम्प्ट एक ब्लैक बॉक्स है। लेकिन आर्किटेक्चरल पैटर्न - हॉट टियर अपने स्वयं के एंडपॉइंट के रूप में, कोल्ड टियर सस्ते हार्डवेयर पर, राइट टाइम पर टियर असाइनमेंट - भले ही डिप्लॉयमेंट शेप अलग हो, कॉपी करने लायक है।
पदोन्नति बनाम निश्चित टाइपोलॉजी
mem9 विपरीत मामला है जो स्पष्ट करता है कि टियरिंग क्या नहीं है।
mem9 में तीन मानों वाला एक मेमोरी-टाइप कॉलम है: pinned, insight, और digest। Pinned मेमोरी स्पष्ट कंटेंट-राइट पथों द्वारा असाइन की जाती है, मैन्युअल रूप से बनाई जाती है, LLM पुनर्संरेखण से संरक्षित होती है। Insights हर LLM-निकाले गए लेखन द्वारा असाइन की जाती हैं, परिवर्तनीय, संस्करणयोग्य, प्रतिस्थापनीय। दोनों समान RRF स्कोरिंग के साथ समान हाइब्रिड रिकॉल में भाग लेते हैं। टाइप फ़ील्ड एक राइट-प्रोटेक्शन फ्लैग है, रिट्रीवल फ़िल्टर नहीं और टियर सिग्नल नहीं।
यह टाइपोलॉजी है, टियरिंग नहीं। अंतर महत्वपूर्ण है क्योंकि दोनों को भ्रमित करना आसान है। टाइपोलॉजी शासन का वर्णन करती है: इस मेमोरी को कौन बदल सकता है, किन शर्तों के तहत। टियरिंग एक्सेस पैटर्न का वर्णन करती है: इस मेमोरी की कितनी बार आवश्यकता है, और कौन सा स्टोरेज प्रतिनिधित्व उस आवृत्ति को सबसे अच्छी तरह से पूरा करता है। एक सिस्टम में दोनों हो सकते हैं। supermemory का isStatic एक टियर सिग्नल है, जबकि एक अलग isInference फ़्लैग एक गवर्नेंस क्लास के करीब है। लेकिन उन्हें भ्रमित करने से व्यवहार में सबसे अधिक अस्पष्टता पैदा होती है।
यदि आप अपनी मेमोरी पंक्तियों में एक टाइप फ़ील्ड जोड़ रहे हैं, तो पूछने वाला प्रश्न यह है कि क्या फ़ील्ड एक एक्सेस पैटर्न या एक गवर्नेंस क्लास का वर्णन करता है। यदि यह एक एक्सेस पैटर्न है, तो आप टियरिंग बना रहे हैं। यदि यह एक गवर्नेंस क्लास है, तो आप टाइपोलॉजी बना रहे हैं। दोनों उपयोगी हैं। वे एक ही चीज़ नहीं हैं।
फ्लैट की कीमत क्या है
एक फ्लैट मेमोरी स्टोर चलाने से चार ठोस चीज़ें होती हैं।
हॉट पथ कोल्ड पथ की सर्च लागत चुकाता है। हर रिट्रीवल समान वस्तुओं पर समान इंडेक्स को स्कैन करता है। उपयोगकर्ता का नाम देखने वाला एजेंट उसी सर्च लागत का भुगतान करता है जो छह महीने पहले के मीटिंग नोट को देखने वाला एजेंट करता है। छोटे पैमाने पर यह अदृश्य है। बड़े पैमाने पर यह एक लेटेंसी समस्या है।
कोल्ड पथ प्रॉम्प्ट को शोर से भर देता है। रिट्रीवल सिमैंटिक रूप से निकट की वस्तुएँ लौटाता है, जिसमें स्थायी कॉन्टेक्स्ट, अधिक्रमित तथ्य और ऐसी सामग्री शामिल है जो तथ्यात्मक रूप से सही है लेकिन वर्तमान टर्न के लिए अप्रासंगिक है। मॉडल यह सब प्रोसेस करता है। स्टोर के बढ़ने के साथ कॉन्टेक्स्ट विंडो में सिग्नल-टू-शोर अनुपात घटता जाता है।
आइटम के उन्नयन के लिए कोई तंत्र नहीं है। मेमोरी स्थिर नहीं है। किसी रिश्ते की शुरुआत में एक क्षणभंगुर एपिसोडिक तथ्य समय के साथ उपयोगकर्ता की प्राथमिकताओं या बाधाओं के बारे में एक टिकाऊ सिग्नल बन सकता है। एक फ्लैट स्टोर उस संक्रमण को नोटिस करने के लिए कोई तंत्र नहीं देता। आइटम उसी प्रतिनिधित्व में रहता है जिसमें वह लिखा गया था, भले ही उसकी प्रासंगिकता कैसे भी बदल गई हो।
आइटम के बाहर होने के लिए कोई तंत्र नहीं है। डिमोशन विलोपन नहीं है। एक फ्लैट स्टोर जो पुरानी सामग्री को हटाना चाहता है, उसे उसे हटाना होगा। एक टियर्ड स्टोर उसे एक ठंडे प्रतिनिधित्व में ले जा सकता है, फिर भी खोजा जा सकता है, अब हॉट पथ पर बोझ नहीं। फ्लैट स्टोर एक द्विआधारी विकल्प के लिए मजबूर करता है जो टियर्ड स्टोर नहीं करता।
शुद्ध परिणाम
19 सिस्टमों में से 18 टियरिंग लागू करते हैं, इसकी ओर इशारा करते हैं, या इसके लिए स्पष्ट सिफारिशें रखते हैं। अपवाद mem9 है, जिसमें एक अलग समस्या को हल करने वाली एक टाइपोलॉजी परत है और इसके ऊपर टियरिंग से लाभ होगा।
यदि आप शुरू से एजेंट मेमोरी बना रहे हैं, तो 19 सिस्टमों द्वारा बताई गई प्रगति इस प्रकार है। पहचानें कि एजेंट को हर टर्न में क्या चाहिए, वह आपका हॉट टियर है। पहचानें कि उसे अक्सर लेकिन हमेशा नहीं चाहिए, वह आपका वॉर्म टियर है। पहचानें कि उसे ज़रूरत पड़ने पर क्या मिलना चाहिए लेकिन कभी हर टर्न पर बोझ नहीं बनना चाहिए, वह आपका कोल्ड टियर है। एक पदोन्नति तंत्र चुनें: MemoryOS की तरह हीट-आधारित, Hindsight की तरह LLM-निर्णय, या supermemory की तरह एक्सट्रैक्शन-टाइम वर्गीकरण। एक डिमोशन तंत्र चुनें: टाइम डिके, TTL, या फ्रेशनेस श्रेणियाँ। पहले पदोन्नति और रिट्रीवल स्कोरिंग को अलग रखें, अलगाव को जोड़ना बाद में सुलझाने की तुलना में आसान है। ऊपरी टियर से निचले टियर तक प्रोवेनेंस ट्रैक करें, ताकि आप हमेशा इस प्रश्न का उत्तर दे सकें कि एक संश्लेषित विश्वास कहाँ से आया।
19 सिस्टम बहुत कुछ पर सहमत नहीं हैं। इस पर वे सहमत हैं: किसी भी गैर-तुच्छ एजेंट मेमोरी सिस्टम के लिए एक एकल फ्लैट मेमोरी स्टोर गलत डिफ़ॉल्ट है।
स्टोरेज सस्ता है। अटेंशन महंगी है। वह सिस्टम बनाएँ जो अंतर का दोहन करता है।
यदि आपको यह लेख दिलचस्प लगा, तो कृपया साझा करें।





