Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

Menggunakan TFF untuk Penelitian Pembelajaran Terpadu

Ringkasan

TFF adalah kerangka kerja yang dapat diperluas dan kuat untuk melakukan penelitian federated learning (FL) dengan mensimulasikan komputasi gabungan pada kumpulan data proxy 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 FL penelitian yang diimplementasikan di TFF biasanya terdiri dari tiga jenis logika utama.

  1. Masing-masing potongan kode TensorFlow, biasanya tf.function s, bahwa logika encapsulate yang berjalan dalam satu lokasi (misalnya, pada klien atau pada server). Kode ini biasanya ditulis dan diuji tanpa tff.* Referensi, dan dapat digunakan kembali di luar TFF. Sebagai contoh, klien lingkaran pelatihan di Federasi Averaging diimplementasikan pada tingkat ini.

  2. TensorFlow Federasi orkestrasi logika, yang mengikat bersama-sama individu tf.function s dari 1. dengan membungkus mereka sebagai tff.tf_computation dan kemudian mendalangi mereka menggunakan abstraksi seperti tff.federated_broadcast dan tff.federated_mean di dalam tff.federated_computation . Lihat, misalnya, ini orkestrasi untuk Federated Averaging .

  3. Skrip driver luar yang mensimulasikan logika kontrol sistem FL produksi, memilih klien yang disimulasikan dari kumpulan data dan kemudian menjalankan komputasi gabungan yang ditentukan dalam 2. pada klien tersebut. Sebagai contoh, seorang sopir percobaan Federated EMNIST .

Kumpulan data pembelajaran gabungan

TensorFlow federasi host beberapa dataset yang mewakili karakteristik masalah di dunia nyata yang bisa diselesaikan dengan belajar Federasi.

Dataset 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 kumpulan pelatihan.

  • Federasi EMNIST. Pra-pemrosesan gabungan karakter EMNIST dan kumpulan data digit, di mana setiap klien berhubungan dengan penulis yang berbeda. Set kereta 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 dari drama Shakespeare), di mana setiap contoh sesuai 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 untuk menciptakan heterogenitas yang lebih realistis antara klien. Untuk lebih jelasnya, lihat API .

  • Google Landmark v2 dataset dataset ini terdiri dari foto dari berbagai landmark dunia, dengan gambar dikelompokkan oleh fotografer untuk mencapai partisi federasi dari data. Tersedia dua jenis dataset: dataset yang lebih kecil dengan 233 klien dan 23080 gambar, dan kumpulan data yang lebih besar dengan 1262 klien dan 164172 gambar.

  • CelebA Sebuah dataset contoh (gambar dan atribut wajah) dari wajah selebriti. Dataset federasi memiliki contoh masing-masing selebriti yang dikelompokkan bersama untuk membentuk klien. Ada 9343 klien, masing-masing dengan setidaknya 5 contoh. Dataset dapat dipecah menjadi kelompok latih dan uji baik oleh klien atau dengan contoh.

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

Simulasi kinerja tinggi

Sedangkan waktu jam dinding dari simulasi FL bukan merupakan metrik yang relevan untuk mengevaluasi algoritma (hardware simulasi tidak mewakili lingkungan deployment nyata FL), mampu menjalankan FL simulasi 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, tapi untuk saat melihat simulasi Kinerja tinggi dengan TFF tutorial, petunjuk tentang TFF simulasi dengan akselerator , dan petunjuk tentang pengaturan simulasi dengan TFF di GCP . Waktu proses TFF performa tinggi diaktifkan secara default.

TFF untuk area penelitian yang berbeda

Algoritme pengoptimalan gabungan

Penelitian tentang algoritma pengoptimalan gabungan dapat dilakukan dengan berbagai cara di TFF, tergantung pada tingkat penyesuaian yang diinginkan.

Implementasi berdiri sendiri minimal dari Averaging Federated algoritma disediakan di sini . Kode termasuk fungsi TF untuk perhitungan lokal, perhitungan TFF untuk orkestrasi, dan naskah pengemudi pada dataset EMNIST sebagai contoh. File-file ini dapat dengan mudah diadaptasi untuk applciations disesuaikan dan perubahan algoritmik mengikuti instruksi rinci dalam README .

Sebuah implementasi yang lebih umum Federasi Averaging dapat ditemukan di sini . Implementasi ini memungkinkan teknik pengoptimalan yang lebih canggih, termasuk penjadwalan kecepatan pembelajaran dan penggunaan pengoptimal yang berbeda pada server dan klien. Kode yang berlaku ini umum Federasi Averaging untuk berbagai tugas dan dataset federasi dapat ditemukan di sini .

Model dan perbarui kompresi

TFF menggunakan tensor_encoding API untuk memungkinkan algoritma kompresi lossy untuk mengurangi biaya communicatation antara server dan klien. Untuk contoh pelatihan dengan server-ke-klien dan klien-ke-server kompresi menggunakan Averaging Federasi algoritma, lihat percobaan ini .

Untuk menerapkan algoritme kompresi khusus dan menerapkannya ke loop pelatihan, Anda dapat:

  1. Mengimplementasikan algoritma kompresi baru sebagai subclass dari EncodingStageInterface atau varian yang lebih umum, AdaptiveEncodingStageInterface mengikuti contoh ini .
  2. Membangun baru Anda Encoder dan mengkhususkan untuk Model siaran atau model update averaging .
  3. Gunakan benda-benda untuk membangun seluruh perhitungan pelatihan .

Privasi diferensial

TFF adalah interoperable dengan TensorFlow Privasi perpustakaan untuk memungkinkan penelitian dalam algoritma baru untuk pelatihan Federasi model dengan privasi diferensial. Untuk contoh pelatihan dengan DP menggunakan DP-FedAvg algoritma dasar dan ekstensi , lihat driver ini percobaan .

Jika Anda ingin menerapkan algoritma kustom DP dan menerapkannya pada update agregat rata-rata federasi, Anda dapat menerapkan DP berarti algoritma baru sebagai subclass dari tensorflow_privacy.DPQuery dan menciptakan tff.aggregators.DifferentiallyPrivateFactory dengan contoh permintaan Anda. Contoh penerapan algoritma DP-FTRL dapat ditemukan disini

Federasi Gans (dijelaskan di bawah ) adalah contoh lain dari proyek TFF mengimplementasikan user-level privasi diferensial (misalnya, di sini dalam kode ).

Ketangguhan dan serangan

TFF juga dapat digunakan untuk mensimulasikan serangan yang ditargetkan pada sistem pembelajaran federasi dan diferensial berdasarkan pertahanan privasi dipertimbangkan dalam Can Anda Benar-benar Kembali pintu Federasi Belajar? . Hal ini dilakukan dengan membangun proses berulang dengan klien berpotensi berbahaya (lihat build_federated_averaging_process_attacked ). The targeted_attack direktori berisi rincian lebih lanjut.

  • Algoritma menyerang baru dapat dilaksanakan dengan menulis klien fungsi update yang merupakan fungsi Tensorflow, lihat ClientProjectBoost untuk contoh.
  • Pertahanan baru dapat dilaksanakan oleh menyesuaikan 'tff.utils.StatefulAggregateFn' yang agregat output klien untuk mendapatkan update global.

Untuk contoh script untuk simulasi, lihat emnist_with_targeted_attack.py .

Jaringan Permusuhan Generatif

Gans membuat untuk menarik pola orkestrasi federasi yang terlihat sedikit berbeda dari standar Federasi Averaging. Mereka melibatkan dua jaringan yang berbeda (generator dan diskriminator) masing-masing dilatih dengan langkah optimasi mereka sendiri.

TFF dapat digunakan untuk penelitian tentang pelatihan gabungan GAN. Sebagai contoh, algoritma DP-FedAvg-GAN disajikan dalam karya terbaru yang diterapkan di TFF . Karya ini menunjukkan efektivitas menggabungkan belajar federasi, model generatif, dan privasi diferensial .

Personalisasi

Personalisasi dalam pengaturan pembelajaran federasi adalah area penelitian aktif. Tujuan personalisasi adalah untuk menyediakan model inferensi yang berbeda untuk pengguna yang berbeda. Ada kemungkinan pendekatan yang berbeda untuk masalah ini.

Salah satu pendekatannya adalah membiarkan setiap klien menyempurnakan satu model global (dilatih menggunakan pembelajaran gabungan) 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 menjelajahi dan membandingkan berbagai strategi personalisasi, Anda dapat:

  • Tentukan strategi personalisasi dengan menerapkan tf.function yang dimulai dari model awal, kereta api dan mengevaluasi model dipersonalisasi menggunakan dataset lokal masing-masing klien. Sebuah contoh yang diberikan oleh build_personalize_fn .

  • Mendefinisikan OrderedDict yang memetakan nama-nama strategi untuk strategi personalisasi yang sesuai, dan menggunakannya sebagai personalize_fn_dict argumen dalam tff.learning.build_personalization_eval .

Pendekatan lain adalah untuk menghindari pelatihan model yang sepenuhnya global dengan melatih bagian dari model yang seluruhnya secara lokal. Instansiasi dari pendekatan ini dijelaskan dalam posting blog ini . Pendekatan ini juga terhubung ke meta belajar, lihat tulisan ini . Untuk menjelajahi pembelajaran gabungan sebagian lokal, Anda dapat: