Now Reading
Top 10 Coding Tools For Federated Learning

Top 10 Coding Tools For Federated Learning

Ram Sagar

Download our Mobile App


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

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. 

Using syft.js looks something like this:

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

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

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


Stay Connected

Get the latest updates and relevant offers by sharing your email.

Threepio

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

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

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.

See Also
Federated Learning

FATE-Board

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.

Kube FATE

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

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.

What Do You Think?

If you loved this story, do join our Telegram Community.


Also, you can write for us and be one of the 500+ experts who have contributed stories at AIM. Share your nominations here.
What's Your Reaction?
Excited
1
Happy
0
In Love
0
Not Sure
0
Silly
0

Copyright Analytics India Magazine Pvt Ltd

Scroll To Top