Uzmanların Karışımı (MoE): Nasıl Çalışır ve Ne Zaman Kullanılmalıdır?
4 tane daha GPU satın almadan 7B'lik bir modelden 70B'lik bir modele ölçeklenmek istiyorsunuz.
Birisi Mixture of Experts (MoE) öneriyor. Sadece 7B hesaplama gücüyle 70B performansı elde edeceğinizi iddia ediyorlar.
Kulağa bedava bir yemek gibi geliyor. Ancak bir bit yeniği var.
Nasıl çalışır?
Llama 3.2 gibi yoğun (dense) bir transformer, her token için parametrelerinin yüzde 100'ünü kullanır. 7B'den 70B'ye ölçeklenirseniz, hem bellek hem de hesaplama maliyetini 10 katına çıkarırsınız.
MoE bu ikisini ayırır. Model daha fazla parametre depolar (daha yüksek bellek maliyeti) ancak her token için bunların yalnızca bir kısmını kullanır (daha düşük hesaplama maliyeti).
Takas (Trade-off):
• Dense 7B: 7B toplam parametre | 7B aktif | 7B hesaplama | 14 GB bellek • Dense 70B: 70B toplam parametre | 70B aktif | 70B hesaplama | 140 GB bellek • MoE 45B: 45B toplam parametre | ~13B aktif | ~14B hesaplama | ~90 GB bellek
Bit yeniği şu: Büyük bir modelin bellek maliyetini hala ödersiniz. Mixtral'ı tek bir 24 GB GPU üzerinde çalıştıramazsınız. Kullanılmayan uzmanlar da dahil olmak üzere tüm uzmanları tutmak için yeterli VRAM'e ihtiyacınız vardır.
Mimari:
Seyrek (sparse) bir MoE'de, standart İleri Beslemeli Ağ (Feed-Forward Network - FFN), birden fazla "uzman" FFN ve öğrenilmiş bir yönlendirici (router) ile değiştirilir.
- Yönlendirici bir token alır.
- Her uzmana bir puan atar.
- En iyi k uzmanı seçer (Mixtral için k=2).
- Token'ı yalnızca bu uzmanlar üzerinden geçirir.
- Sonuçları birleştirir.
Yönlendirici manuel bir zamanlayıcı (scheduler) değildir. Öğrenilmiş bir katmandır. Matematik token'larını bir uzmana, kod token'larını ise başka bir uzmana göndermeyi öğrenir.
Eğitim Zorluğu:
En büyük risk, yönlendirici çökmesidir (router collapse). Yardım almazsa, yönlendirici her token'ı aynı iki uzmana gönderebilir. Bu uzmanlar daha iyi hale geldikçe, yönlendirici onlara daha fazla trafik gönderir. Diğer uzmanlar ise işe yaramaz hale gelir.
Mühendisler bunu düzeltmek için yardımcı bir yük dengeleme kaybı (auxiliary load-balancing loss) kullanır. Model tüm uzmanları eşit şekilde kullanmazsa onu cezalandırır.
MoE'den ne zaman kaçınılmalı:
• Tutarlı gecikme süresine (latency) ihtiyacınız varsa: MoE, yanıt sürelerinde daha yüksek varyansa sahiptir. • Sınırlı VRAM'iniz varsa: Eğer 48 GB'ın altında tek bir GPU'nuz varsa, yoğun (dense) modellere sadık kalın. • Küçük modeller inşa ediyorsanız: Modeliniz 3B parametrenin altındaysa, ek yük (overhead) çok yüksektir. • Basit bir altyapıya ihtiyacınız varsa: MoE, karmaşık uzman paralelliği (expert parallelism) ve özel çekirdekler (custom kernels) gerektirir.
MoE, 30B parametrenin üzerinde bir yoğun temel (dense baseline) hedeflediğinizde ve bunu destekleyecek belleğe sahip olduğunuzda en iyisidir.
Mixture of Experts (MoE): Arka planda aslında ne yapar ve ne zaman avantaj sağlar?
Büyük Dil Modelleri (LLM'ler) hızla büyüyor. Parametre sayıları trilyonlara ulaşıyor. Ancak, bir modelin parametre sayısını artırmak, her zaman hesaplama maliyetini (compute cost) aynı oranda artırmak zorunda değildir. İşte burada Mixture of Experts (MoE) mimarisi devreye girer.
MoE, modern yapay zeka dünyasında, özellikle Mixtral 8x7B ve GPT-4 gibi modellerin başarısının arkasındaki temel teknolojilerden biridir. Peki, MoE tam olarak nedir ve neden bu kadar önemlidir?
Yoğun (Dense) Modeller vs. Seyrek (Sparse) Modeller
MoE'yi anlamak için önce geleneksel "yoğun" modelleri anlamak gerekir.
Yoğun Modeller (Dense Models)
Geleneksel bir LLM (örneğin Llama 2 veya GPT-3'ün standart versiyonları) "yoğun" bir modeldir. Bu, modelin her bir girdi (token) için tüm parametrelerinin hesaplama sürecine dahil olduğu anlamına gelir. Bir kelimeyi tahmin etmek istediğinizde, modeldeki her bir ağırlık (weight) matematiksel işleme katılır. Bu, model büyüdükçe hesaplama maliyetinin de doğrusal olarak artmasına neden olur.
Seyrek Modeller (Sparse Models - MoE)
MoE ise "seyrek" (sparse) bir yaklaşımdır. MoE mimarisinde, modelin tamamı yerine, her bir girdi için sadece belirli bir alt küme (uzmanlar) etkinleştirilir. Bu, çok daha büyük bir parametre havuzuna sahip olmanıza rağmen, her bir işlem için çok daha az hesaplama yapmanıza olanak tanır.
MoE Nasıl Çalışır?
Bir MoE katmanı temel olarak iki ana bileşenden oluşur:
- Uzmanlar (Experts): Bunlar, modelin içindeki küçük, bağımsız sinir ağı katmanlarıdır (genellikle Feed-Forward Networks - FFN). Her bir uzman, verinin belirli bir kısmında veya belirli bir türde bilgi işleme konusunda "uzmanlaşma" eğilimi gösterir.
- Gating Ağı / Yönlendirici (Gating Network / Router): Bu, sistemin beynidir. Gelen her bir token'ı alır ve onu hangi uzmanlara göndereceğine karar verir.
Süreç Şöyle İşler:
- Girdi Gelir: Bir token (kelime parçası) modele girer.
- Yönlendirme: Gating ağı, bu token'ın özelliklerini analiz eder ve ona en uygun olan $k$ adet uzmanı seçer (örneğin, her token için en iyi 2 uzman).
- Hesaplama: Token, sadece seçilen bu uzmanlara gönderilir. Diğer uzmanlar o an için "uyur" ve hiçbir hesaplama yapmazlar.
- Birleştirme: Uzmanlardan gelen çıktılar, gating ağının belirlediği ağırlıklarla birleştirilerek bir sonraki katmana iletilir.
MoE'nin Avantajları
1. Hesaplama Verimliliği (Computational Efficiency)
MoE'nin en büyük avantajı, parametre sayısını artırırken hesaplama maliyetini (FLOPs) düşük tutabilmesidir. Örneğin, 47 milyar parametreli bir MoE modeli, her token için sadece 12 milyar parametreyi kullanıyor olabilir. Bu, çok daha büyük bir bilgi kapasitesine, çok daha düşük bir işlem maliyetiyle ulaşmak demektir.
2. Ölçeklenebilirlik (Scaling)
MoE, modellerin devasa boyutlara ulaşmasını kolaylaştırır. Daha fazla uzman ekleyerek modelin kapasitesini artırabilir, ancak çıkarım (inference) hızını koruyabilirsiniz.
3. Daha İyi Performans
Daha fazla parametre, modelin daha fazla bilgi ve nüans öğrenmesi anlamına gelir. MoE, uzmanların farklı görevlere odaklanmasına izin vererek, yoğun modellere kıyasla daha yüksek doğruluk oranlarına ulaşabilir.
MoE'nin Zorlukları
Her teknoloji gibi MoE'nin de bazı dezavantajları vardır:
- Bellek Kullanımı (VRAM): Hesaplama maliyeti düşük olsa da, modelin tüm parametrelerinin (tüm uzmanların) bellekte (VRAM) yüklü olması gerekir. Bu, MoE modellerini çalıştırmak için çok daha fazla GPU belleğine ihtiyaç duyulduğu anlamına gelir.
- Eğitim Zorluğu (Training Instability): Gating ağını eğitmek zordur. Eğer yönlendirici sürekli aynı birkaç uzmanı seçmeye başlarsa, diğer uzmanlar eğitilmez ve model dengesizleşir (buna "expert collapse" denir). Bunu önlemek için özel kayıp fonksiyonları (auxiliary loss) kullanılır.
- İletişim Gecikmesi (Communication Overhead): Dağıtık sistemlerde (birden fazla GPU üzerinde), uzmanlar farklı cihazlara dağıtılmışsa, token'ların uzmanlar arasında taşınması ciddi bir ağ gecikmesine neden olabilir.
Özet
| Özellik | Yoğun (Dense) Modeller | MoE (Seyrek) Modeller |
|---|---|---|
| Parametre Kullanımı | Her token için tüm parametreler kullanılır. | Her token için sadece seçili uzmanlar kullanılır. |
| Hesaplama Maliyeti | Parametre sayısı ile doğru orantılıdır. | Parametre sayısından bağımsız olarak daha düşüktür. |
| Bellek İhtiyacı | Daha düşüktür. | Çok yüksektir (tüm uzmanlar bellekte olmalı). |
| Ölçeklenebilirlik | Zor ve maliyetlidir. | Daha kolay ve verimlidir. |
Sonuç olarak; Mixture of Experts, yapay zekayı daha büyük, daha akıllı ve daha verimli hale getirmek için kullanılan en güçlü yöntemlerden biridir. Bellek kısıtlamaları ve eğitim karmaşıklığı gibi zorluklara rağmen, geleceğin devasa modellerinin MoE mimarisi üzerine inşa edileceği neredeyse kesindir.
Bu içerik hakkında daha fazla bilgi ve yapay zeka topluluğuna katılmak için: https://t.me/GyaanSetuAi