एजंट मेमरी: ७ प्रकार, आणि २ प्रत्यक्षात काहीही लक्षात ठेवत नाहीत

तुमच्या एजंटला मेमरीची समस्या नाही. त्याच्याकडे सात वेगवेगळ्या प्रकारची मेमरी आहे. बहुतेक टीम्स फक्त दोनच तयार करतात.

पहिली गोष्ट जी तुम्हाला समजून घेणे आवश्यक आहे ती म्हणजे: मॉडेलला काहीही आठवत नाही. LLM हे एक 'pure function' आहे. ते इनपुट घेते आणि आउटपुट देते. ते वेगवेगळ्या कॉल्समध्ये कोणतीही 'state' (स्थिती) साठवून ठेवत नाही. जे मेमरीसारखे वाटते, ते प्रत्यक्षात प्रत्येक विनंतीसोबत (request) इतिहास पुन्हा पाठवणारी एक लेयर आहे. तुम्हाला प्रत्येक वेळी त्या टोकन्ससाठी पैसे मोजावे लागतात.

बहुतेक इंजिनिअरिंग प्रयत्न दोन पॅटर्नमध्ये मर्यादित राहतात: कन्वर्सेशन हिस्ट्री (conversation history) आणि RAG. हे सात प्रकारांपैकी दोन आहेत. समस्या काय आहे? ते तुमच्या एजंटला काळानुसार अधिक हुशार बनवत नाहीत.

येथे मेमरीचे सात प्रकार आहेत:

• वर्किंग (Working): सध्याच्या कॉन्टेक्स्ट विंडोमधील सर्व काही. • सिमेंटिक (Semantic): तथ्ये, पसंती आणि डोमेन ज्ञान. • एपिसोडिक (Episodic): भूतकाळातील घटनांचा लॉग आणि काय यशस्वी झाले किंवा काय अपयशी ठरले याचा तपशील. • प्रोसिजरल (Procedural): कौशल्ये, वर्कफ्लो आणि टूल पॅटर्न. • रिट्रिव्हल (Retrieval): सिमिलॅरिटी सर्चद्वारे ज्ञान मिळवणे. • पॅरामेट्रिक (Parametric): मॉडेल वेट्समध्ये (model weights) समाविष्ट असलेले ज्ञान. • प्रॉस्पेक्टिव्ह (Prospective): भविष्यातील हेतू आणि नियोजित कार्ये.

यापैकी दोन खऱ्या मेमरी नाहीत. RAG हे केवळ एक डिलिव्हरी मेकॅनिझम आहे. ते प्लंबिंगसारखे आहे, पाणी नाही. ते डेटा एका स्टोअरमधून वर्किंग मेमरीमध्ये हलवते. जर तुम्ही फक्त वेक्टर डेटाबेस वापरला, तर तुम्ही फक्त एक पाईप तयार केला आणि द्रव पदार्थ विसरलात.

खरोखर शिकणारा एजंट तयार करण्यासाठी, तुम्हाला 'consolidation loop' ची आवश्यकता आहे. याचा अर्थ एपिसोडिक मेमरीचे सिमेंटिक मेमरीमध्ये रूपांतर करणे.

ही प्रक्रिया अशी काम करते: १. एजंट एखाद्या घटनेचा अनुभव घेतो (Episodic). २. एजंट तोच पॅटर्न अनेक वेळा पुन्हा पुन्हा पाहतो. ३. एजंट त्या पॅटर्नचे एका कायमस्वरूपी नियमात रूपांतर करतो (Semantic).

आता, एजंटला बारा उदाहरणांवरून तर्क करण्याची गरज पडत नाही. ते फक्त एक तथ्य लागू करते.

तुमच्या बिल्डला प्राधान्य कसे द्यावे:

  • वर्किंग मेमरीचे व्यवस्थापन बजेटप्रमाणे करा. हा तुमचा सर्वात मोठा खर्च आहे. सुरुवातीलाच समरायझेशन (summarization) आणि इव्हिक्शन (eviction) चा वापर करा.
  • तुमचे स्टोअर्स वेगळे ठेवा. तथ्ये, घटना आणि नियम वेगवेगळ्या ठिकाणी ठेवा.
  • प्रॉस्पेक्टिव्ह मेमरीसाठी शेड्युलर (scheduler) वापरा. विशिष्ट तारखेला होणाऱ्या गोष्टींसाठी वेक्टर स्टोअरचा वापर करू नका.
  • पॅरामेट्रिक मेमरीसाठी एक स्पष्ट मर्यादा ठरवा. तर्कासाठी मॉडेल वापरा, परंतु व्याजदर किंवा उत्पादन नियमांसारख्या अस्थिर डेटासाठी तुमचे स्वतःचे स्टोअर्स वापरा.

आजचे बहुतेक एजंट्स फक्त एक कॉन्टेक्स्ट विंडो आणि वेक्टर DB आहेत. जे एजंट्स जिंकतात, ते म्हणजे जे कालच्या चुकांचे रूपांतर उद्याच्या नियमांमध्ये करू शकतात.

Source: https://dev.to/shudiptotrafder/agent-memory-7-types-and-2-of-them-arent-memory-6oi

Optional learning community: https://t.me/GyaanSetuAi