adap / flower

Flower: A Friendly Federated AI Framework
https://flower.ai
Apache License 2.0
5.17k stars 885 forks source link

Did flower support PSI (Private Set Intersection) ? #1002

Open kaiwang0112006 opened 2 years ago

kaiwang0112006 commented 2 years ago

What is your question?

I'm wondering did flower support PSI, which is step for vertical federated learning. It would be nice to see an example of vertical federated learning also.

hei411 commented 2 years ago

Hi @kaiwang0112006!

Could you kindly provide us with more context for what you need PSI for? There are various protocols to achieve PSI, so it would be ideal if you could tell us how PSI is used for your experiments, together with the details of your experiment, e.g. how many clients, will there be a trusted third party, is there a particular protocol you want to execute?

e.g. Tensorflow encrypted supports the use of POND, a secret sharing protocol for two parties that require a trusted third party. https://alibaba-gemini-lab.github.io/docs/blog/tfe/

kaiwang0112006 commented 2 years ago

Hi @kaiwang0112006!

Could you kindly provide us with more context for what you need PSI for? There are various protocols to achieve PSI, so it would be ideal if you could tell us how PSI is used for your experiments, together with the details of your experiment, e.g. how many clients, will there be a trusted third party, is there a particular protocol you want to execute?

e.g. Tensorflow encrypted supports the use of POND, a secret sharing protocol for two parties that require a trusted third party. https://alibaba-gemini-lab.github.io/docs/blog/tfe/

Hi, @hei411 ,

First I have to clarify that I'm not an export on private computing, so I cannot provide the specific protocol to achieve PSI, or I should say any protocol is fine. To me, PSI is just a secure way to "merge" dataset from different hosts for vertical federated learning. The details of my experiment is that, host A have a dataset of 1100 samples containing sample id, feature1-10, and host B have a dataset of 1000 samples containing sample id, feature9-20 and label (training target). For centeral machine learning, They just merge their dataset to a dataset of 900 samples with feature1-20 and label and train a model. But to do vertical federated learning, they have to PSI to find their consistent sample id. Like this img

A trusted third party is not necessary. I think I can change my questiong to "Did flower support vertical federated learning and is there an example?". But it would be a duplicate question to issue 706

hei411 commented 2 years ago

If I am not mistaken, a PSI protocol is an extra stage before a normal federated learning protocol. Currently, the API of Flower allows you to modify the federated learning algorithm, but it is unable to add an extra arbitrary stage. I heard the developers are considering the possibility of providing an API that enables users to extend any FL protocol with extra stages, e.g. PSI.

BalticBytes commented 2 years ago

Any updates on Private Set Intersection support for FLWR?