genel bakış
TFF, gerçekçi proxy veri kümeleri üzerinde birleşik hesaplamaları simüle ederek birleşik öğrenme (FL) araştırması yürütmek için genişletilebilir, güçlü bir çerçevedir. Bu sayfada, araştırma simülasyonları ile ilgili temel kavramlar ve bileşenler ile TFF'de farklı araştırma türlerinin yürütülmesi için ayrıntılı rehberlik açıklanmaktadır.
TFF'de araştırma kodunun tipik yapısı
TFF'de uygulanan bir araştırma FL simülasyonu tipik olarak üç ana mantık türünden oluşur.
Tek bir konumda (örneğin, istemcilerde veya bir sunucuda) çalışan mantığı kapsayan, tipik olarak
tf.functions olan TensorFlow kodunun ayrı parçaları. Bu kod tipik olarak herhangi bir
tff.*referansı olmadan yazılır ve test edilir ve TFF dışında yeniden kullanılabilir. Örneğin, Federated Averaging'deki müşteri eğitim döngüsü bu düzeyde uygulanır.
TensorFlow Federe düzenleme mantığı, 1.'den itibaren tek tek
tf.functions öğelerini
tff.tf_computations olarak sararak ve ardından bir
tff.federated_computationiçinde
tff.federated_broadcastve
tff.federated_meangibi soyutlamaları kullanarak orkestrasyon yaparak birbirine bağlar. Örneğin, Birleşik Ortalama için bu düzenlemeye bakın .
Bir üretim FL sisteminin kontrol mantığını simüle eden, bir veri kümesinden simüle edilmiş istemcileri seçen ve ardından bu istemciler üzerinde 2.'de tanımlanan birleşik hesaplamaları yürüten bir dış sürücü komut dosyası. Örneğin, bir Federated EMNIST deney sürücüsü .
Birleşik öğrenme veri kümeleri
TensorFlow federe, federe öğrenmeyle çözülebilecek gerçek dünya sorunlarının özelliklerini temsil eden birden çok veri kümesini barındırır .
Veri kümeleri şunları içerir:
StackOverflow . Eğitim setinde 135.818.730 örnek (cümle) bulunan 342.477 benzersiz kullanıcı ile dil modelleme veya denetimli öğrenme görevleri için gerçekçi bir metin veri seti.
Federasyon EMNIST . Her istemcinin farklı bir yazara karşılık geldiği EMNIST karakter ve rakam veri kümesinin birleşik bir ön işlemesi. Tam tren seti, 62 etiketten 671.585 örnekle 3400 kullanıcı içerir.
Shakespeare . William Shakespeare'in tüm eserlerine dayanan daha küçük bir karakter düzeyinde metin veri seti. Veri seti 715 kullanıcıdan (Shakespeare oyunlarının karakterleri) oluşur, burada her örnek belirli bir oyundaki karakter tarafından konuşulan bitişik bir satır grubuna karşılık gelir.
CİFAR-100 . 500 eğitim istemcisi ve 100 test istemcisi arasında CIFAR-100 veri kümesinin birleşik bir bölümü. Her müşterinin 100 benzersiz örneği vardır. Bölümleme, istemciler arasında daha gerçekçi heterojenlik yaratacak şekilde yapılır. Daha fazla ayrıntı için API'ye bakın.
Google Landmark v2 veri kümesi Veri kümesi, verilerin birleşik bir bölümlenmesini sağlamak için fotoğrafçılara göre gruplandırılmış resimlerle birlikte, dünyanın çeşitli yer işaretlerinin fotoğraflarından oluşur. İki çeşit veri kümesi mevcuttur: 233 istemci ve 23080 görüntüden oluşan daha küçük bir veri kümesi ve 1262 istemci ve 164172 görüntüden oluşan daha büyük bir veri kümesi.
CelebA Ünlü yüzlerin örneklerinden (görüntü ve yüz özellikleri) oluşan bir veri seti. Birleştirilmiş veri kümesi, bir müşteri oluşturmak için her bir ünlünün örneklerini birlikte gruplandırır. Her biri en az 5 örnek içeren 9343 müşteri var. Veri seti, istemcilere veya örneklere göre eğitim ve test gruplarına ayrılabilir.
iNaturalist Bir veri seti, çeşitli türlerin fotoğraflarından oluşur. Veri seti 1.203 tür için 120.300 görüntü içermektedir. Veri setinin yedi çeşidi mevcuttur. Bunlardan biri fotoğrafçı tarafından gruplandırılmış ve 9257 müşteriden oluşmaktadır. Veri kümelerinin geri kalanı, fotoğrafın çekildiği coğrafi konuma göre gruplandırılmıştır. Veri setinin bu altı çeşidi 11 - 3.606 müşteriden oluşmaktadır.
Yüksek performanslı simülasyonlar
Bir FL simülasyonunun duvar saati süresi, algoritmaları değerlendirmek için ilgili bir ölçüm olmasa da (simülasyon donanımı gerçek FL dağıtım ortamlarını temsil etmediğinden), FL simülasyonlarını hızlı bir şekilde çalıştırabilmek, araştırma üretkenliği için kritik öneme sahiptir. Bu nedenle, TFF, yüksek performanslı tekli ve çok makineli çalışma zamanları sağlamaya büyük yatırımlar yaptı. Belgeler geliştirme aşamasındadır, ancak şimdilik Kubernetes ile yüksek performanslı simülasyonlar eğiticisine, hızlandırıcılarla TFF simülasyonlarına ilişkin talimatlara ve GCP'de TFF ile simülasyonları ayarlamaya ilişkin talimatlara bakın. Yüksek performanslı TFF çalışma zamanı varsayılan olarak etkindir.
Farklı araştırma alanları için TFF
Birleşik optimizasyon algoritmaları
TFF'de federe optimizasyon algoritmaları üzerine araştırmalar, istenilen özelleştirme düzeyine bağlı olarak farklı şekillerde yapılabilmektedir.
Birleşik Ortalama Algoritmasının minimum bağımsız uygulaması burada sağlanır. Kod, yerel hesaplama için TF işlevlerini , düzenleme için TFF hesaplamalarını ve örnek olarak EMNIST veri kümesindeki bir sürücü komut dosyasını içerir. Bu dosyalar, README'deki ayrıntılı talimatlar izlenerek özelleştirilmiş uygulamalar ve algoritmik değişiklikler için kolayca uyarlanabilir.
Birleşik Ortalamanın daha genel bir uygulaması burada bulunabilir. Bu uygulama, hem sunucuda hem de istemcide farklı optimize edicilerin kullanımı dahil olmak üzere daha karmaşık optimizasyon tekniklerine izin verir. Birleşik k-araç kümeleme dahil olmak üzere diğer birleşik öğrenme algoritmaları burada bulunabilir.
Model güncelleme sıkıştırması
Model güncellemelerinin kayıplı bir şekilde sıkıştırılması, iletişim maliyetlerinin düşmesine ve bu da genel eğitim süresinin azalmasına neden olabilir.
Yakın tarihli bir makaleyi çoğaltmak için bu araştırma projesine bakın. Özel bir sıkıştırma algoritması uygulamak için, örnek olarak temeller için projedeki karşılaştırma_yöntemlerine ve henüz aşina değilseniz TFF Toplayıcılar eğitimine bakın.
diferansiyel gizlilik
TFF, diferansiyel gizliliğe sahip modellerin birleşik eğitimi için yeni algoritmalarda araştırma yapılmasına olanak sağlamak üzere TensorFlow Gizlilik kitaplığı ile birlikte çalışabilir. Temel DP-FedAvg algoritması ve uzantıları kullanılarak DP ile eğitim örneği için bu deney sürücüsüne bakın.
Özel bir DP algoritması uygulamak ve bunu birleşik ortalamanın toplu güncellemelerine uygulamak istiyorsanız,
tensorflow_privacy.DPQuery bir alt sınıfı olarak yeni bir DP ortalama algoritması uygulayabilir ve sorgunuzun bir örneğiyle bir
tff.aggregators.DifferentiallyPrivateFactory oluşturabilirsiniz. DP-FTRL algoritmasının uygulanmasına ilişkin bir örnek burada bulunabilir
Sağlamlık ve saldırılar
TFF ayrıca federe öğrenme sistemlerine yönelik hedefli saldırıları ve Federated Learning Gerçekten Arka Kapı Yapabilir misiniz? . Bu, potansiyel olarak kötü niyetli istemcilerle yinelemeli bir süreç oluşturularak yapılır (bkz.
build_federated_averaging_process_attacked ). target_attack dizini daha fazla ayrıntı içerir.
- Tensorflow işlevi olan bir istemci güncelleme işlevi yazılarak yeni saldırı algoritmaları uygulanabilir, örnek için
ClientProjectBoostbakın.
- Küresel bir güncelleme almak için istemci çıktılarını toplayan 'tff.utils.StatefulAggregateFn' özelleştirerek yeni savunmalar uygulanabilir.
Simülasyon için örnek bir komut dosyası için bkz.
emnist_with_targeted_attack.py .
Üretken Düşman Ağları
GAN'lar, standart Birleşik Ortalamadan biraz farklı görünen ilginç bir birleşik düzenleme modeli oluşturur. Her biri kendi optimizasyon adımıyla eğitilmiş iki farklı ağ (üretici ve ayrımcı) içerirler.
TFF, GAN'ların federe eğitimi üzerine araştırma yapmak için kullanılabilir. Örneğin, son çalışmada sunulan DP-FedAvg-GAN algoritması TFF'de uygulanmaktadır . Bu çalışma, birleşik öğrenmeyi, üretici modelleri ve farklı mahremiyeti birleştirmenin etkinliğini göstermektedir.
Kişiselleştirme
Birleşik öğrenme ortamında kişiselleştirme, aktif bir araştırma alanıdır. Kişiselleştirmenin amacı, farklı kullanıcılara farklı çıkarım modelleri sağlamaktır. Bu soruna potansiyel olarak farklı yaklaşımlar vardır.
Bir yaklaşım, her müşterinin yerel verileriyle tek bir küresel modele (federe öğrenme kullanılarak eğitilmiş) ince ayar yapmasına izin vermektir. Bu yaklaşımın meta-öğrenme ile bağlantıları vardır, örneğin bu makaleye bakın. Bu yaklaşımın bir örneği
emnist_p13n_main.py içinde verilmiştir. Farklı kişiselleştirme stratejilerini keşfetmek ve karşılaştırmak için şunları yapabilirsiniz:
Bir başlangıç modelinden başlayan, her müşterinin yerel veri kümelerini kullanarak kişiselleştirilmiş bir modeli eğiten ve değerlendiren bir
tf.functionuygulayarak bir kişiselleştirme stratejisi tanımlayın.
build_personalize_fntarafından bir örnek verilmiştir.
Strateji adlarını karşılık gelen kişiselleştirme stratejileriyle eşleyen bir
OrderedDicttanımlayın ve bunu
tff.learning.build_personalization_evaliçinde
personalize_fn_dictargümanı olarak kullanın.
Diğer bir yaklaşım, bir modelin bir bölümünü tamamen yerel olarak eğiterek tamamen küresel bir modelin eğitiminden kaçınmaktır. Bu yaklaşımın bir örneği bu blog gönderisinde açıklanmıştır. Bu yaklaşım aynı zamanda meta öğrenmeyle de bağlantılıdır, bu makaleye bakın. Kısmen yerel birleştirilmiş öğrenimi keşfetmek için şunları yapabilirsiniz:
tff.learning.reconstruction.build_training_processkullanarak, süreç davranışını özelleştirmek için
dataset_split_fnöğesini değiştirerek kısmen yerel bir eğitim süreci oluşturun.