𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): 𝗛𝗼𝘄 𝗜𝘁 𝗪𝗼𝗿𝗸𝘀 𝗮𝗻𝗱 𝗪𝗵𝗲𝗻 𝘁𝗼 𝗨𝘀𝗲 𝗜𝘁

તમે ચાર વધારાના GPU ખરીદ્યા વગર 7B મોડેલમાંથી 70B મોડેલ પર સ્કેલ કરવા માંગો છો.

કોઈ Mixture of Experts (MoE) સૂચવે છે. તેઓ દાવો કરે છે કે તમને માત્ર 7B કમ્પ્યુટ સાથે 70B પરફોર્મન્સ મળે છે.

તે મફત ભોજન જેવું લાગે છે. પરંતુ તેમાં એક પકડ (catch) છે.

તે કેવી રીતે કામ કરે છે?

Llama 3.2 જેવું dense transformer દરેક ટોકન માટે તેના 100 ટકા પેરામીટર્સનો ઉપયોગ કરે છે. જો તમે 7B થી 70B સુધી સ્કેલ કરો છો, તો તમે મેમરી અને કમ્પ્યુટ બંનેને 10x ગુણા કરી દો છો.

MoE આ બંનેને વિભાજિત કરે છે. મોડેલ વધુ પેરામીટર્સ સ્ટોર કરે છે (વધારે મેમરી ખર્ચ) પરંતુ દરેક ટોકન માટે તેનો માત્ર એક ભાગ જ વાપરે છે (ઓછો કમ્પ્યુટ ખર્ચ).

ટ્રેડ-ઓફ (The Trade-off):

• Dense 7B: 7B total params | 7B active | 7B compute | 14 GB memory • Dense 70B: 70B total params | 70B active | 70B compute | 140 GB memory • MoE 45B: 45B total params | ~13B active | ~14B compute | ~90 GB memory

પકડ (The catch): તમારે હજુ પણ મોટા મોડેલનો મેમરી ખર્ચ ચૂકવવો પડશે. તમે Mixtral ને સિંગલ 24 GB GPU પર ચલાવી શકતા નથી. તમારે બધા એક્સપર્ટ્સને રાખવા માટે પૂરતા VRAM ની જરૂર છે, ભલે તેનો ઉપયોગ ન થતો હોય.

આર્કિટેક્ચર (The Architecture):

એક sparse MoE માં, સ્ટાન્ડર્ડ Feed-Forward Network (FFN) ને બદલે અનેક "expert" FFNs અને એક લર્ન્ડ રાઉટર (learned router) હોય છે.

  1. રાઉટર એક ટોકન લે છે.
  2. તે દરેક એક્સપર્ટને સ્કોર આપે છે.
  3. તે top-k એક્સપર્ટ્સ પસંદ કરે છે (Mixtral માટે, k=2).
  4. તે ટોકનને ફક્ત તે એક્સપર્ટ્સ દ્વારા જ ચલાવે છે.
  5. તે પરિણામોને જોડે છે.

રાઉટર એ મેન્યુઅલ શેડ્યુલર નથી. તે એક લર્ન્ડ લેયર (learned layer) છે. તે ગણિતના ટોકન્સ એક એક્સપર્ટને અને કોડના ટોકન્સ બીજા એક્સપર્ટને મોકલવાનું શીખે છે.

ટ્રેનિંગ પડકાર (The Training Challenge):

સૌથી મોટું જોખમ 'router collapse' છે. મદદ વગર, રાઉટર દરેક ટોકનને સમાન બે એક્સપર્ટ્સ પાસે મોકલી શકે છે. તે એક્સપર્ટ્સ વધુ સારા બને છે, તેથી રાઉટર તેમને વધુ ટ્રાફિક મોકલે છે. અન્ય એક્સપર્ટ્સ નકામા બની જાય છે.

એન્જિનિયરો આને ઠીક કરવા માટે 'auxiliary load-balancing loss' નો ઉપયોગ કરે છે. જો મોડેલ બધા એક્સપર્ટ્સનો સમાન રીતે ઉપયોગ ન કરે તો તે મોડેલને પેનલાઇઝ (penalize) કરે છે.

MoE ક્યારે ટાળવું:

• તમારે સુસંગત લેટન્સી (consistent latency) જોઈએ છે: MoE માં પ્રતિસાદના સમયમાં વધુ વિચલન (variance) હોય છે. • તમારી પાસે મર્યાદિત VRAM છે: જો તમારી પાસે 48 GB થી ઓછું માત્ર એક જ GPU હોય, તો dense મોડેલ્સનો જ ઉપયોગ કરો. • તમે નાના મોડેલ્સ બનાવી રહ્યા છો: જો તમારું મોડેલ 3B પેરામીટર્સથી ઓછું હોય, તો ઓવરહેડ ખૂબ વધારે છે. • તમારે સરળ ઇન્ફ્રાસ્ટ્રક્ચર જોઈએ છે: MoE માટે જટિલ expert parallelism અને custom kernels ની જરૂર પડે છે.

MoE ત્યારે શ્રેષ્ઠ છે જ્યારે તમે 30B પેરામીટર્સથી ઉપરના dense baseline ને લક્ષ્ય બનાવો છો અને તેને સપોર્ટ કરવા માટે તમારી પાસે પૂરતી મેમરી હોય.

સ્ત્રોત: https://dev.to/tech_nuggets/mixture-of-experts-moe-what-it-actually-does-under-the-hood-and-when-it-pays-off-alb

વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi