Federe Öğrenme Araştırması için TFF'nin Kullanımı

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 ve güçlü bir çerçevedir. Bu sayfada araştırma simülasyonlarıyla ilgili ana kavram ve bileşenlerin yanı sıra TFF'de farklı araştırma türlerinin yürütülmesine ilişkin 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. Tek bir konumda (örneğin, istemcilerde veya bir sunucuda) çalışan mantığı kapsülleyen, genellikle tf.function s olmak üzere TensorFlow kodunun ayrı parçaları. Bu kod genellikle herhangi bir tff.* referansı olmadan yazılır ve test edilir ve TFF dışında yeniden kullanılabilir. Örneğin, Birleşik Ortalamalamadaki müşteri eğitim döngüsü bu seviyede uygulanır.

  2. TensorFlow Birleşik düzenleme mantığı, 1.'deki bireysel tf.function tff.tensorflow.computation olarak sararak ve ardından tff.federated_broadcast ve tff.federated_mean gibi soyutlamaları kullanarak tff.federated_computation içinde düzenleyerek birbirine bağlar. Örneğin, Birleşik Ortalama için bu düzenlemeye bakın.

  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, Birleşik EMNIST deneme 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 fazla veri kümesini barındırır .

Veri kümeleri şunları içerir:

  • StackOverflow . Eğitim setinde 135.818.730 örnek (cümle) ile 342.477 benzersiz kullanıcıya sahip, 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ştirilmiş ön işlemesi. Tam tren seti, 62 etiketten 671.585 örnekle 3.400 kullanıcı içerir.

  • Shakespeare . William Shakespeare'in tüm eserlerini temel alan daha küçük karakter düzeyinde metin veri kümesi. Veri seti 715 kullanıcıdan (Shakespeare oyunlarındaki karakterler) oluşur; burada her örnek, belirli bir oyunda karakter tarafından söylenen bitişik satırlar dizisine karşılık gelir.

  • CIFAR-100 . CIFAR-100 veri kümesinin 500 eğitim istemcisi ve 100 test istemcisi arasında birleşik bölümlenmesi. Her müşterinin 100 benzersiz örneği vardır. Bölümleme, müşteriler 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şik bir bölümlendirmesini sağlamak için fotoğrafçıya göre gruplandırılmış görüntülerle birlikte, dünyadaki çeşitli yer işaretlerinin fotoğraflarından oluşur. İki tür 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 kümesi. Birleşik veri kümesinde her ünlünün örnekleri bir müşteri oluşturacak şekilde gruplandırılmıştır. Her biri en az 5 örnek içeren 9343 istemci var. Veri kümesi, istemcilere veya örneklere göre eğitim ve test gruplarına bölünebilir.

  • iNaturalist Bir veri seti çeşitli türlerin fotoğraflarından oluşur. Veri seti 1.203 türe ait 120.300 görüntü içeriyor. Veri kümesinin yedi çeşidi mevcuttur. Bunlardan biri fotoğrafçıya göre 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ılır. Veri kümesinin bu altı çeşidi 11 - 3.606 istemciden oluşmaktadır.

Yüksek performanslı simülasyonlar

Bir FL simülasyonunun duvar saati süresi, algoritmaları değerlendirmek için uygun bir ölçüm olmasa da (simülasyon donanımı gerçek FL dağıtım ortamlarını temsil etmediği için), FL simülasyonlarını hızlı bir şekilde çalıştırabilmek, araştırma verimliliği açısından kritik öneme sahiptir. Bu nedenle TFF, yüksek performanslı tekli ve çoklu makine çalışma süreleri sağlamaya büyük yatırımlar yaptı. Dokümantasyon geliştirme aşamasındadır ancak şimdilik hızlandırıcılarla TFF simülasyonları hakkındaki talimatlara ve GCP'de TFF ile simülasyonlar kurma talimatlarına bakın. Yüksek performanslı TFF çalışma zamanı varsayılan olarak etkindir.

Farklı araştırma alanlarına yönelik TFF

Birleşik optimizasyon algoritmaları

TFF'de birleşik optimizasyon algoritmalarına ilişkin araştırmalar, istenilen özelleştirme düzeyine bağlı olarak farklı şekillerde yapılabilmektedir.

Birleşik Ortalama Algoritmasının minimal bağımsız uygulaması burada sağlanmaktadır. Kod, örnek olarak yerel hesaplama için TF işlevlerini , orkestrasyon için TFF hesaplamalarını ve EMNIST veri kümesindeki bir sürücü komut dosyasını 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ını burada bulabilirsiniz. Bu uygulama, hem sunucuda hem de istemcide farklı optimize edicilerin kullanılması da dahil olmak üzere daha karmaşık optimizasyon tekniklerine olanak tanır. Birleştirilmiş k-ortalamalar kümelemesi de dahil olmak üzere diğer birleştirilmiş öğrenme algoritmalarını burada bulabilirsiniz.

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

Model güncellemelerinin kayıplı sıkıştırılması iletişim maliyetlerinin azalmasına yol açabilir ve bu da genel eğitim süresinin azalmasına yol açabilir.

Yeni bir makaleyi yeniden oluşturmak için bu araştırma projesine bakın. Özel bir sıkıştırma algoritması uygulamak için örnek olarak projedeki karşılaştırma_methods'a ve temel bilgiler için TFF Toplayıcılar eğitimine bakın.

Farklı gizlilik

TFF, farklı mahremiyete sahip modellerin birleşik eğitimi için yeni algoritmalar üzerinde araştırma yapılmasını sağlamak amacıyla TensorFlow Gizlilik kitaplığıyla 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ş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ğini içeren bir tff.aggregators.DifferentiallyPrivateFactory oluşturabilirsiniz. DP-FTRL algoritmasının uygulanmasına ilişkin bir örneği burada bulabilirsiniz

Birleşik GAN'lar ( aşağıda açıklanmıştır), kullanıcı düzeyinde diferansiyel gizlilik uygulayan bir TFF projesinin başka bir örneğidir (örneğin, burada kodda ).

Sağlamlık ve saldırılar

TFF ayrıca, Birleşik Öğrenme Sistemlerine yönelik hedefli saldırıları ve Birleşik Öğrenmenin Gerçekten Arka Kapısını Açabilir misiniz? bölümünde ele alınan diferansiyel gizlilik tabanlı savunmaları simüle etmek için de kullanılabilir. . Bu, potansiyel olarak kötü niyetli istemcilerle yinelenen bir süreç oluşturularak yapılır (bkz. build_federated_averaging_process_attacked ). Targeted_attack dizini daha fazla ayrıntı içerir.

  • Yeni saldırı algoritmaları, bir Tensorflow işlevi olan bir istemci güncelleme işlevi yazılarak uygulanabilir; örnek için ClientProjectBoost bakın.
  • Küresel bir güncelleme elde etmek için istemci çıktılarını bir araya getiren 'tff.utils.StatefulAggregateFn' özelleştirerek yeni savunmalar uygulanabilir.

Simülasyona yönelik örnek bir komut dosyası için bkz. emnist_with_targeted_attack.py .

Üretken Rekabet 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 ayırıcı) içerirler.

TFF, GAN'ların birleşik eğitimi konusunda araştırma yapmak için kullanılabilir. Örneğin son çalışmalarda sunulan DP-FedAvg-GAN algoritması TFF'de uygulanıyor . Bu çalışma, birleştirilmiş öğrenmeyi, üretken 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 sunmaktır. Bu soruna yönelik potansiyel olarak farklı yaklaşımlar vardır.

Yaklaşımlardan biri, her müşterinin kendi yerel verileriyle tek bir küresel modele (birleşik öğrenme kullanılarak eğitilmiş) ince ayar yapmasına izin vermektir. Bu yaklaşımın meta-öğrenmeyle bağlantıları vardır; örneğin bu makaleye bakın. Bu yaklaşımın bir örneği emnist_p13n_main.py dosyasında verilmiştir. Farklı kişiselleştirme stratejilerini keşfetmek ve karşılaştırmak için şunları yapabilirsiniz:

  • 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.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şleştiren bir OrderedDict tanımlayın ve bunu tff.learning.build_personalization_eval_computation personalize_fn_dict bağımsız değişkeni olarak kullanın.

Başka bir yaklaşım, bir modelin bir kısmını tamamen yerel olarak eğiterek tamamen küresel bir modelin eğitilmesinden kaçınmaktır. Bu yaklaşımın bir örneği bu blog yazısında anlatılmaktadır. Bu yaklaşım aynı zamanda meta öğrenmeyle de bağlantılıdır; bu makaleye bakın. Kısmen yerel birleşik öğrenmeyi keşfetmek için şunları yapabilirsiniz: