MoE modeli, sinir ağlarında yalnızca gerekli uzman bloklarını aktive ederek model kapasitesini artırırken işlem maliyetini düşürür. Bu yazıda MoE mimarisinin çalışma prensipleri, avantajları, dezavantajları ve klasik dense modellerle farkları detaylı şekilde inceleniyor.
MoE modeli veya Mixture of Experts, verileri işlerken tüm ağın değil, yalnızca belirli blokların etkinleştiği bir sinir ağı mimarisidir. Bu bloklara uzmanlar denir. Sistem, her bir token için en uygun uzmanları seçer ve sadece onları aktive eder.
MoE'nin ana amacı, sinir ağının parametre sayısını, hesaplama yükünü benzer oranda artırmadan büyütmektir. Model, onlarca veya yüzlerce milyar parametre içerebilir, ancak tek bir token üretiminde yalnızca az bir kısmını kullanır. Böylece, ağın büyüklüğü ile hesaplama maliyeti birlikte yükselmek zorunda kalmaz.
Mixture of Experts, modelde kodlama, matematik veya çeviri gibi bağımsız alt sinir ağlarının bulunduğu anlamına gelmez. Uzmanlar, aynı mimarinin eğitilebilen alt bloklarıdır ve veriler arasındaki dağıtımı özel bir yönlendirme mekanizması gerçekleştirir.
Klasik dense (yoğun) sinir ağında her giriş, aynı katmanlardan sıralı olarak geçer. Yani, modelin sahip olduğu parametrelerin çoğu, her token için çalışır.
Mixture of Experts mimarisi ise bazı katmanlarda tek bir büyük blok yerine çok sayıda alternatif uzman barındırır. Token işlenmeden önce ağ, onu hangi uzmana göndereceğine karar verir. Diğer uzmanlar o anda devreye girmez.
Bu yaklaşım seyrek aktivasyon (sparse activation) olarak bilinir. Modelin tüm parametreleri bellekte saklansa da, aynı anda yalnızca bir kısmı kullanılır.
Örneğin, sekiz uzmanın olduğu bir katmanı düşünün. Her tokenı sekiz bloktan geçirmenin aksine, sistem sadece bir veya iki tanesini seçer. Sonraki token farklı uzmanlara yönlendirilebilir. Böylece model, toplamda daha fazla hesaplama kapasitesine sahip olur, ancak her adımda tamamını etkinleştirmek zorunda kalmaz.
Burada "uzman" kelimesini çok kelime anlamıyla almamak gerekir. Eğitim sırasında bazı bloklar belirli temsil türlerinde daha iyi olabilir, ancak geliştiriciler onlara "kod uzmanı" veya "İngilizce uzmanı" gibi roller atamaz. Uzmanlaşma, eğitim sırasında kendiliğinden gelişir ve genellikle çok daha karmaşıktır.
Büyük parametre sayısı ile az sayıda aktif parametre kombinasyonu, MoE sinir ağlarını ölçeklendirme açısından cazip kılar. Ancak, her token için hangi uzmanın seçileceğine karar veren ayrı bir mekanizma gerektirir.
Günümüz MoE modellerinde uzmanlar tüm sinir ağının yerini almaz. Genellikle standart Transformer blokları kullanılırken, Mixture of Experts mekanizması yalnızca belirli bölümlere entegre edilir.
En sık olarak MoE, klasik feed-forward blok yerine kullanılır. Standart Transformer'da her token, Attention'dan sonra aynı tam bağlantılı ağa girer. MoE'de ise birden fazla alternatif uzman bloğu bulunur ve her token için yalnızca birkaçı seçilir.
Bir uzman, katman içinde ayrı bir küçük sinir ağı gibi düşünülebilir. Genellikle hepsi benzer yapıda olur, ancak kendi parametrelerine sahiptir. Eğitim sırasında farklı veriler alır ve girdileri farklı şekilde işlerler.
Bir MoE katmanında sekiz uzman varsa, her tokenın hepsinden geçmesi gerekmez. Mimari, örneğin yalnızca ikisini aktive edebilir. Diğer altı uzman, o token için işlem yapmaz.
Sonraki katmanda seçim değişebilir. Aynı token bir MoE bloğunda bir uzmandan geçerken, ağın ilerleyen kısımlarında tamamen farklı uzmanlara yönlenebilir. Yani, modeldeki yol dinamik olarak oluşur.
Uygun uzmanları seçmek için router adı verilen küçük, eğitilebilir bir yönlendirme mekanizması kullanılır. Router, tokenın içsel gösterimini alır ve uzmanlara puanlar atar.
Puanı daha yüksek olan uzman, o token için daha uygundur. Ardından en yüksek puanlı bir veya birkaç blok seçilir ve token sadece onlara gönderilir.
Router, önceden yazılmış kurallarla çalışmaz; örneğin "kod varsa uzman 3'e gönder" gibi bir koşul yoktur. Yönlendirme de eğitim sırasında öğrenilir ve zamanla verimli dağılımlar bulur.
Seçilen uzmanlardan gelen sonuçlar birleştirilerek modelde ilerletilir. Eğer birden fazla uzman aktifse, router'ın belirlediği ağırlıklarla çıktılar birleştirilebilir.
Mixture of Experts ismi, her isteğin ayrı küçük bir modele girdiği izlenimini verse de, pratikte mimarinin büyük kısmı ortaktır.
Attention mekanizması, katman normu, token işleme ve diğer Transformer bileşenleri, hangi uzmanların seçildiğinden bağımsız olarak kullanılır. Yalnızca belirli hesaplama blokları dinamik olarak aktive olur.
Böylece karma bir yapı ortaya çıkar: Bazı parametreler her token için çalışırken, diğerleri yalnızca router tarafından yönlendirilirse etkinleşir. Bu sayede MoE modeli, genel Transformer yapısını korur, ancak tüm parametreleri aynı anda kullanmadan büyük bir kapasiteye ulaşır.
Uzman seçimi her token için ayrı yapılır. Yani, aynı cümledeki kelimeler bile farklı hesaplama bloklarından geçebilir. Sinir ağı, tüm istek için tek bir uzmana karar vermez; rota, ardışık olarak sürekli değişir.
Önce token sayısal bir içsel temsil haline gelir ve router'a gönderilir. Router, her uzmanın uygunluğunu puanlar ve en yüksek değerlere sahip olanları seçer.
Süreci özetlersek: Token MoE katmanına gelir, router tüm uzmanları puanlar, en uygunları seçer ve token onlara iletilir. Sonuçlar birleştirilip ağa aktarılır.
Bir tokenın kaç uzmana gönderileceği genellikle önceden belirlenir. Bu, "Top-K routing" olarak bilinir; K, aktive edilen uzman sayısını ifade eder.
Top-1 routing'de yalnızca en yüksek puanlı uzman seçilir, bu da daha az hesaplama gerektirir. Top-2 routing'de ise iki uzman seçilir ve sonuçlar router'ın belirlediği ağırlıklarla birleştirilir. K değeri arttıkça daha fazla uzman aktif olur, ancak hesaplama tasarrufu azalır. Geliştiriciler, model kalitesi ile işlem yükü arasında denge kurmalıdır.
Router, yalnızca tokenın harfsel değerine değil, içsel temsilini dikkate alır. Aynı token farklı bağlamlarda farklı gösterimlere sahip olabileceği için farklı uzmanlara yönlendirilebilir.
Örneğin, bir kelime günlük konuşmada ve kod içinde farklı işlenebilir, ancak modelde mutlaka "kod uzmanı" diye bir blok olmayabilir. Yönlendirme, sinir ağının eğitim sırasında keşfettiği özelliklere dayanır.
Ayrıca seçim her MoE katmanında tekrarlanır. Başta bir uzmana giden token, ileride başka bir uzmana yönlendirilebilir. Bu nedenle veri akışı, dinamik kararlar dizisidir.
Router ve uzmanlar birlikte eğitilir. Eğer belirli bir yönlendirme yöntemi modelin hata oranını azaltıyorsa, parametreler buna göre güncellenir ve benzer gösterimler daha sık faydalı yollara yönlendirilir.
Ancak, ek kısıtlamalar olmadan router bazen en başarılı birkaç uzmana çok fazla token gönderebilir. Bu durumda bazı bloklar aşırı yüklenir, diğerleri ise yeterince veri almaz ve eğitimde geri kalır.
Bu yüzden MoE eğitiminde yük dengeleme mekanizmaları kullanılır. Router'ın tokenları daha dengeli dağıtmasını teşvik eder ve modelin yalnızca birkaç aktif bloktan oluşmasını engeller.
Her uzmanın aynı anda işleyebileceği token sayısına da limit getirilebilir. Özellikle çoklu GPU'da büyük modeller eğitilirken, dengesiz yönlendirme darboğazlar oluşturabilir.
Mixture of Experts'in ana avantajı, modeldeki toplam parametre sayısı ile bir tokenı işlerken kullanılan parametre sayısının farklı olabilmesidir. MoE modeli, çok büyük olabilir ama her token için aynı oranda işlem gerektirmez.
Yoğun (dense) modellerde katmanın neredeyse tüm parametreleri her token için çalışır. Katman büyüdükçe işlem yükü de aynı oranda artar. MoE'de ise parametrelerin bir kısmı uzmanlara dağılmıştır ve aynı anda yalnızca birkaçı aktiftir.
Örneğin, sekiz eşit boyutlu uzmana sahip, Top-2 yönlendirmeli bir MoE katmanında, her token yalnızca iki uzmandan geçer. Diğer altı uzman o an için işlem yapmaz.
Böylece toplam parametre sayısı çok hızlı artabilir, ancak tek bir tokenı işlerken gereken hesaplama daha yavaş büyür. Model, karmaşık örüntüleri depolayabilir ama donanım tüm kapasiteyi aynı anda kullanmak zorunda kalmaz.
Burada model boyutu ile aktif parametre sayısı arasındaki farkı anlamak önemlidir. Milyarlarca parametreye sahip olmak, her yanıt için o kadar işlem gerekmesi anlamına gelmez. Bu prensip hakkında daha fazla bilgi almak için Yapay Sinir Ağı Parametreleri: Milyarlarca Parametre Ne Anlama Gelir? başlıklı yazımıza göz atabilirsiniz.
Genel parametreler, modelin tamamında eğitilebilen ve bellekte saklanan tüm parametrelerdir.
Aktif parametreler ise bir tokenı işlerken etkinleşen parametrelerdir. MoE'de router yalnızca bazı uzmanları seçtiği için aktif parametreler toplamdan çok daha az olabilir.
Örneğin, modelde 100 milyar parametre varsa ama bir token için sadece 20 milyarı kullanılıyorsa, kalan 80 milyar gereksiz değildir. Farklı tokenlar ve katmanlar için devreye girebilirler. Modelin tümü aynı anda çalışmaz.
Bu yaklaşım, işlem yükü artmadan hesaplama kapasitesini artırmayı sağlar. Özellikle büyük dil modellerinde MoE bu yüzden tercih edilir.
Sparse activation'ın önemli bir sınırı vardır: Aktif olmayan uzmanlar işlem yapmasa da, parametreleri bellekte tutulmalıdır.
Eğer model, yüz milyarlarca parametre içeriyorsa, donanım tüm verilere erişebilmelidir. Bu nedenle büyük MoE modellerinin bellek gereksinimi yüksek kalır.
Tek bir hızlandırıcıda (GPU) bu kadar büyük bir model saklanamaz; uzmanlar farklı GPU'lara veya donanımlara dağıtılır. Router'ın seçtiği uzmana veri aktarılırken, hızlandırıcılar arası iletişim gerekebilir.
Bu durumda yükün bir kısmı matematiksel hesaplamadan, bellek ve veri aktarımına kayar. Yani, MoE devasa bir sinir ağını otomatik olarak ucuz veya kolay kılmaz.
Yönlendirme işlemi de hesaplama gerektirir. Router, uzmanları puanlamalı ve tokenları doğru şekilde dağıtmalıdır.
Çok sayıda isteği aynı anda işlerken, bazı uzmanlar çok fazla token alabilir ve ilgili GPU'lar aşırı yüklenirken, diğerleri boşta kalabilir.
Bunu önlemek için yük dengeleme, kapasite sınırı ve dağıtık hesaplama gibi teknikler kullanılır. MoE'nin gerçek verimliliği yalnızca aktif parametre sayısına değil, aynı zamanda yönlendirme, bellek yönetimi ve hızlandırıcılar arası veri akışının iyi organize edilmesine bağlıdır.
Sonuç olarak, MoE'nin tasarrufu esas olarak her token için yapılan işlemlerin azalmasından gelir. Ancak mimari karmaşıklığı, bellek gereksinimleri ve dağıtık sistem yönetimi de artar.
MoE ve dense modeller arasındaki fark yalnızca parametre sayısı değildir. İki mimari, hesaplama kaynaklarını, belleği ve ölçeklenebilirliği farklı kullanır.
Dense modelde her token, aynı hesaplama bloklarından geçer. MoE'de ise bazı bloklar uzmanlara ayrılır ve router yalnızca birkaçını etkinleştirir. Böylece MoE, benzer işlem yüküyle çok daha fazla genel parametreye sahip olabilir.
| Özellik | Dense Model | MoE Modeli |
|---|---|---|
| Genel parametreler | Genelde daha az | Çok daha fazla olabilir |
| Aktif parametreler | Katmanın çoğu kullanılır | Sadece bazı uzmanlar kullanılır |
| Token başına işlemler | Modelle birlikte artar | Toplam parametreyle daha yavaş artar |
| Bellek gereksinimi | Daha öngörülebilir | Çok yüksek olabilir |
| Yönlendirme | Gerekli değil | Router gerekir |
| GPU dağıtımı | Nispeten kolay | Uzmanlar nedeniyle daha zor |
| Yük dengeleme | Gerekli değil | Verimli çalışma için önemli |
Sparse activation'ın avantajları, her zaman MoE'nin klasik sinir ağlarının yerini alacağı anlamına gelmez. Hangi mimarinin seçileceği, uygulama ve altyapıya bağlıdır.
Dense modellerin başlatılması, hızlandırıcılar arasında dağıtılması ve optimize edilmesi daha kolaydır. Hesaplama yükü daha öngörülebilirdir ve dinamik yönlendirme gerektirmez.
Daha küçük modellerde MoE'nin getirdiği ek karmaşıklık, sağladığı avantajı karşılamayabilir. Model büyüdükçe, parametre sayısını artırıp işlem yükünü sabit tutabilmek daha çekici hale gelir.
Bu nedenle, MoE çok büyük modellerde özellikle faydalıdır. Ancak, ölçeklenebilirlik için daha karmaşık bellek, veri aktarımı ve yük yönetimi gerektirir.
Mixture of Experts, sinir ağını "ucuzlatmak" yerine parametre kullanımında esnek bir yaklaşım sunar. Her token için yalnızca en faydalı bloklar aktive edilir.
MoE modeli, sinir ağının boyutu ile işlem yükünün aynı oranda artmasının zorunlu olmadığını gösterir. Mixture of Experts mimarisi, çok sayıda parametreyi saklamaya izin verir, ancak her token için yalnızca birkaç uzman bloğu aktive edilir.
Bu blokları seçme işi, tokenın içsel temsilini değerlendiren ve en uygun uzmanlara yönlendiren router tarafından yapılır. Seyrek aktivasyon sayesinde, sinir ağı tüm parametreleri aynı anda kullanmadan büyük bir kapasite elde eder.
Ancak, MoE tüm kaynak problemlerini çözmez. Uzman parametreleri yine de bellekte tutulmalı, tokenların GPU'lar arasında dağıtımı ek yük getirir ve dengeleme gerektirir. Bu nedenle mimarinin etkinliği, sadece parametre sayısına değil, yönlendirme ve altyapının kalitesine de bağlıdır.
MoE ve dense modelleri karşılaştırırken, yalnızca sinir ağının boyutuna bakmak yeterli değildir. Token başına aktif parametre sayısı, işlem yükü, bellek gereksinimleri ve dağıtık çalıştırma özellikleri daha belirleyicidir. Bu göstergeler, büyük bir modelin gerçekten ne kadar karmaşık ve pahalı olduğunu ortaya koyar.