فکر می‌کنم حتی اگر اخبار هوش مصنوعی رو دنبال نکرده باشید، راجع به ChatGPT حداقل یک بار شنیدید.

زمانی ترند روز بیت‌کوین و بلاک چین بود و می‌خواستند همه رو چی با بلاک چین انجام بدن، الان ترند ChatGPT و به طور عام‌تر مدل‌های زبانی بزرگه. چیزی که علمای دیپ لرنینگ به طور خلاصه میگن LLM؛ مخفف Large Language Models.

بالاخره از قدیم‌الایام سعی داشتند که بتوانند زبان‌های بشری رو مدل‌سازی کنند و بفهمند. هر چی باشه فهم داده متنی نسبت به فهم انواع دیگه داده مثل تصویر نسبتاً راحت‌تره.

علتش هم به نظر من اینه که تصویر خیلی بی‌قاعده و بی‌نظمه. تصویر می‌تونه هر شکل و فرمی داشته باشه. از رزولوشن گرفته تا تعداد کانال و کلی پارامتر دیگه.

ولی متن به نسبت محدودتره. معنای هر کلمه تو زبان کمابیش مشخصه و قواعد زبانی هم طرز قرارگیری کلمات در کنار هم رو به شدت محدود می‌کنند.

زمانی رویکردمون نسبت به مدل‌سازی انجام یک سری کارهای از پیش تعریف شده بود؛ یعنی یک مدل درست می‌کردیم برای دسته‌بندی متن. یک مدل برای خوشه‌بندی و خلاصه می‌رفتیم برای هر کاری که داشتیم یک مدل جداگانه آموزش می‌دادیم.

البته منظورم زمان رضاشاه یا عقد دقیانوس نیست. کل بحث یادگیری عمیق و بحث‌های مرتبط ۱۰ ۱۵ سال (تقریباً از ۲۰۱۲) هست که رونق گرفته و همه این اتفاقات هم تو همین مدت اتفاق افتاده.

خلاصه از یک جایی به بعد دیدن که داریم دوباره کاری می‌کنیم. مثلاً دیدند که مدل‌هایی که برای تشخیص احساس آموزش می‌دیم با مدلی که برای دسته‌بندی نوع خبر آموزش می‌دیم، مقدار زیادی اشتراک دارند.

در واقع با بررسی‌های خیلی زیاد متوجه شدند که لایه‌های اولیه شبکه‌های عمیق تو خیلی از این تسک‌های به ظاهر متفاوت، مقادیر کمابیش یکسانی رو دارند و چیزهای یکسانی رو یاد گرفتند.

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

پس گفتند که بریم یک سری مدل پایه زبانی (با چند صد ده میلیون یا چند صد میلیون پارامتر) درست کنیم که صرفاً زبان رو بهشون یاد بدیم و بعد از اون صرفاً می‌تونیم لایه‌های انتهایی مدل رو تنظیم کنیم و مسئله‌مون رو حل کنیم.

اتفاقاً جواب هم داد و خیلی هم خوب جواب داد. مدل‌هایی مثل Bert از این دسته هستند. انگار مدل Bert زبان انگلیسی رو یاد گرفته بود و ما با تنظیم لایه‌های آخر می‌تونستیم کار رو دربیاریم. ولی باز هم یک مشکل داشتیم و اون این بود که نیاز داشتیم برای هر تسک مجدداً لایه‌های آخر رو قدری تنظیم (Tune) کنیم.

من اینطوری میگم که ما برای Tune کردن هر مدل کافی بود، کله‌اش رو بکنیم و یه کله دیگه براش بذاریم. ولی خب خوبیش این بود نیاز نبود کل ستون فقرات و بدنش رو از نو درست کنیم. همین که کله‌اش رو می‌کندیم و کله جدید آموزش می‌دادیم کافی بود.

چیزی که میگم تو ادبیات یادگیری عمیق هم کاملآ استفاده میشه. در واقع کله همون Head هست و ستون فقرات همون Backbone. شاید براتون جالب باشه که به قسمتی که ستون فقرات رو به سر وصل می‌کنه میگیم Neck یا گردن.

از بحث منحرف نشیم. از یک جایی به بعد یک سری‌ها گفتند که چه کاریه که هی بریم کله مدل رو بکنیم؟ یه بار مثل آدم بشینیم یک مدل خوب درست کنیم و از همون استفاده کنیم برای همه چیز!

اینجا بود که مدل‌های زبانی بزرگ بوجود اومدند. بزرگ که میگم به این معنا هست که تعداد پارامترهای مدل از میلیون به میلیارد رسید. چیزی تو حدود چند ده میلیارد یا در مواردی حتی چند صد میلیارد.

همه این روضه‌ها رو خوندم که در ادامه توضیح بدم مدل‌های زبانی بزرگ چگونه آموزش داده شده‌اند. جواب دادن به این سؤال یک سال پیش به مراتب سخت‌تر بود ولی الان با تحقیق‌هایی که تو این حوزه انجام شده میشه حرف‌هایی راجع بهشون زد.

آموزش مدل‌های زبانی بزرگ

خب. آموزش‌دادن این مدل‌ها سه تا فاز داره.

  • پیش آموزش (Pre-training)
  • تنظیم دقیق (Fine-tuning) یا Instruction tuning
  • یادگیری تقویتی با فیدبک انسانی یاReinforcement learning with human feedback

در ادامه به این مسئله خواهم پرداخت …