از یک هوش مصنوعی بخواهید لپتاپی را پیشنهاد دهد، سپس به او بگویید چیزی سبکتر میخواهید. اگر سیستم پیام دوم را به عنوان یک درخواست مستقل در نظر بگیرد، ممکن است لیستی از ultrabooks را به شما بدهد. یا شاید دوباره کوهی از ایستگاههای کاری گیمینگ (gaming workstations) را تحویل دهد، چون هرگز متوجه نشده که شما دسته اول را به دلیل سنگین بودن رد کردهاید. این اتفاق به این دلیل میافتد که بسیاری از سیستمهای هوش مصنوعی هنوز پاسخها را با نگاه کردن به یک پرامپت به صورت مجزا رتبهبندی میکنند. آنها با هر پیام طوری برخورد میکنند که انگار شروع یک جستجوی جدید است و داستان در حال جریانِ گفتگو را نادیده میگیرند.
این رویکرد، ظرافتهای یک چت طولانی را از دست میدهد. گفتگوی انسانی مرحله به مرحله معنا میسازد. ما فرض میکنیم حافظه، قصد و ترجیحات در طول گفتگو حفظ میشوند. وقتی هوش مصنوعی در انجام همین کار شکست میخورد، کمتر شبیه صحبت کردن با یک دستیار و بیشتر شبیه پرتاب کردن پرسشها در یک جعبه جستجو است که بعد از هر کلیک بازنشانی میشود. اصلاح این مسئله مستلزم تغییر در نحوه رتبهبندی پاسخهای احتمالی است. به جای اینکه بپرسیم کدام پاسخ با این جمله مطابقت دارد، باید بپرسیم کدام پاسخ با این شخص، همین حالا، با توجه به تمام آنچه دربارهاش بحث کردهایم، مطابقت دارد.
دو چیز این کار را ممکن میسازد: شخصیسازی و تاریخچه.
چرا رتبهبندی تکمرحلهای از کار میافتد
رتبهبندی سنتی پاسخها از مجموعهدادههای پرسش و پاسخ نشأت گرفته است. یک مدل یک پرامپت را میبیند، مجموعهای از پاسخهای کاندید را تولید میکند و یک رتبهبند، هر کدام را تنها بر اساس همان پرامپت امتیازدهی میکند. کاندیدی که بالاترین امتیاز را بیاورد برنده است. این روش برای حقایق مجزا جواب میدهد، اما برای کارهای مستمر شکست میخورد.
برنامهریزی سفر توسط یک کاربر را تصور کنید. در مرحله اول، او درباره هتلهای ارزان در بانکوک میپرسد. مدل لیستی از هتلهای نزدیک جاده Khao San پیشنهاد میدهد. کاربر پاسخ میدهد: «اینها پرسرصدا به نظر میرسند. من بچه دارم، بنابراین به استخر و دسترسی آسان به Skytrain نیاز دارم.» یک رتبهبند تکمرحلهای فقط جمله دوم را میبیند. ممکن است لیستی عمومی از ریزورتهای خانوادگی در سراسر تایلند ارائه دهد و محدودیتهای خاصی را که قبلاً تعیین شده بود نادیده بگیرد: بانکوک، اقتصادی، ساکت، استخر، نزدیک وسایل نقلیه عمومی.
نتیجه از نظر فنی مرتبط است اما از نظر عملی بیفایده است. کاربر مجبور است زمینه را دوباره تکرار کند. اصطکاک ایجاد میشود و اعتماد کاهش مییابد.
شخصیسازی: چه کسی میپرسد
شخصیسازی یعنی متناسب کردن پاسخها با ترجیحات و دادههای خاص کاربر. این رویکرد به این سوال پاسخ میدهد: این شخص کیست؟
این فراتر از قرار دادن یک نام در خوشآمدگویی است. این یعنی سیستم از طریق پروفایلهای صریح یا الگوهای یادگرفتهشده، میداند کاربر چگونه دوست دارد اطلاعات را دریافت کند. توسعهدهندهای که همواره مثالهای Python میخواهد، حتی زمانی که پرسش او به یک وظیفه برنامهنویسی عمومی اشاره دارد، باید نمونه کدهای Python را ببیند، مگر اینکه خلاف آن را مشخص کند. یک گیاهخوار که هفته گذشته درخواست دستور پخت غذا داده است، نباید مجبور باشد به سیستم یادآوری کند که گوشت را حذف کند. کسی که بولتپوینتهای مختصر را به متنهای طولانی ترجیح میدهد، باید بولتپوینت دریافت کند.
سیگنالهای ملموس میتواند شامل ترجیحات گزارششده توسط کاربر، رفتار گذشته در جلسات مختلف، یا متادیتاهایی مانند مکان و نوع دستگاه باشد. نکته کلیدی این است که این سیگنالها به مرحله رتبهبندی وارد شوند، نه فقط مرحله تولید. وقتی به پاسخهای کاندید امتیاز داده میشود، رتبهبند باید پاسخهایی را که با پروفایل شناختهشده همسو هستند، تقویت کند.
به عنوان مثال، اگر دو پاسخ کاندید هر دو به درستی به سوال «چگونه از عکسهایم نسخه پشتیبان بگیرم؟» پاسخ دهند، اما یکی فضای ذخیرهسازی ابری و دیگری یک درایو NAS محلی را پیشنهاد دهد، رتبهبند باید بداند که این کاربر خاص قبلاً علاقه خود را به مالکیت آفلاین و حریم خصوصی ابراز کرده است. در این صورت گزینه NAS باید امتیاز بالاتری بگیرد. بدون شخصیسازی، مدل مانند شیر یا خط انداختن عمل میکند.
تاریخچه: چه چیزی قبلاً گفته شده است
تاریخچه یعنی استفاده از مراحل قبلی یک گفتگو برای هدایت پاسخ بعدی. این رویکرد به این سوال پاسخ میدهد: تا به حال چه چیزهایی را مشخص کردهایم؟
حتی ضمایر ساده نیز به تاریخچه نیاز دارند. وقتی کاربر میگوید: «آن را آبی کن»، مدل باید بداند «آن» به چه چیزی اشاره دارد. آن مرجع در مرحله قبلی وجود دارد. در گفتگوهای طولانیتر، وابستگیها پیچیده میشوند. محدودیتها انباشته میشوند. کاربر ممکن است یک گزینه را رد کند، یک درخواست را اصلاح کند یا هدف جدیدی را معرفی کند که
