IBM Federated Learning
Federated Learning provides the tools for training a model collaboratively, by using a federated set of secure data sources. The data sources are never moved or combined, but they each contribute to training and improving the quality of the common model.
Cloud open beta
This is a Cloud open preview and is not supported for use in production environments.
Federated Learning is appropriate for any situation where parties want to use their data without sharing their data. Users can load and train data sources in data centers from different countries and Cloud providers. They can do so either in application silos or any other scenario where regulatory or pragmatic considerations prevent users from centralizing data. For example, an aviation alliance might want to model how a global pandemic impacts airline delays. Each participating party in the federation can use their data to train a common model without ever moving or sharing their data, thus preserving data privacy and security and improves pragmatics. The resulting model can be deployed to provide more accurate predictions for scoring data to give each member of the alliance better results and insights.
Federated Learning provides the means to:
- Discover different parties for federation
- Configure and deploy a Federated Learning experiment
- Connect multiple parties to the aggregator of the experiment to share training results
When to use Federated Learning
Federated Learning allows secure model training for large enterprises when the training uses heterogeneous data from different sources. The focus is to enable sites with large volumes of data with different format, quality and constraints to be collected, cleaned, and trained on an enterprise scale. Another key feature is that Federated Learning can train large data sets without having to transfer that data to a centralized location, which reduces data privacy risk and computational complexity.
How Federated Learning works
This illustration shows how federated parties work at a lower-end level.
Figure 1: Given the query (Q), each party computes a reply (R) based on their own local data (D) which they send back to the aggregator, where results fuse together as a single Federated Learning model (F).
Federated Learning is meant for usage by multiple users to collaborate on training a model without sharing their data set.
- You (the admin) predefine the model training algorithms. starts the Federated Learning experiment and waits for the parties’ response. At this stage, the global model is a “blank” slate and untrained. All the model data is included in the query that is sent to the parties.
- Each participating party then trains their local data set to compute a reply to send back to the admin.
- After the party finishes the training, a reply is sent to the aggregator to update the global model based on training results. The model training for each party is done locally and data is not shared during computation at any time.
- The aggregator that starts with the Federated Learning experiment receives and manages X replies from X parties.
- The aggregator fuses the results together into a global model. There are various fusion methods that the admin can choose, as basic as congruent weights for all replies, different weights for each reply, or with SPAHM for unsupervised learning.
- After training is complete, the model is the same as other machine learning models. You can view its accuracy and deploy the model.
Terminology
- Admin: The user that configures the Federated Learning experiment to specify how many parties are allowed, which frameworks to use, and sets up the Remote Training System. They start the Federated Learning experiment and see it to the end.
- Party: Also called agents, they represent separate users that contribute different sources of data to train collaboratively. Federated Learning ensures that the training occurs with no raw data usage that transgresses data security across the different parties.
- Aggregator: The aggregator fuses the model results between the parties to build one model.
- Fusion method: The algorithm that is used to combine the results that the parties return. A training algorithm for federated learning usually contains two parts:
- A fusion module on the aggregator side issues queries to parties, and fuse the
ModelUpdatesent by the parties to update the global model within each round. - A local training module on the party side to start operations such as to train local models, update, and construct a
ModelUpdatebased on the most recent local model parameters, or party’s metrics.
- A fusion module on the aggregator side issues queries to parties, and fuse the
- Data handler: In IBM Federated Learning, data handlers are used to load and pre-process data. It also helps to ensure that data that is collected from multiple sources are formatted uniformly to be trained.
- Remote Training System: An asset that stores a connection to a remote server that hosts data contribution from a party.
How to use Federated Learning
If you want a step-by-step guide on how to run Federated Learning, see the Federated Learning Tutorial.
See Creating the Federated Learning experiment for high-level steps on how to get started with Federated Learning.
Additional resources
- See a video for more details on how Federated Learning works: Federated Learning overview
- Federated Learning provides a list of helper functions to facilitate the data preparation process. See the API documentation to learn more about using Federated Learning APIs.
- Interested in Providing Feedback? Complete a survey here.