Menggunakan TFF untuk Penelitian Pembelajaran Terpadu

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Ringkasan

TFF adalah kerangka kerja yang kuat dan dapat diperluas untuk melakukan penelitian federated learning (FL) dengan mensimulasikan komputasi federasi pada kumpulan data proksi yang realistis. Halaman ini menjelaskan konsep dan komponen utama yang relevan untuk simulasi penelitian, serta panduan terperinci untuk melakukan berbagai jenis penelitian di TFF.

Struktur khas kode penelitian di TFF

Simulasi penelitian FL yang diterapkan di TFF biasanya terdiri dari tiga jenis logika utama.

  1. Potongan individu kode TensorFlow, biasanya tf.function s, yang merangkum logika yang berjalan di satu lokasi (mis., di klien atau di server). Kode ini biasanya ditulis dan diuji tanpa referensi tff.* , dan dapat digunakan kembali di luar TFF. Misalnya, lingkaran pelatihan klien di Federated Averaging diimplementasikan pada level ini.

  2. Logika orkestrasi TensorFlow Federated, yang menyatukan masing-masing tf.function s dari 1. dengan membungkusnya sebagai tff.tf_computation s lalu mengaturnya menggunakan abstraksi seperti tff.federated_broadcast dan tff.federated_mean di dalam tff.federated_computation . Lihat, misalnya, orkestrasi untuk Federated Averaging ini.

  3. Skrip driver luar yang mensimulasikan logika kontrol dari sistem FL produksi, memilih klien yang disimulasikan dari kumpulan data, lalu menjalankan komputasi federasi yang ditentukan dalam 2. pada klien tersebut. Misalnya, penggerak eksperimen Federasi EMNIST .

Kumpulan data pembelajaran federasi

Federasi TensorFlow menghosting beberapa set data yang mewakili karakteristik masalah dunia nyata yang dapat diselesaikan dengan pembelajaran federasi.

Kumpulan data meliputi:

  • StackOverflow . Kumpulan data teks realistis untuk pemodelan bahasa atau tugas pembelajaran yang diawasi, dengan 342.477 pengguna unik dengan 135.818.730 contoh (kalimat) dalam set pelatihan.

  • EMNIS Federasi . Pra-pemrosesan gabungan karakter EMNIST dan kumpulan data digit, di mana setiap klien sesuai dengan penulis yang berbeda. Kumpulan lengkap berisi 3400 pengguna dengan 671.585 contoh dari 62 label.

  • Shakespeare . Kumpulan data teks tingkat karakter yang lebih kecil berdasarkan karya lengkap William Shakespeare. Kumpulan data terdiri dari 715 pengguna (karakter drama Shakespeare), di mana setiap contoh terkait dengan serangkaian baris yang diucapkan oleh karakter dalam drama tertentu.

  • CIFAR-100 . Partisi gabungan dari kumpulan data CIFAR-100 di 500 klien pelatihan dan 100 klien uji. Setiap klien memiliki 100 contoh unik. Partisi dilakukan dengan cara menciptakan heterogenitas yang lebih realistis di antara klien. Untuk detail lebih lanjut, lihat API .

  • Dataset Google Landmark v2 Dataset ini terdiri dari foto-foto berbagai landmark dunia, dengan gambar yang dikelompokkan berdasarkan fotografer untuk mendapatkan partisi gabungan data. Tersedia dua jenis set data: set data yang lebih kecil dengan 233 klien dan 23080 gambar, dan set data yang lebih besar dengan 1262 klien dan 164172 gambar.

  • CelebA Kumpulan data contoh (gambar dan atribut wajah) wajah selebriti. Kumpulan data federasi memiliki contoh masing-masing selebritas yang dikelompokkan bersama untuk membentuk klien. Ada 9343 klien, masing-masing dengan setidaknya 5 contoh. Kumpulan data dapat dibagi menjadi kelompok latih dan uji baik oleh klien atau dengan contoh.

  • iNaturalist Dataset terdiri dari foto berbagai spesies. Dataset berisi 120.300 gambar untuk 1.203 spesies. Tujuh rasa dari kumpulan data tersedia. Salah satunya dikelompokkan oleh fotografer dan terdiri dari 9257 klien. Kumpulan data lainnya dikelompokkan berdasarkan lokasi geografis tempat foto diambil. Keenam jenis dataset ini terdiri dari 11 - 3.606 klien.

Simulasi kinerja tinggi

Sementara waktu jam dinding dari simulasi FL bukanlah metrik yang relevan untuk mengevaluasi algoritme (karena perangkat keras simulasi tidak mewakili lingkungan penerapan FL yang sebenarnya), mampu menjalankan simulasi FL dengan cepat sangat penting untuk produktivitas penelitian. Oleh karena itu, TFF telah banyak berinvestasi dalam menyediakan runtime tunggal dan multi-mesin berkinerja tinggi. Dokumentasi sedang dalam pengembangan, tetapi untuk saat ini lihat petunjuk simulasi TFF dengan akselerator , dan petunjuk penyiapan simulasi dengan TFF di GCP . Runtime TFF performa tinggi diaktifkan secara default.

TFF untuk area penelitian yang berbeda

Algoritma pengoptimalan federasi

Penelitian tentang algoritma optimasi federasi dapat dilakukan dengan berbagai cara di TFF, tergantung pada tingkat kustomisasi yang diinginkan.

Implementasi mandiri minimal dari algoritma Federated Averaging disediakan di sini . Kode tersebut menyertakan fungsi TF untuk komputasi lokal, komputasi TFF untuk orkestrasi, dan skrip driver pada kumpulan data EMNIST sebagai contoh. File-file ini dapat dengan mudah diadaptasi untuk aplikasi yang disesuaikan dan perubahan algoritme mengikuti instruksi terperinci di README .

Implementasi yang lebih umum dari Federated Averaging dapat ditemukan di sini . Implementasi ini memungkinkan teknik pengoptimalan yang lebih canggih, termasuk penggunaan pengoptimal yang berbeda di server dan klien. Algoritme pembelajaran federasi lainnya, termasuk pengelompokan k-means federasi, dapat ditemukan di sini .

Kompresi pembaruan model

Kompresi lossy dari pembaruan model dapat menyebabkan berkurangnya biaya komunikasi, yang pada gilirannya dapat menyebabkan berkurangnya waktu pelatihan secara keseluruhan.

Untuk mereproduksi makalah terbaru, lihat proyek penelitian ini . Untuk menerapkan algoritme kompresi khusus, lihat metode_perbandingan dalam proyek untuk baseline sebagai contoh, dan tutorial Agregator TFF jika belum terbiasa.

Privasi diferensial

TFF dapat dioperasikan dengan perpustakaan Privasi TensorFlow untuk mengaktifkan penelitian dalam algoritme baru untuk pelatihan model federasi dengan privasi diferensial. Untuk contoh pelatihan dengan DP menggunakan algoritme dan ekstensi DP-FedAvg dasar , lihat driver percobaan ini .

Jika Anda ingin menerapkan algoritme DP kustom dan menerapkannya ke pembaruan agregat rata-rata federasi, Anda dapat menerapkan algoritme rata-rata DP baru sebagai subkelas tensorflow_privacy.DPQuery dan membuat tff.aggregators.DifferentiallyPrivateFactory dengan instance kueri Anda. Contoh penerapan algoritma DP-FTRL dapat ditemukan di sini

Federasi GAN (dijelaskan di bawah ) adalah contoh lain dari proyek TFF yang mengimplementasikan privasi diferensial tingkat pengguna (misalnya, di sini dalam code ).

Kekokohan dan serangan

TFF juga dapat digunakan untuk mensimulasikan serangan yang ditargetkan pada sistem pembelajaran federasi dan pertahanan berbasis privasi diferensial yang dipertimbangkan dalam Can You Really Back door Federated Learning? . Ini dilakukan dengan membangun proses iteratif dengan klien yang berpotensi jahat (lihat build_federated_averaging_process_attacked ). Direktori target_serangan berisi detail lebih lanjut.

  • Algoritme serangan baru dapat diimplementasikan dengan menulis fungsi pembaruan klien yang merupakan fungsi Tensorflow, lihat ClientProjectBoost sebagai contoh.
  • Pertahanan baru dapat diimplementasikan dengan menyesuaikan 'tff.utils.StatefulAggregateFn' yang menggabungkan keluaran klien untuk mendapatkan pembaruan global.

Untuk contoh skrip untuk simulasi, lihat emnist_with_targeted_attack.py .

Jaringan Musuh Generatif

GAN menghasilkan pola orkestrasi federasi yang menarik yang terlihat sedikit berbeda dari Rata-Rata Federasi standar. Mereka melibatkan dua jaringan berbeda (generator dan diskriminator) yang masing-masing dilatih dengan langkah pengoptimalannya sendiri.

TFF dapat digunakan untuk penelitian tentang pelatihan federasi GAN. Misalnya, algoritme DP-FedAvg-GAN yang disajikan dalam karya terbaru diimplementasikan dalam TFF . Pekerjaan ini menunjukkan keefektifan menggabungkan pembelajaran federasi, model generatif, dan privasi diferensial .

Personalisasi

Personalisasi dalam setting federated learning adalah area penelitian yang aktif. Tujuan personalisasi adalah menyediakan model inferensi yang berbeda untuk pengguna yang berbeda. Ada potensi pendekatan yang berbeda untuk masalah ini.

Salah satu pendekatannya adalah membiarkan setiap klien menyempurnakan model global tunggal (dilatih menggunakan pembelajaran federasi) dengan data lokal mereka. Pendekatan ini memiliki koneksi ke meta-learning, lihat, misalnya, makalah ini . Contoh dari pendekatan ini diberikan dalam emnist_p13n_main.py . Untuk mempelajari dan membandingkan berbagai strategi personalisasi, Anda dapat:

  • Tentukan strategi personalisasi dengan mengimplementasikan fungsi tf.function yang dimulai dari model awal, latih dan evaluasi model yang dipersonalisasi menggunakan set data lokal setiap klien. Contoh diberikan oleh build_personalize_fn .

  • Tentukan OrderedDict yang memetakan nama strategi ke strategi personalisasi yang sesuai, dan gunakan sebagai argumen personalize_fn_dict di tff.learning.build_personalization_eval .

Pendekatan lain adalah menghindari pelatihan model yang sepenuhnya global dengan melatih sebagian model secara lokal. Instansiasi dari pendekatan ini dijelaskan dalam postingan blog ini . Pendekatan ini juga terkait dengan pembelajaran meta, lihat makalah ini . Untuk menjelajahi pembelajaran federasi sebagian lokal, Anda dapat: