← بازگشت به بلاگ

معماری MoE به زبان ساده: Mixture of Experts در هوش مصنوعی چیست و چگونه کار می‌کند؟

معماری MoE به زبان ساده: Mixture of Experts در هوش مصنوعی چیست و چگونه کار می‌کن
\n

معماری Mixture of Experts (MoE) با بهینه‌سازی هوشمندانه ساختار آموزش مدل‌های هوش مصنوعی، کارایی فوق‌العاده‌ای از خود نشان داده است. این معماری که در مدل‌های پیشرفته‌ای مانند GPT-4 و Gemini به کار رفته، به افزایش عملکرد هوش مصنوعی کمک می‌کند، بدون اینکه نیاز به افزایش چشمگیر منابع پردازشی یا هزینه‌های اضافی باشد.

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

Mixture of Experts (MoE) چیست؟

معماری MoE یک رویکرد پیشرفته در یادگیری ماشین است که از چندین جزء کوچک‌تر برای انجام یک کار پیچیده استفاده می‌کند. برای درک بهتر، یک مثال ساده را تصور کنید:

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

حالا تصور کنید در همان اتاق هستید، اما می‌دانید کدام یک از آن ده نفر در ریاضیات قوی‌تر است. سوال خود را مستقیماً از او می‌پرسید و به احتمال زیاد پاسخ صحیح را دریافت می‌کنید. این دقیقاً نحوه کارکرد MoE است. وقتی شما یک دستور (prompt) به هوش مصنوعی می‌دهید، مدل با معماری MoE آن را به اجزای کوچک‌تر تقسیم کرده و هر بخش را به متخصص مربوطه می‌سپارد.

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

مثال ساده و واقعی از معماری MoE

سناریوی زیر را در نظر بگیرید:

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

  1. متخصص A: ریاضیات
  2. متخصص B: تاریخ ایران
  3. متخصص C: دستور زبان فارسی

وقتی دانش‌آموزی می‌پرسد: «۷ × ۸ چند می‌شود؟» هوش مصنوعی متخصص A (ریاضیات) را فعال می‌کند.

حالا دانش‌آموز دیگری می‌پرسد: «اولین رئیس جمهور ایران که بود؟» هوش مصنوعی متخصص B (تاریخ ایران) را فرا می‌خواند.

دانش‌آموز سوم می‌پرسد: «کدام درست است؟ هضم یا هزم؟» هوش مصنوعی متخصص C (دستور زبان فارسی) را صدا می‌زند تا پاسخ دهد.

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

اجزای معماری Mixture of Experts

مدل‌های MoE شامل تعدادی متخصص هستند که هر کدام زیرشبکه خاص خود را در یک شبکه عصبی بزرگ‌تر دارند. این متخصص‌ها داده‌ها را پردازش می‌کنند و یک شبکه دروازه‌ای (Gating Network) یا روتر آموزش داده می‌شود. هدف از این آموزش این است که تنها متخصص یا متخصص‌های مشخصی که برای یک ورودی معین مناسب‌تر هستند، فعال شوند، نه تمام متخصص‌ها.

بیایید این لایه‌ها را با جزئیات بیشتری بررسی کنیم تا بفهمیم معماری MoE در هوش مصنوعی چگونه کار می‌کند.

متخصص‌ها (Experts)

متخصص‌های معماری MoE مانند واحدهای کوچک‌تر در یک سازمان هستند که هر کدام به کار خود تسلط کافی دارند. این متخصص‌ها زیرشبکه‌های مستقلی هستند که هر کدام در پردازش و مدیریت وظایف خاصی تخصص دارند. در حال حاضر، این متخصص‌ها معمولاً از نوع MLP (Multilayer Perceptron) هستند. MLP نوعی مدل یادگیری عمیق پیش‌خور است که برای کارهایی مانند طبقه‌بندی و رگرسیون استفاده می‌شود.

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

دروازه یا روتر (Gating Network / Router)

Routing Network در MoE مانند مدیری عمل می‌کند که تصمیم می‌گیرد کدام متخصص برای هر بخش از ورودی مناسب‌تر است. این واحد MoE به ورودی نگاه می‌کند و تشخیص می‌دهد که کدام Expert باید روی چه چیزی کار کند.

این بخش، که با نام Gating Network در علوم کامپیوتر شناخته می‌شود، یک شبکه عصبی کوچک است که یاد می‌گیرد داده‌های ورودی را تجزیه و تحلیل کرده و مشخص کند کدام متخصص‌ها برای مدیریت آن مناسب‌تر هستند. روتر این کار را با اختصاص یک وزن یا امتیاز اهمیت به هر متخصص بر اساس ویژگی‌های ورودی انجام می‌دهد. سپس، متخصص‌هایی که بالاترین وزن را به دست آورده‌اند، برای پردازش داده‌ها انتخاب می‌شوند.

مسیریابی (Routing)

برای انتخاب مناسب‌ترین متخصص، روتر از روش‌هایی برای مسیریابی استفاده می‌کند که به آن‌ها الگوریتم‌های مسیریابی (Routing Algorithms) می‌گوییم. سه مورد از متداول‌ترین آن‌ها عبارتند از:

  1. مسیریابی Top-k: این ساده‌ترین روش است. شبکه دروازه‌ای، “k” متخصص برتر را با بالاترین امتیاز انتخاب می‌کند و داده‌های ورودی را برای آن‌ها می‌فرستد.
  2. مسیریابی انتخاب متخصص: در این روش، به جای اینکه داده‌ها متخصص‌ها را انتخاب کنند، خود متخصص‌ها تصمیم می‌گیرند که کدام داده‌ها را می‌توانند به بهترین شکل مدیریت کنند. هدف این استراتژی، دستیابی به بهترین تعادل بار است.
  3. مسیریابی پراکنده (Sparse Routing): این رویکرد، که به آن معماری Sparse Models نیز می‌گویند، تنها چند متخصص را برای هر قطعه داده فعال می‌کند و یک شبکه پراکنده می‌سازد. مسیریابی پراکنده در مقایسه با مسیریابی متراکم (که همه متخصص‌ها فعال می‌شوند) از قدرت محاسباتی کمتری استفاده می‌کند.

معماری MoE چگونه کار می‌کند؟

ساختار Mixture of Experts بر پایه دو مرحله اصلی پیش می‌رود:

  1. مرحله آموزش (Training)
  2. مرحله استنتاج (Inference)

هر یک از این مراحل بخش‌های کوچک‌تری دارند که در ادامه با آن‌ها آشنا می‌شوید.

مرحله آموزش

مشابه سایر مدل‌های یادگیری ماشین، کار معماری MoE با آموزش روی یک مجموعه داده آغاز می‌شود. تنها تفاوت با معماری‌هایی مانند مدل ترنسفورمر این است که فرآیند آموزش روی کل مدل اعمال نمی‌شود، بلکه روی اجزای آن و به صورت جداگانه انجام می‌گیرد.

آموزش متخصص‌ها

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

آموزش شبکه دروازه‌ای

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

آموزش مشترک

در مرحله آموزش مشترک، کل سیستم MoE که از مدل‌های خبره و شبکه دروازه‌ای تشکیل شده است، با هم آموزش داده می‌شوند. این استراتژی تضمین می‌کند که هم شبکه دروازه‌ای و هم متخصص‌ها، برای یک کار واحد هماهنگ و بهینه شده‌اند. برای ساخت توکن API در هوشی و استفاده از مدل‌های پیشرفته، می‌توانید از این اصول بهینه‌سازی الهام بگیرید.

مرحله استنتاج

استنتاج (Inference) مرحله‌ای است که خروجی‌ها تولید می‌شوند. این خروجی ترکیبی از عملکرد کلی شبکه دروازه‌ای، درک آن از زمینه ورودی و پاسخ‌های متخصص‌ها است.

مسیریابی ورودی

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

انتخاب متخصص

فقط چند متخصص برای پردازش هر ورودی انتخاب می‌شوند. این انتخاب نیز توسط شبکه دروازه‌ای، بر اساس احتمالات اختصاص داده‌شده به هر Expert انجام می‌شود. انتخاب تعداد محدودی از متخصص‌ها برای هر ورودی، به هوش مصنوعی با معماری MoE اجازه می‌دهد که از منابع محاسباتی به صورت بهینه‌ای استفاده کند و در عین حال، از دانش عمیق هر Expert سود ببرد.

ترکیب خروجی

آخرین مرحله در فرآیند استنتاج، ادغام خروجی متخصص‌های منتخب است. معمولاً برای ترکیب خروجی‌ها، Gating Network از یک روش میانگین‌گیری استفاده می‌کند. میانگین‌گیری نشان می‌دهد که شبکه دروازه‌ای به هر Expert چقدر اهمیت داده و خروجی آن را معتبر می‌داند. البته در سناریوهای خاص، روش‌های جایگزین مانند رای‌گیری یا تکنیک‌های ترکیبی آموخته‌شده برای ادغام خروجی‌های Experts به کار می‌رود. با پلتفرم هوشی، می‌توانید این فرآیندهای پیچیده را به صورت شفاف مدیریت کنید.

مزایای معماری Mixture of Experts (MoE)

مزیت اصلی رویکرد MoE این است که با اعمال پراکندگی ورودی روی شبکه متخصص‌ها به جای فعال کردن کل شبکه عصبی، ظرفیت مدل را بالا می‌برد و هزینه‌های محاسباتی را ثابت نگه می‌دارد.

افزایش عملکرد

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

انعطاف‌پذیری در برابر کارهای مختلف

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

تحمل بالای خطا

رویکرد تقسیم و حل (Divide and Conquer) معماری MoE در مدل‌های زبانی بزرگ، روشی است که در آن وظایف به شکل جداگانه اجرا می‌شوند. بنابراین، انعطاف‌پذیری مدل در برابر شکست‌ها افزایش پیدا می‌کند و اگر یک متخصص با مشکلی مواجه شود، روی عملکرد کل مدل تأثیر نمی‌گذارد.

مقیاس‌پذیری گسترده

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

معایب معماری MoE

معماری MoE در هوش مصنوعی برای سناریوهایی که به توان عملیاتی بالا و متشکل از چندین ماشین نیاز دارند، عملکرد خوبی ارائه می‌دهد. با این حال، مدل‌های پراکنده برای اینکه کارشان را خوب انجام دهند به حافظه زیادی نیاز دارند؛ زیرا همه متخصص‌های این معماری باید در حافظه ذخیره شوند. این چالش یک محدودیت جدی در سیستم‌هایی با VRAM کم است.

معایب MoE موارد دیگری نیز هستند که در ادامه آن‌ها را توضیح می‌دهیم.

پیچیدگی آموزش

آموزش مدل‌های MoE پیچیده‌تر از آموزش یک مدل واحد است. دلیل این پیچیدگی موارد زیر هستند:

  • سختی در هماهنگی شبکه‌ها: در معماری MoE به یک شبکه دروازه‌ای واحد نیاز است تا یاد بگیرد چگونه ورودی‌ها را به شکل درستی به سمت متخصص‌های مناسب هدایت کند، در حالی که هر متخصص به زمینه‌ها و داده‌های مختلف تسلط کافی دارد. متعادل کردن این موضوع گاهی سخت و پرهزینه می‌شود.
  • بهینه‌سازی کند: تابع زیانی که در مرحله آموزش مشترک به کار می‌رود، باید عملکرد متخصص‌ها و شبکه دروازه‌ای را متعادل کند. این موضوع فرآیند بهینه‌سازی مدل را پیچیده می‌کند و باعث می‌شود که در طولانی مدت، امکان عیب‌یابی بخش‌های مدل زمان زیادی ببرد.
  • چالش در تنظیم ابرپارامتر: مدل‌های MoE ابرپارامترهای (Hyperparameter) بیشتری دارند. مثلاً دو تا از این ابرپارامترها تعداد متخصص‌ها و معماری شبکه دروازه‌ای هستند. تنظیم درست و اصولی این ابرپارامترها زمان‌بر و پیچیده است.

کارایی استنتاج

استنتاج در معماری MoE به عوامل زیر بستگی دارد که در مجموع باعث افت کارایی مدل می‌شوند:

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

افزایش اندازه مدل

مدل‌های MoE از چندین Expert تشکیل شده‌اند و معمولاً بزرگ‌تر از مدل‌های تکی هستند. چالش‌های این ویژگی که مزیتش بود را در ادامه می‌خوانید:

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

چرا هوشی؟

در هوشی، ما به شما کمک می‌کنیم تا از جدیدترین معماری‌های هوش مصنوعی، از جمله MoE، به بهترین شکل بهره‌برداری کنید. با ابزارهای پیشرفته ما برای ساخت توکن API، ایجنت‌های کدنویسی و مدیریت شفاف بیلینگ، می‌توانید پروژه‌های هوش مصنوعی خود را با کارایی بالا و هزینه‌های بهینه توسعه دهید. به hooshi.net بپیوندید و آینده هوش مصنوعی را تجربه کنید.

سوالات متداول درباره معماری MoE

  • Q: معماری MoE دقیقاً چیست؟

    A: معماری MoE (Mixture of Experts) یک رویکرد در یادگیری ماشین است که از چندین زیرشبکه تخصصی (Experts) و یک شبکه دروازه‌ای (Gating Network) برای پردازش ورودی‌ها استفاده می‌کند. شبکه دروازه‌ای تصمیم می‌گیرد که کدام متخصص یا متخصص‌ها برای هر بخش از ورودی فعال شوند، که این امر منجر به افزایش کارایی و مقیاس‌پذیری می‌شود.

  • Q: مزایای اصلی استفاده از MoE چیست؟

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

  • Q: آیا MoE معایبی هم دارد؟

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

⌃