TLDR; We made this as a tool for developers who want to train models on decentralized datasets (e.g. user generated datasets from smartphones) because we didn't see any alternatives out there.
Federated learning has recently emerged as an important setting for training machine learning models. In the fed- erated setting, training data is distributed across a large number of edge devices, such as consumer smartphones, personal computers, or smart home devices. These devices have data that is useful for training a variety of models – for text prediction, speech modeling, facial recognition, document identification, and other tasks. However, data privacy, liability, or regulatory concerns may make it difficult to move this data to the cloud for training. Even without these concerns, training machine learning models in the cloud can be expensive, and an effective way to train the same models on the edge has the potential to eliminate this expense.
When training machine learning models in the federated setting, participating clients do not send their local data to a central server; instead, a central aggregator coordinates an optimization procedure among the clients. At each iteration of this procedure, clients compute gradient updates to the current model based on their local data using SGD, and they communicate only these updates to a central aggregator.
Our service provides an SDK to implement the federated learning routine in any application that interfaces with user data, whether on mobile, web or in the datacenter. It's fully open-source, and starting a sample project is free! Check it out and please provide feedback as we're always looking to improve.