Hum chahte hain ki har token embedding x∈Rd ke liye, (1) kaunse experts choose karein, aur (2) unke outputs ko blend karein.
Step 1 — Har expert ko score karo. Router ko ek learnable weight matrix Wg∈RN×d do. Expert i ka raw score (logit) dot product hai:
hi=(Wgx)iYeh step kyun? Ek dot product token aur har expert ke learned "preference vector" (row of Wg) ke beech alignment measure karta hai. High alignment → yeh expert relevant hai.
Step 2 — Scores ko probabilities mein badlo. Softmax apply karo taaki scores comparable ho jaayein aur 1 mein sum karein:
pi=∑j=1NehjehiYeh step kyun? Hume expert outputs ko combine karne ke liye normalized weights chahiye, aur softmax "kaun best hai" ko weights mein convert karne ka smooth, differentiable tarika hai.
Step 3 — Sirf Top-k rakho. Maano Tk largest pi ke indices ka set hai. Baaki ko zero kar do:
gi=⎩⎨⎧∑j∈Tpjpi0i∈TotherwiseYeh step kyun? Non-selected gates ko 0 set karna matlab hai ki woh experts zero computation karte hain — yahi se FLOP savings aati hai. T par re-normalizing rakhta hai ki use hone waale weights 1 mein sum karein.
Step 4 — Expert outputs ko combine karo.y=∑i∈TgiEi(x)Yeh step kyun? Hum sirf k chosen experts Ei(x) evaluate karte hain aur gate-weighted sum lete hain. Yahi layer ka output hai.
Fix: ek auxiliary load-balancing loss. Ek batch ke liye define karo:
fi = expert i ko route kiye gaye tokens ka fraction (dispatch fraction).
Pi = expert i ko assigned average router probability.
Laux=αN∑i=1NfiPi
Exactly yeh form kyun? Yeh minimize hota hai jab dono fi aur Pi uniform hoon (=1/N), matlab har expert ko equal share mile. Sirf fi (hard argmax se, non-differentiable) ki jagah Pi (soft, differentiable) use karna gradients ko actually flow karne deta hai taaki imbalance theek ho sake. Factor N loss scale ko expert count se independent rakhta hai; α (jaise 0.01) isse ek gentle nudge rakhta hai, main objective nahi.
Ek hospital imagine karo jisme 64 specialist doctors hain. Ek dense model jaisa hai jaise har patient ko saare 64 doctors se milwao — accurate hai lekin insanely slow aur expensive. MoE darwaze par ek samajhdar receptionist (router) rakhta hai jo aapki problem dekh kar aapko sirf 2 best-matched doctors ke paas bhejta hai. Hospital mein abhi bhi woh saari expertise hai, lekin har patient thoda sa hi use karta hai. Fairness ke liye ek rule hai taaki koi ek popular doctor saare patients na le jaaye jabki baaki idle baithe rahein (load balancing), aur har doctor per ghante sirf itne patients dekh sakta hai (capacity).