Pertanyaan Umum (FAQ)

Bisakah TensorFlow Federated digunakan dalam pengaturan produksi, misalnya pada ponsel?

Saat ini tidak. Meskipun kami merancang TFF dengan mempertimbangkan penerapan ke perangkat nyata, pada tahap ini kami tidak menyediakan alat apa pun untuk tujuan ini. Rilis saat ini ditujukan untuk penggunaan eksperimen, seperti mengekspresikan algoritme gabungan baru, atau mencoba pembelajaran gabungan dengan kumpulan data Anda sendiri, menggunakan runtime simulasi yang disertakan.

Kami mengantisipasi bahwa seiring berjalannya waktu, ekosistem open source di sekitar TFF akan berkembang dengan menyertakan runtime yang menargetkan platform penerapan fisik.

Bagaimana cara menggunakan TFF untuk bereksperimen dengan kumpulan data besar?

Runtime default yang disertakan dalam rilis awal TFF ditujukan hanya untuk eksperimen kecil seperti yang dijelaskan dalam tutorial kami di mana semua data Anda (di semua klien yang disimulasikan) secara bersamaan dimasukkan ke dalam memori pada satu mesin, dan seluruh eksperimen berjalan secara lokal dalam buku catatan colab.

Peta jalan jangka pendek kami di masa depan mencakup runtime berkinerja tinggi untuk eksperimen dengan kumpulan data yang sangat besar dan klien dalam jumlah besar.

Bagaimana saya bisa memastikan keacakan di TFF sesuai dengan harapan saya?

Karena TFF telah menggabungkan komputasi ke dalam intinya, penulis TFF tidak boleh mengambil kendali atas di mana dan bagaimana TensorFlow Session dimasukkan, atau run dalam sesi tersebut. Semantik keacakan dapat bergantung pada masuk dan keluarnya TensorFlow Session jika seed disetel. Kami merekomendasikan penggunaan kewajaran gaya TensorFlow 2, misalnya menggunakan tf.random.experimental.Generator pada TF 1.14. Ini menggunakan tf.Variable untuk mengelola keadaan internalnya.

Untuk membantu mengelola ekspektasi, TFF mengizinkan TensorFlow yang diserialisasikan untuk memiliki kumpulan seed tingkat operasi, tetapi bukan seed tingkat grafik. Hal ini karena semantik benih tingkat operasi harus lebih jelas dalam pengaturan TFF: urutan deterministik akan dihasilkan pada setiap pemanggilan fungsi yang dibungkus sebagai tf_computation , dan hanya dalam pemanggilan ini jaminan apa pun yang dibuat oleh pembuat nomor pseudorandom akan berlaku. . Perhatikan bahwa ini tidak persis sama dengan semantik pemanggilan tf.function dalam mode bersemangat; TFF secara efektif masuk dan keluar dari tf.Session unik setiap kali tf_computation dipanggil, sedangkan pemanggilan fungsi berulang kali dalam mode bersemangat sama dengan pemanggilan sess.run pada tensor keluaran berulang kali dalam sesi yang sama.

Bagaimana saya bisa berkontribusi?

Lihat README , pedoman kontribusi , dan kolaborasi .

Apa hubungan antara FedJAX dan Federasi TensorFlow?

TensorFlow Federated (TFF) adalah kerangka kerja lengkap untuk pembelajaran dan analisis gabungan yang dirancang untuk memfasilitasi penyusunan berbagai algoritme dan fitur, dan untuk memungkinkan porting kode di berbagai skenario simulasi dan penerapan. TFF menyediakan runtime yang dapat diskalakan dan mendukung banyak algoritma privasi, kompresi, dan pengoptimalan melalui API standarnya. TFF juga mendukung banyak jenis penelitian FL , dengan kumpulan contoh dari makalah Google yang dipublikasikan dan muncul di repo penelitian Google .

Sebaliknya, FedJAX adalah pustaka simulasi ringan berbasis Python dan JAX yang berfokus pada kemudahan penggunaan dan pembuatan prototipe cepat algoritma pembelajaran gabungan untuk tujuan penelitian. TensorFlow Federated dan FedJAX dikembangkan sebagai proyek terpisah, tanpa mengharapkan portabilitas kode.