𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): ते कसे कार्य करते आणि त्याचा वापर कधी करावा

तुम्हाला चार अधिक GPUs न खरेदी करता 7B मॉडेलपासून 70B मॉडेलपर्यंत स्केल करायचे आहे.

कोणीतरी Mixture of Experts (MoE) सुचवते. त्यांचा दावा आहे की तुम्हाला केवळ 7B compute सह 70B performance मिळेल.

हे ऐकायला खूप सोपे वाटते (free lunch सारखे वाटते). पण यात एक अडचण आहे.

ते कसे कार्य करते?

Llama 3.2 सारखे dense transformer प्रत्येक token साठी त्याच्या 100 टक्के parameters चा वापर करते. जर तुम्ही 7B पासून 70B पर्यंत स्केल केले, तर तुम्ही memory आणि compute दोन्ही 10x ने वाढवता.

MoE या दोन गोष्टींचे विभाजन करते. मॉडेल अधिक parameters साठवते (जास्त memory खर्च) परंतु प्रत्येक token साठी त्यांचा केवळ काही भाग वापरते (कमी compute खर्च).

तडजोड (The Trade-off):

• Dense 7B: 7B एकूण params | 7B active | 7B compute | 14 GB memory • Dense 70B: 70B एकूण params | 70B active | 70B compute | 140 GB memory • MoE 45B: 45B एकूण params | ~13B active | ~14B compute | ~90 GB memory

अडचण: तुम्हाला अजूनही मोठ्या मॉडेलचा memory खर्च द्यावा लागतो. तुम्ही Mixtral एका सिंगल 24 GB GPU वर चालवू शकत नाही. तुम्हाला सर्व experts साठवण्यासाठी पुरेसा VRAM आवश्यक आहे, अगदी जे वापरले जात नाहीत ते देखील.

आर्किटेक्चर (The Architecture):

sparse MoE मध्ये, मानक Feed-Forward Network (FFN) च्या जागी अनेक "expert" FFNs आणि एक learned router वापरला जातो.

  1. router एक token घेतो.
  2. तो प्रत्येक expert ला एक score देतो.
  3. तो top-k experts निवडतो (Mixtral साठी, k=2).
  4. तो token केवळ त्या experts मधून चालवतो.
  5. तो निकाल एकत्रित करतो.

router हा कोणताही मॅन्युअल scheduler नाही. तो एक learned layer आहे. तो गणिती (math) tokens एका expert कडे आणि कोड (code) tokens दुसऱ्या expert कडे पाठवायला शिकतो.

ट्रेनिंगमधील आव्हान (The Training Challenge):

सर्वात मोठा धोका म्हणजे router collapse. मदतीशिवाय, router प्रत्येक token त्याच दोन experts कडे पाठवू शकतो. ते experts अधिक चांगले होतात, त्यामुळे router त्यांच्याकडे अधिक traffic पाठवतो. इतर experts निरुपयोगी ठरतात.

इंजिनिअर्स हे सुधारण्यासाठी auxiliary load-balancing loss वापरतात. जर मॉडेल सर्व experts चा समान वापर करत नसेल, तर ते मॉडेलला दंड (penalize) करते.

MoE कधी टाळावे:

• तुम्हाला सुसंगत latency हवी असल्यास: MoE मध्ये response times मध्ये जास्त variance असतो. • तुमच्याकडे मर्यादित VRAM असल्यास: जर तुमच्याकडे 48 GB पेक्षा कमी क्षमतेचा फक्त एकच GPU असेल, तर dense models वापरा. • तुम्ही लहान मॉडेल्स बनवत असल्यास: जर तुमचे मॉडेल 3B parameters पेक्षा कमी असेल, तर overhead खूप जास्त असतो. • तुम्हाला साधे इन्फ्रास्ट्रक्चर हवे असल्यास: MoE साठी जटिल expert parallelism आणि custom kernels आवश्यक असतात.

जेव्हा तुमचे लक्ष्य 30B parameters पेक्षा जास्त असलेले dense baseline असते आणि ते साठवण्यासाठी तुमच्याकडे पुरेशी memory असते, तेव्हा MoE सर्वोत्तम ठरते.

Mixture of Experts (MoE): अंतर्गत कार्यपद्धती आणि ते कधी फायदेशीर ठरते

सध्याच्या AI युगात, Large Language Models (LLMs) अधिक शक्तिशाली आणि मोठे होत आहेत. परंतु, मॉडेल जितके मोठे, तितकाच त्याचा संगणकीय खर्च (computational cost) आणि संसाधनांचा वापरही वाढतो. येथेच Mixture of Experts (MoE) ही संकल्पना महत्त्वाची ठरते. MoE ही एक अशी आर्किटेक्चरल पद्धत आहे जी मॉडेलची क्षमता वाढवते, परंतु संगणकीय खर्च (compute cost) रेषीय पद्धतीने (linearly) वाढू देत नाही.

Dense विरुद्ध Sparse मॉडेल्स: मूलभूत फरक

MoE समजून घेण्यासाठी प्रथम आपल्याला 'Dense' आणि 'Sparse' मॉडेल्समधील फरक समजून घेणे आवश्यक आहे.

Dense मॉडेल्स

पारंपारिक मॉडेल्स (जसे की GPT-3) हे 'Dense' असतात. याचा अर्थ असा की, जेव्हा तुम्ही मॉडेलला एखादा प्रश्न विचारता, तेव्हा मॉडेलमधील प्रत्येक पॅरामीटर त्या प्रश्नावर प्रक्रिया करण्यासाठी सक्रिय होतो. जर मॉडेलमध्ये १०० अब्ज पॅरामीटर्स असतील, तर प्रत्येक टोकनसाठी १०० अब्ज पॅरामीटर्सचा वापर केला जातो. हे अत्यंत कार्यक्षम असले तरी, मॉडेल खूप मोठे झाल्यावर ते चालवणे खूप महागडे आणि संथ होते.

Sparse मॉडेल्स (MoE)

MoE हे 'Sparse' मॉडेल आहे. येथे, मॉडेलमध्ये अनेक पॅरामीटर्स असले तरी, प्रत्येक इनपुटसाठी केवळ काही निवडक पॅरामीटर्सचा वापर केला जातो. यामुळे मॉडेलचा एकूण आकार (Total Parameters) खूप मोठा असू शकतो, परंतु प्रत्येक वेळी वापरले जाणारे सक्रिय पॅरामीटर्स (Active Parameters) कमी असतात.

MoE अंतर्गत कसे कार्य करते?

MoE आर्किटेक्चरमध्ये दोन मुख्य घटक असतात: Experts आणि Gating Network.

१. Experts (तज्ज्ञ)

MoE मध्ये, मॉडेलचे विविध भाग लहान, स्वतंत्र न्यूरल नेटवर्कमध्ये विभागलेले असतात, ज्यांना 'Experts' म्हटले जाते. प्रत्येक एक्सपर्ट विशिष्ट प्रकारच्या माहितीवर किंवा पॅटर्नवर प्रभुत्व मिळवू शकतो. उदाहरणार्थ, एक एक्सपर्ट गणिती समस्या सोडवण्यात चांगला असू शकतो, तर दुसरा व्याकरण सुधारण्यात.

२. Gating Network (गेटिंग नेटवर्क)

हे MoE चे 'मेंदू' आहे. जेव्हा एखादे इनपुट (उदा. एखादा शब्द किंवा वाक्य) मॉडेलमध्ये येते, तेव्हा गेटिंग नेटवर्क ठरवते की ते इनपुट कोणत्या एक्सपर्ट्सकडे पाठवायचे. हे नेटवर्क इनपुटचे विश्लेषण करते आणि प्रत्येक एक्सपर्टला एक 'वेट' (weight) देते. त्यानंतर, केवळ सर्वाधिक वेट असलेले (सर्वात योग्य) एक्सपर्ट्सच त्या इनपुटवर प्रक्रिया करतात.

थोडक्यात प्रक्रिया: Input $\rightarrow$ Gating Network $\rightarrow$ Selection of Top-K Experts $\rightarrow$ Computation $\rightarrow$ Output

MoE चे फायदे

  1. संगणकीय कार्यक्षमता (Computational Efficiency): तुम्ही मॉडेलचा आकार (Parameters) प्रचंड वाढवू शकता, परंतु प्रत्येक इनपुटसाठी लागणारी गणना (FLOPs) कमी राहते. यामुळे कमी खर्चात अधिक शक्तिशाली मॉडेल मिळवता येते.
  2. स्केलेबिलिटी (Scalability): MoE मुळे मॉडेलला अधिक डेटा आणि अधिक पॅरामीटर्सवर प्रशिक्षित करणे सोपे जाते, कारण प्रत्येक वेळी संपूर्ण मॉडेल सक्रिय करण्याची गरज नसते.
  3. वेगवान इन्फरन्स (Faster Inference): कमी सक्रिय पॅरामीटर्समुळे प्रति टोकन लागणारा वेळ कमी होऊ शकतो.

आव्हाने आणि तोटे

MoE जितके फायदेशीर आहे, तितकीच त्याची काही आव्हाने देखील आहेत:

  • मेमरीची आवश्यकता (VRAM Requirements): जरी गणना कमी झाली असली, तरी मॉडेलमधील सर्व एक्सपर्ट्सना GPU च्या मेमरीमध्ये (VRAM) लोड करावे लागते. त्यामुळे MoE मॉडेल्सना चालवण्यासाठी खूप जास्त मेमरी लागते.
  • प्रशिक्षणातील जटिलता (Training Complexity): गेटिंग नेटवर्कला योग्य एक्सपर्ट्स निवडण्यास शिकवणे कठीण असते. जर नेटवर्कने फक्त काहीच एक्सपर्ट्सना वारंवार निवडले, तर इतर एक्सपर्ट्सचा विकास होत नाही (याला 'Expert Collapse' म्हणतात).
  • कम्युनिकेशन ओव्हरहेड (Communication Overhead): जेव्हा मॉडेल अनेक GPU वर विभागलेले असते, तेव्हा गेटिंग नेटवर्कने ठरवलेले एक्सपर्ट्स वेगवेगळ्या GPU वर असू शकतात. यामुळे त्यांच्यामध्ये डेटाची देवाणघेवाण करण्यासाठी लागणारा वेळ (latency) वाढू शकतो.

निष्कर्ष: MoE कधी वापरावे?

जर तुम्हाला अशा मॉडेलची गरज असेल जे अत्यंत बुद्धिमान असावे परंतु ज्याचा संगणकीय खर्च मर्यादित असावा, तर MoE हा सर्वोत्तम पर्याय आहे. आजचे अनेक प्रगत मॉडेल्स (उदा. Mixtral 8x7B) याच तंत्रज्ञानाचा वापर करतात. मात्र, जर तुमच्याकडे मेमरीची (VRAM) कमतरता असेल, तर एक लहान 'Dense' मॉडेल वापरणे अधिक सोयीचे ठरेल.


अधिक माहितीसाठी आणि AI च्या जगात अपडेट राहण्यासाठी आमच्या समुदायाला भेट द्या: Optional learning community: https://t.me/GyaanSetuAi