چطور با یه مدل کوچیک زبان، میشه رفتار کاربرا رو شبیه‌سازی کرد؟

Fall Back

خب ببین، یکی از معماهای قدیمی دنیای تکنولوژی اینه که چجوری میشه رفتار کاربرا رو درست و حسابی شبیه‌سازی کرد؛ مخصوصاً وقتی پای سیستم‌های پیشنهاددهنده وسطه. منظور از سیستم‌های پیشنهاددهنده، همون چیزاییه که بهت فیلم پیشنهاد میدن یا تو فروشگاه‌های آنلاین میگن “این محصولو هم شاید دوست داشته باشی”. مشکل اینجاست که رفتار کاربرا خیلی پیچیده و غیرقابل پیش‌بینی‌ه، یعنی ممکنه امروز یه چیزی رو لایک کنن، فردا اصلاً بهش اهمیت ندن!

حالا چند وقتیه که مدل‌های زبانی بزرگ یا همون LLMها (مثلاً ChatGPT و امثال اون) اومدن و همه دوست دارن ازشون برای شبیه‌سازی رفتار کاربرا کمک بگیرن. LLM یعنی همون مدل‌های هوش مصنوعی‌ای که می‌تونن مثل انسان متن تولید کنن. ولی یه مشکل مهم وجود داره: این مدل‌های بزرگ برای خیلی کارهای عمومی آموزش دیدن و لزوماً علاقه‌مندی‌ها یا رفتار خاص هر کاربر رو نمی‌دونن.

برای اینکه این مدل‌ها واقعاً شبیه کاربرا رفتار کنن، باید بتونن:

  1. به‌طور مداوم و درست داده‌های زیادی رو درباره تعامل کاربرا و آیتم‌ها (مثلاً فیلم یا محصول) بخونن.
  2. عادت‌های پیش‌فرضی که توی آموزش اولیه‌شون گرفتن رو کنار بذارن و چیزهایی رو یاد بگیرن که مخصوص هر کاربره.
  3. همه این کارا رو برای میلیون‌ها کاربر اجرا کنن!

تا همین الان بیشتر مقاله‌ها و پژوهشا رفتن سراغ اینکه یه جورایی با پرسش و جواب (Prompt) یا آموزش مجدد این مدل‌ها روی جدول‌های تعاملی کاربرا، LLMها رو دقیق‌تر کنن. ولی خب این روشا خیلی پیچیده و خرج‌بر و سنگینه.

اما تو این مقاله یه دیدگاه جدید پیشنهاد شده! یعنی به جای اینکه فقط LLMهای غول‌پیکر رو هی تغییر بدن، اول می‌آن با همین مدل زبانی‌های بزرگ، یه نمایه (Represention) متنی قوی و مناسب برای هر کاربر می‌کشن بیرون. یعنی یه جور خلاصه از شخصیت و رفتار هر کاربر. بعد، می‌آن سراغ مدل‌های زبانی کوچیک‌تر – که بهشون SLM یا Small Language Model می‌گن، مدل‌های سبک‌تر و ارزون‌تر از نظر سخت‌افزاری. این SLMها رو با اطلاعات جمع‌آوری‌شده برای هر کاربر یا گروهی از کاربران (که بهشون persona می‌گن، یعنی شبیه یه شخصیت فرضی با رفتار مشخص) آموزش می‌دن تا رفتار هر کاربر رو شبیه‌سازی کنه.

یه ایده باحال دیگه‌ای که مطرح کردن، استفاده از چیزی به اسم Low-Rank Adapter هست. این یعنی به جای اینکه از نو همه مدل رو برای هر کاربر آموزش بدن، فقط یه لایه کم‌حجم و سبک به مدل اضافه می‌کنن که مخصوص همون persona یا گروه آدم‌ها آموزش داده شده. اینجوری هم می‌تونن هزینه‌ها رو کنترل کنن، هم مدل‌ها رو راحت برای میلیون‌ها کاربر مقیاس بدن.

نکته جذاب اینه که تو آزمایش‌هاشون دیدن روششون واقعاً خوب جواب می‌ده و اون فاصله‌ای که همیشه بین امتیازهای آفلاین (وقتی مدل رو بدون کاربر واقعی تست می‌کنن) و عملکرد مدل توی دنیای واقعی بوده رو کمتر می‌کنه.

اگه خلاصه بخوای بدونی: با یه سری مدل زبان کوچیک که با روش Low-Rank Adapter بهینه شدن، می‌تونیم برای هر کاربر یا هر گروهی از کاربرا، نماینده هوشمند و ارزون داشته باشیم که رفتار کاربر رو شبیه‌سازی کنه. هم سریع‌تره، هم خرج کمتری داره و هم بخش زیادی از دردسرهای مدل‌های بزرگ‌تر رو نداره.

پس اگه بحث شبیه‌سازی کاربرات تو سیستم‌های پیشنهاددهی برات مهمه و نمی‌خوای بری سراغ مدل‌های حجیم و گرون، این روش می‌تونه برات یه راهکار باحال و کاربردی باشه!

منبع: +