Mixture of Experts (MoE): ఇది ఎలా పనిచేస్తుంది మరియు ఎప్పుడు ఉపయోగించాలి

మీరు నాలుగు అదనపు GPUలను కొనకుండానే, ఒక 7B మోడల్ నుండి 70B మోడల్‌కు స్కేల్ చేయాలనుకుంటున్నారు.

ఎవరో ఒకరు Mixture of Experts (MoE)ని సూచిస్తారు. కేవలం 7B కంప్యూట్ (compute)తోనే మీరు 70B పనితీరును పొందవచ్చని వారు వాదిస్తారు.

ఇది వినడానికి ఉచితంగా దొరికే లాభంలా అనిపించవచ్చు. కానీ ఇందులో ఒక చిక్కు ఉంది.

ఇది ఎలా పనిచేస్తుంది?

Llama 3.2 వంటి ఒక డెన్స్ ట్రాన్స్‌ఫార్మర్ (dense transformer) ప్రతి టోకెన్ కోసం దాని పారామీటర్లలో 100 శాతాన్ని ఉపయోగిస్తుంది. మీరు 7B నుండి 70Bకి స్కేల్ చేస్తే, మెమరీ మరియు కంప్యూట్ రెండింటినీ 10 రెట్లు పెంచుతారు.

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

చిక్కు ఏమిటంటే: మీరు ఇప్పటికీ ఒక పెద్ద మోడల్‌కు అయ్యే మెమరీ ఖర్చును భరించాల్సి ఉంటుంది. మీరు Mixtralను ఒకే 24 GB GPUపై రన్ చేయలేరు. ఉపయోగించబడని ఎక్స్‌పర్ట్‌లను (experts) కూడా నిల్వ చేయడానికి మీకు తగినంత VRAM అవసరం.

ఆర్కిటెక్చర్ (The Architecture):

ఒక స్పార్స్ MoEలో (sparse MoE), ప్రామాణిక ఫీడ్-ఫార్వర్డ్ నెట్‌వర్క్ (FFN) స్థానంలో బహుళ "ఎక్స్‌పర్ట్" (expert) FFNలు మరియు ఒక లెర్న్డ్ రూటర్ (learned router) ఉంటాయి.

  1. రూటర్ ఒక టోకెన్‌ను తీసుకుంటుంది.
  2. ఇది ప్రతి ఎక్స్‌పర్ట్‌కు ఒక స్కోర్‌ను కేటాయిస్తుంది.
  3. ఇది టాప్-k ఎక్స్‌పర్ట్‌లను ఎంచుకుంటుంది (Mixtral కోసం, k=2).
  4. ఇది ఆ ఎక్స్‌పర్ట్‌ల ద్వారా మాత్రమే టోకెన్‌ను రన్ చేస్తుంది.
  5. ఇది ఫలితాలను కలుపుతుంది.

రూటర్ అనేది మాన్యువల్ షెడ్యూలర్ కాదు. ఇది ఒక లెర్న్డ్ లేయర్ (learned layer). ఇది మ్యాథ్ టోకెన్‌లను ఒక ఎక్స్‌పర్ట్‌కు మరియు కోడ్ టోకెన్‌లను మరొక ఎక్స్‌పర్ట్‌కు పంపడం నేర్చుకుంటుంది.

శిక్షణ సవాలు (The Training Challenge):

అతిపెద్ద ప్రమాదం రూటర్ కొలాప్స్ (router collapse). సహాయం లేకపోతే, రూటర్ ప్రతి టోకెన్‌ను ఒకే రెండు ఎక్స్‌పర్ట్‌లకు పంపవచ్చు. ఆ ఎక్స్‌పర్ట్‌లు మెరుగుపడతారు, కాబట్టి రూటర్ వారి వద్దకే ఇంకా ఎక్కువ ట్రాఫిక్‌ను పంపుతుంది. దీనివల్ల మిగిలిన ఎక్స్‌పర్ట్‌లు పనికిరాకుండా పోతారు.

దీనిని సరిచేయడానికి ఇంజనీర్లు అక్సిలరీ లోడ్-బ్యాలెన్సింగ్ లాస్ (auxiliary load-balancing loss)ను ఉపయోగిస్తారు. మోడల్ అన్ని ఎక్స్‌పర్ట్‌లను సమానంగా ఉపయోగించకపోతే, ఇది మోడల్‌ను పెనాల్టీ చేస్తుంది.

MoEని ఎప్పుడు నివారించాలి:

• మీకు స్థిరమైన లాటెన్సీ (latency) కావాలి: MoEలో రెస్పాన్స్ టైమ్స్‌లో వైవిధ్యం (variance) ఎక్కువగా ఉంటుంది. • మీకు పరిమితమైన VRAM ఉంది: మీ వద్ద 48 GB కంటే తక్కువ సామర్థ్యం ఉన్న ఒకే ఒక GPU ఉంటే, డెన్స్ మోడల్‌లనే వాడండి. • మీరు చిన్న మోడల్‌లను నిర్మిస్తున్నారు: మీ మోడల్ 3B పారామీటర్ల కంటే తక్కువ ఉంటే, ఓవర్‌హెడ్ (overhead) చాలా ఎక్కువగా ఉంటుంది. • మీకు సరళమైన ఇన్‌ఫ్రాస్ట్రక్చర్ కావాలి: MoEకి సంక్లిష్టమైన ఎక్స్‌పర్ట్ పారలలిజం మరియు కస్టమ్ కెర్నల్స్ అవసరం.

మీరు 30B పారామీటర్ల కంటే ఎక్కువ ఉన్న డెన్స్ బేస్‌లైన్‌ను లక్ష్యంగా చేసుకున్నప్పుడు మరియు దానిని సపోర్ట్ చేయడానికి తగినంత మెమరీ ఉన్నప్పుడు MoE ఉత్తమంగా పనిచేస్తుంది.

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

Optional learning community: https://t.me/GyaanSetuAi