Skip to content
/ FedKit Public
forked from FedCampus/FedKit

Mobile Federated Learning & Federated Analytics development kit for FedCampus

License

Notifications You must be signed in to change notification settings

21thinh/FedKit

 
 

Repository files navigation

FedKit

Federated Learning (FL) and Federated Analytics (FA) development kit for FedCampus.

This repository contains the libraries used to implement the FL and FA functionalities of the FedCampus app.

Architecture

Backend

The backend server uses Django REST Framework to provide persistent service and on-demand, backend-configurable training.

The FL training steps are supported using the Flower FL framework. Flower servers use gRPC, and are spawned on-demand by the backend server.

Located at backend/. Please see backend/README.md for information on how to set up the backend server.

Mobile clients

Android client

The Android client package and demo is located at client/.

To try out the Android client, please see client/README.md.

To use the library in this repository to implement custom Android Flower clients, please see client/fedcampus/README.md.

iOS client

  • Training using Flower.
  • Communication with the Backend.

ML model generation

We support TensorFlow (Keras) models.

ML model for Android

The ML model generation script for Android is located at gen_tflite/. Please see gen_tflite/README.md for information on how to create models and convert them to .tflite files.

Training procedure

  1. Client asks backend what which model to use based on its data_type.
  2. Client downloads that model if it does not have it.
  3. Client asks backend for a Flower server to train with that model.

Development

Development on Python code

  • Use Python3.10 or above.
  • Install dependencies using requirements.txts.

Contributing

Please see CONTRIBUTING.md for FedCampus.

History

This repository is moved from dyn_flower_android_drf to FedKit. Please see the older Git history in the former repository.

About

Mobile Federated Learning & Federated Analytics development kit for FedCampus

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 51.8%
  • Python 39.8%
  • Dart 6.7%
  • Swift 1.2%
  • Shell 0.4%
  • Dockerfile 0.1%