Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Relational Federated Learning #3715

Open
JerryLead opened this issue Jul 4, 2024 · 0 comments
Open

Support Relational Federated Learning #3715

JerryLead opened this issue Jul 4, 2024 · 0 comments
Labels
feature request This issue or comment suggests an additional feature.

Comments

@JerryLead
Copy link

Describe the type of feature and its functionality.

Recently, we developed a generic framework named 'TablePuppet: A Generic Framework for Relational Federated
Learning' https://arxiv.org/pdf/2403.15839v1

This framework aims to support FL on SQL queries across databases. The source code is at https://github.com/jerrylead/tablepuppet

The abstract of this framework is as follows. Looking forward to further discussions about the integration into flower.

Current federated learning (FL) approaches view decentralized training data as a single table, divided among participants either horizontally (by rows) or vertically (by columns). However, these approaches are inadequate for handling distributed relational tables across databases. This scenario requires intricate SQL operations like joins and unions to obtain the training data, which is either costly or restricted by privacy concerns. This raises the question: can we directly run FL on distributed relational tables?

In this work, we formalize this problem as relational federated learning (RFL). We propose TablePuppet, a generic framework for RFL that decomposes the learning process into two steps: (1) learning over join (LoJ) followed by (2) learning over union (LoU). In a nutshell, LoJ pushes learning down onto the vertical tables being joined, and LoU further pushes learning down onto the horizontal partitions of each vertical table. TablePuppet incorporates computation/communication optimizations to deal with the duplicate tuples introduced by joins, as well as differential privacy (DP) to protect against both feature and label leakages. We demonstrate the efficiency of TablePuppet in combination with two widely-used ML training algorithms, stochastic gradient descent (SGD) and alternating direction method of multipliers (ADMM), and compare their computation/communication complexity. We evaluate the SGD/ADMM algorithms developed atop TablePuppet by training diverse ML models. Our experimental results show that TablePuppet achieves model accuracy comparable to the centralized baselines running directly atop the SQL results. Moreover, ADMM takes less communication time than SGD to converge to similar model accuracy.

Describe step by step what files and adjustments are you planning to include.

Adjustments:

  1. Support SQL queries like joins and unions.
  2. Support ADMM training algorithm.

Is there something else you want to add?

No response

@JerryLead JerryLead added the feature request This issue or comment suggests an additional feature. label Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request This issue or comment suggests an additional feature.
Projects
None yet
Development

No branches or pull requests

1 participant