paint-brush
YaFSDP - GPU Kullanımını %20 Oranında Azaltan Yüksek Lisans Eğitim Aracı - Artık Çıktı ile@yandex
172 okumalar

YaFSDP - GPU Kullanımını %20 Oranında Azaltan Yüksek Lisans Eğitim Aracı - Artık Çıktı

ile Yandex 4m2024/06/22
Read on Terminal Reader

Çok uzun; Okumak

YaFSDP, LLM eğitiminde devrim yaratmayı vaat eden açık kaynaklı bir araçtır. 70 milyar parametreli bir modeli içeren bir ön eğitim senaryosunda YaFSDP'nin kullanılması yaklaşık 150 GPU'nun kaynaklarından tasarruf sağlayabilir. Bu, kabaca 0,5 ila 1,5 milyon dolar arasında potansiyel aylık tasarruf anlamına geliyor.
featured image - YaFSDP - GPU Kullanımını %20 Oranında Azaltan Yüksek Lisans Eğitim Aracı - Artık Çıktı
Yandex  HackerNoon profile picture

Büyük dil modelleri geliştirmek, zamana ve GPU kaynaklarına önemli yatırımlar gerektirir ve bu da doğrudan yüksek maliyetlere dönüşür. Model ne kadar büyük olursa, bu zorluklar da o kadar belirgin hale gelir.


Yakın zamanda Yandex yeni bir çözümü tanıttı: GPU kaynak tüketimini ve eğitim süresini önemli ölçüde azaltarak LLM eğitiminde devrim yaratmayı vaat eden açık kaynaklı bir araç olan YaFSDP . 70 milyar parametreli bir modeli içeren bir ön eğitim senaryosunda YaFSDP'nin kullanılması yaklaşık 150 GPU'nun kaynaklarından tasarruf sağlayabilir. Bu, sanal GPU sağlayıcısına veya platformuna bağlı olarak yaklaşık 0,5 ila 1,5 milyon ABD Doları tutarında potansiyel aylık tasarruf anlamına gelir.


Yandex, YaFSDP'yi şu tarihte halka açık hale getirdi: GitHub .

Dağıtılmış LLM Eğitiminin Zorluğu

LLM'lerin birden fazla GPU'da eğitilmesi, verimsizliğe ve yüksek bellek tüketimine yol açan karmaşık işlemleri içerir. Ana sorunlardan biri, GPU'lar arasında büyük miktarlarda veri gönderip alma ihtiyacıdır. Örneğin, tipik bir all_reduce işleminde, ağ parametrelerinin iki katı kadar gradyan verisinin iletilmesi gerekir. Llama 70B modeli söz konusu olduğunda bu, yineleme başına 280 GB veri aktarımı anlamına gelir.


Ayrıca ağırlıklar, gradyanlar ve optimizer durumları GPU'lar arasında kopyalanarak çok büyük bir bellek yüküne yol açar. Llama 70B modeli ve Adam optimizer, çoğu GPU'nun tipik 80 GB bellek kapasitesini çok aşan 1 TB'nin üzerinde bellek gerektirir. Bu fazlalık, eğitim sürecini ciddi şekilde yavaşlatır ve genellikle orta boyutlu modellerin bile GPU belleğine sığdırılmasını kullanışsız hale getirir.

YaFSDP'ye Giriş

Yandex'in YaFSDP'si bu zorluklara son derece etkili bir çözüm sunuyor. YaFSDP, bellek tüketimini optimize etmeye ve iletişim darboğazlarını ortadan kaldırmaya odaklanarak LLM eğitiminin verimliliğini artırır. Bireysel parametreler yerine katmanları bölerek, verimli iletişimi sürdürerek ve gereksiz işlemlerden kaçınarak çalışır. Ek olarak YaFSDP, gerekli tüm veriler için arabellekleri önceden tahsis ederek Torch ayırıcının verimsizlik yaratmamasını sağlar.


YaFSDP, ara ağırlıklar ve degradeler için iki tampon kullanarak çalışır; tek katmanlar bir tamponu, çift katmanlar ise diğerini kullanır.




Farklı katmanlardaki ağırlıklar aynı hafızada saklanır. Katmanlar aynı yapıya sahipse her zaman aynı olacaktır. X katmanına ihtiyaç duyduğunuzda arabelleğin X katmanına ait ağırlıkları içerdiğinden emin olmak çok önemlidir. Tüm parametreler arabellek içindeki karşılık gelen bellek yığınında saklanacaktır.





Bellek Tüketimi

Eğitim sırasında birincil bellek tüketicileri ağırlıklar, gradyanlar, optimize edici durumlar, arabellekler ve aktivasyonlardır. YaFSDP, bu öğelerin depolanma ve bunlara nasıl erişildiğini optimize ederek bellek tüketimini önemli ölçüde azaltır.


  • Ağırlıklar, Gradyanlar ve Optimize Edici Durumları : Bunlar işlem sayısına bağlıdır ve işlem sayısı arttıkça bellek tüketimi sıfıra yaklaşma eğilimindedir. YaFSDP, bu bileşenleri GPU'lar arasında paylaştırarak çoğaltmayı en aza indirir ve böylece bellek kullanımını azaltır.


  • Tamponlar sabit miktarda bellek tüketir ve hesaplamalar sırasında ara değerleri saklar.


  • Etkinleştirmeler, model boyutuna ve GPU başına işlenen jeton sayısına bağlıdır.

Etkinleştirme Kontrol Noktası Belirleme

Aktivasyon kontrol noktası belirleme, ileri geçiş sırasında yalnızca gerekli aktivasyonları saklayan ve bunları geri geçiş sırasında yeniden hesaplayan bir tekniktir. Bu, yalnızca önemli veriler depolandığından bellek ayak izini önemli ölçüde azaltır. Örneğin, toplu iş boyutu 8192 token olan bir Llama 2 70B modelinin eğitilmesinde, aktivasyon depolama alanı 110 GB'tan yalnızca 5 GB'a düşürülebilir.


Bununla birlikte, bu yaklaşım, YaFSDP'nin bazı katmanlar için bellek optimizasyonu nedeniyle mümkün olan etkinleştirme kontrol noktasının kullanılmaması yoluyla kaçınılmasına izin verdiği ek hesaplama yükünü beraberinde getirir.

İletişim Optimizasyonu

YaFSDP, verilerin yalnızca gerektiğinde aktarılmasını sağlayarak ve iletişimin hesaplamayla çakışmasını sağlayarak GPU iletişim verimliliğini artırır. Eşzamanlı hesaplamaları ve iletişimleri etkin bir şekilde yönetmek için CUDA akışlarını kullanır.

Araç iki akış kullanır: bir hesaplama akışı ve bir iletişim akışı. Olaylar bu akışları senkronize ederek işlemlerin kilitlenmelere yol açmadan doğru sırada yürütülmesini sağlar.




All_gather işlemi tamamlanana kadar üçüncü katmandaki ileri geçiş başlamaz (koşul 1). Benzer şekilde, üçüncü katmandaki all_gather işlemi, aynı arabelleği kullanan ilk katmandaki ileri geçiş tamamlanana kadar başlamayacaktır (koşul 2). Bu şemada döngü olmadığından kilitlenme imkansızdır.

Deneysel Sonuçlar ve Performans Kazanımları

YaFSDP'nin uygulanması, eğitim verimliliğinde dikkate değer gelişmeler göstermiştir. 70 milyar parametreye sahip bir modelle yapılan ön eğitim senaryosunda YaFSDP, yaklaşık 150 GPU'nun kaynaklarını kurtarmayı başardı. Bu, sanal GPU sağlayıcısına veya platformuna bağlı olarak 0,5 ila 1,5 milyon ABD Doları arasında değişen önemli aylık maliyet tasarrufu anlamına gelir.


YaFSDP, FSDP gibi mevcut yöntemlere kıyasla eğitim süresini %26'ya kadar azaltır ve bellek kullanımını optimize ederek daha büyük modellerin daha verimli şekilde eğitilmesini mümkün kılar.


İşte YaFSDP'nin Llama 2 ve Llama 3'te FSDP'ye kıyasla elde ettiği hız kazancı



Yandex, YaFSDP'yi şu adreste kamuya açık hale getirdi: GitHub . ML mühendisleri, LLM eğitim süreçlerinin verimliliğini artırmak için bu araçtan yararlanabilirler. Yandex, YaFSDP'yi açık kaynak kullanarak yapay zeka topluluğunda yenilikçiliği ve işbirliğini teşvik ederek geliştiricilerin modelleri daha hızlı ve uygun maliyetli bir şekilde eğitmesine olanak sağlamayı amaçlıyor.


YaFSDP, LLM eğitiminde önemli bir ilerlemeyi temsil ediyor. Bellek tüketimi ve iletişim verimsizliklerinden kaynaklanan kritik zorlukların ele alınması, büyük dil modellerinin daha hızlı ve daha verimli şekilde eğitilmesine olanak tanır.