Top 10 Coding Tools For Federated Learning

Federated Learning was introduced to collaboratively learn a shared prediction model while keeping all the training data on the device. This enabled machine learning developers to build pipelines that wouldn’t require to store the data in the cloud. The main drivers behind FL are privacy and confidentiality concerns, regulatory compliance requirements, as well as the practicality of moving data to one central learning location.

Here are a few libraries (mostly by OpenMined) for developers that can help in building federated learning systems for the edge devices.


syft.js library enables training and inference of an ML model inside a web browser. The developers can write the model and training plan in normal PyTorch and PySyft, and syft.js takes care of the rest. 


Sign up for your weekly dose of what's up in emerging technology.

Using syft.js looks something like this:

import * as tf from '@tensorflow/tfjs-core';

Download our Mobile App

import { Syft } from '@openmined/syft.js';

const worker = new Syft({ gridUrl, authToken, verbose: true });


Threepio makes it easy to translate commands between machine learning frameworks such as PyTorch, Tensorflow.js, and TensorFlow Python. It acts as a core component in PySyft and syft.js. 

Using this library one can convert commands from one deep learning framework to another. Threepio does this by scraping documentation of frameworks like PyTorch &TensorFlow and then mapping commands that it identifies as equivalent in all other frameworks. Threepio is currently available as a library in both Python and Javascript.


SwiftSyft makes it easy to train and inference PySyft models on iOS devices. This allows you to utilise training data located directly on the device itself, bypassing the need to send a user’s data to a central server.

PySyft FL Worker

This is more of a worker within a library. The team at OpenMined added a federated learning worker class within PySyft to take its place.


KotlinSyft is a library for performing federated learning on Android devices. KotlinSyft enables training and inference PySyft models on Android devices. This allows one to utilise training data located directly on the device itself, bypassing the need to send a user’s data to a central server. 

IBM Federated Learning

IBM federated learning is a Python framework for federated learning (FL) in an enterprise environment that provides a basic fabric for FL, to which advanced features can be added. It is not dependent on any specific machine learning framework and supports different learning topologies, e.g., a shared aggregator, and protocols.

The key design points of IBM federated learning are the ease of use for the machine learning professional, configurability to different computational environments – from data centers to edge devices – and extensibility. IBM federated learning comes with a large library of fusion algorithms for both DNNs and classic ML approaches, consisting of implementations of both common, published fusion algorithms as well as novel ones.

Federated CORE

Federated Core (FC) as an environment can be used to develop program logic that combines TensorFlow code with Federated Averaging – computing distributed sums, averages, and other types of distributed aggregations over a set of client devices.

TFF’s Federated Core provides researchers and practitioners with explicit control over the specific patterns of distributed communication while offering a flexible and extensible language for expressing distributed data flow algorithms, rather than a concrete set of implemented distributed training capabilities.


FATE-Board offers a suite of visualisation tools for FL modeling designed to understand models effectively. FATE-Board provides a visual way to probe models from which you can reshape and improve models efficiently.


FATE (Federated AI Technology Enabler) is an open-source project initiated by Webank’s AI Department to provide a secure computing framework to support the federated AI ecosystem.

KubeFATE enables federated learning jobs to run across public, private and hybrid cloud environments. KubeFATE supports the deployment of FATE via Docker Compose and Kubernetes. 

FATE Cloud

FATE Cloud is an Infrastructure for Building and Managing Federated Data Collaboration Network. It enables FATE to be managed in multi-cloud, forming a secure federated data network, designed to provide secure and compliant data cooperation solutions across or within organisations, and build an industrial-grade federated learning cloud service.


FATE-Serving is a high-performance, industrialised serving system for federated learning models, designed for production environments.

FATE-Serving offers the following:

  • High performance online Federated Learning algorithms
  • Federated Learning online inference pipeline
  • Dynamic loading federated learning models
  • Can serve multiple models, or multiple versions of the same model
  • Real-time inference using federated learning models
  • Support pre-processing, post-processing and data-access adapters for the production deployment

Check the OpenMined for more info on FL packages.

More Great AIM Stories

Ram Sagar
I have a master's degree in Robotics and I write about machine learning advancements.

AIM Upcoming Events

Conference, in-person (Bangalore)
Rising 2023 | Women in Tech Conference
16-17th Mar, 2023

Early Bird Passes expire on 10th Feb

Conference, in-person (Bangalore)
Data Engineering Summit (DES) 2023
27-28th Apr, 2023

3 Ways to Join our Community

Telegram group

Discover special offers, top stories, upcoming events, and more.

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Subscribe to our Daily newsletter

Get our daily awesome stories & videos in your inbox

Top BI tools for Mainframes

Without BI, organisations will not be able to dominate with data-driven decision-making but focus on experiences, intuition, and gut feelings.