Federated Learning ve Zorlukları
Federated Learning (FL), verilerin gizliliğini koruyarak dağıtık veri kaynakları üzerinde makine öğrenimi modellerini eğitmek için umut verici bir yaklaşım olarak ortaya çıkmıştır. Ancak, FL, model gereksinimleri ve iletişim kabiliyetlerini dengelemekte önemli zorluklarla karşı karşıyadır. Bu zorluklar özellikle iletişim yükü ve yerel kaynak kısıtlamalarıdır.
Büyük Dil Modellerinin Çıkardığı Zorluklar
Günümüzün büyük dil modelleri (LLM’ler) çağında, FL, milyarlarca parametreye sahip LLM’leri uygularken hesaplama zorlukları ile yüzleşmektedir. Bu modellerin büyüklüğü iletişim ve bellek kısıtlamalarını daha da kötüleştiriyor. Tam model güncellemelerinin tek seferde iletilmesi, bant genişliği sınırlamaları nedeniyle imkansız hale gelebilirken, büyük modellerin işlenmesi yerel bellek kısıtlamaları nedeniyle zorluk yaratmaktadır. Bu sorunlarla başa çıkmak için yenilikçi stratejiler gerekmektedir.
NVIDIA FLARE ile İyileştirmeler
NVIDIA FLARE, federated learning için alan bağımsız, açık kaynaklı ve genişletilebilir bir SDK olarak gerçek dünya federated learning deneyimini geliştirmiştir. Bu SDK, güvenilir iletişim yetenekleri, birden fazla eşzamanlı eğitim işine destek ve olası iş kesintilerine karşı dayanıklılık sunmaktadır.
NVFlare 2.4.0 sürümü, gRPC tarafından uygulanan 2-GB boyut sınırını aşan nesnelerin aktarımını kolaylaştırmak için bir akış API’si tanıtmıştır. Bu sürüm, büyük veri mesajlarının sağlam bir şekilde iletimini sağlamak için yeni bir akış katmanı eklemiştir.
Akış API’si ile artık gRPC’nin 2-GB boyut sınırı ile sınırlı değilsiniz. Ancak, en son modellerin daha da büyümesi ile birlikte, FL pipeline’ında LLM’ler ile ilgili iki büyük zorluk ortaya çıkmaktadır:
- Varsayılan fp32 hassasiyeti altında iletim mesajı boyutu
- İletim sırasında nesneyi tutmak için yerel bellek tahsisi
Mesaj Kuantizasyonu: İletişim Aşamasını Azaltma
FL’deki ana darboğazlardan biri ise uzaktaki katılımcılar ve sunucular arasında model güncellemelerinin değiş tokuşudur. Bu mesajların boyutu aşırı derecede büyük olabilir ve bu da gecikme ile bant genişliği tüketimini artırır. Son LLM’ler, azaltılmış hassasiyet ile eğitildiğinden, NumPy formatındaki varsayılan fp32 mesaj hassasiyeti mesaj boyutunu yapay olarak artırabilmektedir.
Bu bağlamda, yerel tensör transferi ve mesaj kuantizasyonu gibi iki özellik geliştirilmiştir. Bu özellikler, yerel eğitim hassasiyetini etkin bir iletişim çözümü sunarak mümkün kılmakta ve iletilen güncellemelerin hassasiyetini azaltmaktadır.
Mesaj kuantizasyonu ile gerçekleştirdiğimiz uygulama, iletim öncesi model ağırlıklarının kuantizasyonunu yaparken, mesajın diğer tarafında alındığında orijinal hassasiyetin geri kazanılmasını sağlar. Bu uygulamanın iki büyük avantajı bulunmaktadır:
- Kullanıcıların kod değişikliğine ihtiyaç duymaması. Aynı eğitim betiği, kuantizasyon ile veya kuantizasyon olmadan basit bir yapılandırma ayarı ile kullanılabilir.
- Eğitim ve toplama işlemleri, kuantize edilmiş veriler yerine orijinal hassasiyette gerçekleştirilir, böylece mesaj kuantizasyonunun eğitim süreci üzerindeki etkisi en aza indirilir.
Aşamalı İşlevsellik: Yerel Bellek Kullanımını Azaltma
FL’de bir diğer kritik zorluk, mesajların gönderilmesi ve alınmasındaki bellek yüküdür. Varsayılan ayarda, modeli göndermek için model parçalarını hazırlamak ve almak için ek bellek gereklidir. Bu tür bir bellek yükü, hesaplama kaynaklarının hızla tükenmesine neden olabilir, özellikle de 70B veya daha büyük parametrelere sahip bir modeli düşünüyorsanız. Örneğin, bir 70B modeli yüklendiğinde, yaklaşık olarak 140 GB bellek kullanılacaktır.
Model parametreleri çok büyük olsa da, bireysel katmanlara ve bileşenlere ayrıldığında, her bir katmanın maksimum boyutu genellikle 1 GB civarındadır. Güncellenmiş akış işlevselliği, nesne konteyner akışı ve dosya akışı gibi iki yeni özellikle bellek kullanım zorluğunu çözmektedir. Bu, modelin parçalar halinde işlenmesini ve iletilmesini sağlar, böylece tüm nesnenin bir kerede bellekte tutulmasına gerek kalmaz.
Dosya akışı, yapılandırılmış bir nesne yerine bir dosyayı akıtarak verimliliği en üst düzeye çıkarmaktadır. Sadece bir parçanın bellekte tutulmasını gerektirir ve model boyutundan bağımsız bir bellek kullanımı sağlar.
Bu akış geliştirmeleri, gelişmiş bellek verimliliği sağlayarak güncellemeleri daha küçük parçalara ayırır ve bunları ardışık olarak işlemeye olanak tanır. Bu nedenle, belge akışı sayesinde, hem gönderim hem de alım süreçlerinde zaman kazanmak mümkündür.
Sonuç: Federated Learning’u Güçlendirme
Bu yazıda, iletişim darboğazlarını hafifletmek ve bellek kısıtlamalarını çözmek için mesaj kuantizasyonu ve akış işlevselliğinin FL çerçevelerine entegre edilmesini sunduk. Geliştirilmiş yetenekler ile, federated learning’in daha verimli ve ölçeklenebilir hale gelmesini sağladık. Bu teknikler, farklı ortamlarda FL’in gerçek dünya dağıtımını mümkün kılmak adına kritik bir rol oynamaya devam edecektir.
Daha fazla bilgi için aşağıdaki kaynakları inceleyebilirsiniz:
- /NVFlare öğreticileri GitHub’da
- /NVIDIA/NVFlare kuantizasyon örnekleri GitHub’da
- /NVIDIA/NVFlare akış örnekleri GitHub’da
- NVIDIA FLARE Geliştirici Portalı
- Tıbbi Görüntülemede Federated Learning: Veri Gizliliğini Artırmak ve Sağlık Hizmetlerini Geliştirmek – GTC 2025 oturumu
NVIDIA FLARE ekibi ile bağlantıya geçmek için federatedlearning@nvidia.com adresine e-posta gönderebilirsiniz.