Salience is Not Carry Value
বেশিরভাগ মানুষ এজেন্টের মেমরি ভুলভাবে তৈরি করে।
তারা স্টোরেজের ওপর গুরুত্ব দেয়। তারা ভেক্টর স্টোর বা চতুর সামারাইজার ব্যবহার করে। তারা মনে করে যদি সবকিছু সেভ করে রাখা হয়, তবে এজেন্ট সবকিছু জানবে।
তারা ভুল।
যখন আপনার শত শত সেশন থাকে, তখন আপনি সব পড়া সম্ভব নয়। যদি আপনার এজেন্ট একটি নতুন সেশন একদম শূন্য থেকে শুরু করে, তবে এটি সময় নষ্ট করে। আর যদি এটি অতিরিক্ত নয়েজ (noise) নিয়ে শুরু করে, তবে এটি ভুল করে।
সমস্যাটি হলো সিলেকশন। বেশিরভাগ মানুষ Salience এবং Carry Value-এর মধ্যে গুলিয়ে ফেলে।
- Salience আপনাকে জানায় গত সেশনে কোন বিষয়টি বেশি জোরালো বা আলোচিত ছিল।
- Carry value আপনাকে জানায় পরবর্তী সেশনটি সঠিকভাবে চালানোর জন্য কী প্রয়োজন।
একটি ভেরিয়েবল নাম নিয়ে হওয়া জোরালো বিতর্কটির Salience অনেক বেশি। কিন্তু সেই নামটি যদি ভবিষ্যতের কোডকে প্রভাবিত না করে, তবে এর Carry value শূন্য। আপনি যদি এটি সামনে নিয়ে যান, তবে আপনি কেবল নয়েজ যোগ করবেন।
আমি এই নিয়মগুলোর ওপর ভিত্তি করে একটি মেমরি পাইপলাইন চালাই:
প্রথমে মেকানিক্যাল Salience। গুরুত্বপূর্ণ মুহূর্তগুলো খুঁজে পেতে একটি deterministic scorer ব্যবহার করুন। সাধারণ মন্তব্যের চেয়ে সংশোধন বা correction-কে বেশি গুরুত্ব দিন। প্রতিটি হাইলাইট অবশ্যই মূল ট্রান্সক্রিপ্টের সাথে যুক্ত থাকতে হবে। কোনো মডেলকে উৎস ছাড়া তথ্য উদ্ভাবন করতে দেবেন না।
দ্বিতীয়ত, সিন্থেসিস (Synthesis)। হাইলাইটগুলোতে অর্থের একটি স্তর যোগ করার জন্য শুধুমাত্র একটি LLM ব্যবহার করুন। আপনার হাইলাইটগুলো যদি খারাপ হয়, তবে সামারি বা সারাংশটি কেবল আত্মবিশ্বাসের সাথে বলা অর্থহীন বকথা হবে।
রিট্রিভাল-টাইম ব্রিফ (retrieval-time brief) ব্যবহার করুন। প্রতিটি প্রজেক্টের জন্য INDEX.md এর মতো একটি ফাইল তৈরি করুন। এজেন্ট সেশন শুরু করার সময় এই ফাইলটি পড়ে। কোনো মডেলের উচিত নয় তাৎক্ষণিকভাবে এই ব্রিফটি তৈরি করা। এটি অবশ্যই একটি সাধারণ ফাইল হতে হবে যা আপনি নিজে হাতে খুলতে এবং এডিট করতে পারেন।
আরও উন্নত মেমরি তৈরি করতে আপনার কেবল গুরুত্বপূর্ণ জিনিসের একটি তালিকার চেয়ে বেশি কিছু প্রয়োজন। আপনার প্রয়োজন:
- দুটি স্কোর: একটি বিষয়টির গুরুত্ব বা জোরালোতা (salience) বোঝাতে এবং অন্যটি এটি পরবর্তীতে কতটা গুরুত্বপূর্ণ (carry value) তা বোঝাতে।
- মেমরি ক্লাস: সক্রিয় সিদ্ধান্ত (active decisions), অপারেটিং কনস্ট্রেইন্টস (operating constraints) এবং ওপেন লুপস (open loops)-কে আলাদা করুন।
- এক্সপায়ারি ডেট (Expiry dates): প্রতিটি মেমরির বিলুপ্ত হওয়ার একটি কারণ থাকতে হবে। মেয়াদ না থাকলে কনটেক্সট আপনার সিস্টেমকে জ্যাম করে ফেলবে।
- ট্রিগার (Triggers): একটি মেমরি ঠিক কখন প্রদর্শিত হওয়া উচিত তা সুনির্দিষ্টভাবে নির্ধারণ করুন।
লক্ষ্য হলো রিকভারি কস্ট (recovery cost) কমিয়ে আনা।
রিকভারি কস্ট হলো একটি এজেন্ট যেখানে কাজ ছেড়েছিল সেখান থেকে পুনরায় শুরু করতে কত টোকেন বা মিনিট সময় লাগে। আপনার মেমরি পাইপলাইন যদি কেবল লোকদেখানো হয়, তবে আপনার রিকভারি কস্ট অনেক বেশি থাকবে।
বড় স্টোরেজ তৈরি করা বন্ধ করুন। আরও উন্নত সিলেকশন প্রক্রিয়া তৈরি করা শুরু করুন।
উৎস: https://dev.to/jugeni/salience-is-not-carry-value-notes-from-a-running-session-memory-pipeline-4dda
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi
