Uzman Karışımı (MoE) mimarisini keşfedin. Ağ geçitleri ve seyrek katmanların, yüksek performanslı yapay zeka ve bilgisayar görüşü için sinir ağlarını nasıl ölçeklendirdiğini öğrenin.
Uzman Karışımı (MoE), modellerin hesaplama maliyetinde orantılı bir artış olmadan büyük boyutlara ölçeklenmesini sağlayan, derin öğrenmede özel bir mimari tasarımdır. Her parametrenin her girdi için aktif olduğu standart yoğun sinir ağından (NN) farklı olarak, MoE modeli koşullu hesaplama adı verilen bir teknik kullanır. Bu yaklaşım, ağ bileşenlerinin küçük bir alt kümesini dinamik olarak etkinleştirir. Bu yaklaşım, giriş verilerinin belirli özelliklerine göre ağ bileşenlerinin yalnızca küçük bir alt kümesini ("uzmanlar" olarak adlandırılır) dinamik olarak etkinleştirir. Böylelikle MoE mimarileri, çok daha küçük sistemlerin çıkarım gecikmesi ve çalışma hızını korurken trilyonlarca parametreye sahip olabilen güçlü temel modellerin oluşturulmasını sağlar. .
Uzman Karışımı modelinin verimliliği, standart yoğun katmanların seyrek MoE katmanıyla değiştirilmesinden kaynaklanmaktadır. Bu katman, bilgileri verimli bir şekilde işlemek için birlikte çalışan iki ana unsurdan oluşur:
Her iki kavram da birden fazla alt modelin kullanılmasını içerse de, Uzman Karışımı ile model topluluğunu birbirinden ayırmak çok önemlidir. Geleneksel bir toplulukta, gruptaki her model aynı girdiyi işler ve sonuçları, doğruluğu en üst düzeye çıkarmak için ortalaması alınır veya oylanır. Bu yaklaşım, hesaplama maliyetini model sayısıyla doğrusal olarak artırır.
Tersine, MoE, farklı girdilerin farklı yollardan geçtiği tek ve birleşik bir modeldir. Seyrek MoE, herhangi bir belirli çıkarım adımı için toplam parametrelerin yalnızca bir kısmını çalıştırarak ölçeklenebilirlik ve verimlilik hedefler. Bu, yoğun kümelerle ilişkili yüksek maliyetler olmadan büyük miktarda eğitim verisi üzerinde eğitim yapılmasına olanak tanır.
MoE mimarisi, özellikle çoklu görev yetenekleri ve geniş bilgi tutma gerektiren senaryolarda modern yüksek performanslı AI için bir mihenk taşı haline gelmiştir. .
Gating ağının uzmanları nasıl seçtiğini anlamak için, bu basitleştirilmiş PyTorch örneğini ele alalım. Bu örnek, belirli bir girdi için en uygun uzmanı seçen bir yönlendirme mekanizmasını göstermektedir.
import torch
import torch.nn as nn
# A simple router deciding between 4 experts for input dimension of 10
num_experts = 4
input_dim = 10
router = nn.Linear(input_dim, num_experts)
# Batch of 2 inputs
input_data = torch.randn(2, input_dim)
# Calculate scores and select the top-1 expert for each input
logits = router(input_data)
probs = torch.softmax(logits, dim=-1)
weights, indices = torch.topk(probs, k=1, dim=-1)
print(f"Selected Expert Indices: {indices.flatten().tolist()}")
Avantajlarına rağmen, MoE modelleri eğitim sürecine benzersiz zorluklar getirir. Birincil sorun yük dengelemesidir; yönlendirici, diğerlerini göz ardı ederek birkaç "popüler" uzmanı tercih edebilir ve bu da kapasite israfına yol açabilir. Bunu azaltmak için araştırmacılar, tüm uzmanların eşit kullanımını teşvik etmek için yardımcı kayıp fonksiyonları kullanır. .
Ayrıca, bu devasa modellerin kullanılması için gelişmiş donanım kurulumları gerekir. Toplam parametre sayısı yüksek olduğundan (aktif parametreler düşük olsa bile), model genellikle önemli miktarda VRAM gerektirir ve bu da birden fazla GPU'da dağıtılmış eğitim gerektirir. Microsoft gibi çerçeveler, bu sistemleri verimli bir şekilde eğitmek için gereken paralelliği yönetmeye yardımcı olur. Bu kadar karmaşık mimariler için veri kümelerini ve eğitim iş akışlarını yönetmek amacıyla Ultralytics gibi araçlar, günlük kaydı, görselleştirme ve dağıtım için gerekli altyapıyı sağlar.