مدلهای کوچک: کی کافیاند
جواب کوتاه
مدل کوچیک برای یه کار مشخص و محدود، با دادهی خوب برای همون کار، خیلی وقتها کافیه؛ و چون حافظهی کمتری میخواد، سریعتر و ارزونتره و روی لپتاپ و حتی گوشی اجرا میشه. سه پژوهش ۲۰۲۳ نمونهش رو نشون دادن: مدلهای زیر ۱۰ میلیون پارامتر که داستانهای سادهی بچهگانه رو روان مینوشتن؛ یه مدل ۱٫۳ میلیاردی که نصف مسئلههای یه آزمون کد رو حل کرد؛ و یه مدل ۷۷۰ میلیونی که برای یه کار مشخص آموزش دید و روی یه آزمون از یه مدل ۵۴۰ میلیاردی بهتر شد. ولی برای کار باز، دانش گسترده و ورودی نامرتب، مدل بزرگتر بهتره. بهترین راه: روی نمونههای کار خودتون امتحان کنید.
یعنی چی
برای یه کار مشخص، یه متخصص همون کار کافیه؛ لازم نیست کل دانشگاه رو بیارید.
توی درس قانونهای مقیاس دیدیم که مدل بزرگتر معمولا بهتره. ولی توی درسهای حافظه و سرعت هم دیدیم که بزرگتر یعنی حافظهی بیشتر و جواب کندتر. پس سوال درست این نیست که کدوم مدل بهتره؛ اینه که برای کار من، کوچیکترین مدلی که کافیه کدومه؟ مثل اینکه برای درست کردن شیر آب، یه لولهکش خوب صدا میکنید، نه یه تیم مهندسی.
داستان با ۱۰ میلیون
یه پژوهش ۲۰۲۳ با یه مشاهده شروع کرد: مدلهای حدود ۱۲۵ میلیون پارامتری، حتی با آموزش زیاد، بهندرت بیشتر از چند کلمه متن انگلیسی منسجم مینوشتن. بعد یه کار ساده کردن: یه دسته داستان کوتاه ساختن که فقط کلمههایی رو داشت که یه بچهی ۳ تا ۴ ساله میفهمه، و مدلها رو فقط با همین آموزش دادن. نتیجه؟ مدلهای زیر ۱۰ میلیون پارامتر، یعنی بیش از ده برابر کوچیکتر، داستانهای روان و منسجم چندبندی با دستور زبان تقریبا بیغلط نوشتن. درسش سادهست: وقتی کار و زبانش محدوده، مدل خیلی کوچیک هم کافیه.
کد با ۱٫۳ میلیارد
یه پژوهش دیگهی ۲۰۲۳ یه مدل ۱٫۳ میلیاردی فقط برای کد ساخت، با دادهای که خودشون بهش میگفتن «در حد کتاب درسی»: متنهای آموزشی خوب و تمرینهای کدنویسی. آموزشش ۴ روز روی ۸ کارت گرافیک طول کشید.
روی همون آزمون کد ۱۶۴ مسئلهای که توی درس آزمونهای استاندارد دیدیم، ۵۰٫۶ درصد مسئلهها رو در اولین تلاش درست حل کرد؛ و نسخهی ۳۵۰ میلیونیش هم ۴۵ درصد. ولی خود سازندهها محدودیتهاش رو هم صاف نوشتن: فقط یه زبان برنامهنویسی بلد بود، دانش تخصصی مدلهای بزرگتر رو نداشت، و اگه توی پرامپت غلط دستوری بود، خیلی بدتر جواب میداد. یعنی توی کار خودش قوی، بیرونش ضعیف.
کوچیک از بزرگ بهتر
پژوهش سوم یه قدم جلوتر رفت: میشه یه مدل کوچیک ساخت که توی یه کار مشخص از یه مدل غول بهتر باشه؟
یه مدل ۷۷۰ میلیونی رو برای یه کار مشخص آموزش دادن، هم با جوابها و هم با استدلالهایی که یه مدل بزرگ برای اون جوابها نوشته بود؛ همون فکر تقطیر. نتیجه این شد که روی یه آزمون، از یه مدل ۵۴۰ میلیاردی که فقط چند مثال توی پرامپتش داشت بهتر شد؛ یعنی حدود ۷۰۰ برابر کوچیکتر. و فقط با ۸۰ درصد دادهها؛ در حالی که فاینتیون معمولی همون مدل کوچیک، حتی با همهی دادهها، بهش نرسید. پس کوچیک آموزشدیده برای یه کار، گاهی از بزرگ همهکاره بهتره.
کوچیک، ولی بیشتر خونده
یه راه دیگه برای قوی کردن مدل کوچیک، خیلی سادهست: بیشتر بخونه.
توی درس قانونهای مقیاس دیدیم یه پژوهش ۲۰۲۲ حساب کرده بود با یه بودجهی مشخص آموزش، بهترین اندازهی مدل و داده چیه. یه پژوهش ۲۰۲۳ گفت این حساب یه چیز رو جا انداخته: هزینهی اجرا. مدلی که قراره میلیونها بار جواب بده، هر بار که جواب میده خرج داره. نوشتن که شاید آموزش یه مدل بزرگ برای رسیدن به یه سطح ارزونتر باشه، ولی یه مدل کوچیکتر که بیشتر آموزش ببینه، آخرش موقع اجرا ارزونتره.
و یه نمونه هم آوردن: اون حساب پیشنهاد میکرد یه مدل ۱۰ میلیاردی رو با ۲۰۰ میلیارد توکن آموزش بدیم؛ ولی مدل ۷ میلیاردی خودشون حتی بعد از هزار میلیارد توکن هنوز داشت بهتر میشد. مدل ۱۳ میلیاردی همون خانواده هم روی بیشتر آزمونها از یه مدل ۱۷۵ میلیاردی قبلی بهتر شد.
مدل برای گوشی
مدلی که قراره روی گوشی اجرا بشه باید خیلی کوچیک باشه، زیر یه میلیارد پارامتر. یه پژوهش ۲۰۲۴ پرسید با اینقدر پارامتر، بهترین شکل مدل چیه.
جوابش این بود که برای این اندازه، شکل شبکه از چیزی که فکر میکردن مهمتره. با همون تعداد پارامتر، یه مدل باریک و پرلایه بهتر از یه مدل پهن و کملایه کار کرد. چند تا صرفهجویی هم کنارش گذاشتن، مثل استفادهی مشترک از یه جدول برای ورودی و خروجی، و همون توجه گروهی که یادداشتها رو کوچیک میکنه. مدلهای ۱۲۵ و ۳۵۰ میلیونیشون از بهترین مدلهای هماندازهی قبلی بهتر شدن، و توی کار صدا زدن ابزار به یه مدل ۷ میلیاردی نزدیک شدن. یعنی برای کارهای ساده و مشخص روی گوشی، مدل خیلی کوچیک میتونه کافی باشه.
پلهپله
لازم نیست بین کوچیک و بزرگ یکی رو برای همیشه انتخاب کنید. میشه هر دو رو داشت.
یه پژوهش ۲۰۲۳ به این میگه «آبشار»: هر سوال اول میره سراغ ارزونترین مدل. یه سنجندهی کوچیک نگاه میکنه جوابش قابل اعتماده یا نه؛ اگه بود، کار تموم، و اگه نبود، سوال میره یه پله بالاتر. پژوهشگرها دیدن با همین کار میشد به کیفیت گرونترین مدل اون موقع رسید با تا ۹۸ درصد هزینهی کمتر، یا با همون هزینه، ۴ درصد درستتر بود. این همون «مسیریاب»یه که توی درس ایجنت دیدیم، این بار برای صرفهجویی. اگه سرویستون سوالهای سادهی زیادی میگیره، این سادهترین راه برای ارزونتر شدنه.
کی کافیه و کی نه
این سه پژوهش رو که کنار هم بذاریم، یه ترازو درمیاد.
مدل کوچیک وقتی کافیه که کار مشخص و محدود باشه، مثل دستهبندی پیامها، خلاصه کردن یه نوع متن، یا بیرون کشیدن چند تا اطلاعات از یه فرم؛ و دادهی خوب برای همون کار داشته باشید. جایزهش هم سرعت، هزینهی کم و اجرای لوکاله. ولی وقتی کار باز و همهجوره، دانش گسترده و تخصصی لازمه، یا ورودیها نامرتب و پرغلط و به سبکهای مختلفن، مدل بزرگتر معمولا بهتره؛ همون جایی که مدل کد ۱٫۳ میلیاردی ضعیف بود.
خودتون امتحان کنید
- چند ده نمونهی واقعی از کارتون جمع کنید. با حالتهای لبه.
- از کوچیکترین مدل شروع کنید. و جوابها رو نمره بدید.
- اگه کافی نبود، یه پله بزرگتر. همینطور تا وقتی کافی بشه.
- اگه هیچکدوم کافی نبود، فاینتیون رو امتحان کنید. یه مدل کوچیک با دادهی خودتون.
این همون روشیه که توی درس مدل زبانی رو چطور بسنجیم دیدیم، این بار برای انتخاب اندازه. و اگه به فاینتیون رسیدید، درس فاینتیون راهش رو میگه.
چند نکته
- سوال درست: کوچیکترین مدلی که کافیه.
- کار محدود، مدل کوچیک. کار باز، مدل بزرگتر.
- دادهی خوب جای پارامتر رو میگیره. تا یه جایی.
- نمرهی آزمون عمومی کافی نیست. روی کار خودتون بسنجید.
درس بعد آخرین سوال این ایستگاهه: مدل رو خودتون اجرا کنید یا از یه سرویس آنلاین استفاده کنید؟ اجرای خودتان یا سرویس آنلاین.
جمعبندی. آنچه از این درس با خودتان میبرید.
- کار مشخص + دادهی خوب = کوچیک کافیه.
- کوچیک: سریعتر، ارزونتر، روی دستگاه خودتون.
- گاهی کوچیک آموزشدیده از بزرگ بهتره.
- کار باز و دانش گسترده: بزرگتر.
- روی کار خودتون امتحان کنید.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.