𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਦੀ ਵਰਤੋਂ ਕਦੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ
ਤੁਸੀਂ ਚਾਰ ਹੋਰ GPUs ਖਰੀਦੇ ਬਿਨਾਂ ਇੱਕ 7B ਮਾਡਲ ਤੋਂ 70B ਮਾਡਲ ਤੱਕ ਵਧਣਾ (scale) ਚਾਹੁੰਦੇ ਹੋ।
ਕੋਈ Mixture of Experts (MoE) ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ। ਉਹ ਦਾਅਵਾ ਕਰਦੇ ਹਨ ਕਿ ਤੁਹਾਨੂੰ ਸਿਰਫ਼ 7B compute ਨਾਲ 70B performance ਮਿਲਦੀ ਹੈ।
ਇਹ ਸੁਣਨ ਵਿੱਚ ਬਹੁਤ ਵਧੀਆ ਲੱਗਦਾ ਹੈ, ਪਰ ਇਸ ਵਿੱਚ ਇੱਕ ਪਿਛੜੀ ਹੋਈ ਸ਼ਰਤ ਹੈ।
ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ?
Llama 3.2 ਵਰਗਾ ਇੱਕ dense transformer ਹਰ token ਲਈ ਆਪਣੇ 100 ਪ੍ਰਤੀਸ਼ਤ parameters ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ 7B ਤੋਂ 70B ਤੱਕ ਵਧਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ memory ਅਤੇ compute ਦੋਵਾਂ ਨੂੰ 10 ਗੁਣਾ ਵਧਾ ਦਿੰਦੇ ਹੋ।
MoE ਇਹਨਾਂ ਦੋਵਾਂ ਨੂੰ ਵੱਖ ਕਰ ਦਿੰਦਾ ਹੈ। ਮਾਡਲ ਵਧੇਰੇ parameters ਨੂੰ ਸਟੋਰ ਕਰਦਾ ਹੈ (ਵੱਧ memory cost) ਪਰ ਹਰੇਕ token ਲਈ ਉਹਨਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਹਿੱਸੇ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ (ਘੱਟ compute cost)।
ਤਬਾਦਲਾ (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
ਪਿਛੜੀ ਹੋਈ ਸ਼ਰਤ: ਤੁਹਾਨੂੰ ਅਜੇ ਵੀ ਇੱਕ ਵੱਡੇ ਮਾਡਲ ਦੀ memory cost ਦੇਣੀ ਪਵੇਗੀ। ਤੁਸੀਂ Mixtral ਨੂੰ ਇੱਕ ਸਿੰਗਲ 24 GB GPU 'ਤੇ ਨਹੀਂ ਚਲਾ ਸਕਦੇ। ਤੁਹਾਨੂੰ ਸਾਰੇ experts ਨੂੰ ਰੱਖਣ ਲਈ ਲੋੜੀਂਦੀ VRAM ਦੀ ਲੋੜ ਹੈ, ਇੱਥੋਂ ਤੱਕ ਕਿ ਉਹਨਾਂ ਦੀ ਵੀ ਜੋ ਵਰਤੀ ਨਹੀਂ ਜਾ ਰਹੀ।
ਆਰਕੀਟੈਕਚਰ (Architecture):
ਇੱਕ sparse MoE ਵਿੱਚ, standard Feed-Forward Network (FFN) ਨੂੰ ਕਈ "expert" FFNs ਅਤੇ ਇੱਕ learned router ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
- Router ਇੱਕ token ਲੈਂਦਾ ਹੈ।
- ਇਹ ਹਰੇਕ expert ਨੂੰ ਇੱਕ ਸਕੋਰ ਦਿੰਦਾ ਹੈ।
- ਇਹ top-k experts ਨੂੰ ਚੁਣਦਾ ਹੈ (Mixtral ਲਈ, k=2)।
- ਇਹ token ਨੂੰ ਸਿਰਫ਼ ਉਹਨਾਂ experts ਰਾਹੀਂ ਚਲਾਉਂਦਾ ਹੈ।
- ਇਹ ਨਤੀਜਿਆਂ ਨੂੰ ਜੋੜਦਾ ਹੈ।
Router ਕੋਈ ਮੈਨੂਅਲ scheduler ਨਹੀਂ ਹੈ। ਇਹ ਇੱਕ learned layer ਹੈ। ਇਹ ਸਿੱਖਦਾ ਹੈ ਕਿ math tokens ਨੂੰ ਇੱਕ expert ਕੋਲ ਅਤੇ code tokens ਨੂੰ ਦੂਜੇ ਕੋਲ ਕਿਵੇਂ ਭੇਜਣਾ ਹੈ।
ਟ੍ਰੇਨਿੰਗ ਚੁਣੌਤੀ (Training Challenge):
ਸਭ ਤੋਂ ਵੱਡਾ ਖ਼ਤਰਾ router collapse ਹੈ। ਮਦਦ ਤੋਂ ਬਿਨਾਂ, router ਹਰ token ਨੂੰ ਇੱਕੋ ਦੋ experts ਕੋਲ ਭੇਜ ਸਕਦਾ ਹੈ। ਉਹ experts ਬਿਹਤਰ ਹੋ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ router ਉਹਨਾਂ ਨੂੰ ਹੋਰ ਵੀ ਜ਼ਿਆਦਾ traffic ਭੇਜਦਾ ਹੈ। ਬਾਕੀ experts ਬੇਕਾਰ ਹੋ ਜਾਂਦੇ ਹਨ।
ਇੰਜੀਨੀਅਰ ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਇੱਕ auxiliary load-balancing loss ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਜੇਕਰ ਮਾਡਲ ਸਾਰੇ experts ਦੀ ਬਰਾਬਰ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਮਾਡਲ ਨੂੰ ਸਜ਼ਾ (penalize) ਦਿੰਦਾ ਹੈ।
MoE ਤੋਂ ਕਦੋਂ ਬਚਣਾ ਚਾਹੀਦਾ ਹੈ:
• ਤੁਹਾਨੂੰ ਨਿਰੰਤਰ (consistent) latency ਦੀ ਲੋੜ ਹੈ: MoE ਵਿੱਚ response times ਵਿੱਚ ਵਧੇਰੇ variance ਹੁੰਦਾ ਹੈ। • ਤੁਹਾਡੇ ਕੋਲ ਸੀਮਤ VRAM ਹੈ: ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ 48 GB ਤੋਂ ਘੱਟ ਇੱਕ ਹੀ GPU ਹੈ, ਤਾਂ dense models ਦੀ ਵਰਤੋਂ ਕਰੋ। • ਤੁਸੀਂ ਛੋਟੇ ਮਾਡਲ ਬਣਾ ਰਹੇ ਹੋ: ਜੇਕਰ ਤੁਹਾਡਾ ਮਾਡਲ 3B parameters ਤੋਂ ਘੱਟ ਹੈ, ਤਾਂ overhead ਬਹੁਤ ਜ਼ਿਆਦਾ ਹੈ। • ਤੁਹਾਨੂੰ ਸਰਲ ਬੁਨਿਆਦੀ ਢਾਂਚੇ (infrastructure) ਦੀ ਲੋੜ ਹੈ: MoE ਲਈ ਗੁੰਝਲਦਾਰ expert parallelism ਅਤੇ custom kernels ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
MoE ਉਦੋਂ ਸਭ ਤੋਂ ਵਧੀਆ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ 30B parameters ਤੋਂ ਉੱਪਰ ਇੱਕ dense baseline ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦੇ ਹੋ ਅਤੇ ਇਸ ਨੂੰ ਸਪੋਰਟ ਕਰਨ ਲਈ ਲੋੜੀਂਦੀ memory ਤੁਹਾਡੇ ਕੋਲ ਹੁੰਦੀ ਹੈ।
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi