یک واقعیت ساده اما بنیادین وجود دارد: مدلهای زبانی بهخودیخود هیچ اطلاعاتی را در حافظه نگه نمیدارند. با هر بار پرسش، مدل تنها متنی را میبیند که در همان لحظه در اختیارش گذاشتهاید؛ گویی گفتوگوی دیروز هرگز وجود نداشته است. بنابراین، وقتی به نظر میرسد عاملی چیزی را «به یاد میآورد»، این توانایی حاصل عملکرد خودِ مدل نیست، بلکه از لایههایی سرچشمه میگیرد که پیرامون آن توسعه یافتهاند. در ادامه به بررسی این لایهها میپردازیم.
سه نوع حافظه
عاملها معمولاً به سه نوع حافظه با کارکردهای متمایز نیاز دارند.
حافظهٔ کاری کوتاهمدتترین نوع است و به بافتار فعالیتی اختصاص دارد که در حال انجام است؛ یعنی پاسخی به این پرسش که «در حال حاضر مشغول انجام چه کاری هستم؟». گنجایش این حافظه اندک است و در آنِ واحد تنها میتواند موارد محدودی را در خود نگه دارد.
حافظهٔ کوتاهمدت تاریخچهٔ گفتوگوی جاری را در بر میگیرد؛ یعنی آنچه چند پیام پیش میان کاربر و عامل ردوبدل شده است. همین حافظه به عامل امکان میدهد دریابد منظور از جملهای مانند «آن را در سه ضرب کن» چیست. با این حال، ظرفیت این تاریخچه نامحدود نیست و با طولانی شدن گفتوگو، معمولاً تنها بخشهای پایانی آن حفظ میشود.
حافظهٔ بلندمدت ماهیتی پایدار دارد و اطلاعاتی نظیر ترجیحات کاربر، حقایق آموختهشده و دادههایی را که باید در جلسات گوناگون حفظ شوند، نگهداری میکند؛ پاسخی به این پرسش که «کاربر در ماه گذشته چه گزینهای را ترجیح میداد؟».
چالش حفظ اطلاعات در گفتوگوهای طولانی
از آنجا که مدل تاریخچه را ذخیره نمیکند، باید در هر فراخوانی کلِ این تاریخچه را دوباره به آن ارسال کنید. اما با طولانی شدن گفتوگو و محدودیت پنجرهٔ بافتار، این کار دشوار میشود. برای حل این مشکل، دو رویکرد متداول وجود دارد. روش اول، پنجرهٔ کشویی است: در این روش تنها پیامهای اخیر حفظ و پیامهای قدیمیتر حذف میشوند؛ راهکاری ساده و کمهزینه که البته عیب آن، از دست رفتن بافتار قدیمی است. روش دوم، خلاصهسازی است: فشردهسازی پیامهای قدیمی در قالب یک خلاصه و نگهداری آن در کنار پیامهای اخیر؛ رویکردی که هزینهبرتر است اما بافتار و اطلاعات کلیدی را حفظ میکند.
بازنمایی دانش: ساختار حافظهٔ بلندمدت
حافظهٔ بلندمدت صرفاً انباشتی از متون نیست، بلکه دانش باید به شکلی ساختاریافته ذخیره شود تا بازیابی آن امکانپذیر باشد. برای این کار چند روش سنتی و کلاسیک وجود دارد:
شبکههای معنایی دانش را در قالب گرهها (مفاهیم) و یالهای برچسبدار (روابط) ذخیره میکنند؛ برای نمونه، «پنگوئن» یک «پرنده» است و «پرنده» «بال» دارد. این ساختار قابلیت ارثبری را فراهم میسازد؛ به این معنا که پنگوئن تمام ویژگیهای پرنده را به ارث میبرد، مگر مواردی که بهطور خاص بازنویسی شده باشند (مانند اینکه پنگوئن پرواز نمیکند).
قابها الگوهایی دارای فضاهای خالی هستند؛ برای مثال، قاب «پرنده» شامل ویژگیهایی مانند {بال: دارد، پرواز: میکند} است و قاب «پنگوئن» ضمن ارثبری از آن، ویژگی پرواز را به «نمیکند» تغییر میدهد.
منطق مرتبه اول دانش را در قالب حقایق و قوانین صورتبندی میکند و امکان استنتاج منطقی را فراهم میسازد؛ برای نمونه: اگر «سقراط انسان است» و «هر انسانی فانی است»، آنگاه «سقراط فانی است». این روش بسیار دقیق است، اما در مواجهه با عدمقطعیت عملکرد مناسبی ندارد.
جستوجوی معنایی و پایگاه دادهٔ برداری
با این حال، حافظهٔ یک عامل هوشمند به انعطافپذیری بیشتری نیاز دارد. جستوجوی واژهبهواژه شکننده و محدود است؛ مثلاً اگر اطلاعاتی ذیل عنوان «یادگیری ماشین» ذخیره شده باشد، جستوجوی عبارت «هوش مصنوعی» آن را پیدا نخواهد کرد. راهکار این مسئله، جستوجوی معنایی است. در این روش، هر متن به برداری تبدیل میشود که بازنمای معنای آن است و این بردارها در یک پایگاه دادهٔ برداری ذخیره میشوند. هنگام طرح پرسش، خودِ پرسش نیز به بردار تبدیل شده و نزدیکترین بردارها — یعنی نزدیکترین مفاهیم و نه لزوماً واژهها — بازیابی میشوند. این سازوکار به عامل امکان میدهد تا گفتوگوهای مشابه در گذشته را حتی در صورت استفاده از کلمات متفاوت، بهسرعت بیابد.
گرافهای دانش: اهمیت کلیدی روابط
رویکرد دیگر، استفاده از گراف دانش است که حقایق را در قالب سهتاییهای (نهاد، رابطه، گزاره) — مانند (برج میلاد، واقع در، تهران) — ذخیره میکند. مزیت برجستهٔ این ساختار، امکان استنتاج زنجیرهای است؛ به این ترتیب که از گزارههای «برج میلاد در تهران است» و «تهران در ایران قرار دارد»، میتوان به نتیجهای تازه دست یافت. تلفیق گراف دانش با مدل زبانی، مزایای هر دو روش را یکجا فراهم میآورد: دقت بالای حقایق استخراجشده از گراف در کنار روانی زبان طبیعی مدل زبانی.
جمعبندی
حافظهٔ یک عامل هوشمند، ساختاری یکپارچه و تکبعدی نیست، بلکه مجموعهای از لایههاست که هرکدام وظیفهٔ خاصی را بر عهده دارند: حافظهٔ کاری برای وظایف جاری، حافظهٔ کوتاهمدت برای گفتوگوی فعلی، و حافظهٔ بلندمدت برای حفظ دانش پایدار. از آنجا که خودِ مدل هیچ دادهای را ذخیره نمیکند، طراحی دقیق و بهینهٔ این لایههاست که تفاوت میان یک پاسخدهندهٔ فراموشکار و دستیاری هوشمند و یادگیرنده را رقم میزند.