This repository contains the codes for the publication:
[How to Recruit Clients for Federated Learning: Incentive Mechanism Design with Randomized Client Participation] B.Luo, Y. Feng, S. Wang, J. Huang, L. Tassiulas, “Incentive Mechanism Design for Unbiased Federated Learning with Randomized Client Participation”, accepted in Proc. IEEE International Conference on Distributed Computing Systems (ICDCS), 2023. https://doi.org/10.48550/arXiv.2304.07981 Our code is based on the code for fedavgpy and FedProx.
-
Turn on Wifi router
-
Connect to Wifi
-
Config Wifi
3.1. Open browser, and enter URL
3.2. PORT Management -> DHCP Setting
3.3.1. Scan devices under this wifi 3.3.2. Check device's connect by identity
3.3. VLAN: address binding
3.4.1. Address of server to a fix ip 3.4.2. Tips: fix ip of devices and note them
on server
python $MAIN --model server
on client
python $MAIN --model client
-
Preparation 1.1. add ssh-key, remove existing files, send latest code
sh prepare.sh
1.2. Generate data by following code and create
log/
folder. More help information could be found in FedProx.cd Stackelberg python data/synthetic/generate_synthetic.py python data/mnist/generate_random_niid.py python data/emnist/generate_random_niid.py
1.3. run
Pre.py
to fetch alpha for different dataset -
To compare benchmark, activate server
python main_bench.py --model server
To compare properties, activate serverpython main_property.py --model server
-
execute code on clients
3.1. Modify USERNAME, HOSTS and other parameters in
run.sh
and runsh run.sh
Notes:
1.In args
of Pre.py main_bench.py main_property.py
, you can modify following parameters to get different results
'dataset': dataset name
'test_num': test number
'C': cost
'budget': budget
'v': intrinsic value
'experiment_folder': folder to save result
'num_round': number of simulation
'alpha': alpha
Results in .json format contains global accuary, loss, time and other imformation.
2.Different dataset requires different parameters setting so that the solver can work sucessfully, e.g., too large cost on average may result in no solution(negative q) due to the constraint.