ஏஜென்ட் மெமரி: 7 வகைகள், இதில் 2 உண்மையில் நினைவகம் இல்லை
உங்கள் ஏஜென்ட்டிற்கு நினைவகப் பிரச்சனை இல்லை. அதற்கு ஏழு வெவ்வேறு வகையான நினைவகங்கள் உள்ளன. பெரும்பாலான குழுக்கள் இரண்டை மட்டுமே உருவாக்குகின்றன.
நீங்கள் முதலில் புரிந்து கொள்ள வேண்டியது: மாடலுக்கு எதுவும் நினைவில் இல்லை. ஒரு LLM என்பது ஒரு தூய சார்பு (pure function). அது ஒரு உள்ளீட்டைப் பெற்று வெளியீட்டைத் தருகிறது. அழைப்புகளுக்கு இடையே (calls) அது எந்த நிலையையும் (state) சுமந்து செல்வதில்லை. நினைவகம் போலத் தோன்றுவது, ஒவ்வொரு கோரிக்கையுடனும் (request) வரலாற்றை மீண்டும் அனுப்பும் ஒரு அடுக்கு மட்டுமே. அந்த டோக்கன்களுக்கு நீங்கள் ஒவ்வொரு முறையும் பணம் செலுத்த வேண்டியிருக்கும்.
பெரும்பாலான பொறியியல் முயற்சிகள் இரண்டு முறைகளாகச் சுருங்கிவிடுகின்றன: உரையாடல் வரலாறு (conversation history) மற்றும் RAG. இவை ஏழு வகைகளில் இரண்டு மட்டுமே. பிரச்சனை என்னவென்றால்? இவை காலப்போக்கில் உங்கள் ஏஜென்ட்டை புத்திசாலியாக மாற்றாது.
ஏழு வகையான நினைவகங்கள் இதோ:
• Working: தற்போதைய context window-இல் உள்ள அனைத்தும். • Semantic: உண்மைகள், விருப்பங்கள் மற்றும் துறை சார்ந்த அறிவு. • Episodic: கடந்த கால நிகழ்வுகள் மற்றும் எது வேலை செய்தது அல்லது தோல்வியடைந்தது என்பதன் பதிவு. • Procedural: திறன்கள், பணிப்பாய்வுகள் (workflows) மற்றும் கருவி முறைகள் (tool patterns). • Retrieval: ஒற்றுமைத் தேடல் (similarity search) மூலம் அறிவைப் பெறுதல். • Parametric: மாடல் எடைகளில் (model weights) பொதிந்துள்ள அறிவு. • Prospective: எதிர்கால நோக்கங்கள் மற்றும் திட்டமிடப்பட்ட பணிகள்.
இவற்றில் இரண்டு உண்மையான நினைவகம் அல்ல. RAG என்பது ஒரு விநியோக இயந்திரம் (delivery mechanism) மட்டுமே. அது குழாய் அமைப்பு போன்றது, நீர் அல்ல. அது ஒரு சேமிப்பகத்திலிருந்து செயல்பாட்டு நினைவகத்திற்குத் தரவை நகர்த்துகிறது. நீங்கள் ஒரு வெக்டர் தரவுத்தளத்தை (vector database) மட்டுமே பயன்படுத்தினால், நீங்கள் ஒரு குழாயை மட்டும் உருவாக்கிவிட்டு திரவத்தை மறந்துவிட்டீர்கள் என்று அர்த்தம்.
உண்மையில் கற்றுக்கொள்ளும் ஒரு ஏஜென்ட்டை உருவாக்க, உங்களுக்கு ஒரு ஒருங்கிணைப்புச் சுழற்சி (consolidation loop) தேவை. அதாவது, நிகழ்வுசார் நினைவகத்தை (episodic memory) பொருள்சார் நினைவகமாக (semantic memory) மாற்ற வேண்டும்.
இந்த செயல்முறை இவ்வாறு செயல்படுகிறது:
- ஏஜென்ட் ஒரு நிகழ்வை அனுபவிக்கிறது (Episodic).
- ஏஜென்ட் அதே முறையை பலமுறை மீண்டும் மீண்டும் பார்க்கிறது.
- ஏஜென்ட் அந்த முறையை ஒரு நிரந்தர விதியாக மாற்றுகிறது (Semantic).
இப்போது, ஏஜென்ட் பன்னிரண்டு உதாரணங்களை ஆராய்ந்து சிந்திக்க வேண்டிய அவசியமில்லை. அது ஒரு உண்மையை மட்டும் நேரடியாகப் பயன்படுத்துகிறது.
உங்கள் கட்டமைப்பை எவ்வாறு முன்னுரிமைப்படுத்துவது:
- Working memory-ஐ ஒரு பட்ஜெட் போல நிர்வகிக்கவும். இதுவே உங்கள் அதிகப்படியான செலவாகும். சுருக்கம் (summarization) மற்றும் நீக்குதல் (eviction) முறைகளை ஆரம்பத்திலேயே பயன்படுத்தவும்.
- உங்கள் சேமிப்பகங்களைப் (stores) பிரிக்கவும். உண்மைகள், நிகழ்வுகள் மற்றும் விதிகளை வெவ்வேறு இடங்களில் வைக்கவும்.
- Prospective memory-க்காக ஒரு scheduler-ஐப் பயன்படுத்தவும். ஒரு குறிப்பிட்ட தேதியில் நடக்க வேண்டிய விஷயங்களுக்கு வெக்டர் ஸ்டோரைப் பயன்படுத்த வேண்டாம்.
- Parametric memory-க்காக ஒரு தெளிவான எல்லையை வகுக்கவும். சிந்தனைத் திறனுக்கு (reasoning) மாடலைப் பயன்படுத்தவும், ஆனால் வட்டி விகிதங்கள் அல்லது தயாரிப்பு விதிகள் போன்ற அடிக்கடி மாறும் தரவுகளுக்கு (volatile data) உங்கள் சொந்த சேமிப்பகங்களைப் பயன்படுத்தவும்.
இன்று பெரும்பாலான ஏஜென்ட்கள் ஒரு context window மற்றும் ஒரு vector DB மட்டுமே. நேற்றைய தவறுகளை நாளைய விதிகளாக மாற்றக்கூடிய ஏஜென்ட்களே வெற்றி பெறுகின்றன.
Source: https://dev.to/shudiptotrafder/agent-memory-7-types-and-2-of-them-arent-memory-6oi
Optional learning community: https://t.me/GyaanSetuAi
