XGBoost, tabular veriler için yaygın olarak kullanılan bir makine öğrenimi algoritmasıdır. NVIDIA, XGBoost modelini tek bir yerde öğrenmeden çoklu yerlerde işbirlikçi öğrenmeye genişletmek için Federated XGBoost isimli bir eklenti geliştirmiştir. Bu eklenti, farklı veri kaynakları arasında XGBoost modellerinin birlikte eğitilmesini sağlayan dikey işbirliği ayarlarını kapsar. Ayrıca, horizontally histogram-based ve tree-based federated learning gibi özellikler de sunar.
Federated XGBoost’un İşleyişi
Dikey ayar altında, her taraf tüm nüfus için kısıtlı özellikler taşır ve yalnızca bir taraf etiket bilgisini elinde bulundurur. Etiket sahibine aktif taraf denir, diğer taraflar ise pasif taraflardır. Yatay ayar altında ise her taraf tüm özellikler ve etiket bilgilerini, ancak sadece tüm nüfusun bir kısmı için taşır.
NVIDIA FLARE ile Gelişmiş İşbirliği
Ayrıca, NVIDIA FLARE, federasyon öğrenimi alanında açık kaynak ve genişletilebilir bir SDK’dır ve iletişim zorluklarını aşmayı sağlayan özellikler sunar. Bu, çoklu eşzamanlı eğitim işleri ve ağ koşullarına bağlı olası kesintileri yönetmeyi içerir.
Gizlilik ve Güvenlik
Şu anda, Federated XGBoost tam karşılıklı güven varsayımıyla inşa edilmiştir, yani hiçbir tarafın model eğitiminin ötesinde bilgi edinme niyeti yoktur. Ancak pratikte, dürüst ama meraklı bir ortam daha gerçekçi bir federasyon işbirliği ayarıdır. Örneğin, dikey Federated XGBoost’ta, pasif taraflar aktif taraf tarafından gönderilen gradyanlardan etiket bilgilerini kurtarmakla ilgilenebilir. Yatay federasyon öğreniminde ise, sunucu veya diğer istemciler her istemcinin gradyan histogramlarına erişip, verilerinin karakteristiklerini öğrenebilir.
NVIDIA Flare 2.5.2 ve XGBoost federated-secure, bu potansiyel bilgi endişelerini güvence altına alarak Federated XGBoost’un kapsamını genişletmektedir. Özellikle:
- Güvenli federated algoritmalar, hem dikey hem de yatay olarak XGBoost kütüphanesi tarafından desteklenen federated şemalara eklenmiştir ve farklı varsayımlar altındaki veri güvenliği kalıplarını ele almıştır.
- Homomorfik şifreleme (HE) özellikleri, XGBoost ile federated grafiklerin doğru bir şekilde köprüleme için tasarlanmış bir eklenti ve işlemci arayüzü kullanılarak güvenli federated XGBoost çatılarında eklenmiştir.
- HE eklentileri, hem CPU tabanlı hem de CUDA hızlandırmalı olarak geliştirilmiştir, bu da donanım ve verimlilik gereksinimlerine göre versatil uyum sağlamaktadır. CUDA eklentisi, mevcut üçüncü parti çözümlerden çok daha hızlıdır.
HE yardımıyla, önemli federated hesaplama adımları şifrelendiği için ≥gradyan ve ara histogramlar gibi ilgili verilere, diğer taraflar tarafından işlem sırasında erişilememektedir. Bu durum, kullanıcıların veri güvenliğini sağlamaktadır ve federated öğrenmenin temel yararlarından biridir.
İşbirliği Modları ve Güvenlik Kalıpları
Dikey XGBoost için, aktif taraf etiket sahibi olduğundan bu süreç için “en değerli varlık” olarak kabul edilir; bu nedenle pasif taraflar tarafından erişilmemelidir. Bu durumda, aktif taraf model eğitimi açısından “büyük katkı sağlayan”dır; ancak etiket bilgisinin pasif taraflara sızma riski taşımaktadır. Bu sebepten ötürü, etiket bilgisini korumak için her XGBoost turunda, aktif taraf her örnek için gradyanları hesapladıktan sonra, bu gradyanlar pasif taraflara gönderilmeden önce şifrelenecektir. Aldığı şifreli gradyanlar, her pasif tarafın belirli özellik dağılımına göre biriktirilecektir. Sonuçta elde edilen kümülatif histogramlar, aktif tarafa geri gönderilecek, şifresi çözülecek ve aktif taraf tarafından ağaç inşası için kullanılacaktır.
Yatay XGBoost ve Güvenlik
Yatay XGBoost durumunda ise, her taraf “eşit statüde”dır (kısmi nüfus için tüm özellik ve etiket bilgilerine sahip), federated sunucu ise herhangi bir veri sahip olmaksızın toplanma işlemini gerçekleştirir. Bu durumda, istemcilerin sunucuya veya birbirlerine bilgi sızdırmaktan korkuları bulunmaktadır. Korunması gereken bilgiler, her istemcinin yerel histogramlarıdır.
Homomorfik Şifreleme ve Uygulamalar
Çeşitli HE şemalarının hem GPU hem de CPU desteği ile çoklu kütüphaneleri kapsadığı düşünüldüğünde, spesifik bir federated XGBoost ayarı için en verimli şemanın doğru bir şekilde seçilmesi önemlidir. Örneğin, N=5 katılımcı, M=200K toplam veri örneği, J=30 toplam özellik ve K=256 slotu olan bir histogramın olduğunu varsaydığımızda, federated öğrenim uygulamalarının türüne göre farklı algoritmalar gerekmektedir.
Dikey uygulamada, şifrelenme hedefi bireysel g/h sayılarıdır ve hesaplama ise şifrelenmiş sayıların hangi histogram slotlarına düştüğüne bağlı olarak toplanmasıdır. Her boosting turunda teorik olarak:
- Toplam şifrelenmesi gereken miktar M * 2 = 400k (g ve h) olup, her seferinde bir tek sayıyı şifreleriz.
- Toplam şifrelenmiş toplama işlemi ise (M – K) * 2 * J ≈ 12m olacaktır.
Bu durumda, en iyi şema tercihi Paillier olmalı çünkü şifreleme yalnızca bir sayı üzerinde yapılmalıdır.
Yatay uygulamada ise, şifreleme hedefi yerel histogramlardır (G/H) ve hesaplama yerel histogramları bir araya getirip global histogram oluşturmaktır. Her boosting turunda:
- Toplam şifrelenmesi gereken miktar N * 2 = 10 (G ve H) ve her seferinde J * K = 7680 uzunluğunda bir vektörü şifreleriz.
- Toplam şifrelenmiş toplama işlemi ise (N – 1) * 2 = 18 olacaktır.
Bu durumda, en iyi şema tercihi CKKS olmalıdır çünkü histogram vektörünü (örneğin, 7680 uzunluğunda) tek seferde işleyebilme yeteneğine sahiptir.
Deney Sonuçları
Önceki açıklanan pipeline kullanılarak XGBoost ve NVIDIA Flare üzerinde kredi kartı dolandırıcılığı tespit veri seti ile güvenli federated hatları test edilmiştir. Sonuçlar aşağıdaki gibidir:
Dikey öğrenim AUC değerleri (güvenli ve güvensiz):
[0] eval-auc:0.90515 train-auc:0.92747
[1] eval-auc:0.90516 train-auc:0.92748
[2] eval-auc:0.90518 train-auc:0.92749
Yatay öğrenim AUC değerleri (güvenli ve güvensiz):
[0] eval-auc:0.89789 train-auc:0.92732
[1] eval-auc:0.89791 train-auc:0.92733
[2] eval-auc:0.89791 train-auc:0.92733
Merkezi bir karşılaştırma modeline baktığımızda, aşağıdaki gözlemlere ulaştık:
Dikey federatif öğrenim (güvensiz) merkezi karşıya tam anlamıyla aynı ağaç modelini oluşturmaktadır.
Dikey federatif öğrenim (güvenli) merkezi karşı ile aynı ağaç yapısını göstermektedir. Ayrıca, her taraf farklı özellik alt kümelerine sahip olduğundan farklı ağaç kayıtları üretmektedir.
Yatay federatif öğrenim, hem güvenli hem de güvensiz, merkezi modelden farklı ağaç modelleri oluşturmaktadır. Bu durum, başlangıç özelliklerinin yüzdelik hesaplama yönteminin global veri (merkezi) veya yerel verilere (yatay) dayalı olmasından kaynaklanmaktadır.
Şifreleme Yöntemlerinin Verimliliği
Çalışmalarımızda farklı boyut ve özellik karakteristikleri gösteren bir dizi veri seti kullanarak çözümlerimizi değerlendirdik. Bu karşılaştırmalar, algoritmamızın dayanıklılığını sergilemekte ve hız ve verimlilik açısından önemli performans iyileştirmelerini vurgulamaktadır.
Kullanılan üç veri setinin özellikleri, veri boyutları ve özellik boyutlarına göre özetlenmiştir. Kredi Kartı Dolandırıcılığı, Epsilon ve bir HIGGS veri seti kullanılmıştır.
Kredi Kartı | HIGGS | Epsilon | |
Veri kayıt boyutu | 284,807 | 6,200,000 | 400,000 |
Özellik boyutu | 28 | 28 | 2000 |
Eğitim seti boyutu | 227,845 | 4,000,000 | 320,000 |
Doğrulama seti boyutu | 56,962 | 2,200,000 | 80,000 |
Dikey federatif öğrenimde, eğitim verisi iki istemciye bölünmüştür; her istemci aynı veri kayıtlarının farklı özelliklerini taşıyacaktır.
Özellik | Kredi Kartı | HIGGS | Epsilon |
Etiket istemcisi | 10 | 10 | 799 |
Etiket olmayan istemci | 18 | 18 | 1201 |
Yatay federatif öğrenim için ise eğitim seti üç istemciye eşit bir şekilde bölünmüştür.
Veri kayıtları | Kredi Kartı | HIGGS | Epsilon |
İstemci 1 | 75,948 | 1,333,333 | 106,666 |
İstemci 2 | 75,948 | 1,333,333 | 106,666 |
İstemci 3 | 75,949 | 1,333,334 | 106,668 |
Deney Sonuçları ve Verimlilik
XGBoost eğitimi için şu parametrelerle sonlandırma gerçekleştirilmiştir: num_trees = 10, max_depth = 5, max_bin = 256. Testler NVIDIA Tesla V100 GPU ve Intel E5-2698 v4 CPU kullanılarak yapılmıştır. Şekil 3 ve 4, süre karşılaştırmalarını göstermektedir. Simülasyon aynı makinede çalıştığı için federated iletişim maliyetleri ihmal edilebilir.
Güvenli Dikey Federated XGBoost
NVIDIA Flare pipeline CUDA hızlandırmalı Paillier eklentisi (GPU eklentisi olarak belirtilen) ile mevcut üçüncü taraf açık kaynak çözümü arasında bir zaman maliyeti karşılaştırması yapılmıştır. Her ikisi de HE şifrelemesi yapılmıştır. Şekil 3, çözümümüzün veri ve özellik boyutu kombinasyonuna bağlı olarak 4.6x ile 36x arasında daha hızlı olduğunu göstermektedir; unutmayın ki üçüncü taraf çözümü yalnızca CPU desteği sunmaktadır.
Güvenli Yatay Federated XGBoost
Güvenli yatay Federated XGBoost için üçüncü taraf çözümleri, HE ile güvenli bir çözüm sunmamaktadır. Bu nedenle, şifrelenmemiş NVIDIA Flare pipeline ile CKKS şifreleme eklenti maliyetini karşılaştırarak veri koruması için şifrelemenin getirdiği ek yük hakkında bir fikir edinebiliriz. Şekil 4’te, bu durumda hesaplamanın dikey senaryodan çok daha hızlı olduğu gösterilmektedir; dolayısıyla böyle makul bir ek yük ile GPU hızlandırması gerekli olmayabilir. Yalnızca çok geniş histogramlara sahip veri setlerinde (Epsilon gibi) şifreleme yükü daha fazla olacak, ancak bu bile dikey ayar için sadece ~%5 olacaktır.
Sonuç ve İleriye Dönük Perspektifler
Bu yazıda, GPU hızlandırmalı Homomorfik Şifrelemenin Federated XGBoost’un güvenliğini nasıl artırdığını, NVIDIA FLARE aracılığıyla gizlilik koruyan yatay ve dikey federasyon öğrenimini mümkün kıldığını gösterdik. Mevcut federated XGBoost çalışmalarına kıyasla, yeni işlevsellik iki ana avantaj sunmaktadır: 1) verilerin güvenliğini sağlamak için algoritma seviyesinde bir güvenli federated XGBoost pipeline’ı ve 2) GPU hesaplaması ile sağlanan, piyasadaki mevcut alternatiflere göre çok daha hızlı ve verimli bir çözüm. Bu, sıkı veri güvenliği ve öğrenim verimliliği gereksinimlerinin olduğu alanlarda, örneğin finans sektöründe dolandırıcılık tespiti modeli eğitimi gibi, adaptasyonları teşvik edecektir.
Daha fazla bilgi ve uçtan uca bir örnek için NVIDIA/NVFlare’ı GitHub’da ziyaret edebilirsiniz. Sorular veya yorumlar için bizimle iletişime geçebilirsiniz: federatedlearning@nvidia.com.