genel bakış
TFF, gerçekçi proxy veri kümeleri üzerinde birleştirilmiş hesaplamaları simüle ederek birleştirilmiş öğ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 ana kavramlar ve bileşenlerin yanı sıra, TFF'de farklı araştırma türlerini yürütmek için ayrıntılı rehberlik açıklanmaktadır.
TFF'deki 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ığı kapsülleyen, genellikle
tf.function
s olan ayrı TensorFlow kodu parçaları. Bu kod genellikle herhangi birtff.*
referansı olmadan yazılır ve test edilir ve TFF dışında yeniden kullanılabilir. Örneğin, Birleşik Ortalama Alma'daki müşteri eğitim döngüsü bu seviyede uygulanır.tff.tf_computation
s olarak sararak ve ardından birtff.federated_computation
içindetff.federated_broadcast
vetff.federated_mean
gibi soyutlamalar kullanarak düzenleyerek 1.'den bağımsıztf.function
s'yi birbirine bağlayan TensorFlow Birleşik düzenleme mantığı. Ö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ştirilmiş hesaplamaları yürüten bir dış sürücü betiği. Örneğin, Birleşik EMNIST deney sürücüsü .
Birleştirilmiş öğrenme veri kümeleri
TensorFlow federe, birleşik öğrenme ile çözülebilecek gerçek dünya problemlerinin ö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) ve 342.477 benzersiz kullanıcı ile dil modelleme veya denetimli öğrenme görevleri için gerçekçi bir metin veri seti.
Federe EMNIST . Her istemcinin farklı bir yazıcıya karşılık geldiği, EMNIST karakter ve basamak veri kümesinin birleştirilmiş bir ön işlemesi. Tam tren seti, 62 etiketten 671.585 örnekle 3400 kullanıcı içerir.
Şekspir William Shakespeare'in tüm eserlerine dayalı, karakter düzeyinde daha küçük bir metin veri kümesi. Veri seti, 715 kullanıcıdan (Shakespeare oyunlarının karakterleri) oluşur ve her örnek, belirli bir oyundaki karakter tarafından söylenen bitişik bir dizi satıra karşılık gelir.
CIFAR-100 . CIFAR-100 veri kümesinin 500 eğitim istemcisi ve 100 test istemcisi arasında birleştirilmiş bölümlemesi. Her müşterinin 100 benzersiz örneği vardır. Bölümleme, istemciler arasında daha gerçekçi bir 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ştirilmiş bir şekilde bölümlenmesini sağlamak için fotoğrafçıya göre gruplandırılmış resimlerle birlikte, dünyanın çeşitli yer işaretlerinin fotoğraflarından oluşur. İki tür veri kümesi mevcuttur: 233 istemci ve 23080 görüntü içeren daha küçük bir veri kümesi ve 1262 istemci ve 164172 görüntü içeren daha büyük bir veri kümesi.
CelebA Ünlü yüzlerin örneklerinden (görüntü ve yüz nitelikleri) oluşan bir veri kümesi. Birleştirilmiş veri kümesi, bir müşteri oluşturmak için her ünlünün örneklerini bir araya toplar. Her biri en az 5 örnek içeren 9343 istemci var. Veri kümesi, istemcilere veya örneklere göre tren 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 kümesinin yedi çeşidi mevcuttur. Bunlardan biri fotoğrafçı tarafından gruplandırılmış ve 9257 müşteriden oluşuyor. Veri kümelerinin geri kalanı, fotoğrafın çekildiği coğrafi konuma göre gruplandırılmıştır. Veri kümesinin bu altı türü, 11 - 3.606 müşteriden oluşur.
Yüksek performanslı simülasyonlar
Bir FL simülasyonunun duvar saati süresi, algoritmaları değerlendirmek için ilgili bir ölçü 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ı tek ve çok makineli çalışma süreleri sağlamaya büyük yatırımlar yapmıştır. Dokümantasyon geliştirme aşamasındadır, ancak şimdilik hızlandırıcılarla TFF simülasyonlarına ilişkin talimatlara ve GCP'de TFF ile simülasyonları kurmaya 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ştirilmiş optimizasyon algoritmaları
TFF'de birleşik optimizasyon algoritmaları ile ilgili araştırmalar, istenilen özelleştirme düzeyine bağlı olarak farklı şekillerde yapılabilir.
Birleşik Ortalama Algoritmasının minimum bağımsız uygulaması burada sağlanmaktadır. Kod, yerel hesaplama için TF işlevlerini , düzenleme için TFF hesaplamalarını ve örnek olarak EMNIST veri kümesinde bir sürücü komut dosyası içerir. Bu dosyalar, README'deki ayrıntılı talimatlar izlenerek özelleştirilmiş uygulamalara ve algoritmik değişikliklere kolayca uyarlanabilir.
Birleşik Ortalamanın daha genel bir uygulaması burada bulunabilir. Bu uygulama, hem sunucuda hem de istemcide farklı optimize edicilerin kullanımı da dahil olmak üzere daha karmaşık optimizasyon tekniklerine izin verir. Birleştirilmiş k-ortalamalar kümelemesi dahil olmak üzere diğer birleştirilmiş öğ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 yol açabilir ve bu da genel eğitim süresinin kısalmasına yol açabilir.
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 taban çizgileri 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ştirilmiş eğitimi için yeni algoritmalarda araştırmayı mümkün kılmak üzere TensorFlow Privacy kitaplığı ile birlikte çalışabilir. Temel DP-FedAvg algoritmasını ve uzantılarını kullanan 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ştirilmiş 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ı uygulamanın bir örneği burada bulunabilir
Birleşik GAN'lar ( aşağıda açıklanmıştır), kullanıcı düzeyinde diferansiyel gizliliği uygulayan başka bir TFF projesi örneğidir (örn. burada kodda ).
Sağlamlık ve saldırılar
TFF aynı zamanda birleşik öğrenme sistemlerine yönelik hedefli saldırıları ve Federe Öğrenmeye Gerçekten Arka Kapı Olabilir misiniz? . Bu, potansiyel olarak kötü amaçlı istemcilerle yinelemeli bir süreç oluşturarak yapılır (bkz. build_federated_averaging_process_attacked
). Targeted_attack dizini daha fazla ayrıntı içerir.
- Bir Tensorflow işlevi olan bir istemci güncelleme işlevi yazılarak yeni saldırı algoritmaları uygulanabilir, örnek için
ClientProjectBoost
bakın. - Küresel bir güncelleme almak için istemci çıktılarını toplayan 'tff.utils.StatefulAggregateFn' özelleştirilerek yeni savunmalar uygulanabilir.
Simülasyon için örnek bir betik 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 ayrı ağ (üretici ve ayrımcı) içerirler.
TFF, GAN'ların birleştirilmiş eğitimine ilişkin araştırmalar için kullanılabilir. Örneğin, son çalışmada sunulan DP-FedAvg-GAN algoritması TFF'de uygulanmaktadır . Bu çalışma, birleştirilmiş öğrenme, üretken modeller ve diferansiyel gizliliği birleştirmenin etkinliğini göstermektedir.
kişiselleştirme
Federe öğ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.
Yaklaşımlardan biri, her müşterinin kendi yerel verileriyle (birleşik öğrenme kullanılarak eğitilmiş) tek bir küresel modelde 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:
İlk modelden başlayan, her müşterinin yerel veri kümelerini kullanarak kişiselleştirilmiş bir modeli eğiten ve değerlendiren bir
tf.function
uygulayarak bir kişiselleştirme stratejisi tanımlayın.build_personalize_fn
tarafından bir örnek verilmiştir.Strateji adlarını karşılık gelen kişiselleştirme stratejileriyle eşleyen bir
OrderedDict
tanımlayın ve bunutff.learning.build_personalization_eval_computation
içindepersonalize_fn_dict
bağımsız değişkeni olarak kullanın.
Başka bir yaklaşım, bir modelin bir bölümünü tamamen yerel olarak eğiterek tamamen küresel bir modeli eğitmekten kaçınmaktır. Bu yaklaşımın somut örneği bu blog gönderisinde anlatılmaktadır. Bu yaklaşım aynı zamanda meta öğrenmeyle de bağlantılıdır, bu makaleye bakın. Kısmen yerel birleştirilmiş öğrenmeyi keşfetmek için şunları yapabilirsiniz:
Federated Reconstruction ve takip alıştırmalarını uygulayan eksiksiz bir kod örneği için öğreticiye göz atın.
tff.learning.reconstruction.build_training_process
kullanarak kısmen yerel bir eğitim süreci oluşturun,dataset_split_fn
süreç davranışını özelleştirmek için değiştirin.