Genel Bakış
TFF, gerçekçi proxy veri kümeleri üzerinde birleşik hesaplamaları simüle ederek birleşik öğrenme (FL) araştırmaları yürütmek için genişletilebilir, güçlü bir çerçevedir. Bu sayfa, araştırma simülasyonları için ilgili temel kavramları ve bileşenleri ve ayrıca TFF'de farklı araştırma türlerinin yürütülmesine ilişkin ayrıntılı kılavuzu açıklamaktadır.
TFF'de araştırma kodunun tipik yapısı
TFF'de uygulanan bir araştırma amaçlı FL simülasyonu tipik olarak üç ana mantık türünden oluşur.
TensorFlow kodunun ayrı ayrı parçaları, genellikle
tf.function, tek bir yerde (örneğin, istemcilerde veya sunucuda) çalışan mantığı kapsar. Bu kod genellikletff.*referansları olmadan yazılır ve test edilir ve TFF dışında yeniden kullanılabilir. Örneğin, Federated Averaging'deki istemci eğitim döngüsü bu seviyede uygulanır.TensorFlow Federasyonlu Orkestrasyon Mantığı, 1. maddede belirtilen bireysel
tf.functiontff.tensorflow.computationolarak sarmalayarak ve ardındanfederated_language.federated_broadcastvefederated_language.federated_meangibi soyutlamalar kullanarakfederated_language.federated_computationiçinde orkestrasyon yaparak bir araya getirir. Örneğin, Federasyonlu Ortalama Alma için bu orkestrasyona bakın.Üretim aşamasındaki bir FL sisteminin kontrol mantığını simüle eden, bir veri kümesinden simüle edilmiş istemcileri seçen ve daha sonra 2. bölümde tanımlanan birleşik hesaplamaları bu istemciler üzerinde yürüten harici bir sürücü betiği. Örneğin, bir Birleşik EMNIST deney sürücüsü .
Federasyonlu öğrenme veri kümeleri
TensorFlow Federated, birleşik öğrenme ile çözülebilecek gerçek dünya problemlerinin özelliklerini temsil eden birden fazla veri kümesini barındırır .
Veri kümeleri şunları içerir:
StackOverflow . Dil modelleme veya denetimli öğrenme görevleri için gerçekçi bir metin veri seti; eğitim setinde 135.818.730 örnek (cümle) bulunan 342.477 benzersiz kullanıcıya sahiptir.
Federasyonlu EMNIST . Her istemcinin farklı bir yazara karşılık geldiği, EMNIST karakter ve rakam veri kümesinin birleştirilmiş ön işleme yöntemi. Tam eğitim seti, 62 etiketten 671.585 örnek içeren 3400 kullanıcıdan oluşmaktadır.
Shakespeare . William Shakespeare'in tüm eserlerine dayanan, karakter düzeyinde daha küçük bir metin veri seti. Veri seti, 715 kullanıcıdan (Shakespeare oyunlarındaki karakterler) oluşmaktadır; her örnek, belirli bir oyunda karakter tarafından söylenen ardışık bir satır kümesine karşılık gelir.
CIFAR-100 . CIFAR-100 veri setinin 500 eğitim istemcisi ve 100 test istemcisi arasında birleştirilmiş bölümlendirilmesi. Her istemcide 100 benzersiz örnek bulunur. Bölümlendirme, istemciler arasında daha gerçekçi bir heterojenlik oluşturacak şekilde yapılır. Daha fazla ayrıntı için API'ye bakın.
Google Landmark v2 veri seti, çeşitli dünya simge yapılarının fotoğraflarından oluşur ve verilerin birleşik bölümlendirilmesini sağlamak için görüntüler fotoğrafçıya göre gruplandırılmıştır. İki farklı veri seti sürümü mevcuttur: 233 istemci ve 23080 görüntü içeren daha küçük bir veri seti ve 1262 istemci ve 164172 görüntü içeren daha büyük bir veri seti.
CelebA, ünlülerin yüzlerine ait örneklerden (görüntü ve yüz özellikleri) oluşan bir veri kümesidir. Birleştirilmiş veri kümesinde, her ünlünün örnekleri bir araya getirilerek bir müşteri oluşturulmuştur. Her birinde en az 5 örnek bulunan 9343 müşteri vardır. Veri kümesi, müşterilere veya örneklere göre eğitim ve test gruplarına ayrılabilir.
iNaturalist A veri seti, çeşitli türlerin fotoğraflarından oluşmaktadır. Veri seti, 1203 tür için 120.300 görüntü içermektedir. Veri setinin yedi farklı versiyonu mevcuttur. Bunlardan biri fotoğrafçıya göre gruplandırılmıştır ve 9257 müşteri içermektedir. Diğer veri setleri ise fotoğrafın çekildiği coğrafi konuma göre gruplandırılmıştır. Bu altı veri seti versiyonu, 11 ila 3606 müşteri içermektedir.
Yüksek performanslı simülasyonlar
Bir FL simülasyonunun gerçek çalışma süresi, algoritmaları değerlendirmek için ilgili bir ölçüt olmasa da (çünkü simülasyon donanımı gerçek FL dağıtım ortamlarını temsil etmez), FL simülasyonlarını hızlı bir şekilde çalıştırabilmek araştırma verimliliği için kritik öneme sahiptir. Bu nedenle, TFF, yüksek performanslı tek ve çok makineli çalışma ortamları sağlamaya büyük yatırım yapmıştır. 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ülasyon kurulumu hakkındaki talimatlara bakın. Yüksek performanslı TFF çalışma ortamı varsayılan olarak etkinleştirilmiştir.
Farklı araştırma alanları için TFF
Federasyonlu optimizasyon algoritmaları
TFF'de, istenen özelleştirme düzeyine bağlı olarak, birleşik optimizasyon algoritmaları üzerine araştırmalar farklı şekillerde yapılabilir.
Burada, Federasyonlu Ortalama algoritmasının minimal, bağımsız bir uygulaması sunulmaktadır. Kod, yerel hesaplama için TF fonksiyonlarını , orkestrasyon için TFF hesaplamalarını ve örnek olarak EMNIST veri kümesi üzerinde çalışan bir sürücü betiğini içermektedir. Bu dosyalar, README dosyasındaki ayrıntılı talimatları izleyerek özelleştirilmiş uygulamalar ve algoritmik değişiklikler için kolayca uyarlanabilir.
Federasyonlu Ortalama alma yönteminin daha genel bir uygulamasına buradan ulaşılabilir. Bu uygulama, sunucu ve istemci tarafında farklı optimizasyon algoritmalarının kullanımı da dahil olmak üzere daha gelişmiş optimizasyon tekniklerine olanak tanır. Federasyonlu k-ortalama kümeleme de dahil olmak üzere diğer federasyonlu öğrenme algoritmalarına buradan ulaşılabilir.
Model güncelleme sıkıştırması
Model güncellemelerinin kayıplı sıkıştırması, iletişim maliyetlerinin azalmasına ve dolayısıyla genel eğitim süresinin kısalmasına yol açabilir.
Yakın tarihli bir makaleyi yeniden üretmek için bu araştırma projesine bakın. Özel bir sıkıştırma algoritması uygulamak için, örnek olarak temel yöntemler için projedeki comparison_methods bölümüne ve henüz aşina değilseniz TFF Aggregators eğitimine bakın.
Diferansiyel gizlilik
TFF, diferansiyel gizlilikle modellerin birleşik eğitimine yönelik yeni algoritmalar üzerinde araştırma yapılmasını sağlamak için TensorFlow Gizlilik kütüphanesiyle 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.
Eğer özel bir DP algoritması uygulamak ve bunu birleşik ortalama alma işleminin 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 tff.aggregators.DifferentiallyPrivateFactory oluşturabilirsiniz. DP-FTRL algoritmasının uygulanmasına ilişkin bir örnek burada bulunabilir.
Aşağıda açıklanan birleşik GAN'lar, kullanıcı düzeyinde diferansiyel gizliliği uygulayan bir TFF projesinin başka bir örneğidir (örneğin, burada kodda ).
Sağlamlık ve saldırılar
TFF, "Gerçekten Federasyonlu Öğrenmeye Arka Kapı Saldırısı Yapabilir misiniz?" başlıklı makalede ele alınan, federasyonlu öğrenme sistemlerine ve diferansiyel gizlilik tabanlı savunmalara yönelik hedefli saldırıları simüle etmek için de kullanılabilir. Bu, potansiyel olarak kötü niyetli istemcilerle yinelemeli 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 fonksiyonu olan istemci güncelleme fonksiyonu yazılarak uygulanabilir; örnek için
ClientProjectBoostbakın. - İstemci çıktılarını bir araya getirerek küresel bir güncelleme elde eden 'tff.utils.StatefulAggregateFn' işlevini özelleştirerek yeni savunma mekanizmaları uygulanabilir.
Simülasyon için örnek bir betik için emnist_with_targeted_attack.py dosyasına bakın.
Üretken Çekişmeli Ağlar
GAN'lar, standart Federasyonlu Ortalama alma yönteminden biraz farklı görünen ilginç bir federasyonlu orkestrasyon modeli oluşturur. Her biri kendi optimizasyon adımıyla eğitilmiş iki ayrı ağ (üretici ve ayırıcı) içerirler.
TFF, GAN'ların birleşik eğitimine yönelik araştırmalar için kullanılabilir. Örneğin, yakın zamanda yapılan bir çalışmada sunulan DP-FedAvg-GAN algoritması TFF'de uygulanmıştır . Bu çalışma, birleşik öğrenme, üretken modeller ve diferansiyel gizliliğin birleştirilmesinin etkinliğini göstermektedir.
Kişiselleştirme
Federasyonlu öğ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 mevcuttur.
Bir yaklaşım, her istemcinin yerel verileriyle (federasyonlu öğrenme kullanılarak eğitilmiş) tek bir küresel modeli 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 yola çıkarak, her istemcinin 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_fnbunun bir örneğini vermektedir.Strateji adlarını karşılık gelen kişiselleştirme stratejilerine eşleyen bir
OrderedDicttanımlayın ve bunutff.learning.build_personalization_eval_computationfonksiyonundapersonalize_fn_dictargümanı olarak kullanın.
Başka bir yaklaşım ise, modelin bir kısmını tamamen yerel olarak eğiterek, tam anlamıyla küresel bir model eğitmekten kaçınmaktır. Bu yaklaşımın bir örneği bu blog yazısında açıklanmıştır. Bu yaklaşım aynı zamanda meta öğrenmeyle de bağlantılıdır, bu makaleye bakınız.