علیرضا خیاط خلقی
14 یادداشت منتشر شدهبررسی سازوکار بازیابی حافظه (Memory Retrieval) در عامل های هوش مصنوعی و روش های بهینه سازی آن
با گسترش عامل های هوش مصنوعی مبتنی بر مدل های زبانی بزرگ (LLM-based Agents)، توانایی ذخیره سازی اطلاعات به تنهایی برای ایجاد رفتار هوشمند و پایدار کافی نیست. این سامانه ها علاوه بر نگهداری اطلاعات مربوط به تعاملات گذشته، باید بتوانند در زمان مناسب، داده های مرتبط با وظیفه فعلی را از میان حجم زیادی از اطلاعات استخراج کنند. این فرایند که با عنوان بازیابی حافظه (Memory Retrieval) شناخته می شود، یکی از مولفه های اساسی در طراحی عامل های هوش مصنوعی با قابلیت تعاملات بلندمدت محسوب می شود. عملکرد این بخش بر کیفیت تصمیم گیری، دقت پاسخ گویی و توانایی عامل در استفاده از تجربیات قبلی تاثیر مستقیم دارد.
در یک سامانه مبتنی بر حافظه، اطلاعات ممکن است در قالب مکالمات گذشته، رویدادهای ثبت شده، خلاصه تعاملات، داده های ساختاریافته، بردارهای معنایی یا روابط میان موجودیت ها ذخیره شده باشند. هنگامی که عامل با یک درخواست جدید مواجه می شود، ابتدا باید مشخص کند چه اطلاعاتی برای انجام وظیفه فعلی موردنیاز است. سپس با استفاده از سازوکارهای جست وجو و رتبه بندی، بخش های مرتبط حافظه را شناسایی کرده و آن ها را در اختیار مدل زبانی قرار می دهد. بنابراین، بازیابی حافظه صرفا یک عملیات جست وجوی ساده نیست، بلکه فرایندی چندمرحله ای شامل تحلیل درخواست، انتخاب روش بازیابی، ارزیابی ارتباط اطلاعات و آماده سازی زمینه موردنیاز برای تصمیم گیری است.
یکی از روش های مهم در این حوزه، بازیابی متراکم یا معنایی (Dense Retrieval) است. در این روش، اطلاعات ذخیره شده و درخواست جدید با استفاده از مدل های تعبیه سازی (Embedding Models) به بردارهای عددی تبدیل می شوند. این بردارها در یک فضای چندبعدی قرار می گیرند و سامانه با محاسبه میزان شباهت میان آن ها، اطلاعات نزدیک از نظر معنایی را شناسایی می کند. برای مثال، اگر در حافظه عامل عبارت «کاربر به ابزارهای طراحی وب علاقه مند است» ذخیره شده باشد، ممکن است درخواست «برای ساخت یک وب سایت چه نرم افزاری پیشنهاد می کنی؟» بدون وجود واژگان کاملا یکسان، به آن اطلاعات مرتبط شود. این ویژگی باعث می شود بازیابی معنایی در مقایسه با جست وجوی صرفا مبتنی بر تطبیق واژه ها، انعطاف بیشتری در مواجهه با عبارت های متفاوت داشته باشد. بااین حال، شباهت معنایی بالا همیشه به معنای ارتباط واقعی اطلاعات با درخواست نیست.
روش دیگر، بازیابی تنک (Sparse Retrieval) است که معمولا بر اساس تطبیق واژگان و وزن دهی به اصطلاحات انجام می شود. الگوریتم BM25 یکی از روش های شناخته شده این دسته است که با درنظرگرفتن عواملی مانند فراوانی واژه در سند و میزان اهمیت آن در مجموعه اسناد، نتایج مرتبط را رتبه بندی می کند. این روش برای بازیابی اطلاعاتی که شامل نام های خاص، شناسه ها، اصطلاحات تخصصی یا کلیدواژه های دقیق هستند، کاربرد مناسبی دارد. با وجود این، ممکن است در مواردی که درخواست کاربر از نظر معنایی با اطلاعات ذخیره شده مرتبط است اما واژگان متفاوتی دارد، عملکرد محدودی نشان دهد.
برای کاهش محدودیت های این دو روش، از بازیابی ترکیبی (Hybrid Retrieval) استفاده می شود. در این رویکرد، نتایج بازیابی تنک و متراکم با یکدیگر ترکیب می شوند تا هم تطبیق واژگانی و هم ارتباط معنایی در فرایند جست وجو مورد توجه قرار گیرد. یکی از روش های ترکیب نتایج، ادغام رتبه متقابل (Reciprocal Rank Fusion یا RRF) است که رتبه یک سند در چند فهرست بازیابی را برای تعیین جایگاه نهایی آن در نظر می گیرد. این روش می تواند در سامانه هایی که با انواع مختلف درخواست ها و داده ها سروکار دارند، کیفیت پوشش نتایج را بهبود دهد.
یکی دیگر از روش های موثر در بهینه سازی بازیابی حافظه، بازرتبه بندی (Reranking) است. در این روش، ابتدا یک سامانه بازیابی سریع مجموعه ای از اطلاعات اولیه را انتخاب می کند. سپس یک مدل رتبه بندی دقیق تر، ارتباط هر نمونه را با درخواست فعلی بررسی کرده و ترتیب نتایج را اصلاح می کند. برای مثال، ممکن است جست وجوی اولیه ده ها قطعه اطلاعات را بازیابی کند؛ اما مدل بازرتبه بند تنها مواردی را در اولویت قرار دهد که از نظر موضوع، زمان، زمینه و هدف درخواست ارتباط بیشتری دارند. استفاده از مدل های Cross-Encoder یکی از رویکردهای رایج برای این مرحله است. این مدل ها پرسش و محتوای بازیابی شده را به صورت مشترک تحلیل می کنند و معمولا ارزیابی دقیق تری از ارتباط آن ها ارائه می دهند؛ هرچند اجرای آن ها به محاسبات بیشتری نسبت به بازیابی اولیه نیاز دارد.
علاوه بر انتخاب الگوریتم مناسب، نحوه سازمان دهی اطلاعات نیز بر کیفیت بازیابی تاثیر می گذارد. اگر تمام تاریخچه تعاملات بدون ساختار مشخص در قالب متن های طولانی ذخیره شود، پیدا کردن جزئیات موردنیاز دشوارتر خواهد شد. یکی از راهکارهای بهینه سازی، تقسیم اطلاعات به بخش های کوچک تر و معنادار (Chunking) است. در این روش، مکالمات یا اسناد بر اساس موضوع، رویداد یا تغییر زمینه به قطعات قابل بازیابی تقسیم می شوند. همچنین اختصاص فراداده هایی مانند تاریخ ثبت، منبع اطلاعات، شناسه کاربر، موضوع و نوع داده می تواند امکان فیلترکردن و محدودسازی نتایج را فراهم کند. پژوهش LongMemEval نشان داده است که طراحی مناسب واحدهای حافظه، گسترش کلیدهای بازیابی با استفاده از اطلاعات مرتبط و توجه به زمان در بازنویسی پرسش ها می تواند به بهبود بازیابی اطلاعات در تعاملات بلندمدت کمک کند.
در عامل هایی که در طول زمان با یک کاربر یا محیط مشخص تعامل دارند، توجه به بعد زمانی اطلاعات اهمیت ویژه ای دارد. ممکن است یک داده در گذشته صحیح بوده باشد، اما در زمان فعلی اعتبار نداشته باشد. برای نمونه، اگر کاربر در یک تعامل از محل سکونت قبلی خود صحبت کرده و چند ماه بعد محل سکونتش تغییر کرده باشد، بازیابی بدون توجه به تاریخ و اعتبار اطلاعات می تواند به پاسخ اشتباه منجر شود. برای مدیریت این مسئله می توان از بازیابی آگاه از زمان (Time-aware Retrieval) استفاده کرد. در این روش، اطلاعات همراه با زمان ثبت، دوره اعتبار و در صورت امکان، رابطه آن با داده های جایگزین شده نگهداری می شوند. در نتیجه، عامل می تواند هنگام بازیابی، علاوه بر ارتباط معنایی، تازگی و اعتبار اطلاعات را نیز بررسی کند.
از دیگر روش های بهینه سازی می توان به بازنویسی و گسترش پرسش (Query Rewriting and Expansion) اشاره کرد. گاهی درخواست کاربر کوتاه، مبهم یا وابسته به مکالمات قبلی است و مستقیما برای جست وجو مناسب نیست. در چنین شرایطی، عامل می تواند درخواست را به یک عبارت دقیق تر و مستقل تبدیل کند یا آن را به چند پرسش کوچک تر تجزیه نماید. برای مثال، پرسش «همان پروژه قبلی را ادامه بده» بدون دسترسی به زمینه مکالمه ممکن است اطلاعات کافی برای بازیابی نداشته باشد. عامل می تواند با مراجعه به اطلاعات قبلی، نام پروژه، آخرین وضعیت و وظایف باقی مانده را استخراج کند و سپس جست وجوی هدفمندتری انجام دهد. در مسائل پیچیده تر، تجزیه پرسش به چند زیرپرسش امکان بازیابی اطلاعات از منابع مختلف و ترکیب آن ها را فراهم می کند.
بااین حال، افزایش تعداد اطلاعات بازیابی شده همیشه به معنای افزایش کیفیت پاسخ نیست. انتقال تعداد زیادی داده نامرتبط به پنجره زمینه مدل می تواند مصرف توکن، هزینه پردازش و احتمال سردرگمی مدل را افزایش دهد. به همین دلیل، انتخاب تعداد مناسب نتایج، حذف نمونه های تکراری، خلاصه سازی اطلاعات و محدودکردن محتوای بازیابی شده به بخش های ضروری اهمیت دارد. همچنین در برخی معماری ها، عامل پیش از اجرای عملیات بازیابی تصمیم می گیرد که آیا برای انجام وظیفه فعلی واقعا به حافظه خارجی نیاز دارد یا خیر. چنین رویکردی با عنوان بازیابی تطبیقی (Adaptive Retrieval) شناخته می شود و هدف آن ایجاد تعادل میان دقت، سرعت و هزینه محاسباتی است.
ارزیابی سازوکار بازیابی حافظه نیز یکی از موضوعات مهم در توسعه این سامانه ها محسوب می شود. معیارهایی مانند دقت بازیابی (Precision)، فراخوانی (Recall)، میانگین رتبه معکوس (MRR) و معیار رتبه بندی تجمعی تنزیل شده (nDCG) برای سنجش کیفیت انتخاب و ترتیب اطلاعات بازیابی شده مورد استفاده قرار می گیرند. علاوه بر این، باید بررسی شود که اطلاعات انتخاب شده تا چه اندازه به پاسخ صحیح و انجام موفق وظیفه منجر می شوند. پژوهش هایی مانند LongMemEval و MemoryAgentBench با طراحی مجموعه آزمون های تخصصی، قابلیت هایی نظیر یادآوری اطلاعات، استدلال میان چند جلسه تعامل، تشخیص تغییرات زمانی، یادگیری در جریان استفاده و فراموشی انتخابی را ارزیابی می کنند. این پژوهش ها نشان می دهند که عملکرد حافظه عامل را نمی توان تنها با سنجش شباهت معنایی میان پرسش و اطلاعات ذخیره شده ارزیابی کرد.
در کنار مسائل فنی، امنیت و قابلیت اعتماد نیز باید در طراحی سازوکار بازیابی مورد توجه قرار گیرند. اطلاعات ذخیره شده ممکن است ناقص، قدیمی، متناقض یا حتی حاوی دستورهای مخرب باشند. اگر عامل محتوای بازیابی شده را بدون بررسی اعتبار و منبع آن به عنوان دستور اجرایی بپذیرد، احتمال بروز حملاتی مانند تزریق پرامپت غیرمستقیم افزایش می یابد. ازاین رو، تفکیک داده از دستور، کنترل منابع اطلاعاتی، ثبت منشا داده ها و اعتبارسنجی محتوای بازیابی شده از الزامات مهم طراحی این سامانه ها هستند.
در مجموع، سازوکار بازیابی حافظه یکی از عوامل تعیین کننده در عملکرد عامل های هوش مصنوعی است. یک سامانه بازیابی کارآمد باید بتواند اطلاعات مرتبط را با حداقل هزینه و تاخیر شناسایی کند، تغییرات زمانی و تناقض های اطلاعاتی را در نظر بگیرد و تنها محتوای موردنیاز را در اختیار مدل قرار دهد. ترکیب روش های بازیابی معنایی و واژگانی، بازرتبه بندی، بازنویسی پرسش، مدیریت زمانی و بازیابی تطبیقی می تواند کیفیت این فرایند را بهبود دهد. بااین حال، هیچ روش واحدی برای تمام کاربردها بهترین عملکرد را تضمین نمی کند و انتخاب معماری مناسب باید بر اساس نوع داده، پیچیدگی وظیفه، محدودیت منابع و نتایج ارزیابی تجربی انجام شود. آینده عامل های هوش مصنوعی به توسعه سامانه هایی وابسته است که علاوه بر توانایی ذخیره سازی گسترده اطلاعات، بتوانند در هر موقعیت، دانش مرتبط، معتبر و قابل اتکا را به درستی بازیابی و در تصمیم گیری خود استفاده کنند.