Federe Öğrenim Araştırması için TFF Kullanımı

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.

  1. TensorFlow kod Bireysel parçaları, tipik tf.function s, o kapsülü mantığı o tek bir konumda çalışır (örneğin, müşteriler veya bir sunucuda). Bu kod genellikle yazılı ve test herhangi olmadan edilir tff.* Referanslar ve TFF'nin devşirme dışında olabilir. Örneğin, Federe Ortalaması istemci eğitim döngü bu seviyede uygulanmaktadır.

  2. TensorFlow Federal düzenleme mantığı, burada bağlandığı, münferit tf.function s 1'den olarak sarılarak tff.tf_computation gibi soyut kullanarak düzenlediğini ve s ve tff.federated_broadcast ve tff.federated_mean bir iç tff.federated_computation . Örneğin, bu Bkz Federe Ortalaması orkestrasyon .

  3. 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 Federe EMNIST deney sürücüsü .

Birleşik öğrenme veri kümeleri

TensorFlow federe barındıran çoklu veri kümeleri federe öğrenme ile çözülebilir gerçek dünya sorunlarının özellikleri temsil etmektedir.

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.

  • Federe 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 kümesi. 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.

  • Cifar-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 bkz API .

  • Google Landmark veri kümesi v2 veri kümesi veri federe bölme elde etmek için fotoğrafçı tarafından gruplandırılmış görüntülerle, çeşitli dünya yerlerinden fotoğrafları 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üzlerinin örnekleri (görüntü ve yüz nitelikler) ihtiva eden 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 kümesi, istemcilere veya örneklere göre eğitim ve test gruplarına ayrılabilir.

  • iNaturalist Veri kümesi çeşitli türlerin fotoğrafları 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ülasyonun duvar saati süresi FL simülasyonları hızla araştırma verimlilik için kritik öneme sahiptir çalıştırmak mümkün, (simülasyon donanım gerçek FL dağıtım ortamları temsil etmemektedir olduğu gibi) algoritmaları değerlendirilmesi için ilgili metrik olmasa da. Bu nedenle, TFF, yüksek performanslı tekli ve çok makineli çalışma süreleri sağlamaya büyük yatırımlar yaptı. Belgeler geliştirilme aşamasındadır, ama şimdi bakın için TFF ile Yüksek performanslı simülasyonları öğretici, ilgili talimatlar hızlandırıcıları ile TFF simülasyonları üzerinde, ve talimatlar GSO TFF ile simülasyonlar kurma . 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.

Bir asgari tek başına uygulanması Federe Averaging algoritması sağlanır burada . Kod içeren TF fonksiyonları lokal hesaplama, TFF hesaplamalar düzenlemesi için, ve bir sürücü komut bir örnek olarak EMNIST veri kümesi üzerinde. Bu dosyalar kolayca özelleştirilmiş applciations ve ayrıntılı talimatları izleyerek algoritmik değişiklikler için adapte edilebilir README .

Federe Ortalaması daha genel bir uygulama bulunabilir burada . Bu uygulama, öğrenme hızı planlaması ve hem sunucuda hem de istemcide farklı optimize edicilerin kullanımı dahil olmak üzere daha karmaşık optimizasyon tekniklerine izin verir. Çeşitli görevler ve federe veri setleri için bu genelleştirilmiş Federe ortalamasını geçerlidir Kod bulunabilir burada .

Model ve güncelleme sıkıştırması

TFF kullanan tensor_encoding sunucu ve istemciler arasındaki communicatation maliyetlerini azaltmak için kayıplı sıkıştırma algoritmaları etkinleştirmek için API. Sunucu-istemci ve istemci-sunucu ile eğitim örneği için sıkıştırma Federe Averaging kullanarak algoritma, bkz bu deneyi .

Özel bir sıkıştırma algoritması uygulamak ve bunu eğitim döngüsüne uygulamak için şunları yapabilirsiniz:

  1. Bir alt sınıfı olarak yeni bir sıkıştırma algoritması uygulanması EncodingStageInterface veya daha genel varyantı AdaptiveEncodingStageInterface aşağıdaki örnekte .
  2. Yeni Construct Encoder ve bunu uzmanlaşmak modeli yayın veya yenilenen modeli ortalamadan .
  3. Tüm inşa etmek bu nesneleri kullanın eğitim hesaplama .

diferansiyel gizlilik

TFF ile birlikte çalışabilir TensorFlow Gizlilik diferansiyel gizlilik modellerin federe eğitimi için yeni algoritmalar araştırma etkinleştirmek için kütüphaneye. Kullanarak DP ile eğitim örneği için temel DP-FedAvg algoritma ve uzantıları , bkz bu deney sürücüsü .

Özel bir DP algoritması uygulamak ve federe ortalama alınmasının agrega güncellemeleri uygulamak istiyorsanız, size bir alt sınıfı olarak yeni bir DP ortalama algoritma uygulayabilir tensorflow_privacy.DPQuery ve oluşturmak tff.aggregators.DifferentiallyPrivateFactory Sorgunuzun örneğine sahip. Uygulanmasına örnekler DP-FTRL algoritması bulunabilir burada

(Tarif Federe Gans aşağıda ) (örneğin kullanıcı düzeyinde diferansiyel gizlilik uygulayan bir TFF projesinin başka örnektir kodda burada ).

Sağlamlık ve saldırılar

TFF de dikkate federe öğrenme sistemleri ve diferansiyel gizlilik esaslı savunması üzerinde hedeflenen saldırıları simüle etmek için kullanılabilir Can You Really Arka kapı Federe Öğrenme? . Bu potansiyel olarak zararlı müşterilerle iteratif süreç inşa ederek yapılır (bkz build_federated_averaging_process_attacked ). Targeted_attack dizini daha fazla ayrıntı içeriyor.

  • Yeni hücum algoritmaları, bir Tensorflow fonksiyonudur bir istemci güncelleme fonksiyonunu yazarak hayata bakın edilebilir ClientProjectBoost bir örnek için.
  • Yeni savunmalar özelleştirme tarafından uygulanabilir 'tff.utils.StatefulAggregateFn' küresel bir güncelleştirme almak için istemci çıkışlarını toplar.

Simülasyonu için bir örnek senaryo için bkz emnist_with_targeted_attack.py .

Üretken Düşman Ağları

Gans ilginç için yapmak federe orkestrasyon deseni standart Federe Ortalaması biraz daha farklı görünüyor. 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, sunulan DP-FedAvg-GAN algoritması son çalışmasında olduğu TFF uygulanan . Bu eser federe öğrenme, üretken modelleri ve birleştirme etkinliğini gösteren diferansiyel gizlilik .

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, meta-öğrenme, bakınız, örneğin, bağlantı sağlamaktadır Bu yazıda . Bu yaklaşımın bir örneği verilmiştir emnist_p13n_main.py . Farklı kişiselleştirme stratejilerini keşfetmek ve karşılaştırmak için şunları yapabilirsiniz:

  • Bir uygulama bir kişiselleştirme stratejisi tanımlama tf.function bir başlangıç modeli, trenler başlar ve her müşterinin yerel verileri kullanılarak bir kişiselleştirilmiş model değerlendirilmiştir. Bir örnek verilir build_personalize_fn .

  • Bir tanımlama OrderedDict gelen kişiselleştirme stratejilerine strateji adlarını eşleştirir ve olarak kullanmak personalize_fn_dict içinde argüman tff.learning.build_personalization_eval .