Tutel olan ve olmayan Azure NDm A100 v4 düğümlerini kullanan Meta'nın MoE dil modelinin uçtan uca performansını karşılaştıran bir çizgi grafik.  X ekseni, 8'den başlayıp 512'ye kadar çıkan A100 (80GB) GPU'ların sayısıdır ve y ekseni, 0 ile başlayan ve 100'lük aralıklarla 1.000'e kadar çıkan verimdir (K jeton/sn). Tutel her zaman fairseq'ten daha yüksek verim elde eder.

Uzmanlar karışımı (MoE), hesaplama maliyetinin parametre sayısının altında olduğu ve ölçeklemeyi kolaylaştıran bir derin öğrenme modeli mimarisidir. Günümüzde, MoE, derin öğrenme modellerini trilyondan fazla parametreye ölçeklendirmek için gösterilen tek yaklaşımdır, daha fazla bilgi öğrenebilen ve diğerlerinin yanı sıra bilgisayarla görme, konuşma tanıma, doğal dil işleme ve makine çeviri sistemlerini güçlendirebilen modellerin önünü açar. insanlara ve kuruluşlara yeni yollarla yardımcı olabilir.

Bugün, büyük ölçekli DNN modellerinin geliştirilmesini kolaylaştıran yüksek performanslı bir MoE kitaplığı olan Tutel’i duyurmaktan gurur duyuyoruz; Tutel, genel kullanıma sunulan yeni Azure NDm A100 v4 serisi için yüksek düzeyde optimize edilmiştir. Tutel’in çeşitli ve esnek MoE algoritmik desteğiyle, AI etki alanlarındaki geliştiriciler MoE’yi daha kolay ve verimli bir şekilde yürütebilir. Tek bir MoE katmanı için Tutel, 8 GPU’lu bir NDm A100 v4 düğümünde 8.49x hızlanma ve 512 A100 GPU’lu 64 NDm A100 v4 düğümünde 2.75x hızlanma elde eder (bu blogdaki tüm deneyler Azure NDm A100 v4 düğümlerinde test edilmiştir) 8 x 80 GB NVIDIA A100 ve saniyede 8 x 200 gigabit InfiniBand ağı ile), Meta’nın Facebook AI Research Sequence-to-Sequence Toolkit (fairseq) gibi son teknoloji MoE uygulamalarıyla karşılaştırıldığında PyTorch. Uçtan uca performans için Tutel – herkesten herkese iletişim için bir optimizasyondan yararlanır – Meta’lar için 64 NDm A100 v4 düğümü ile yüzde 40’tan fazla hızlanma elde eder (Facebook artık Meta’dır) 1,1 trilyon parametreli MoE dil modeli . Tutel, Azure NDm A100 v4 kümesi üzerinde çalışırken mükemmel performansı sağlamak için zengin özelliklerle mükemmel uyumluluk sağlar. Tutel açık kaynak kodludur ve fairseq’e entegre edilmiştir.

MoE optimizasyonlarına dokunun

Fairseq ve FastMoE gibi diğer yüksek seviyeli MoE çözümlerini tamamlayan Tutel, temel olarak MoE’ye özgü hesaplama ve herkesten herkese iletişimin optimizasyonlarının yanı sıra diğer çeşitli ve esnek algoritmik MoE desteklerine odaklanmaktadır. Tutel, diğer MoE çözümlerine entegrasyonu kolaylaştıran kısa bir arayüze sahiptir. Alternatif olarak geliştiriciler, bağımsız MoE katmanlarını sıfırdan kendi DNN modellerine dahil etmek için Tutel arayüzünü kullanabilir ve yüksek düzeyde optimize edilmiş son teknoloji MoE özelliklerinden doğrudan yararlanabilir.

Hesaplama için MEB’e özel optimizasyon

Verimli uygulamaların olmaması nedeniyle, MoE tabanlı DNN modelleri, MoE hesaplamasını oluşturmak için PyTorch ve TensorFlow gibi derin öğrenme çerçeveleri tarafından sağlanan çoklu kullanıma hazır DNN operatörlerinin saf bir kombinasyonuna dayanır. Böyle bir uygulama, gereksiz hesaplama sayesinde önemli performans giderlerine neden olur. Tutel, MoE’ye özel hesaplama için operatörler sağlamak için çok sayıda yüksek düzeyde optimize edilmiş GPU çekirdeği tasarlar ve uygular. Örneğin Tutel, “geçit çıkışını” O(N^3)’ten O(N^2)’ye göndermenin zaman karmaşıklığını azaltır, bu da veri gönderme verimliliğini önemli ölçüde artırır. Tutel ayrıca, fairseq uygulamasına kıyasla 24 kat hızlanma sağlayan hızlı bir eksi bir operatör uygular. Tutel ayrıca özelleştirilmiş MoE çekirdeğini tam zamanında daha da optimize etmek için CUDA C++ için bir çalışma zamanı derleme kitaplığı olan NVRTC’den yararlanır. Şekil 1, Azure NDm A100 v4 platformunda Fairseq ile Tutel’in karşılaştırma sonuçlarını gösterir; yukarıda belirtildiği gibi, Tutel ile tek bir MoE katmanı 8 A100 GPU’da 8.49x ve 512 A100 GPU’da 2.75x hızlanma sağlar.

Azure NDm A100 v4 kümelerinde baştan sona iletişim optimizasyonunun temelini oluşturur

Tutel ayrıca Azure NDm A100 v4 kümelerinde CPU-GPU bağlama ve uyarlamalı yönlendirme (AR) ayarlama dahil olmak üzere büyük ölçekli MoE eğitimi için tamamen toplu iletişimi optimize eder. Özellikle NDm A100 v4 düğümlerinde, çoklu tek biçimli olmayan bellek erişimi (NUMA) sisteminde uygun bir CPU-GPU bağlaması, tümden herkese performans için çok önemlidir. Ne yazık ki, mevcut makine öğrenimi çerçeveleri, büyük ölçekli dağıtılmış eğitim için performans gerilemesi ile sonuçlanan verimli bir baştan sona iletişim kitaplığı sağlamadı. Tutel, ciltlemeyi otomatik olarak optimize eder ve kullanıcının ince ayarı için zarif bir arayüz sağlar. Ayrıca Tutel, NDm A100 v4 kümelerinde çok yollu teknolojiden, yani AR’den yararlanır. MoE’de tümden herkese iletişim için, her bir GPU için iletişimin toplam veri trafiği boyutu değişmez, ancak GPU sayısı arttıkça her bir GPU çifti arasındaki veri boyutu küçülür. Daha küçük veri boyutu, tümden herkese iletişimde daha büyük bir ek yüke neden olur ve bu da daha düşük MoE eğitim performansına yol açar. Tutel, NDm A100 v4 kümelerinde bulunan AR teknolojisinden yararlanarak, küçük mesaj grupları için iletişim verimliliğini artırır ve NDm A100 v4 sistemlerinde yüksek performanslı baştan sona iletişim sağlar. CPU-GPU bağlama ve AR ayarından yararlanan Tutel, Şekil 2’de gösterildiği gibi, MoE eğitiminde tipik olarak kullanılan yüzlerce MiB büyüklüğündeki mesaj boyutları için 512 A100 GPU ile 2,56x ila 5,93x tamamen hıza ulaşır.

Solda, mavi bir çizgi ile temsil edilen Tutel'in tek MoE katman eğitim performansını ve açık gri bir çizgi ile temsil edilen fairseq'i karşılaştıran bir çizgi grafiği var.  X ekseni, 8 GPU ile başlayan ve 512 GPU'ya kadar çıkan A100 (80GB) GPU'ların sayısıdır ve y ekseni, 0 ile başlayan ve 10'luk aralıklarla artan verimdir (M jeton/sn). 90'a kadar. GPU sayısı arttıkça verim Tutel için fairseq'e göre daha hızlı artar.  Sağda, x ekseni ve veri yolu bant genişliği (GB/sn) üzerinde 1 MiB ile 8 GiB arasında değişen, 0'dan başlayan ve 5'lik artışlarla 20'ye kadar çıkan, hepsi bir arada mesaj boyutuna sahip bir çizgi grafik , y ekseninde.  Turuncu bir çizgi, PyTorch'taki orijinal baştan sona performansı temsil eder ve mavi bir çizgi, Tutel'de CPU-GPU bağlaması ve AR optimizasyonundan sonraki performansı temsil eder.  Mavi çizgi, özellikle yüzlerce MB büyüklüğündeki mesaj boyutları için her zaman turuncu çizgiden daha yüksek/daha hızlıdır.
Şekil 1 (sol): Fairseq ile karşılaştırıldığında, tek bir MoE katmanı için Tutel, 8 GPU’lu bir NDm A100 v4 düğümünde 8.49x ve 512 A100 GPU’lu 64 NDm A100 v4 düğümünde 2.75x hızlanma elde ediyor. Ayrıntılı ayar şu şekildedir: toplu_boyutu = 32, sıra_uzunluğu = 1.024, Top_K = 2, model_dim = 2.048 ve gizli_boyutu = 2.048. Şekil 2 (sağ): Tutel uygulanmadan önce ve sonra 64 NDm A100 v4 düğümü (512 A100 GPU) ile farklı mesaj boyutları için hepsi bir arada bant genişliği. Tutel, yüzlerce MiB büyüklüğündeki mesaj boyutları için 512 A100 GPU ile 2,56x ila 5,93x tamamen hızlanma elde ediyor.

Çeşitli ve esnek MoE algoritmaları desteği

Tutel, aşağıdakiler dahil olmak üzere en son MoE algoritmaları için çeşitli ve esnek destek sağlar:

  • Top-K geçitleme algoritması için isteğe bağlı K ayarı (çoğu uygulama yalnızca Top-1 ve Top-2’yi destekler).
  • toplu öncelikli yönlendirme, girdi bırakma ve girdi dalgalanması dahil olmak üzere farklı keşif stratejileri
  • yarım hassasiyet (FP16), tam hassasiyet (FP32) ve karışık hassasiyet dahil olmak üzere farklı hassasiyet seviyeleri (bir sonraki sürümümüzde BF16’yı destekleyeceğiz)
  • NVIDIA CUDA ve AMD ROCm cihazları dahil olmak üzere farklı cihaz türleri

Tutel, açık kaynak topluluğundan ortaya çıkan çeşitli MoE algoritmalarını aktif olarak entegre edecektir.

Tutel’i Meta’nın MoE dil modeliyle entegre etme

Meta, MoE dil modelini açık kaynak yaptı ve MoE uygulaması için fairseq kullanıyor. Tutel’i fairseq araç setine entegre etmek için Meta ile birlikte çalıştık. Meta, GPT-3’e benzer dikkat tabanlı bir sinir mimarisine sahip geniş dil modelini Azure NDm A100 v4 üzerinde eğitmek için Tutel’i kullanıyor. Tutel’in uçtan uca performansını değerlendirmek için Meta’nın dil modelini kullanıyoruz. Model, her biri 32 x 128 boyutlu kafalara sahip 32 dikkat katmanına sahiptir. Her iki katmanda bir MoE katmanı bulunur ve her GPU’da bir uzman bulunur. Tablo 1, modelin ayrıntılı parametre ayarını özetlemektedir ve Şekil 3, Tutel’in elde ettiği yüzde 40’lık hızlanmayı göstermektedir. Artan GPU sayısıyla, Tutel’den elde edilen kazanç, 8 A100 GPU ile yüzde 131’den 512 A100 GPU ile yüzde 40’a çıkıyor çünkü hepsi bir arada iletişim darboğaz haline geliyor. Bir sonraki sürümde daha fazla optimizasyon yapacağız.

Yapılandırma Ayar Yapılandırma Ayar
kod dalı moe-kıyaslama Git taahhüt kimliği 1ef1612
dekoratör katmanları 32 Kemer transformatör_lm_gpt
dekoder-dikkat-kafaları 32 kriter moe_cross_entropy
kod çözücü-gömme-dim 4096 moe-frek 2
dekorcu-ffn-embed-dim 16384 moe-uzman-sayısı 512
örnek başına jeton 1024 moe-gating-use-fp32 NS
Parti boyutu 24 Optimize Edici Adem
kelime boyutu 51200 fp16-adam-istatistikleri NS
Tablo 1: 512 A100 (80G) GPU’lu MoE dil modeli için yapılandırma
Tutel olan ve olmayan Azure NDm A100 v4 düğümlerini kullanan Meta'nın MoE dil modelinin uçtan uca performansını karşılaştıran bir çizgi grafik.  X ekseni, 8'den başlayıp 512'ye kadar çıkan A100 (80GB) GPU'ların sayısıdır ve y ekseni, 0 ile başlayan ve 100'lük aralıklarla 1.000'e kadar çıkan verimdir (K jeton/sn). Tutel her zaman fairseq'ten daha yüksek verim elde eder.
Şekil 3: Uçtan uca performans için Tutel, Meta’nın 1,1 trilyon parametreli MoE dil modeli için 64 NDm A100 v4 düğümü ile yüzde 40’tan fazla hızlanma elde ediyor.

MEB’in verdiği söz

MoE umut verici bir teknolojidir. Sistematik yönlendirme ve büyük düğümlerle ağ dengeleme gibi birçok alandaki tekniklere dayalı bütünsel eğitim sağlar ve hatta GPU tabanlı hızlandırmadan faydalanabilir. Fairseq çerçevesi üzerinde önemli kazanımlar sağlayan verimli bir MoE uygulaması Tutel’i gösteriyoruz. Tutel, DeepSpeed ​​çerçevesine de entegre edilmiştir ve Tutel ve ilgili entegrasyonların, özellikle büyük modellerini verimli bir şekilde ölçeklendirmek isteyenler için Azure hizmetlerine fayda sağlayacağına inanıyoruz. Günümüzün MoE’si henüz başlangıç ​​aşamasında olduğundan ve tam potansiyelini gerçekleştirmek için daha fazla çabaya ihtiyaç duyulduğundan, Tutel gelişmeye devam edecek ve bize daha heyecan verici sonuçlar getirecektir.

teşekkür

Tutel’in arkasındaki araştırma, Wei Cui, Zilong Wang, Yifan Xiong, Guoshuai Zhao, Fan Yang, Peng Cheng, Yongqiang Xiong, Mao Yang, Lidong Zhou, Rafael Salas, Jithin Jose, Kushal dahil olmak üzere Microsoft’tan bir araştırmacı ekibi tarafından gerçekleştirildi. Datta, Prabhat Ram ve Joe Chau.





#Tutel #Büyük #DNN #modeli #eğitimi #için #verimli #bir #uzman #karışımı #uygulaması