This directory contains a demo of Federated Learning using NVFlare.
To run the demo, first build XGBoost with the federated learning plugin enabled (see the README).
Install NVFlare (note that currently NVFlare only supports Python 3.8):
pip install nvflare
Prepare the data:
./prepare_data.sh
Start the NVFlare federated server:
./poc/server/startup/start.sh
In another terminal, start the first worker:
./poc/site-1/startup/start.sh
And the second worker:
./poc/site-2/startup/start.sh
Then start the admin CLI, using admin/admin
as username/password:
./poc/admin/startup/fl_admin.sh
In the admin CLI, run the following commands:
upload_app hello-xgboost
set_run_number 1
deploy_app hello-xgboost all
start_app all
Once the training finishes, the model file should be written into
./poc/site-1/run_1/test.model.json
and ./poc/site-2/run_1/test.model.json
respectively.
Finally, shutdown everything from the admin CLI:
shutdown client
shutdown server