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

درس ۷ از ۸۵، هوش مصنوعی، حدود ۲۱ دقیقه خواندن

«بزرگ» یعنی چه

جواب کوتاه

«بزرگ» توی مدل زبانی بزرگ یعنی سه چیز با هم: تعداد پارامترها، یعنی عددهای قابل تنظیم داخل مدل، که به میلیاردها می‌رسه؛ مقدار متن آموزش، که به صدها یا هزاران میلیارد توکن می‌رسه؛ و مقدار محاسبه‌ای که برای آموزش خرج می‌شه. پژوهش‌ها نشون دادن که با بزرگ کردن این سه، خطای مدل با یه قاعده‌ی منظم و قابل پیش‌بینی کم می‌شه. ولی باید با هم بزرگ بشن: مدل خیلی بزرگ با داده‌ی کم، هدر دادن محاسبه‌ست. بعضی توانایی‌ها هم انگار فقط توی مدل‌های بزرگ پیدا می‌شن، هر چند سر اینکه واقعا ناگهانی‌ان یا نه بحثه. و بزرگی به‌تنهایی مدل رو توی فهمیدن خواسته‌ی شما بهتر نمی‌کنه.

سه پیچ

وقتی می‌گیم «مدل زبانی بزرگ»، این بزرگ دقیقا چیه؟ یه چیز نیست، سه تا پیچه که با هم چرخیدن:

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

پیچ دوم داده هست؛ مقدار متنی که مدل موقع پیش‌آموزش می‌خونه، که به توکن شمرده می‌شه. پیچ سوم محاسبه هست؛ کل کاری که GPUها برای آموزش انجام می‌دن. سومی تقریبا حاصل‌ضرب دو تای اوله: مدل بزرگ‌تر روی داده‌ی بیشتر، یعنی ضرب‌های خیلی بیشتر.

چقدر بزرگ

یه مدل مشهور سال ۲۰۲۰، ۱۷۵ میلیارد پارامتر داشت و روی ۳۰۰ میلیارد توکن آموزش دید. این عددها اون‌قدر بزرگن که حسشون نمی‌کنیم. پس بیاید یه حساب ساده بکنیم:

اگه هر پارامتر رو با ۲ بایت نگه داریم، که یه حالت رایجه، ۱۷۵ میلیارد پارامتر می‌شه ۳۵۰ گیگابایت. یعنی فقط برای اینکه خود مدل رو روی یه دستگاه بیاریم، بدون حساب کردن با اون، خیلی بیشتر از حافظه‌ی یه کارت گرافیک معمولی لازمه. برای همین مدل‌های این‌قدر بزرگ روی چند کارت پخش می‌شن.

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

قاعده‌ی منظم

چرا کسی حاضره این‌همه پول خرج بزرگ کردن کنه؟ چون سال ۲۰۲۰ یه پژوهش یه چیز خیلی امیدوارکننده نشون داد:

خطای مدل زبانی، یعنی همون کراس‌انتروپی پیش‌بینی تکه‌ی بعد، با بزرگ کردن هر کدوم از سه پیچ، با یه قاعده‌ی منظم کم می‌شه. اگه روی نمودار، به جای فاصله‌ی معمولی، هر خط رو «ده برابر» بذارید، این کم شدن تقریبا یه خط صاف می‌شه؛ و بعضی از این خط‌ها روی بیش از هفت مرتبه‌ی بزرگی، یعنی ده میلیون برابر، صاف موندن. به این می‌گن قانون مقیاس.

خبر خوبش اینه که قابل پیش‌بینیه. می‌شه یه مدل کوچیک ساخت، خط رو کشید، و از قبل حدس زد یه مدل ده برابر بزرگ‌تر چقدر بهتر می‌شه؛ قبل از اینکه میلیون‌ها خرج آموزشش کنی. همون پژوهش نشون داد جزئیات دیگه، مثل اینکه شبکه پهن‌تر باشه یا عمیق‌تر، توی یه بازه‌ی بزرگ اثر کمی دارن؛ چیزی که مهمه، اندازه‌ست. و مدل‌های بزرگ‌تر از هر نمونه‌ی داده، بیشتر یاد می‌گیرن.

تعادل

بعد از اون پژوهش، خیلی‌ها فقط پیچ اول رو چرخوندن: مدل بزرگ‌تر و بزرگ‌تر، با همون مقدار داده. سال ۲۰۲۲ یه پژوهش دیگه گفت این اشتباهه:

اون‌ها بیش از ۴۰۰ مدل، از ۷۰ میلیون تا بیش از ۱۶ میلیارد پارامتر، روی ۵ تا ۵۰۰ میلیارد توکن آموزش دادن، و نتیجه گرفتن که مدل‌های بزرگ اون زمان کم‌آموزش بودن. برای بهترین استفاده از یه مقدار مشخص محاسبه، هر بار که اندازه‌ی مدل دو برابر می‌شه، داده هم باید دو برابر بشه.

برای امتحانش، یه مدل ۷۰ میلیاردی ساختن و ۴ برابر داده بهش دادن، با همون محاسبه‌ای که یه مدل ۲۸۰ میلیاردی خرج کرده بود. مدل کوچیک‌تر توی خیلی از کارها از اون ۲۸۰ میلیاردی، و از مدل ۱۷۵ میلیاردی ۲۰۲۰، و حتی از یه مدل ۵۳۰ میلیاردی، بهتر شد. یعنی بزرگ‌تر همیشه بهتر نیست؛ متعادل‌تر بهتره.

توانایی ناگهانی

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

سال ۲۰۲۲ یه پژوهش گزارش داد بعضی توانایی‌ها توی مدل‌های کوچیک اصلا نیستن و توی مدل‌های بزرگ هستن؛ و این‌قدر یهو پیدا می‌شن که نمی‌شه از روی مدل‌های کوچیک‌تر پیش‌بینیشون کرد. اسمشون رو گذاشتن توانایی‌های ناگهانی، و نتیجه گرفتن شاید بزرگ کردن بیشتر، توانایی‌های تازه‌تری هم بیاره.

ولی سال ۲۰۲۳ یه پژوهش دیگه یه توضیح دیگه داد: شاید این ناگهانی بودن از خود مدل نیست، از معیار سنجش میاد. اگه یه جواب رو فقط «کاملا درست» یا «غلط» حساب کنی، یه مدل که کم‌کم داره نزدیک‌تر می‌شه، تا آخرین لحظه صفر می‌گیره و بعد یهو یک. ولی اگه با یه معیار پیوسته بسنجی، مثلا چند تا از تکه‌های جواب درسته، همون پیشرفت آروم و قابل پیش‌بینی دیده می‌شه.

هر دو پژوهش جدی‌ان و بحث هنوز تموم نشده. چیزی که از این بحث یاد می‌گیریم، فراتر از مدل زبانیه: اینکه یه پیشرفت «ناگهانی» به نظر بیاد یا «آروم»، گاهی به این بستگی داره که چطوری اندازه‌ش می‌گیریم.

یه حساب سرانگشتی

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

ویکی‌پدیا می‌گه آموزش، برای هر پارامتر و هر توکن، حدود ۶ عمل ریاضی لازم داره، و جواب دادن حدود ۱ تا ۲ عمل. حالا حساب کنیم: مدل ۱۷۵ میلیاردی که روی ۳۰۰ میلیارد توکن آموزش دید، می‌شه ۶ ضرب در ۱۷۵ میلیارد ضرب در ۳۰۰ میلیارد؛ حدود ۳ با ۲۳ تا صفر جلوش. اگه یه کامپیوتر خونگی هر ثانیه هزار میلیارد عمل انجام بده، این کار براش حدود ده هزار سال طول می‌کشه. برای همین آموزش روی هزاران کارت گرافیک با هم انجام می‌شه؛ درس هزینه‌ی آموزش.

جواب دادن خیلی سبک‌تره، ولی صفر نیست: برای هر تکه‌ای که مدل ۱۷۵ میلیاردی می‌سازه، حدود ۳۵۰ میلیارد عمل. و چون یه مدل میلیون‌ها بار جواب می‌ده، جمعش زیاد می‌شه.

حافظه‌ی بزرگی

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

ویکی‌پدیا می‌گه اگه هر پارامتر دو بایت جا بگیره، هر یک میلیارد پارامتر حدود ۲ گیگابایت می‌خواد. پس یه مدل ۷ میلیاردی حدود ۱۴ گیگابایت، یه مدل ۷۰ میلیاردی حدود ۱۴۰ گیگابایت، و یه مدل ۱۷۵ میلیاردی حدود ۳۵۰ گیگابایت؛ اون هم فقط برای نگه داشتن عددها. یه لپ‌تاپ معمولی چند گیگابایت تا چند ده گیگابایت حافظه داره. برای همین مدل‌های بزرگ روی سرورهای بزرگ اجرا می‌شن، و برای کامپیوتر خونگی راه‌هایی مثل کوانتیزه کردن هست که هر عدد رو با بایت کمتری نگه می‌داره؛ درس حساب حافظه.

هزینه‌ی بزرگی

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

برای همین اون پژوهش ۲۰۲۲ یه خوبی دیگه هم داشت: مدل کوچیک‌تر و پرداده‌تر، برای استفاده هم محاسبه‌ی خیلی کمتری لازم داشت. توی دنیای واقعی، که یه مدل میلیون‌ها بار جواب می‌ده، این خیلی مهمه. برای همین خیلی از سازنده‌ها امروز چند اندازه از مدلشون رو می‌سازن: یه بزرگ و قوی برای کارهای سخت، و یه کوچیک و سریع برای کارهای ساده.

بزرگ، ولی فقط یه تیکه‌ش

یه راه زیرکانه برای داشتن مدل بزرگ با خرج کمتر هم پیدا شده.

توی مدل ترکیب خبره‌ها (Mixture of Experts)، پارامترها به چند گروه «خبره» تقسیم می‌شن، و برای هر تکه فقط چند تا خبره کار می‌کنن. ویکی‌پدیا می‌گه این کار هزینه‌ی جواب دادن رو کم می‌کنه، چون فقط بخشی از پارامترها استفاده می‌شن. پس وقتی یه مدل این‌جوری می‌گه «فلان میلیارد پارامتر»، دو تا عدد مهمه: کل پارامترها، که حافظه رو تعیین می‌کنه، و پارامترهایی که برای هر تکه کار می‌کنن، که سرعت و خرج هر جواب رو. یکی از اولین مدل‌هایی که از یه تریلیون پارامتر رد شد، سال ۲۰۲۱، از همین نوع بود.

کوچیک‌تر، ولی پرداده‌تر

قاعده‌ی تعادل یه نتیجه‌ی جالب داشت که بعدها خیلی مهم شد.

یه پژوهش ۲۰۲۳ مدل‌هایی از ۷ تا ۶۵ میلیارد پارامتر رو روی هزاران میلیارد توکن، و فقط از داده‌ی عمومی، آموزش داد. نتیجه: مدل ۱۳ میلیاردیش توی بیشتر آزمون‌ها از همون مدل ۱۷۵ میلیاردی ۲۰۲۰ بهتر بود؛ یعنی بیش از ده برابر کوچیک‌تر. چرا؟ چون اون مدل قدیمی برای اندازه‌ش کم داده دیده بود.

این برای استفاده خیلی خوبه: مدل کوچیک‌تر هر جواب رو ارزون‌تر و سریع‌تر می‌سازه و حافظه‌ی کمتری می‌خواد. برای همین امروز خیلی از سازنده‌ها مدل رو کوچیک‌تر از اندازه‌ی «متعادل» نگه می‌دارن ولی داده‌ی خیلی بیشتری بهش می‌دن؛ درس مدل‌های کوچیک.

متن تموم می‌شه؟

اگه داده‌ی بیشتر این‌قدر مهمه، یه سوال پیش میاد: چقدر متن داریم؟

یه پژوهش ۲۰۲۲ حساب کرد که اگه روند همین‌طور ادامه پیدا کنه، داده‌ی آموزش مدل‌ها یه جایی بین ۲۰۲۶ و ۲۰۳۲ به اندازه‌ی کل متن عمومی‌ای می‌رسه که آدم‌ها نوشتن؛ اگه مدل‌ها بیشتر از اندازه‌ی متعادل آموزش ببینن، کمی زودتر. ویکی‌پدیا می‌گه وقتی داده‌ی طبیعی کم میاد، از داده‌ی ساختگی، یعنی متنی که خود مدل‌ها ساختن، هم استفاده می‌شه؛ ولی همین متن‌های ساخته‌ی مدل که الان توی وب پخشن، پالایش داده رو سخت‌تر کردن. درس داده‌ی آموزش این رو باز کرده.

بزرگی کافی نیست

و آخر، مهم‌ترین نکته: بزرگی خطای پیش‌بینی تکه‌ی بعد رو کم می‌کنه، ولی مدل رو توی فهمیدن اینکه شما دقیقا چی می‌خواید، به‌خودی‌خود بهتر نمی‌کنه.

یه پژوهش نشون داد یه مدل ۱٫۳ میلیاردی، که با بازخورد آدم‌ها تنظیم شده بود، توی داوری آدم‌ها از همون مدل ۱۷۵ میلیاردی خام بهتر بود؛ یعنی مدلی که بیش از صد برابر کوچیک‌تر بود. پس بزرگی پایه‌ست، نه همه‌ی کار. اینکه این پایه چطور به یه دستیار تبدیل می‌شه، ایستگاه از مدل خام تا دستیار کامل می‌گه.

چند نکته

  • عدد پارامتر تنها چیزی نمی‌گه. باید بدونید روی چقدر داده آموزش دیده.
  • بزرگ‌تر یعنی کندتر و گرون‌تر. برای کار ساده، مدل کوچیک‌تر خیلی وقت‌ها کافیه.
  • به «ناگهانی» با احتیاط نگاه کنید. گاهی از معیاره، نه از مدل.
  • بزرگی پایه‌ست، نه همه‌چیز. آموزش گفتگو و دستور، کار رو کامل می‌کنه.

با این درس، ایستگاه اول مسیر تموم شد. ایستگاه بعد می‌ره سراغ اولین قدم داخل مدل: متن چطور به عدد تبدیل می‌شه؟ توکن در هوش مصنوعی چیست.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • بزرگ یعنی پارامتر، داده و محاسبه.
  • خطا با بزرگ شدن، منظم و قابل پیش‌بینی کم می‌شه.
  • اندازه و داده باید با هم بزرگ بشن.
  • «ناگهانی» بودن توانایی‌ها، بحث‌برانگیزه.
  • بزرگی، فهم خواسته رو بهتر نمی‌کنه.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد