Federated Research is a collection of research projects related to Federated Learning and Federated Analytics. Federated learning is an approach to machine learning where a shared global model is trained across many participating clients that keep their training data locally. Federated analytics is the practice of applying data science methods to the analysis of raw data that is stored locally on users’ devices.
Many of the projects contained in this repository use TensorFlow Federated (TFF), an open-source framework for machine learning and other computations on decentralized data. For an overview and introduction to TFF, please see the list of tutorials. For information on using TFF for research, see TFF for research.
The main purpose of this repository is for reproducing experimental results in related papers. None of the projects (or subfolders) here is intended to be a resusable framework or package.
- The recommended usage for this repository is to
git clone
and follow the instruction in each independent project to run the code, usually withbazel
.
There is a special module utils/
that is widely used as a dependency for
projects in this repository. Some of the functions in utils/
are in the
process of upstreaming to the
TFF package. However, utils/
is not promised to be a stable API and the code may change in any time.
- The recommended usage for
utils/
is to fork the necessary piece of code for your own research projects. - If you find
utils/
and maybe other projects helpful as a module that your projects want to depend on (and you accept the risk of depending on potentially unstable and unsupported code), you can usegit submodule
and add the module to your python path.
This repository contains Google-affiliated research projects related to federated learning and analytics. If you are working with Google collaborators and would like to feature your research project here, please review the contribution guidelines for coding style, best practices, etc.
We currently do not accept pull requests for this repository. If you have feature requests or encounter a bug, please file an issue to the project owners.
Please use GitHub issues
to communicate with project owners for requests and bugs. Add [project/folder name]
in the issue title so that we can easily find the best person to respond.
If you have questions related to TensorFlow Federated, please direct your questions to Stack Overflow using the tensorflow-federated tag.
If you would like more information on federated learning, please see the following introduction to federated learning. For a more in-depth discussion, see the following manuscripts
- Advances and Open Problems in Federated Learning for progress in federated learning and open problems.
- A Field Guide to Federated Optimization for practical considerations, and guidelines to simulation and experiments.
- Motley: Benchmarking Heterogeneity and Personalization in Federated Learning for personalization.
- How to DP-fy ML: A Practical Guide to Machine Learning with Differential Privacy for differential privacy.