𝗦𝗮𝗹𝗶𝗲𝗻𝗰𝗲 𝗶𝘀 𝗡𝗼𝘁 𝗖𝗮𝗿𝗿𝘆 𝗩𝗮𝗹𝘂𝗲
बहुतेक लोक एजंट मेमरी (agent memory) चुकीच्या पद्धतीने तयार करतात.
त्यांचे लक्ष फक्त स्टोरेजवर असते. ते वेक्टर स्टोअर्स (vector stores) किंवा हुशार समरायझर्स (summarizers) वापरतात. त्यांना वाटते की जर त्यांनी सर्व काही सेव्ह केले, तर एजंटला सर्व काही समजेल.
ते चुकीचे आहेत.
जेव्हा तुमच्याकडे शेकडो सेशन्स असतात, तेव्हा तुम्ही ते सर्व वाचू शकत नाही. जर तुमचा एजंट नवीन सेशन 'कोल्ड' (cold) पद्धतीने सुरू करत असेल, तर त्याचा वेळ वाया जातो. जर तो खूप जास्त गोंधळात (noise) सुरू झाला, तर तो चुका करतो.
समस्या निवडीची (selection) आहे. बहुतेक लोक सॅलियन्स (salience) आणि कॅरी व्हॅल्यू (carry value) यामध्ये गोंधळ करतात.
- सॅलियन्स (Salience) तुम्हाला सांगते की मागील सेशनमध्ये काय ठळक (loud) होते.
- कॅरी व्हॅल्यू (Carry value) तुम्हाला सांगते की पुढील सेशन कार्यक्षमतेने चालण्यासाठी कशाची गरज आहे.
व्हेरिएबलच्या नावावरून झालेला मोठा वाद याला उच्च सॅलियन्स (high salience) आहे. पण जर त्या नावाचा भविष्यातील कोडवर कोणताही परिणाम होत नसेल, तर त्याची कॅरी व्हॅल्यू शून्य आहे. जर तुम्ही ते पुढे नेले, तर तुम्ही फक्त गोंधळ (noise) वाढवता.
मी या नियमांवर आधारित एक मेमरी पाइपलाइन (memory pipeline) चालवतो:
प्रथम मेकॅनिकल सॅलियन्स (Mechanical salience). महत्त्वाचे क्षण शोधण्यासाठी एक डिटरमिनिस्टिक स्कोरर (deterministic scorer) वापरा. साध्या कमेंट्सपेक्षा दुरुस्त्यांना (corrections) जास्त महत्त्व द्या. प्रत्येक हायलाईट मूळ ट्रान्सक्रिप्टशी (raw transcript) जोडलेला असावा. मॉडेलला कोणत्याही स्रोताशिवाय तथ्ये स्वतःहून तयार करू देऊ नका.
दुसरे म्हणजे सिंथेसिस (Synthesis). हायलाईट्सना अर्थाचा एक स्तर जोडण्यासाठीच LLM चा वापर करा. जर तुमचे हायलाईट्सच खराब असतील, तर सारांश (summary) फक्त आत्मविश्वासाने दिलेले निरर्थक बोलणे ठरेल.
रिट्रिव्हल-टाइम ब्रीफ (retrieval-time brief) वापरा. प्रत्येक प्रोजेक्टसाठी INDEX.md सारखी फाईल तयार करा. एजंट सेशनच्या सुरुवातीला ही फाईल वाचतो. कोणत्याही मॉडेलने हा ब्रीफ स्वतःहून तयार करू नये. ती एक साधी फाईल असावी जी तुम्ही स्वतः उघडून संपादित करू शकता.
चांगली मेमरी तयार करण्यासाठी, तुम्हाला केवळ महत्त्वाच्या गोष्टींची यादी असून चालणार नाही. तुम्हाला खालील गोष्टींची आवश्यकता आहे:
- दोन स्कोअर: एक ते किती ठळक होते (salience) यासाठी आणि दुसरा ते नंतर किती महत्त्वाचे ठरेल (carry value) यासाठी.
- मेमरी क्लासेस (Memory classes): सक्रिय निर्णय (active decisions), कार्यान्वित मर्यादा (operating constraints) आणि ओपन लूप्स (open loops) वेगळे करा.
- एक्सपायरी डेट्स (Expiry dates): मेमरीच्या प्रत्येक भागाला संपण्याचे (expire होण्याचे) एक कारण असले पाहिजे. एक्सपायरीशिवाय, कॉन्टेक्स्ट (context) तुमच्या सिस्टममध्ये अडथळा निर्माण करतो.
- ट्रिगर्स (Triggers): मेमरीचा एखादा भाग नेमका कधी दिसला पाहिजे हे निश्चित करा.
ध्येय रिकव्हरी कॉस्ट (recovery cost) कमी करणे हे आहे.
रिकव्हरी कॉस्ट म्हणजे एजंटला जिथे त्याने काम सोडले होते तिथपर्यंत पोहोचण्यासाठी किती टोकन्स किंवा मिनिटे लागतात. जर तुमची मेमरी पाइपलाइन केवळ दिखावा असेल, तर तुमची रिकव्हरी कॉस्ट जास्तच राहील.
मोठे स्टोरेज बनवणे थांबवा. उत्तम निवड (selection) करणे सुरू करा.
स्रोत: https://dev.to/jugeni/salience-is-not-carry-value-notes-from-a-running-session-memory-pipeline-4dda
पर्यायी लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi
