اگه تو دنیای هوش مصنوعی و مدلهای زبانی غولپیکر مثل ChatGPT یا Llama یه کم کنجکاوی، احتمالاً شنیدی که میگن ساخت و بزرگکردن این مدلها کلی هزینه، منابع و دردسر داره. روش رایج اینه که یه مدل بزرگ رو از اول تا آخر، یکسره آموزش میدن و دقیقاً مثل یه تیکه سنگ بزرگ و یکدست باهاش برخورد میکنن. به این رویکرد میگن “monolithic training”، یعنی آموزش تکیهگاهی و کلی. اما خب، همین مدلهای غولآسا در نهایت خیلی هم انعطافپذیر نیستن و رشدشون هم کلی باید هزینه کنی.
حالا این مقاله یه نگاه کاملاً جدید و خیلی باحال به این داستان داره!
خیلی راحت بگم: نویسندهها گفتن به جای اینکه مدل رو از اول تا آخر یکپارچه تربیت کنیم، میشه مدل رو مثل لگو تکهتکه کرد و بعداً این قطعات رو به هم چسبوند و حتی بهش اضافه کرد! مثلاً فرض کن به جای ساخت یه برج آجری یک تیکه، خونه رو با بلوک و طبقههای جداگانه بچینی و هروقت دوست داشتی، یه طبقه یا اتاق بهش اضافه کنی یا حتی چند تا بلوک از خونههای دیگه قرض بگیری و بچسبونی!
حالا چجوری این کار رو کردن؟
داستان از اینجا شروع میشه که تیم این مقاله گفت “ما میخوایم مدلهایی درست کنیم که ساختارشون ثابت باشه (یعنی یه بخشهایی شون آموزشش تموم شده و دیگه تغییر نمیکنن) و روی این بستر ثابت، بتونیم مدل رو تکه تکه این ور و اون ور گسترش بدیم.” این بخش ثابت، در اصل ورودی مدل یا همون کدگذاری اولیه واژههاست که بهش میگن Embedding. یعنی هر ورودی (هر واژه یا کاراکتر) به صورت یه بردار عددی تبدیل میشه که مدل بتونه بفهمش. جالب اینه که اینا از ساختار ظاهری “گیلفهای یونیکد” (یعنی همون ظاهر حروف توی یونیکد) برای ساخت embedding استفاده کردن. [یونیکد رو میدونی چیه؟ سیستمیه که به هر حرف یا نشانه تو دنیای دیجیتال یه کد خاص میده که تقریباً تمام زبانهای دنیا رو پوشش میده.]
اینجا یه اصطلاح دیگه داریم: “deterministic input embeddings.” یعنی این تبدیل ابتدایی همیشه غیرقابل یادگیری (فریز شده/ثابت) و قابل پیشبینیه؛ یعنی قرار نیست حین آموزش عوض بشه.
نتیجه باحال این کار اینه که تو میتونی مدلهای مختلفی رو که هرکدوم یه چیز خاص بلد بودن (مثلاً یکی تو روسی قویه، یکی تو چینی) بعد از تمامشدن آموزش، بیاری و خیلی راحت به هم بچسبونی! مشکلش چیه؟ هیچی! بهش میگن “modular composition” یعنی ترکیب ماژولوار مدلها. جالبتر اینکه این وسط حتی لازم نیست ساختار درونی مدلها رو تغییر بدی یا دوباره یادگیری بزرگی انجام بدی، فقط خروجی آخرشون (یعنی Logits که همون نمره دهی مدلها به گزینههاست) رو با هم جمع ببندی یا معدل بگیری! به این حالت میگن “Mixture-of-Experts” یا MoE. یعنی یه مدل از چند حرفهای ساخته شده.
وقتی این مودلهای تخصصی رو با هم ترکیب کردن و تست گرفتن (مثلاً روی آزمون MMLU که مخصوص اندازهگیری استدلال و یادگیری مدلهای هوش مصنوعیه)، نه تنها نتیجه خراب یا عجیب نمیشه، بلکه بهتر هم شده و یادگیریهای قبلی مدلها هم پاک نشده! [به این اتفاق میگن “catastrophic forgetting” که یعنی مدل چیز قبلیهاش رو فراموش کنه، اما اینجا اینطوری نشده.]
علاوه بر این، نویسندهها یه ایده دیگه هم داشتن: رشد مرحلهبهمرحله لایهها. یعنی لازم نیست یه مدل خیلی عمیق رو یکباره آموزش بدی. میشه مدل رو لایهلایه بزرگ کردی؛ هر لایه که تموم شد، لایهی بعدی رو به مدل قبلی اضافه کنی و اون رو آموزش بدی. به این روش میگن “progressive layer-wise growth.” یعنی رشد مدل، مرحلهبهمرحله و ساختمونوار هستش.
نتیجهش جالبه: هرچی مدل عمیقتر میشه، تواناییهای استدلالی پیچیدهتر (مثل درک تست SQuAD که مربوط به درک مطلب متنه) از خودش نشون میده و همه چی خیلی باثبات و بدون دردسر بالاتر میره.
حالا چرا این رویکرد جذابه؟ چون دقیقا شبیه رشد موجودات زنده (بیولوژیکال) هست، که هر بخش بدن مرحله به مرحله و ماژولار رشد میکنه. پس، واسه ساخت مدلهای هوش مصنوعی مثلاً بر اساس این فلسفه جدید میشه هربار یه قطعه جدید به مدل اضافه کرد، بدون اینکه کلی هزینه یا آموزش مجدد لازم باشه.
این سبک کار باعث میشه آدمای بیشتری بتونن مدلهای قوی و خفن بسازن، چون ساخت مدل دیگه مخصوص شرکتهای بزرگ و ابرکامپیوترها نمیشه. کارهای مثل “continual learning” که یعنی مدل مرتب چیزهای جدید یاد بگیره، یا بزرگ کردن مدل با منابع کم، با این ایده راحتتر میشه.
در نهایت خبر خوب: تموم کدها و مدلهایی که درست کردن رو هم باز گذاشتن و به اشتراک گذاشتن که بقیه محققها و حتی علاقهمندا استفاده و روش تحقیق کنن.
خلاصه بخوام بگم، این مطالعه نشون داده که لازم نیست مدلهای زبانی رو یه شبه از اول تا آخر با هزینه زیاد آموزش داد. میشه قطعهقطعه ساختشون، ترکیبشون کرد و حتی مرحلهبهمرحله بزرگترشون کرد. این یعنی آینده ساخت مدلها شاید خیلی منعطفتر، راحتتر و همگانیتر بشه!
منبع: +