از داده تخصصی تا مسیریاب — نقشه راه عملی برای ساخت یک MoE قدرتمند با ۴ سرور
اولین و مهمترین گام در آموزش ۱۰۰ مدل 7B، تهیه داده تخصصی برای هر مدل است. مدلها مثل دانشجویان هستند — هر چه کتابهای بهتر و تخصصیتری بخوانند، متخصص بهتری میشوند. برای هر Expert، باید مجموعه دادهای از همان حوزه تخصصی تهیه شود.
برای ۱۰۰ مدل — ۳۰ مدل زبان و ۷۰ مدل تخصص دانشگاهی — به دادههای متنوعی نیاز داریم. برای مدل فارسی، کتابهای ادبیات فارسی، مقالات روزنامهها، و متنهای حقوقی. برای مدل پزشکی، کتابهای درسی پزشکی، مقالات علمی، و پروندههای بالینی. برای مدل ریاضی، کتابهای جبر و حسابان، مسائل حلشده، و مقالات ریاضی.
کتابهای دانشگاهی، مقالات علمی، ویکیپدیا، وبسایتهای تخصصی، اسناد حقوقی و پزشکی.
مسائل حلشده ریاضی، دادههای آماری، جداول فیزیک و شیمی، کدهای برنامهنویسی.
کتابهای ادبی، مقالات خبری، مکالمات روزمره، متون حقوقی و رسمی هر زبان.
با ۴ سرور مجهز — هر کدام با ۴ عدد L40S و ۱۹۲ گیگابایت حافظه GPU — میتوانیم آموزش موازی انجام دهیم. یعنی همزمان ۴ مدل 7B را آموزش دهیم. این کار زمان کل را از ۱۰۰ هفته به ۲۵ هفته کاهش میدهد.
| هفته | سرور ۱ | سرور ۲ | سرور ۳ | سرور ۴ |
|---|---|---|---|---|
| ۱ | فارسی ۱ | انگلیسی ۱ | ریاضی ۱ | پزشکی ۱ |
| ۲ | عربی ۱ | چینی ۱ | فیزیک ۱ | کامپیوتر ۱ |
| ۳ | فارسی ۲ | انگلیسی ۲ | شیمی ۱ | اقتصاد ۱ |
| ۴ | روسی ۱ | ژاپنی ۱ | زیست ۱ | مهندسی ۱ |
| ... این جدول ۲۵ هفته ادامه دارد | ||||
بهجای آموزش تمام ۷ میلیارد پارامتر از صفر، از روش LoRA (Low-Rank Adaptation) استفاده میکنیم. در این روش، فقط ۱-۲٪ از پارامترها آموزش داده میشوند و بقیه ثابت میمانند. نتیجه: زمان آموزش از ۴ هفته به ۳-۵ روز کاهش مییابد و نیاز به GPU از ۴ عدد به ۱ عدد میرسد.
مدل LLaMA 7B آماده از Hugging Face بارگذاری میشود
فقط ۱-۲٪ از پارامترها قابل آموزش میمانند
فقط لایههای LoRA روی دادههای تخصصی آموزش میبینند
مدل جدید (پایه + LoRA) روی Storage ذخیره میشود
بعد از آموزش ۱۰۰ مدل تخصصی، نیاز به یک Router داریم — یک شبکه عصبی کوچک که تشخیص میدهد هر سؤال به کدام Expert ها برود. Router مثل منشی بیمارستان است: سؤال را میشنود، تشخیص میدهد مربوط به کدام بخش است، و به متخصص مناسب ارجاع میدهد.
Router معمولاً یک مدل کوچک است — حدود ۱۰۰ میلیون تا ۱ میلیارد پارامتر — که با ۱۰ هزار نمونه برچسبخورده آموزش میبیند. هر نمونه شامل یک سؤال و برچسب آن است: «این سؤال ریاضی است»، «این سؤال پزشکی است»، «این سؤال فارسی است».
سؤال کاربر وارد Router میشود
Router تشخیص میدهد: زبان = فارسی، تخصص = ریاضی
فعالسازی: Expert فارسی ۲ + Expert ریاضی ۳
پاسخ نهایی از ترکیب خروجی ۲ Expert تولید میشود
بعد از آموزش ۱۰۰ مدل و Router، نوبت به ذخیرهسازی و استقرار میرسد. هر مدل 7B با دقت INT8 حدود ۷ گیگابایت فضا میگیرد. ۱۰۰ مدل یعنی ۷۰۰ گیگابایت — که روی Storage 300 ترابایتی شما یک نقطه کوچک است.
| دقت | حجم هر مدل 7B | حجم ۱۰۰ مدل |
|---|---|---|
| FP32 | ۲۸ گیگابایت | ۲.۸ ترابایت |
| FP16 | ۱۴ گیگابایت | ۱.۴ ترابایت |
| INT8 | ۷ گیگابایت | ۷۰۰ گیگابایت |
| INT4 | ۳.۵ گیگابایت | ۳۵۰ گیگابایت |
برای پاسخگویی به کاربران، فقط ۱ سرور کافی است. با ۱۹۲ گیگابایت حافظه GPU، میتوان ۲۴ مدل 7B را همزمان بارگذاری کرد. Router سؤال را میگیرد، ۲-۴ مدل مرتبط را فعال میکند، و پاسخ ترکیبی تولید میشود. بقیه مدلها روی Storage منتظرند و در چند ثانیه بارگذاری میشوند.
در این مقاله، مسیر کامل آموزش ۱۰۰ مدل 7B را بررسی کردیم: از تهیه داده تخصصی برای هر Expert، تا آموزش موازی روی ۴ سرور با روش LoRA، تا آموزش Router برای مسیریابی هوشمند، و در نهایت ذخیرهسازی روی Storage و سرویسدهی با ۱ سرور.
نتیجه این فرآیند: یک سیستم MoE با ۷۰۰ میلیارد پارامتر کل که در هر سؤال فقط ۱۴-۲۸ میلیارد پارامتر فعال میکند. کیفیت نزدیک به GPT-4 با هزینهای معادل یکدهم — و کاملاً قابل اجرا با زیرساختی که در مقالات قبلی طراحی کردیم.
حالا که ۱۰۰ مدل متنی داریم، در مقاله بعدی به سراغ مدلهای تصویری و صوتی میرویم — تا سیستم ما بتواند ببیند، بشنود و بفهمد.