7 puan yazan ninebow 2024-04-13 | Henüz yorum yok. | WhatsApp'ta paylaş

PyTorchKR

  • Son dönemde, Jamba, Qwen1.5-MoE ve DBRX gibi, birden fazla "uzman" blok arasından bir veya daha fazlasını seçerek giriş token'larını işleyen MoE (Mixture-of-Experts) yöntemi yaygın biçimde kullanılmaya başladı. Bu MoE yaklaşımı, devasa LLM'lerin yalnızca bir kısmını dinamik olarak kontrol ederek hesaplama kaynaklarını verimli biçimde tahsis ederken daha iyi performans gösteriyor.

  • MoE, birden fazla uzman arasından bir kısmını seçerek "modelin genişliğini (width)" dinamik olarak ayarlıyorsa, burada tanıtılan MoD (Mixture-of-Depths) ise "modelin derinliğini (depth)" dinamik olarak ayarlayan bir yaklaşım benimsiyor. Yani belirli token'lar için modelin tüm katmanlarında hesaplama yapmak yerine, bazı katmanları atlayarak dinamik hesaplama gerçekleştiriyor. Gelin birlikte bakalım.


MoD (Mixture-of-Depths): Transformer tabanlı dil modeli hesaplamasını optimize etmeye yönelik bir yaklaşım (Mixture-of-Depths: Dynamically allocating compute in transformer-based language models)

Giriş

Geleneksel olarak transformer modelleri, giriş dizisinin tüm bölümlerine aynı hesaplama kaynağını ayırır. Ancak burada tanıtılan MoD (Mixture-of-Depth) Transformer makalesi, Transformer'ın belirli dizi konumlarına hesaplama kaynağını dinamik olarak ayırmayı ve bu tahsisi farklı katmanlar boyunca değiştirmeyi dener. Yazarlar, bu Mixture-of-Depths (MoD) stratejisini kullanmak için hangi token'ların işleneceğine karar vermede top-k yönlendirme mekanizmasından yararlanarak toplam hesaplama miktarını kontrol eder. Bu teknik, mevcut modellerin performansına yaklaşırken veya onları aşarken çok daha az FLOPs gerektirir ve eğitim sonrası örnekleme sırasında %50'ye kadar hız artışı sağlar.

[Attention is All You Need makalesinde tanıtılan Transformer mimarisi]

Güncel transformer modelleri ve LLM'ler (Large Language Model) ölçek ve karmaşıklık açısından sürekli büyüyor. Bu modeller, insan seviyesine yaklaşan dil anlama ve üretme yeteneklerine erişebilmek için milyarlarca parametre kullanıyor ve bunun sonucunda dikkat çekici performans sergiliyor. Ancak bu ilerleme, yüksek hesaplama maliyeti ve enerji tüketimini de beraberinde getiriyor; model boyutunun artması, eğitim ve çıkarım süresini keskin biçimde uzatıyor.

Bunun nedeni, Transformer'ın giriş dizisindeki tüm token'lar için aynı miktarda hesaplama yapmasıdır. Oysa bazı token'lar bağlamı anlamada kritik rol oynarken bazıları görece daha az önem taşıyabilir; yani tüm token'lar eşit miktarda bilgi sunmayabilir. Yaklaşım tam da bu fikirden yola çıkıyor.

MoD Transformer, her token için hesaplamayı dinamik olarak tahsis ederek modelin kaynaklarını ihtiyaç duyulan noktalara yoğunlaştırmasını sağlar. Bu, modelin toplam hesaplama maliyetini azaltırken önemli token'lara daha fazla dikkat ayırarak bilgi işlemenin verimliliğini artırır. Özellikle LLM gibi büyük ölçekli modellerde MoD yaklaşımı, eğitim ve çıkarım süreçlerinde zaman ve kaynak tasarrufu sağlayabilecek önemli bir yöntem olabilir.

MoD (Mixture-of-Depths) tekniğine giriş

MoD tekniği, her transformer katmanında hangi token'ların işleneceğini dinamik olarak seçen bir top-k yönlendirme mekanizmasını entegre eder. Böylece yalnızca seçilen token'lar tam hesaplama sürecinden geçerken diğer token'lar katman(lar)ı atlar.

Şekil 1 / Sol: MoD (Mixture-of-Depths) Transformer genel görünümü: MoE (Mixture-of-Experts) yapısına benzer şekilde, hesaplama yolu router üzerinden seçilir. Ancak MoE'den farklı olarak burada standart bloğun (Self-Attention ve MLP) çalıştırılıp çalıştırılmayacağına karar verilir. Giriş token'ı ($X_i$), router kararına göre tam hesaplamayı etkinleştirmiyorsa ilgili katmanın hesaplamasından geçmez.
Şekil 1 / Sağ: 64 token'a indirgenmiş kısa bir dizi için yönlendirme kararlarının sonucu. (X ekseni: dizi, Y ekseni: katman) Mor renk, ilgili katmandaki hesaplamanın tamamen yapıldığını; turuncu ise bu katmandaki hesaplamanın atlandığını gösterir.

Yukarıdaki açıklamada olduğu gibi MoD, transformer mimarisi içine öngörücü bir router yerleştirerek her token için katman hesaplamasının yürütülüp yürütülmeyeceğini belirler. Böylece hesaplama kaynakları görece "önemli" token'lara odaklanabilir.

MoD Transformer'ın eğitimi

MoD Transformer'ın eğitim süreci temelde standart Transformer'a benzer. Giriş dizisi modele verilir ve her katmandan geçirilirken gerekli hesaplamalar yapılır. Ancak MoD Transformer, router aracılığıyla her token'ın hangi hesaplama yolunu izleyeceğini belirleyen ek bir adım içerir.

  1. Router ağırlıklarının hesaplanması: Router, modelin her katmanında her token için bir ağırlık hesaplar. Bu ağırlık, ilgili token'ın alması gereken hesaplama miktarını ve önem düzeyini temsil eder.

  2. Üst token'ların seçimi: Router, hesaplanan ağırlıklara göre her katman için en üst sıradaki token'ları seçer. Bu token'lar tam hesaplamanın yapıldığı yola yönlendirilir.

  3. Hesaplama yolunun atanması: Seçilen token'lar standart hesaplamanın (Self-Attention ve MLP) yürütüldüğü yola atanır. Kalan token'lar ise residual bağlantılar üzerinden iletilerek ek hesaplama olmadan sonraki katmana geçer.

  4. Kayıp hesaplaması ve geri yayılım: Model çıktısı nihai kayıp fonksiyonu ile değerlendirilir ve gradyanlar model boyunca geri yayılırak ağırlıkları günceller. Bu süreçte router da öğrenir ve zamanla daha verimli yönlendirme kararları alabilir hale gelir.

MoD Transformer'ın yönlendirme biçimleri (Routing Schemes)

Yönlendirme uygulaması, MoD Transformer'ın en kritik parçalarından biridir. Yazarlar üç yönlendirme yaklaşımını karşılaştırmış ve Expert-Choice MoD yaklaşımındaki token yönlendirmesinin en iyi performansı verdiğini doğrulamıştır. Şimdi tanıtılan diğer yönlendirme yöntemleriyle karşılaştıralım:

Token-choice yönlendirme

Token-choice yönlendirmede her token, hangi yolu izleyeceğini kendisi seçer. Model, her token için farklı hesaplama yollarına (örneğin farklı katmanlar veya işlem blokları) ilişkin bir olasılık dağılımı üretir ve bu dağılıma göre token'ı ilgili yola gönderir.

Token-choice yönlendirme, her token'ın kendisine en uygun hesaplama yolunu seçebilmesine olanak tanıdığı için son derece esnek bir yapı sunar. Ayrıca model, her token'ın önemini veya bağlamını daha hassas biçimde dikkate alabilir; böylece bireysel token düzeyinde optimizasyon yapılabilir.

Expert-choice yönlendirme

Expert-choice yönlendirmede model, her yolun (veya "uzmanın") hangi token'ları işleyeceğini doğrudan seçer. Bu, her token'ın router ağırlıklarına göre en üstteki token'ları belirleyen bir top-k mekanizmasıyla gerçekleştirilir.

Bu yaklaşım sayesinde token'lar her yola daha dengeli dağıtılabilir; böylece hesaplama yükü dengelenir ve modelin hesaplama kaynakları daha verimli kullanılır. Ayrıca en üstteki token'lar net biçimde belirlendiğinden modelin öngörülebilirliği ve kararlılığı da artar.

Expert-choice MoD

Expert-choice MoD, expert-choice yönlendirme fikrinin MoD Transformer yapısına uygulanmış hâlidir. Bu yöntemde model, her katman veya işlem adımı için en üstteki token'ları seçer ve yalnızca seçilen token'lar hesaplamanın yapıldığı yol boyunca işlenir. Diğer token'lar ise residual bağlantılar üzerinden daha düşük maliyetli yolu izler.

Bu yaklaşımda yalnızca seçilen token'lar hesaplandığından modelin toplam FLOP kullanımı ciddi biçimde azalır. Ayrıca önemli token'lar için tüm katmanlardaki hesaplamayı güvence altına alırken gereksiz hesaplamaları en aza indirerek model performansını koruyabilir veya iyileştirebilir. Son olarak router üzerinden yapılan dinamik yönlendirme sayesinde model, giriş dizisinin özelliklerine göre hesaplama kaynaklarını esnek biçimde tahsis edebilir.

Yönlendirme uygulama biçimi

Yönlendirmenin uygulanması, aşağıdaki üç temel adımla mümkündür:

  1. Token embedding'leri ve router ağırlıklarının belirlenmesi: Modelin her katmanı için verilen dizinin token embedding kümesi $X^i$ bulunur. Her token embedding'i $x^l_i$ için router, doğrusal dönüşüm yoluyla ilgili token'ın hesaplamaya katılma olasılığını gösteren skaler ağırlık $r^l_i$ değerini hesaplar.

  2. Üst ağırlıkların belirlenmesi: Token'ların router ağırlıkları kümesi $R^l$ içinden, $\beta$'inci ağırlığın yüzdelik olasılığı olan $P_\beta(R^l)$ bulunur. Burada $\beta$, modelin her katmanda işleyeceği token oranını belirler. Dolayısıyla router ağırlığı $P_\beta(R^l)$ değerinden büyük olan token'lar hesaplamaya katılır.

  3. Hesaplama yolunun seçilmesi: Her token, router ağırlığı $r^l_i$ ile karşılaştırılır; değer $P_\beta(R^l)$'den büyük veya eşitse ilgili katmandaki hesaplama yapılır, küçükse token doğrudan sonraki katmana aktarılır. Böylece yalnızca seçilen token'lar için hesaplama gerçekleştirilir, kalanlar ise hesaplama maliyeti doğurmayan bir yol üzerinden işlenebilir.

Bu yönlendirme uygulanırken şu noktalar özellikle dikkate alınmalıdır:

  • Ağırlığa dayalı dinamik karar verme: Yönlendirme süreci, her token'ın ağırlığına göre dinamik biçimde belirlenir ve bu da token'ın önemini yansıtır. Önemli token'lar daha fazla hesaplama alarak model performansını optimize ederken, daha az önemli olanlar residual yol üzerinden maliyeti azaltır.

  • Hesaplama verimliliği ve performans optimizasyonu: Bu yönlendirme mekanizması sayesinde MoD Transformer, hesaplama kaynaklarını verimli kullanırken model performansını koruyabilir veya geliştirebilir. Özellikle hesaplama maliyeti yüksek katmanlarda yalnızca önemli token'ları işleyerek toplam FLOP kullanımını azaltabilir.

  • Uygulamanın sadeliği ve verimliliği: Yönlendirme, doğrusal dönüşüm ve yüzdelik hesaplama ile gerçekleştirildiği için görece basit ve verimlidir. Bu da eğitim ve çıkarım sırasında ek hesaplama yükü oluşturmadan kaynakların dinamik tahsisini mümkün kılar.

MoD Transformer'ın çalışma örneği

Şimdiye kadar incelediklerimize dayanarak MoD Transformer'ın nasıl çalıştığını bir örnekle açıklayalım.

Örneğin giriş dizisinde 100 token olduğunu ve router'ın değeri 10 olarak ayarladığını varsayalım. Bu durumda router, her katmanda en önemli 10 token'ı seçer ve yalnızca bu token'lar standart hesaplama yolu boyunca işlenir.

Kalan 90 token ise hesaplamayı atlar ve residual bağlantılar üzerinden doğrudan sonraki katmana iletilir. Bu süreç sayesinde MoD Transformer, toplam FLOP kullanımını azaltırken önemli token'lar için gerekli hesaplamayı garanti eder.

MoD Transformer performans karşılaştırması

Eğitim performansı

Hiperparametre optimizasyonu: %12,5 kapasiteli yönlendirme bloklarının tam attention bloklarıyla dönüşümlü yerleştirildiği bir MoD Transformer varyantının eğitildiği deneylerde, en iyi hiperparametre ayarları bulunmuştur. Bu ayar, isoFLOP analizinde en iyi temel çizgiden daha iyi performans sağlamıştır.

  • Hesaplama verimliliği: Belirli MoD varyantları, mevcut modellere kıyasla daha az FLOP ile aynı performansa ulaşırken %66 daha hızlı işleme hızı göstermiştir.

Yönlendirme analizi

Yönlendirme kararlarının seyrekliği: %12,5 kapasite yönlendirmesi kullanıldığında token'ların büyük çoğunluğu bloğu baypas etmiş, yalnızca az sayıdaki önemli token bloktan geçmiştir. Bu durum router ağırlıklarının dağılımında da görülebilmiş ve ağın derinliğe göre belirli token'ları tercih ederek yönlendirdiği gözlemlenmiştir.

Çıkarım performansı

Oto-regresif çıkarım: Eğitim sırasında non-causal top-k yönlendirme şemasından, çıkarım aşamasında causal tahmin tabanlı bir yaklaşıma geçildiğinde performans kaybı neredeyse olmamıştır. Bunun nedeni, ilgili tahmin probleminin öğrenilmesinin kolay olması ve eğitim başlangıcından itibaren %97'nin üzerinde doğruluk elde edilmesi gibi görünmektedir.

Mixture-of-Depths-and-Experts (MoDE) = MoD + MoE

MoDE (Mixture-of-Depths-and-Experts), MoD (Mixture-of-Depths) tekniği ile MoE (Mixture of Experts) tekniğinin birleşimini ifade eder. Bu yaklaşım, iki yöntemin avantajlarını bir araya getirerek transformer modelinin hem hesaplama verimliliğini hem de performansını optimize etmeyi amaçlar. MoD yöntemi, her token için daha derin veya daha sığ hesaplama yapılmasını seçerken; MoE yöntemi, farklı "uzmanlar" arasından en uygun olanı seçerek token'ı işler. MoDE, bu iki yaklaşımı birleştirerek token'ın belirli blokları atlamasına veya seçici biçimde daha derin hesaplama yapmasına izin verirken aynı zamanda farklı uzmanlar arasından en uygun işleme biçimini seçebilmesini sağlar.

MoDE'nin uygulama biçimi

MoDE'nin iki ana uygulama biçimi vardır: Aşamalı (Staged) MoDE ve Entegre (Integrated) MoDE.

  1. Staged MoDE (Aşamalı MoDE): Aşamalı MoDE, önce MoD tekniğini uygulayarak her token'ın hesaplama yolunu belirler; ardından seçilen yolda işlenecek token'ları ilgili uzman bloklara yönlendirmek için MoE tekniğini uygular. Böylece model önce hesaplama derinliğini ayarlar, ardından her aşamada en uygun uzmanı seçebilir.

  2. Integrated MoDE (Entegre MoDE): Entegre MoDE, MoD ve MoE tekniklerini tek bir yönlendirme adımında birleştirerek uygular. Yani token yönlendirilirken tek bir kararla hem hesaplama yolunun derinliği hem de hangi uzmanın işleyeceği birlikte seçilir. Bu yaklaşım daha basit ve verimli bir uygulama sunabilir; ayrıca her token için en uygun hesaplama yolu ile uzmanı aynı anda belirleme avantajına sahiptir.

MoDE'nin avantajları

  • Hesaplama verimliliği: MoDE, her token için gereken hesaplama miktarını ve hangi uzmanın işleyeceğini dinamik olarak belirleyerek modelin toplam hesaplama maliyetini etkili biçimde yönetir.
  • Performans optimizasyonu: Her token'ı en uygun hesaplama yoluna ve uzmana atayarak MoDE, model performansını en üst düzeye çıkarır. Bu, özellikle karmaşık problemleri çözmek veya farklı veri türlerini işlemek için faydalı olabilir.
  • Esneklik ve ölçeklenebilirlik: MoDE, farklı model yapıları ve görevlerde uygulanabilecek esneklik sunar ve modelin hesaplama verimliliği ile performansını aynı anda iyileştirebilen ölçeklenebilir bir çerçeve sağlar.

MoDE, transformer modellerin gelecekteki gelişim yönüne işaret eder ve hesaplama maliyetini en aza indirirken model performansını en üst düzeye çıkarma yollarını araştıran çalışmalara önemli katkı sunar.

Daha fazlası için

https://arxiv.org/abs/2404.02258


Bu yazı, GPT modeliyle derlenmiş bir metin temel alınarak hazırlanmıştır; bu nedenle içerik, orijinal metnin içeriği veya niyetiyle tam olarak örtüşmeyebilir. Konu ilginizi çekiyorsa lütfen orijinal metne de göz atın. Okurken garip veya hatalı bir ifade fark ederseniz yorumlarda bildirmenizi rica ederiz.

⚠️Reklam⚠️: PyTorch Kore Kullanıcı Topluluğu tarafından derlenen bu yazıyı faydalı buldunuz mu? Üye olursanız, önemli yazıları size e-posta ile göndeririz! (Varsayılan sıklık haftalıktır ama günlük olarak da değiştirebilirsiniz.)

Henüz yorum yok.

Henüz yorum yok.