Salience کا مطلب Carry Value نہیں ہے
زیادہ تر لوگ ایجنٹ میموری (agent memory) غلط طریقے سے بناتے ہیں۔
وہ اسٹوریج (storage) پر توجہ دیتے ہیں۔ وہ ویکٹر اسٹورز (vector stores) یا ہوشیار خلاصہ نگاروں (summarizers) کا استعمال کرتے ہیں۔ وہ سمجھتے ہیں کہ اگر وہ سب کچھ محفوظ کر لیں گے، تو ایجنٹ کو سب کچھ معلوم ہو جائے گا۔
وہ غلط ہیں۔
جب آپ کے پاس سینکڑوں سیشنز ہوں، تو آپ سب کچھ نہیں پڑھ سکتے۔ اگر آپ کا ایجنٹ ایک نیا سیشن بالکل خالی ہاتھ (cold) شروع کرتا ہے، تو وہ وقت ضائع کرتا ہے۔ اگر وہ بہت زیادہ شور (noise) کے ساتھ شروع ہوتا ہے، تو وہ غلطیاں کرتا ہے۔
مسئلہ انتخاب (selection) کا ہے۔ زیادہ تر لوگ salience کو carry value سمجھنے کی غلطی کرتے ہیں۔
- Salience آپ کو بتاتی ہے کہ پچھلے سیشن میں کیا چیز نمایاں (loud) تھی۔
- Carry value آپ کو بتاتی ہے کہ اگلے سیشن کو کام کرنے کے لیے کس چیز کی ضرورت ہے۔
کسی ویری ایبل (variable) کے نام کے بارے میں ہونے والی بحث کی salience زیادہ ہو سکتی ہے۔ لیکن اگر وہ نام مستقبل کے کوڈ پر اثر انداز نہیں ہوتا، تو اس کی carry value صفر ہے۔ اگر آپ اسے آگے لے کر جاتے ہیں، تو آپ صرف شور (noise) بڑھاتے ہیں۔
میں ان اصولوں پر مبنی ایک میموری پائپ لائن (memory pipeline) چلاتا ہوں:
پہلے میکانکی salience (Mechanical salience): اہم لمحات تلاش کرنے کے لیے ایک deterministic scorer استعمال کریں۔ سادہ تبصروں (comments) کے مقابلے میں اصلاحات (corrections) کو زیادہ اہمیت دیں۔ ہر ہائی لائٹ (highlight) کا تعلق اصل ٹرانسکرپٹ (raw transcript) سے ہونا چاہیے۔ کسی ماڈل کو بغیر کسی ذریعے (source) کے حقائق ایجاد کرنے کی اجازت نہ دیں۔
دوسرا مرحلہ سنتھیسز (Synthesis) ہے: ہائی لائٹس میں معنی کا اضافہ کرنے کے لیے صرف LLM کا استعمال کریں۔ اگر آپ کی ہائی لائٹس خراب ہیں، تو خلاصہ محض پر اعتماد بے تکی باتیں (confident nonsense) ہوگا۔
ریٹریول ٹائم بریف (retrieval-time brief) کا استعمال کریں: ہر پروجیکٹ کے لیے
INDEX.mdجیسی فائل بنائیں۔ ایجنٹ سیشن کے آغاز میں اس فائل کو پڑھتا ہے۔ کسی بھی ماڈل کو یہ بریف خود سے (on the fly) ایجاد نہیں کرنا چاہیے۔ یہ ایک سادہ فائل ہونی چاہیے جسے آپ خود کھول کر ایڈٹ کر سکیں۔
بہتر میموری بنانے کے لیے، آپ کو صرف اہم چیزوں کی فہرست سے زیادہ کی ضرورت ہے۔ آپ کو چاہیے:
- دو اسکورز: ایک اس بات کے لیے کہ وہ کتنا نمایاں تھا (salience) اور دوسرا اس بات کے لیے کہ بعد میں اس کی کتنی اہمیت ہے (carry value)۔
- میموری کلاسز: فعال فیصلوں (active decisions)، آپریٹنگ پابندیوں (operating constraints)، اور کھلے ہوئے لوز (open loops) کو الگ الگ کریں۔
- میعاد ختم ہونے کی تاریخیں (Expiry dates): میموری کے ہر حصے کے ختم ہونے کی کوئی وجہ ہونی چاہیے۔ میعاد کے بغیر، سیاق و سباق (context) آپ کے سسٹم کو بھر دیتا ہے۔
- ٹریگرز (Triggers): بالکل واضح کریں کہ میموری کا کوئی حصہ کب ظاہر ہونا چاہیے۔
مقصد ریکوری کاسٹ (recovery cost) کو کم سے کم کرنا ہے۔
ریکوری کاسٹ سے مراد وہ ٹوکنز (tokens) یا منٹ ہیں جو ایک ایجنٹ کو وہاں تک پہنچنے میں لگتے ہیں جہاں اس نے کام چھوڑا تھا۔ اگر آپ کی میموری پائپ لائن محض دکھاوا ہے، تو آپ کی ریکوری کاسٹ زیادہ ہی رہے گی۔
بڑا اسٹوریج بنانا بند کریں۔ بہتر انتخاب (selection) بنانا شروع کریں۔
Source: https://dev.to/jugeni/salience-is-not-carry-value-notes-from-a-running-session-memory-pipeline-4dda
Optional learning community: https://t.me/GyaanSetuAi
