From d20f4cc52986155edc53263a68f3af94cd4383eb Mon Sep 17 00:00:00 2001 From: Chester Chen <512707+chesterxgchen@users.noreply.github.com> Date: Tue, 4 Feb 2025 08:45:21 -0800 Subject: [PATCH 1/9] self-paced-training: chapter 3 (#3160) Fixes # . ### Description A few sentences describing the changes proposed in this pull request. ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --------- Co-authored-by: Ziyue Xu --- .../01.0_introduction/introduction.ipynb | 0 .../code/data/download.py | 0 .../code/fl_job.py | 0 .../code/img/cifar10.png | Bin .../code/log_config.json | 6 + .../code/requirements.txt | 0 .../code/src/client.py | 13 - .../code/src/network.py | 0 .../runing_pytorch_fl_job.ipynb | 37 +- .../setup.ipynb | 36 +- .../code/src/client.py | 0 .../code/src/client_origin.py | 0 .../code/src/client_v1.py | 0 .../code/src/network.py | 0 .../convert_dl_to_fl.ipynb | 0 .../code/data/download.py | 0 .../code/fl_job.py | 0 .../code/requirements.txt | 0 .../code/src/client.py | 0 .../code/src/fedavg_v0.py | 0 .../code/src/fedavg_v1.py | 0 .../code/src/fedavg_v2.py | 0 .../code/src/network.py | 0 .../customize_server_logics.ipynb | 0 .../code/data/download.py | 0 .../code/fl_job.py | 0 .../code/requirements.txt | 0 .../code/src/client.py | 0 .../code/src/fedavg.py | 0 .../code/src/fl_job.py | 0 .../code/src/network.py | 0 .../customize_client_training.ipynb | 0 .../experiment_tracking.ipynb | 0 .../mlflow/mnlflow.ipynb} | 0 .../tensorboard/tensorboard.ipynb} | 0 .../01.1.6.1_understanding_fl_job.ipynb | 0 .../code/data/download.py | 0 .../code/fl_job.py | 0 .../code/fl_job_config.py | 0 .../code/img/cifar10.png | Bin .../code/requirements.txt | 0 .../code/src/client.py | 0 .../code/src/fedavg.py | 0 .../code/src/network.py | 0 .../01.7_recap/recap.ipynb | 2 +- .../02.0_introduction/introduction.ipynb | 0 ...federated_statistics_with_image_data.ipynb | 0 ...derated_statistics_with_tabular_data.ipynb | 0 .../convert_torch_lightning_to_dl.ipynb | 0 .../convert_lr_to_fl.ipynb | 0 .../convert_kmeans_to_fl.ipynb | 0 .../convert_survival_analysis_to_fl.ipynb | 0 .../02.4_client_api/Client_api.ipynb | 0 .../02.5_recap/recap.ipynb | 0 .../part_1_introduction.ipynb | 4 +- .../controller_executor_no_filter.png | Bin 0 -> 24290 bytes .../controller_worker_flow.png | Bin 0 -> 58043 bytes .../03.0_introduction/introduction.ipynb | 165 ++++++- .../fci.png | Bin 0 -> 108602 bytes .../federated_computing_architecture.ipynb | 33 -- .../flare_overview.png | Bin 0 -> 416069 bytes .../system_architecture.ipynb | 263 ++++++++++ .../system_architecture.png | Bin 0 -> 50636 bytes .../code/data/download.py | 60 +++ .../03.2_deployment_simulation/code/fl_job.py | 64 +++ .../code/requirements.txt | 3 + .../code/src/client.py | 193 ++++++++ .../code/src/fedavg.py | 158 ++++++ .../code/src/fl_job.py | 64 +++ .../code/src/network.py | 37 ++ .../simulate_real_world_deployment.ipynb | 417 +++++++++++++++- .../ ways_to_interact_with_fl_system.ipynb | 434 +++++++++++++++++ ....3.0 ways_to_interact_with_fl_system.ipynb | 33 -- ...03.3.1_interaction_via_admin_console.ipynb | 33 -- ...2_interaction_system_with_python_api.ipynb | 33 -- .../03.3.3_Interaction_with_cli.ipynb | 33 -- .../admin_console.png | Bin 0 -> 186979 bytes ...afana_plot_metrics_heatbeat_time_taken.png | Bin 0 -> 175869 bytes .../grafana_plot_metrics_view_task_count.png | Bin 0 -> 120067 bytes .../figures/setup-1.png | Bin 0 -> 137583 bytes .../figures/setup-2.png | Bin 0 -> 40858 bytes .../figures/setup-3.png | Bin 0 -> 46096 bytes .../figures/statsd_export_metrics_view.png | Bin 0 -> 385212 bytes .../03.4_system_monitoring/job_example.ipynb | 455 ++++++++++++++++++ .../jobs/data/download.py | 60 +++ .../jobs/edit_site_local_resources.py | 139 ++++++ .../jobs/prepare_local_config.sh | 4 + .../jobs/requirements.txt | 4 + .../jobs/setup-1/code/fl_job.py | 90 ++++ .../jobs/setup-1/code/src/client.py | 193 ++++++++ .../jobs/setup-1/code/src/network.py | 37 ++ .../jobs/setup-1/code/src/server.py | 149 ++++++ .../jobs/setup-1/code/submit_job.sh | 8 + .../jobs/setup-2/code/data/download.py | 60 +++ .../jobs/setup-2/code/fl_job.py | 96 ++++ .../jobs/setup-2/code/src/client.py | 193 ++++++++ .../jobs/setup-2/code/src/network.py | 37 ++ .../jobs/setup-2/code/src/server.py | 149 ++++++ .../jobs/setup-2/code/submit_job.sh | 8 + .../setup/docker-compose.yml | 45 ++ .../provisioning/datasources/datasources.yaml | 8 + .../setup/prometheus.yml | 9 + .../system_monitorinig.ipynb | 415 +++++++++++++++- .../03.5_recap/recap.ipynb | 18 +- .../provision_and_run_with_dockers.ipynb | 0 .../provision_and_run_with_k8s.ipynb | 0 .../{04.7_recap => 04.8_recap}/recap.ipynb | 0 .../part-2_introduction.ipynb | 8 +- 108 files changed, 4046 insertions(+), 260 deletions(-) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.0_introduction/introduction.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/code/data/download.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/code/fl_job.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/code/img/cifar10.png (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/code/log_config.json (90%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/code/requirements.txt (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration => chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job}/code/src/client.py (89%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/code/src/network.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb (70%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.1_running_federated_learning_job/setup.ipynb (84%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.2_convert_deep_learning_to_federated_learning/code/src/client.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.2_convert_deep_learning_to_federated_learning/code/src/client_origin.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.2_convert_deep_learning_to_federated_learning/code/src/client_v1.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.2_convert_deep_learning_to_federated_learning/code/src/network.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.2_convert_deep_learning_to_federated_learning/convert_dl_to_fl.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/data/download.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/fl_job.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/requirements.txt (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/src/client.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/src/fedavg_v0.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/src/fedavg_v1.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/src/fedavg_v2.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/code/src/network.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.3_customize_server_logics/customize_server_logics.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/data/download.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/fl_job.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/requirements.txt (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/src/client.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/src/fedavg.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/src/fl_job.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/code/src/network.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.4_customize_client_training/customize_client_training.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.5_experiment_tracking/experiment_tracking.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb => chapter-1_running_federated_learning_applications/01.5_experiment_tracking/mlflow/mnlflow.ipynb} (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications/02.4_client_api/Client_api.ipynb => chapter-1_running_federated_learning_applications/01.5_experiment_tracking/tensorboard/tensorboard.ipynb} (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/01.1.6.1_understanding_fl_job.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/data/download.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/fl_job.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/fl_job_config.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/img/cifar10.png (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/requirements.txt (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job => chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration}/code/src/client.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/src/fedavg.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.6_job_structure_and_configuration/code/src/network.py (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-1_running_federated_learning_applications => chapter-1_running_federated_learning_applications}/01.7_recap/recap.ipynb (98%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.0_introduction/introduction.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.1_federated_statistics/0federated_statistics_with_image_data/federated_statistics_with_image_data.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.1_federated_statistics/federated_statistics_with_tabular_data/federated_statistics_with_tabular_data.ipynb (100%) create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.3_convert_machine_learning_to_federated_learning/02.3.2_convert_kmeans_to_federated_learning/convert_kmeans_to_fl.ipynb (100%) rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb (100%) create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.4_client_api/Client_api.ipynb rename examples/tutorials/self-paced-training/part-1_federated_learning_introduction/{Chapter-2_develop_federated_learning_applications => chapter-2_develop_federated_learning_applications}/02.5_recap/recap.ipynb (100%) create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/controller_executor_no_filter.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/controller_worker_flow.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/fci.png delete mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/federated_computing_architecture.ipynb create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/flare_overview.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/system_architecture.ipynb create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/system_architecture.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/data/download.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/fl_job.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/requirements.txt create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/client.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fedavg.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fl_job.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/network.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/ ways_to_interact_with_fl_system.ipynb delete mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.0 ways_to_interact_with_fl_system.ipynb delete mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.1_interaction_via_admin_console.ipynb delete mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.2_interaction_system_with_python_api.ipynb delete mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.3_Interaction_with_cli.ipynb create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/admin_console.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/grafana_plot_metrics_heatbeat_time_taken.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/grafana_plot_metrics_view_task_count.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/setup-1.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/setup-2.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/setup-3.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/statsd_export_metrics_view.png create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/job_example.ipynb create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/data/download.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/edit_site_local_resources.py create mode 100755 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/prepare_local_config.sh create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/requirements.txt create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/fl_job.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/client.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/network.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/server.py create mode 100755 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/submit_job.sh create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/data/download.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/fl_job.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/client.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/network.py create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/server.py create mode 100755 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/submit_job.sh create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/docker-compose.yml create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/grafana/provisioning/datasources/datasources.yaml create mode 100644 examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/prometheus.yml rename examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/{04.3_provision_and_run_with_docker => 04.4_provision_and_run_with_docker}/provision_and_run_with_dockers.ipynb (100%) rename examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/{04.4_provision_and_run_with_k8s => 04.7_provision_and_run_with_k8s}/provision_and_run_with_k8s.ipynb (100%) rename examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/{04.7_recap => 04.8_recap}/recap.ipynb (100%) diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/data/download.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/data/download.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/data/download.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/data/download.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/fl_job.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/fl_job.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/fl_job.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/img/cifar10.png b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/img/cifar10.png similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/img/cifar10.png rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/img/cifar10.png diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/log_config.json b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/log_config.json similarity index 90% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/log_config.json rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/log_config.json index e5732b4950..240e9616eb 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/log_config.json +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/log_config.json @@ -73,6 +73,12 @@ "root": { "level": "INFO", "handlers": ["consoleHandler", "logFileHandler", "errorFileHandler", "jsonFileHandler", "FLFileHandler"] + }, + "nvflare.app_opt.pt.client_api_launcher_executor.PTClientAPILauncherExecutor": { + "level": "ERROR" + }, + "nvflare.app_opt.pt.in_process_client_api_executor.PTInProcessClientAPIExecutor": { + "level": "ERROR" } } } diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/requirements.txt similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/requirements.txt rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/requirements.txt diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/client.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/client.py similarity index 89% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/client.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/client.py index a0a43648ba..2ff47ab277 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/client.py +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/client.py @@ -104,19 +104,6 @@ def main(): flare.send(output_model) - print( - f"\n" - f"Result Summary\n" - " Training parameters:\n" - " number of clients = 5\n" - f" round = {round + 1},\n" - f" batch_size = {batch_size},\n" - f" epochs = {epochs},\n" - f" lr = {lr},\n" - f" total data batches = {n_loaders},\n" - f" Metrics: last_loss = {last_loss}\n" - ) - if __name__ == "__main__": main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/network.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/network.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/network.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/network.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb similarity index 70% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb index e641367c31..87e84f39c9 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/runing_pytorch_fl_job.ipynb @@ -39,47 +39,20 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "951d0fe6", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/chester/projects/NVFlare/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/chester/.local/lib/python3.10/site-packages/IPython/core/magics/osm.py:417: UserWarning: This is now an optional IPython functionality, setting dhist requires you to install the `pickleshare` library.\n", - " self.shell.db['dhist'] = compress_dhist(dhist)[-100:]\n" - ] - } - ], + "outputs": [], "source": [ "%cd code " ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "ecc3a0cc", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Traceback (most recent call last):\n", - " File \"/home/chester/projects/NVFlare/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/fl_job.py\", line 17, in \n", - " from nvflare.app_opt.pt.job_config.fed_avg import FedAvgJob\n", - "ModuleNotFoundError: No module named 'nvflare'\n" - ] - } - ], + "outputs": [], "source": [ "! python3 fl_job.py" ] @@ -125,7 +98,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "nvflare_env", "language": "python", "name": "python3" }, diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/setup.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/setup.ipynb similarity index 84% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/setup.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/setup.ipynb index 770844b12a..bbf9a7e923 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/setup.ipynb +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/setup.ipynb @@ -104,20 +104,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "87a13909", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "100.0%\n", - "Extracting /tmp/nvflare/data/cifar10/cifar-10-python.tar.gz to /tmp/nvflare/data/cifar10\n", - "Files already downloaded and verified\n" - ] - } - ], + "outputs": [], "source": [ "!python3 code/data/download.py" ] @@ -132,28 +122,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "08bbe572", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[01;34m/tmp/nvflare/data/cifar10/cifar-10-batches-py/\u001b[0m\n", - "├── \u001b[00mbatches.meta\u001b[0m\n", - "├── \u001b[00mdata_batch_1\u001b[0m\n", - "├── \u001b[00mdata_batch_2\u001b[0m\n", - "├── \u001b[00mdata_batch_3\u001b[0m\n", - "├── \u001b[00mdata_batch_4\u001b[0m\n", - "├── \u001b[00mdata_batch_5\u001b[0m\n", - "├── \u001b[00mreadme.html\u001b[0m\n", - "└── \u001b[00mtest_batch\u001b[0m\n", - "\n", - "0 directories, 8 files\n" - ] - } - ], + "outputs": [], "source": [ "!tree /tmp/nvflare/data/cifar10/cifar-10-batches-py/" ] diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_origin.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_origin.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_origin.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_origin.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_v1.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_v1.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_v1.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/client_v1.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/network.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/network.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/network.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/code/src/network.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/convert_dl_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/convert_dl_to_fl.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/convert_dl_to_fl.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.2_convert_deep_learning_to_federated_learning/convert_dl_to_fl.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/data/download.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/data/download.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/data/download.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/data/download.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/fl_job.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/fl_job.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/fl_job.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/requirements.txt similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/requirements.txt rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/requirements.txt diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/client.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/client.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/client.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/client.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v0.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v0.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v0.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v0.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v1.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v1.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v1.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v1.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v2.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v2.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v2.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/fedavg_v2.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/network.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/network.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/network.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/code/src/network.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/customize_server_logics.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/customize_server_logics.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.3_customize_server_logics/customize_server_logics.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.3_customize_server_logics/customize_server_logics.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/data/download.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/data/download.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/data/download.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/data/download.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/fl_job.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/fl_job.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/fl_job.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/requirements.txt similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/requirements.txt rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/requirements.txt diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/client.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/client.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/client.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/client.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fedavg.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fedavg.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fedavg.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fedavg.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fl_job.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fl_job.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/fl_job.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/network.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/network.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/network.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/code/src/network.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/customize_client_training.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/customize_client_training.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.4_customize_client_training/customize_client_training.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.4_customize_client_training/customize_client_training.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.5_experiment_tracking/experiment_tracking.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.5_experiment_tracking/experiment_tracking.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.5_experiment_tracking/experiment_tracking.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.5_experiment_tracking/experiment_tracking.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.5_experiment_tracking/mlflow/mnlflow.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.5_experiment_tracking/mlflow/mnlflow.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.4_client_api/Client_api.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.5_experiment_tracking/tensorboard/tensorboard.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.4_client_api/Client_api.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.5_experiment_tracking/tensorboard/tensorboard.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/01.1.6.1_understanding_fl_job.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/01.1.6.1_understanding_fl_job.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/01.1.6.1_understanding_fl_job.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/01.1.6.1_understanding_fl_job.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/data/download.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/data/download.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/data/download.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/data/download.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job_config.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job_config.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job_config.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/fl_job_config.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/img/cifar10.png b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/img/cifar10.png similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/img/cifar10.png rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/img/cifar10.png diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/requirements.txt similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/requirements.txt rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/requirements.txt diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/client.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/client.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.1_running_federated_learning_job/code/src/client.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/client.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/fedavg.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/fedavg.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/fedavg.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/fedavg.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/network.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/network.py similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/network.py rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.6_job_structure_and_configuration/code/src/network.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.7_recap/recap.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.7_recap/recap.ipynb similarity index 98% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.7_recap/recap.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.7_recap/recap.ipynb index 595a35d473..640b47c170 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.7_recap/recap.ipynb +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-1_running_federated_learning_applications/01.7_recap/recap.ipynb @@ -42,7 +42,7 @@ "Each section is designed to provide comprehensive guidance and practical examples to help you implement and customize federated learning in your applications. For detailed instructions and examples, refer to the respective notebooks linked in each section.\n", "\n", "\n", - "Now let's move on to the [Chapter 2](../../Chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb\n", + "Now let's move on to the [Chapter 2](../../chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb\n", ")" ] }, diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.1_federated_statistics/0federated_statistics_with_image_data/federated_statistics_with_image_data.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.1_federated_statistics/0federated_statistics_with_image_data/federated_statistics_with_image_data.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.1_federated_statistics/0federated_statistics_with_image_data/federated_statistics_with_image_data.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.1_federated_statistics/0federated_statistics_with_image_data/federated_statistics_with_image_data.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.1_federated_statistics/federated_statistics_with_tabular_data/federated_statistics_with_tabular_data.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.1_federated_statistics/federated_statistics_with_tabular_data/federated_statistics_with_tabular_data.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.1_federated_statistics/federated_statistics_with_tabular_data/federated_statistics_with_tabular_data.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.1_federated_statistics/federated_statistics_with_tabular_data/federated_statistics_with_tabular_data.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.2_convert_kmeans_to_federated_learning/convert_kmeans_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.2_convert_kmeans_to_federated_learning/convert_kmeans_to_fl.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.2_convert_kmeans_to_federated_learning/convert_kmeans_to_fl.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.2_convert_kmeans_to_federated_learning/convert_kmeans_to_fl.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.4_client_api/Client_api.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.4_client_api/Client_api.ipynb new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.5_recap/recap.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.5_recap/recap.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-1_federated_learning_introduction/Chapter-2_develop_federated_learning_applications/02.5_recap/recap.ipynb rename to examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.5_recap/recap.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/part_1_introduction.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/part_1_introduction.ipynb index 5c44122bf5..bf2e5b6589 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/part_1_introduction.ipynb +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/part_1_introduction.ipynb @@ -18,9 +18,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "[Chapter 1.1: Running federated learning applications](./Chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb)\n", + "[Chapter 1.1: Running federated learning applications](./chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb)\n", "\n", - "[Chapter 1.2: Develop federated learning applications](./Chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb)\n" + "[Chapter 1.2: Develop federated learning applications](./chapter-2_develop_federated_learning_applications/02.0_introduction/introduction.ipynb)\n" ] }, { diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/controller_executor_no_filter.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/controller_executor_no_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..ff4f17c15ade81584c2880315551ac72d9dcf6a7 GIT binary patch literal 24290 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 RUj>~w@9FC2vd$@?2>_@bz~2A> literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/controller_worker_flow.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/controller_worker_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..5deac70f5aeea723f369535281a0e560fda1f1d6 GIT binary patch literal 58043 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¥Qpk@!m3_Mt<(XyK%|g;#a=i%2!?bpLJJu zzmi8MR6Cje)Ok2~wbrcZ zt=MRQyNYK``B*y9p!{};$86qMhc&#S7venhFT9rCju$_Fz&N2BK#p^_+PYm&zK z-i%fP8R?*+D6Bh%@W%2BBlSOxw5pTB-)0}aWG3vhL=rRecu z`v;7MP3?L^9=8(um_%7RU~e6fb;?Z)E_vF9SZGPY)jRdz=P(X(*P89V6jALx(!gCUpI+^UrjpI>iBc=dg_P};{Zd!j()mDm*(*8KS1?*V_WN-p?Y z2;_~BCcr+qy1X6mZm^Ry@K{v+X)bf=B9mx3&G%5BLZ6LlWKO==B_*JdH&7aO{x zDtz`vz5Y`Ci2kd%0J9{8KKY=>I${>YXY?(9o!iVY*VnP?fl*0MBzWj)hML32i;W*J znn>8{@6~WQJuFIgzoMXFdGPn8ffB583ul5CwT8w_tLI`m!`n1ZRgMns*GNXJcrJ8D zAPRQz&|9&(phdG74_;l@$+>}`#q5Q=#7}vpuMRa0iZ`8Yb=OM-=1vk3U16^EDM+`Z zZU2(b0e2}HL7kAOS1=(nu%zIm8^@Tk`+Ocw%P8o1#vQPGckvJ!hOm_wiMJzTu=%j2 z+Y&d+k+C;$$D+-#zj~SBCT~WlE4Wp!`WM%J+J9~Z zx0VSzH(u6vy-?YA>Z-sSemp_9 z7;I70W2rRj_9(if4&Oj?o0ftvnk)l@^_?1-_-8Ae?y-D^{visE8Jtf}kJhdU;v_RX z9Ck6AA)L+7JlpPR_V97PMY-bXMr2pPy_2PonHr>@Z7O%DW*?~JzOP}wDy^cfo^eS# zlQKaFk_W2I#j;(##r7UYQ-GE#vdRul!G-yf$w=p!YqL_`R;2DD*Hv^gv-7uJU4HI= zX;}J_HXpo}SABZ+tMxgU3ptq1>vepad`G*7fE#zx(c<4>e_~3wGDk|sp64(A zquPe-Ntp;TKc0wjzUa5^L?c|K@AEI|u%$U;xb+@QO7ly=2MnG?j7!?^B<`JV^1Gt< z(p19sNFH-kh1r`BU0>ZV9MV*T_kS-Z@KT4hN{ptsLQ;iR{MU`YhthK}dQXs_{3j3n zU=mqI!N1lUk!rG@zx_?qK@AHRAVMbbA^-iK^Xc)w{BQB*9WFO_M0}lM`A*%aVLb9s O9!fvHpLfsT@BagUMgT$p literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/introduction.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/introduction.ipynb index 09e2c4404e..82509ddce4 100644 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/introduction.ipynb +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.0_introduction/introduction.ipynb @@ -1,11 +1,170 @@ { "cells": [ { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "id": "397e8d18-2aab-4aa4-b186-68e8acbfc71a", "metadata": {}, - "outputs": [], + "source": [ + "# NVIDIA FLARE's Federated Computing Platform\n", + "\n", + "In this chapter, we will overview the core concepts and system architecture of NVIDIA FLARE (NVFlare). We will explore different aspects of the NVFlare system, simulate deployment, and learn how to interact with the system.\n", + "\n", + "## Federated Learning vs. Federated Computing\n", + "\n", + "At its core, FLARE serves as a federated computing framework, with applications such as Federated Learning and Federated Analytics built upon this foundation. Notably, it is agnostic to datasets, workloads, and domains. Unlike centralized data lake solutions that require copying data to a central location, FLARE brings computing capabilities directly to distributed datasets. This approach ensures that data remains within the compute node, with only pre-approved, selected results shared among collaborators. Moreover, FLARE is system agnostic, offering easy integration with various data processing frameworks through the implementation of the FLARE client. This client facilitates deployment in sub-processes, Docker containers, Kubernetes pods, HPC, or specialized systems.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "29e73876", + "metadata": {}, + "source": [ + "## Core Concepts\n", + "\n", + "In NVIDIA FLARE (NVFlare), there are a few core concepts:\n", + "\n", + "* Server-side component: Controller\n", + "* Client-side component: Executor\n", + "* Communication message: Shareable\n", + "* Filtering mechanism\n", + "* Building Block: FLComponent\n", + "* Job\n", + "\n", + "In Part 1, we only encountered Job. We will discuss the rest in this section.\n", + "\n", + "### Controller\n", + "\n", + "The controller is the object that defines the logic for the clients to follow. The controller API makes it possible to create any client coordination logic in a federated learning workflow.\n", + "\n", + "In other words, the controller defines the workflow: i.e., how the federated execution will be carried out. For example, whether the execution is in a round-robin style or scatter & gather style is defined by the controller.\n", + "\n", + "The controller, in most cases, is executed on the FL server. Some refer to this as the server strategy. The controller can also be executed on the client side (referred to as client-side-controller). This can be used to define peer-to-peer styles of workflow, such as swarm learning.\n", + "\n", + "### Executor\n", + "\n", + "The Executor is the object that defines the logic to execute on the client side. It handles the tasks defined by the Controller and responds back to the task requests.\n", + "\n", + "The interaction between the Controller and Executor can be found in the following picture:\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "abe8109c", + "metadata": {}, + "source": [ + "### Shareable \n", + "\n", + "A [Shareable](https://nvflare.readthedocs.io/en/main/programming_guide/shareable.html) object represents communication between the server and client. Technically, a Shareable object is implemented as a Python dict. This dict contains two kinds of information:\n", + "* Header \n", + " * Peer Properties\n", + " * Cookie \n", + " * Return code\n", + "* Content\n", + "\n", + "In other words, a Shareable is nothing but a dictionary with some metadata information.\n" + ] + }, + { + "cell_type": "markdown", + "id": "51e9e4fa", + "metadata": {}, + "source": [ + "The Controller and Executor exchange Shareable\n", + "\n", + "\"Controller\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "187ed5ee", + "metadata": {}, + "source": [ + "### Filters\n", + "\n", + "NVIDIA FLARE also introduces a filtering mechanism to allow users to limit the input & outputs. Filters in NVIDIA FLARE are a way to transform the Shareable object between the communicating parties. A [Filter](https://nvflare.readthedocs.io/en/main/programming_guide/filters.html) can be used to provide additional processing to shareable data before sending or after receiving from the peer.\n", + "\n", + "\"Controller\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "fd3c8200", + "metadata": {}, + "source": [ + "### FLComponent\n", + "\n", + "NVIDIA FLARE is built with components. FLComponent is the building block of all components (Base Class). Controller, Executor, Filter, and Shareable are all types of FLComponent.\n", + "\n", + "The core property of FLComponent is event support. FLComponent is able to fire and receive events, enabling the FLARE system to be an event-driven, pluggable system.\n", + "\n", + "### FLContext\n", + "One of the most important features of NVIDIA FLARE is ```nvflare.apis.fl_context``` to pass data between the FL components. FLContext is available to every method of all FLComponent types (Controller, Aggregator, Filter, Executor).\n", + "\n", + "\n", + "Through the FL Context, the component developer can:\n", + "\n", + "* Get services provided by the underlying infrastructure\n", + "\n", + "* Share data with other components of the FL system, even including components in the peer endpoints (between server and clients)\n", + "\n", + "FLContext can be thought of as a Python dictionary that stores key/value pairs. Data items stored in FLContext are called properties, or props for short. Props have two attributes: visibility and stickiness.\n", + "\n", + "\n", + "### Events\n", + "\n", + "NVIDIA FLARE fires and manages events in the lifecycle of the system. There are two categories of event types: Local Event and Fed Event.\n", + "\n", + "Both client and server have local events for their respective system activities. The client's local event can also be converted to a \"Fed Event,\" which means the event will propagate and fire on the server side.\n" + ] + }, + { + "cell_type": "markdown", + "id": "2afae41d", + "metadata": {}, + "source": [ + "## High-Level Concepts\n", + "\n", + "Although understanding these core concepts will enable FLARE users to build powerful federated computing algorithms, some data scientists may prefer higher-level constructs.\n", + "\n", + "NVFLARE also introduced a few concepts to reduce the learning curve.\n", + "\n", + " * FLModel -- higher-level communication data structure\n", + "\n", + "### FLModel\n", + "\n", + "The FLModel structure is a higher-level data structure designed for data scientists. This structure may not be general for common federated computing messaging communication, but it is suitable for federated learning applications.\n", + "\n", + "We define a standard data structure, FLModel, that captures the common attributes needed for exchanging learning results. This is particularly useful when the NVFlare system needs to exchange learning information with external training scripts/systems. The external training script/system only needs to extract the required information from the received FLModel, run local training, and put the results in a new FLModel to be sent back.\n", + "\n", + "Behind the scenes, we will convert the FLModel structure to and from Shareable.\n", + "\n", + "**FLModel**\n", + "\n", + "A standardized data structure for NVFlare to communicate with external systems.\n", + "\n", + "**Parameters:**\n", + "* params_type – type of the parameters. It only describes the “params”. If params_type is None, params need to be None. If params are provided but params_type is not provided, then it will be treated as FULL.\n", + "* params – model parameters, for example, model weights for deep learning.\n", + "* optimizer_params – optimizer parameters. In many cases, the optimizer parameters don’t need to be transferred during FL training.\n", + "* metrics – evaluation metrics such as loss and scores.\n", + "* start_round – the start FL round. A round means a round trip between client/server during training. None for inference.\n", + "* current_round – the current FL round. A round means a round trip between client/server during training. None for inference.\n", + "* total_rounds – total number of FL rounds. A round means a round trip between client/server during training. None for inference.\n", + "* meta – metadata dictionary used to contain any key-value pairs to facilitate the process.\n", + "\n", + "Now with a few concepts, let's take a look at the [system architecture](../03.1_federated_computing_architecture/system_architecture.ipynb).\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "93d3e92a", + "metadata": {}, "source": [] } ], diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/fci.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/fci.png new file mode 100644 index 0000000000000000000000000000000000000000..4289ac65230126579cec0110c84cffc4987e16b1 GIT binary patch literal 108602 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 LsW*kfTAu#{2T9;% literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/federated_computing_architecture.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/federated_computing_architecture.ipynb deleted file mode 100644 index 5555c2a1f2..0000000000 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/federated_computing_architecture.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "edc3b30f-abaf-4893-ae16-de5d341e0bd7", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "nvflare_example", - "language": "python", - "name": "nvflare_example" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/flare_overview.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/flare_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b7562c0b3b42b6ae4a435f4b0b6d5049da0748dc GIT binary patch literal 416069 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�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%0Dc9+IVel#dEsKowRe6IOEW9M#7EaCdQwi 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≀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�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

om+M7a`a1-u);VT|C6u0ue-(gdxY;}btO0K;- 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

En?EP1gk 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\n" + ] + }, + { + "cell_type": "markdown", + "id": "40e6ad61", + "metadata": {}, + "source": [ + "NVIDIA FLARE is built in layers. Each layer is built on top of the next. At the bottom layer is the network communication layer.\n", + "\n", + "## FCI - Flare Communication Interface\n", + "\n", + "FCI is a logical network framework that supports asynchronous, 2-way communication through multiple transports. It is:\n", + "\n", + "* **Pluggable**: It has a pluggable architecture to support different messaging patterns (request-response, broadcast, pub/sub). It can also support different transports through drivers, like TCP, Pipe, HTTP/WS, gRPC.\n", + "\n", + "* **Streamable**: Large binary data can be streamed in small chunks to minimize memory usage.\n", + "\n", + "* **Full-duplex**: Both sides can send messages to each other without polling, if the transport supports it.\n", + "\n", + "* **Multiplex**: Multiple conversations can be conducted over the same connection at the same time using stream IDs.\n", + "\n", + "* **Asynchronous**: Can send/receive messages in an asynchronous fashion like fire/forget, listen to messages.\n", + "\n", + "* **One-way connection** for remote communications: All TCP-based connections can be initiated from clients so clients have no port exposed.\n", + "\n", + "* **Supports IPC**: It can work with communications through pipes or sockets between processes.\n", + "\n", + "* **Native heartbeats**: Heartbeats are supported by FCI to keep connections alive.\n", + "\n", + "From top to bottom, FCI has the following layers:\n", + "\n", + "* **API Layer**: This is the API exposed to application developers, like Communicator and Cellnet.\n", + "* **Streamable Framed Message (SFM)**: This is the core of FCI and it provides abstraction on top of different communication protocols. It manages endpoints and connections.\n", + "* **Transport Drivers**: This layer is responsible for sending frames to other endpoints. It treats the frame as opaque bytes.\n", + "\n", + "\"FLARE\n", + "\n", + "## Federated Computing Architecture\n", + "\n", + "There are two parent control processes with corresponding job processes on each site. This enables support of concurrent, multi-job processes.\n", + "\n", + "\"FLARE\n", + "\n", + "\n", + "## Event-Based System\n", + "\n", + "ALL NVIDIA FLARE's components (FLComponent) has event handling and event firing via the runtine engine. As result, user can write a FLComponent as plugin and listen to event and write any customized logics at any layers. \n", + "\n", + "\n", + "## Federated Learning Framework\n", + "\n", + "Based on the basic core concepts, we have built many Federated learning workflows including FedAvg, FedOpt, FedProx, Scaffold, cyclic, swarming learning, split learning algorithms with many examples which can be found on the [website](https://nvidia.github.io/NVFlare/) and its [tutorial categories](https://nvidia.github.io/NVFlare/catalog/).\n", + "\n", + "## Enterprise Security and Privacy\n", + "\n", + "We have many features to support enterprise security as well as support privacy-enhancing technologies (PETs). Please refer to [Part-3 Security and Privacy](../../../part-3_security_and_privacy/part-3_introduction.ipynb).\n", + "\n", + "## Simulations\n", + "\n", + "We have built different tools for simulation including Python API and CLI. You have seen the Job API and simulator CLI in [Chapter-1](../../../part-1_federated_learning_introduction/Chapter-1_running_federated_learning_applications/01.0_introduction/introduction.ipynb).\n", + "\n", + "In [Section 3.2](../03.2_deployment_simulation/simulate_real_world_deployment.ipynb), we will also discuss how to simulate the deployment within a local machine.\n", + "\n", + "## Setup and Deployment\n", + "\n", + "Setting up the federated computing system is not a trivial task. We have built tools to make this process simpler. We will discuss this in [Chapter 4](../../chapter-4_setup_federated_system/04.0_introduction/introduction.ipynb).\n", + "\n", + "## Different type of FLARE APIs\n", + "\n", + "At its Core, Flare uses controller and executor assign tasks and execute tasks for each job. There we have the \n", + "\n", + "### Python APIs\n", + "\n", + "* **Controller, Executor API** -- those are the lower-level API that gives the full control and power for any type of federated computing\n", + "\n", + "* **ModelController and Client API** -- This is higher level API based on the assumption that for many machine learning and deep learning algorithms, we can use the FLModel data structure to capture the input and output. \n", + "\n", + " ```\n", + " class FLModel:\n", + " def __init__(\n", + " self,\n", + " params_type: Union[None, str, ParamsType] = None,\n", + " params: Any = None,\n", + " optimizer_params: Any = None,\n", + " metrics: Optional[Dict] = None,\n", + " start_round: Optional[int] = 0,\n", + " current_round: Optional[int] = None,\n", + " total_rounds: Optional[int] = None,\n", + " meta: Optional[Dict] = None,\n", + " ):\n", + " ...\n", + "\n", + " ```\n", + "This data structure essentially capture the model ( parameter type (Full, Diff), model paramaters (weights), optmizer parameters), metrics, metadata. This kind data structure is understandable by most data scientists. \n", + "\n", + "The Server side, we have ModelController -- Controller use and consume FLModel, on the client side we have Client API that receive and send model update via FLModel. You already seen this in previous chapters. \n", + "\n", + "\n", + "* **Job API** -- FLARE Job API is a way to generate job configuration. Although once can direct edit configuration files, one can also use the Job API to construct the needed components and generate the job configuration. The job API can also call job.simulate_run() -- which is combined step of export job configuration and call simulator run. \n", + "\n", + "* **Simulator API** -- one can directly invokve simulator_run() method start simulation in python\n", + "\n", + "\n", + "* **FLARE API** -- FLARE python API is equivallent FLARE Console command API. Instead of interact with FL system via Console command, we can perform most of the command functions via FLARE API. These includes connect to the server, checking status, monitoring jobs, submit job etc. \n", + "\n", + "\n", + "### Command Line Interface\n", + "\n", + "FLARE has several CLIs under the ```nvflare `` command\n", + "\n", + "nvflare --version \n", + "\n", + "nvflare poc --- POC command\n", + "\n", + "nvflare preflight_check -- check FL system setup to see anything not working and why\n", + "\n", + "nvflare provision -- provision tool\n", + "\n", + "nvflare simulator -- simulator CLI\n", + "\n", + "nvflare dashboard -- start NVFLARE dashboard, a Web UI to allow participant distribute provisioned startup kit\n", + "\n", + "nvflare authz_preview --- look at different user roles \n", + "\n", + "nvflare job -- CLI job command to allow user to create job configuration based on the job templates, list existing templates, and submit job to production and POC. \n", + "\n", + "nvflare config -- this command to allow user to setup default startup dir, poc workspace dir and job template dir locally. This is usefuly for local development with job templates and POC. \n", + "\n", + "\n", + "## Configuration\n", + "\n", + "NVFLARE supports several configuration formats: JSON, pyhocon, and YAML. You can see the details in [Configuration Files](https://nvflare.readthedocs.io/en/main/user_guide/configurations.html).\n", + "\n", + "You can also leverage the existing [job templates](https://github.com/NVIDIA/NVFlare/tree/main/job_templates): a set of predefined configurations and using [job CLI](https://github.com/NVIDIA/NVFlare/blob/main/examples/tutorials/job_cli.ipynb) to customize to your needs. \n", + "\n", + "# Job Template\n", + "\n", + "Job templates are set of existing job configurations with specified structure \n", + "\n", + "For example \n", + "```\n", + "\n", + "├── config_fed_client.conf\n", + "├── config_fed_server.conf\n", + "├── info.conf\n", + "├── info.md\n", + "└── meta.conf\n", + "\n", + "```\n", + "\n", + "Each job template consits \"information card\", info.conf, display card \"info.md\" and job configuration files. \n", + "\n", + "The configuraiton is defined in pyhocon format so we can add comments and explain the details \n", + "\n", + "we can take a look at one example \n", + "\n", + "```job_templates/sag_pt/config_fed_client.conf```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe1e27a3", + "metadata": {}, + "outputs": [], + "source": [ + "! cat ../../../../../../job_templates/sag_pt/config_fed_client.conf" + ] + }, + { + "cell_type": "markdown", + "id": "63d0d1dc", + "metadata": {}, + "source": [ + "With job templates, we can use CLI command to view and modify template during job configuration creatation \n", + "\n", + "You can find many details in [job cli tutorial](../../../../job_cli.ipynb). " + ] + }, + { + "cell_type": "markdown", + "id": "44466485", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nvflare_env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/system_architecture.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.1_federated_computing_architecture/system_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..fbab53ff972f816a1e4597b6b26f06611d2d8a17 GIT binary patch literal 50636 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 H{QCa^C-NrK literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/data/download.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/data/download.py new file mode 100644 index 0000000000..ebd8cfdc41 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/data/download.py @@ -0,0 +1,60 @@ +# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This Dirichlet sampling strategy for creating a heterogeneous partition is adopted +# from FedMA (https://github.com/IBM/FedMA). + +# MIT License + +# Copyright (c) 2020 International Business Machines + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import argparse + +import torchvision.datasets as datasets + +# default dataset path +CIFAR10_ROOT = "/tmp/nvflare/data/cifar10" + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, default=CIFAR10_ROOT, nargs="?") + args = parser.parse_args() + return args + + +def main(args): + datasets.CIFAR10(root=args.dataset_path, train=True, download=True) + datasets.CIFAR10(root=args.dataset_path, train=False, download=True) + + +if __name__ == "__main__": + main(define_parser()) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/fl_job.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/fl_job.py new file mode 100644 index 0000000000..30e20f40ac --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/fl_job.py @@ -0,0 +1,64 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import os + +from src.fedavg import FedAvg +from src.network import SimpleNetwork + +from nvflare.job_config.api import FedJob +from nvflare.job_config.script_runner import ScriptRunner + +if __name__ == "__main__": + num_clients = 5 + num_rounds = 5 + job_name = "fedavg" + train_script = "src/client.py" + + job = FedJob(name=job_name, min_clients=num_clients) + + controller = FedAvg( + stop_cond="accuracy > 25", + save_filename="global_model.pt", + initial_model=SimpleNetwork(), + num_clients=num_clients, + num_rounds=num_rounds, + ) + + job.to_server(controller) + + # Add clients + + executor_1 = ScriptRunner(script=train_script, script_args="--learning_rate 0.01 --batch_size 12") + job.to(executor_1, "site-1") + + executor_2 = ScriptRunner(script=train_script, script_args="--learning_rate 0.01 --batch_size 10") + job.to(executor_2, "site-2") + + executor_3 = ScriptRunner(script=train_script, script_args="--learning_rate 0.001 --batch_size 8") + job.to(executor_3, "site-3") + + executor_4 = ScriptRunner(script=train_script, script_args="--learning_rate 0.001 --batch_size 6") + job.to(executor_3, "site-4") + + executor_5 = ScriptRunner(script=train_script, script_args="--learning_rate 0.0001 --batch_size 4") + job.to(executor_3, "site-5") + + job_config_dir = "/tmp/nvflare/jobs/workdir" + + print("job-config is at ", os.path.join(job_config_dir, job_name)) + + job.export_job(job_config_dir) + # job.simulator_run(job_config_dir) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/requirements.txt b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/requirements.txt new file mode 100644 index 0000000000..57b4df2ed4 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/requirements.txt @@ -0,0 +1,3 @@ +torch +torchvision +tensorboard \ No newline at end of file diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/client.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/client.py new file mode 100644 index 0000000000..220559b3cf --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/client.py @@ -0,0 +1,193 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +import torch +import torch.nn as nn +import torch.optim as optim +import torchvision +import torchvision.transforms as transforms +from network import SimpleNetwork + +# (1) import nvflare client API +import nvflare.client as flare +from nvflare.app_common.app_constant import ModelName + +# (optional) set a fix place so we don't need to download everytime +CIFAR10_ROOT = "/tmp/nvflare/data/cifar10" + +# (optional) We change to use GPU to speed things up. +# if you want to use CPU, change DEVICE="cpu" +DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, default=CIFAR10_ROOT, nargs="?") + parser.add_argument("--batch_size", type=int, default=4, nargs="?") + parser.add_argument("--learning_rate", type=float, default=0.001, nargs="?") + parser.add_argument("--num_workers", type=int, default=1, nargs="?") + parser.add_argument("--local_epochs", type=int, default=2, nargs="?") + parser.add_argument("--model_path", type=str, default=f"{CIFAR10_ROOT}/cifar_net.pth", nargs="?") + return parser.parse_args() + + +def main(): + # define local parameters + args = define_parser() + + dataset_path = args.dataset_path + batch_size = args.batch_size + num_workers = args.num_workers + local_epochs = args.local_epochs + model_path = args.model_path + lr = args.learning_rate + + transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) + trainset = torchvision.datasets.CIFAR10(root=dataset_path, train=True, download=True, transform=transform) + trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=num_workers) + testset = torchvision.datasets.CIFAR10(root=dataset_path, train=False, download=True, transform=transform) + testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size, shuffle=False, num_workers=num_workers) + + net = SimpleNetwork() + best_accuracy = 0.0 + + # wraps evaluation logic into a method to re-use for + # evaluation on both trained and received model + def evaluate(input_weights): + net = SimpleNetwork() + net.load_state_dict(input_weights) + # (optional) use GPU to speed things up + net.to(DEVICE) + + correct = 0 + total = 0 + # since we're not training, we don't need to calculate the gradients for our outputs + with torch.no_grad(): + for data in testloader: + # (optional) use GPU to speed things up + images, labels = data[0].to(DEVICE), data[1].to(DEVICE) + # calculate outputs by running images through the network + outputs = net(images) + # the class with the highest energy is what we choose as prediction + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + + return 100 * correct // total + + # (2) initialize NVFlare client API + flare.init() + + # (3) run continously when launch_once=true + while flare.is_running(): + + # (4) receive FLModel from NVFlare + input_model = flare.receive() + client_id = flare.get_site_name() + + # Based on different "task" we will do different things + # for "train" task (flare.is_train()) we use the received model to do training and/or evaluation + # and send back updated model and/or evaluation metrics, if the "train_with_evaluation" is specified as True + # in the config_fed_client we will need to do evaluation and include the evaluation metrics + # for "evaluate" task (flare.is_evaluate()) we use the received model to do evaluation + # and send back the evaluation metrics + # for "submit_model" task (flare.is_submit_model()) we just need to send back the local model + # (5) performing train task on received model + if flare.is_train(): + print(f"({client_id}) current_round={input_model.current_round}, total_rounds={input_model.total_rounds}") + + # (5.1) loads model from NVFlare + net.load_state_dict(input_model.params) + + criterion = nn.CrossEntropyLoss() + optimizer = optim.SGD(net.parameters(), lr=lr, momentum=0.9) + + # (optional) use GPU to speed things up + net.to(DEVICE) + # (optional) calculate total steps + steps = local_epochs * len(trainloader) + for epoch in range(local_epochs): # loop over the dataset multiple times + + running_loss = 0.0 + for i, data in enumerate(trainloader, 0): + # get the inputs; data is a list of [inputs, labels] + # (optional) use GPU to speed things up + inputs, labels = data[0].to(DEVICE), data[1].to(DEVICE) + + # zero the parameter gradients + optimizer.zero_grad() + + # forward + backward + optimize + outputs = net(inputs) + loss = criterion(outputs, labels) + loss.backward() + optimizer.step() + + # print statistics + running_loss += loss.item() + if i % 2000 == 1999: # print every 2000 mini-batches + print(f"({client_id}) [{epoch + 1}, {i + 1:5d}] loss: {running_loss / 2000:.3f}") + running_loss = 0.0 + break + + print(f"({client_id}) Finished Training") + + # (5.2) evaluation on local trained model to save best model + local_accuracy = evaluate(net.state_dict()) + print(f"({client_id}) Evaluating local trained model. Accuracy on the 10000 test images: {local_accuracy}") + if local_accuracy > best_accuracy: + best_accuracy = local_accuracy + torch.save(net.state_dict(), model_path) + + # (5.3) evaluate on received model for model selection + accuracy = evaluate(input_model.params) + print( + f"({client_id}) Evaluating received model for model selection. Accuracy on the 10000 test images: {accuracy}" + ) + + # (5.4) construct trained FL model + output_model = flare.FLModel( + params=net.cpu().state_dict(), + metrics={"accuracy": accuracy}, + meta={"NUM_STEPS_CURRENT_ROUND": steps}, + ) + + # (5.5) send model back to NVFlare + flare.send(output_model) + + # (6) performing evaluate task on received model + elif flare.is_evaluate(): + accuracy = evaluate(input_model.params) + print(f"({client_id}) accuracy: {accuracy}") + flare.send(flare.FLModel(metrics={"accuracy": accuracy})) + + # (7) performing submit_model task to obtain best local model + elif flare.is_submit_model(): + model_name = input_model.meta["submit_model_name"] + if model_name == ModelName.BEST_MODEL: + try: + weights = torch.load(model_path) + net = SimpleNetwork() + net.load_state_dict(weights) + flare.send(flare.FLModel(params=net.cpu().state_dict())) + except Exception as e: + raise ValueError("Unable to load best model") from e + else: + raise ValueError(f"Unknown model_type: {model_name}") + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fedavg.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fedavg.py new file mode 100644 index 0000000000..a63f0005bf --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fedavg.py @@ -0,0 +1,158 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +from typing import Callable, Dict, List, Optional + +import torch + +from nvflare.app_common.abstract.fl_model import FLModel +from nvflare.app_common.utils.math_utils import parse_compare_criteria +from nvflare.app_common.workflows.base_fedavg import BaseFedAvg +from nvflare.app_opt.pt.decomposers import TensorDecomposer +from nvflare.fuel.utils import fobs + + +class FedAvg(BaseFedAvg): + """Controller for FedAvg Workflow with Early Stopping and Model Selection. + + Args: + num_clients (int, optional): The number of clients. Defaults to 3. + num_rounds (int, optional): The total number of training rounds. Defaults to 5. + stop_cond (str, optional): early stopping condition based on metric. + string literal in the format of " " (e.g. "accuracy >= 80") + save_filename (str, optional): filename for saving model + initial_model (nn.Module, optional): initial PyTorch model + """ + + def __init__( + self, + *args, + stop_cond: str, + num_rounds: int, + save_filename: str = "FL_global_model.pt", + initial_model=None, + **kwargs, + ): + super().__init__(*args, **kwargs) + + self.stop_cond = stop_cond + self.num_rounds = num_rounds + + if stop_cond: + self.stop_condition = parse_compare_criteria(stop_cond) + else: + self.stop_condition = None + self.save_filename = save_filename + self.initial_model = initial_model + self.best_model: Optional[FLModel] = None + + def run(self) -> None: + self.info("Start FedAvg.") + + if self.initial_model: + # Use FOBS for serializing/deserializing PyTorch tensors (self.initial_model) + fobs.register(TensorDecomposer) + # PyTorch weights + initial_weights = self.initial_model.state_dict() + else: + initial_weights = {} + + model = FLModel(params=initial_weights) + + model.start_round = self.start_round + model.total_rounds = self.num_rounds + + for self.current_round in range(self.start_round, self.start_round + self.num_rounds): + self.info(f"Round {self.current_round} started.") + model.current_round = self.current_round + + clients = self.sample_clients(self.num_clients) + + results: List[FLModel] = self.send_model_and_wait(targets=clients, data=model) + aggregate_results = self.aggregate( + results, aggregate_fn=self.aggregate_fn + ) # using default aggregate_fn with `WeightedAggregationHelper`. Can overwrite self.aggregate_fn with signature Callable[List[FLModel], FLModel] + + model = self.update_model(model, aggregate_results) + + self.info(f"Round {self.current_round} global metrics: {model.metrics}") + + self.select_best_model(model) + + self.save_model(self.best_model, os.path.join(os.getcwd(), self.save_filename)) + + if self.should_stop(model.metrics, self.stop_condition): + self.info( + f"Stopping at round={self.current_round} out of total_rounds={self.num_rounds}. Early stop condition satisfied: {self.stop_condition}" + ) + break + + self.info("Finished FedAvg.") + + def should_stop(self, metrics: Optional[Dict] = None, stop_condition: Optional[str] = None): + if stop_condition is None or metrics is None: + return False + + key, target, op_fn = stop_condition + value = metrics.get(key, None) + + if value is None: + raise RuntimeError(f"stop criteria key '{key}' doesn't exists in metrics") + + return op_fn(value, target) + + def select_best_model(self, curr_model: FLModel): + if self.best_model is None: + self.best_model = curr_model + return + + if self.stop_condition: + metric, _, op_fn = self.stop_condition + if self.is_curr_model_better(self.best_model, curr_model, metric, op_fn): + self.info("Current model is new best model.") + self.best_model = curr_model + else: + self.best_model = curr_model + + def is_curr_model_better( + self, best_model: FLModel, curr_model: FLModel, target_metric: str, op_fn: Callable + ) -> bool: + curr_metrics = curr_model.metrics + if curr_metrics is None: + return False + if target_metric not in curr_metrics: + return False + + best_metrics = best_model.metrics + return op_fn(curr_metrics.get(target_metric), best_metrics.get(target_metric)) + + def save_model(self, model, filepath=""): + params = model.params + # PyTorch save + torch.save(params, filepath) + + # save FLModel metadata + model.params = {} + fobs.dumpf(model, filepath + ".metadata") + model.params = params + + def load_model(self, filepath=""): + # PyTorch load + params = torch.load(filepath) + + # load FLModel metadata + model = fobs.loadf(filepath + ".metadata") + model.params = params + return model diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fl_job.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fl_job.py new file mode 100644 index 0000000000..8fc6f73846 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/fl_job.py @@ -0,0 +1,64 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import os + +from src.fedavg import FedAvg +from src.network import SimpleNetwork + +from nvflare.job_config.api import FedJob +from nvflare.job_config.script_runner import ScriptRunner + +if __name__ == "__main__": + num_clients = 5 + num_rounds = 5 + job_name = "fedavg" + train_script = "src/client.py" + + job = FedJob(name=job_name, min_clients=num_clients) + + controller = FedAvg( + stop_cond="accuracy > 25", + save_filename="global_model.pt", + initial_model=SimpleNetwork(), + num_clients=num_clients, + num_rounds=num_rounds, + ) + + job.to_server(controller) + + # Add clients + + executor_1 = ScriptRunner(script=train_script, script_args="--learning_rate 0.01 --batch_size 12") + job.to(executor_1, "site-1") + + executor_2 = ScriptRunner(script=train_script, script_args="--learning_rate 0.01 --batch_size 10") + job.to(executor_2, "site-2") + + executor_3 = ScriptRunner(script=train_script, script_args="--learning_rate 0.001 --batch_size 8") + job.to(executor_3, "site-3") + + executor_4 = ScriptRunner(script=train_script, script_args="--learning_rate 0.001 --batch_size 6") + job.to(executor_3, "site-4") + + executor_5 = ScriptRunner(script=train_script, script_args="--learning_rate 0.0001 --batch_size 4") + job.to(executor_3, "site-5") + + job_config_dir = "/tmp/nvflare/jobs/workdir" + + print("job-config is at ", os.path.join(job_config_dir, job_name)) + + # job.export_job(job_config_dir) + job.simulator_run(job_config_dir) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/network.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/network.py new file mode 100644 index 0000000000..609b0b1581 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/code/src/network.py @@ -0,0 +1,37 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +class SimpleNetwork(nn.Module): + def __init__(self): + super(SimpleNetwork, self).__init__() + self.conv1 = nn.Conv2d(3, 6, 5) + self.pool = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(6, 16, 5) + self.fc1 = nn.Linear(16 * 5 * 5, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = self.pool(F.relu(self.conv1(x))) + x = self.pool(F.relu(self.conv2(x))) + x = torch.flatten(x, 1) # flatten all dimensions except batch + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/simulate_real_world_deployment.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/simulate_real_world_deployment.ipynb index c8a1cd45d4..f1dc6c6e40 100644 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/simulate_real_world_deployment.ipynb +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.2_deployment_simulation/simulate_real_world_deployment.ipynb @@ -1,19 +1,428 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "b3aff23e", + "metadata": {}, + "source": [ + "# Simulate Real-world Deployment\n", + "\n", + "In part-1, we learned about the simulator, where we simulated federated learning training without worrying about how the federated learning system is set up and deployed.\n", + "\n", + "In a real-world deployment for cross-silo deployment, several institutions (hospitals or banks) participate in the federated system. What we go through is the setup/deployment process:\n", + "\n", + "* Provision: create a set of packaged software, also known as the NVIDIA FLARE startup-kit\n", + "* Distribution: transfer the software packages (startup-kit) to each site\n", + "* Start: start the software using `/start/start.sh` and wait for job submission\n", + "\n", + "Before connecting multiple machines, we can simulate this setup and deployment on a local computer. In NVFLARE, this is called Proof of Concept (POC) mode.\n", + "\n", + "In this section, we will explore the POC-based FL system.\n" + ] + }, + { + "cell_type": "markdown", + "id": "381aef31", + "metadata": {}, + "source": [ + "## Proof of Concept (POC) Command\n", + "\n", + "[POC command](https://nvflare.readthedocs.io/en/main/user_guide/nvflare_cli/poc_command.html) provides a set of command to create different software packages and simulate client and server. You can also find the tutorials in [here](../../../../setup_poc.ipynb) on how to setup POC. \n", + "\n", + "> With POC mode, it is ideally use terminal instead of notebook to setup, as there are some non-consistent behavior when running scripts.\n", + "\n", + "### POC Prepare\n", + "\n", + "#### POC command first look\n", + "\n", + "First let's prepare for the POC setup. We like to use the same example we had before with five clients: which means we should have five sites, where each site has its own startup kit package.\n", + "\n", + "To simulate such setup, we use the following command\n", + "\n", + "\n", + "```\n", + "nvflare poc prepare -n 5\n", + "\n", + "```\n", + "let run this from a separate terminal. here is the output \n", + "\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14683437", + "metadata": {}, + "outputs": [], + "source": [ + "! nvflare poc prepare -n 5" + ] + }, + { + "cell_type": "markdown", + "id": "f93686eb", + "metadata": {}, + "source": [ + "\n", + "Take a look at the generated folder structure: \n", + "\n", + "\n", + "```\n", + "$ tree /tmp/nvflare/poc/example_project/prod_00\n", + "\n", + "/tmp/nvflare/poc/example_project/prod_00\n", + "├── admin@nvidia.com\n", + "│   ├── local\n", + "│   ├── startup\n", + "│   └── ...\n", + "| \n", + "├── server\n", + "│   ├── local\n", + "│   ├── readme.txt\n", + "│   ├── startup\n", + "│   │   ├── ....\n", + "│   └── ...\n", + "\n", + "├── site-1\n", + "│   ├── local\n", + "│   ├── readme.txt\n", + "│   ├── startup\n", + "│   │   └── ...\n", + "│   └── ...\n", + "├── site-2\n", + "│   ├── local\n", + "│   ├── readme.txt\n", + "│   ├── startup\n", + "│   │   ├── ...\n", + "│   └── ...\n", + "├── site-3\n", + "│   ├── local\n", + "│   ├── readme.txt\n", + "│   ├── startup\n", + "│   │   └── ...\n", + "│   └── ...\n", + "├── site-4\n", + "│   ├── local\n", + "│   ├── readme.txt\n", + "│   ├── startup\n", + "│   │   └── ...\n", + "│   └── transfer\n", + "└── site-5\n", + " ├── local\n", + " ├── readme.txt\n", + " ├── startup\n", + " │   └── ...\n", + " └── ...\n", + "\n", + "```\n", + "\n", + "\n", + "Notice the command create a working directory at ```/tmp/nvflare/poc/example_project/prod_00```\n", + "\n", + "based on the default values: \n", + "\n", + "POC workspace = \"/tmp/nvflare/poc\"\n", + "project_name = \"example_project\"\n", + "and default folder \"prod_00\"\n", + "\n", + "All sites are with the default name with \"site-\". \n", + "\n", + "The actual process of generate such software package (startup kit) is called **\"provision\"**, the POC is special mode of provision, where both client and server are at localhost\n", + "\n", + "\n", + "Each site ( site-N and server) representing one location in the federated learning site and running federated learning client. \n", + "\n", + "\n", + "#### Simulating the real-world deployment\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "534ca0c6", + "metadata": {}, + "source": [ + "In NVFLARE, we define a project.yml to describe the type of setup we would like to have in the federated deployment, here is an example: \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f549f7dc", + "metadata": {}, + "outputs": [], + "source": [ + "! cat code/project.yml" + ] + }, + { + "cell_type": "markdown", + "id": "7badff3b", + "metadata": {}, + "source": [ + "notice in this project file, we define **three** sites:\n", + "\n", + "**nonprofit-server** \n", + "\n", + " served as Federated learning Server, it is belong to nonprofit organizaton\n", + " \n", + "**us_hospital** \n", + "\n", + " served as client, belong to us-hospital \n", + "\n", + "**europe-hospital**\n", + "\n", + " served as client, belong to eu-hospital \n", + " \n", + "We also define few users:\n", + "\n", + "* nonprofit.org team\n", + "\n", + " **admin@nonprofit.org** -- project admin\n", + "\n", + "* us_hospital team\n", + "\n", + " **admin@hospital.org.us** -- site admin ( aka Org Admin)\n", + "\n", + " **lead@hospital.org.us** -- lead member\n", + "\n", + " **member@hospital.org.us** -- member \n", + " \n", + "* eu_hospital team\n", + "\n", + " **admin@hospital.org.eu** -- site admin \n", + "\n", + " **lead@hospital.org.eu** -- lead member\n", + "\n", + " **member@hospital.org.eu** -- member \n", + "\n", + "\n", + "Now let prepare the startup kit with POC command, see what we have\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3dfea369", + "metadata": {}, + "outputs": [], + "source": [ + " \n", + "! echo 'y' | nvflare poc prepare -i code/project.yml\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cea409bf", + "metadata": {}, + "outputs": [], + "source": [ + "! tree /tmp/nvflare/poc/health_project/prod_00" + ] + }, + { + "cell_type": "markdown", + "id": "6c00e97e", + "metadata": {}, + "source": [ + "Now you see site names are now match the ones we defined in the project.yml file instead of \"server\",. \"site-1\", ... etc." + ] + }, + { + "cell_type": "markdown", + "id": "c1a8f039", + "metadata": {}, + "source": [ + "#### Prepare with Named Clients\n", + "\n", + "If you just want to have default deployment, but specifiy the client site names ((instead of use default site-1,2 etc.) and not writing a project.yaml file, you do the following\n", + "\n", + "\n", + "\n", + "nvflare poc prepare -c [CLIENTS ...]" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "4e0275e2-20fa-44fe-be53-b82a51b617c6", + "id": "8e2651a1", "metadata": {}, "outputs": [], + "source": [ + "! echo 'y' | nvflare poc prepare -c hospital-1 hospital-2\n", + "! tree /tmp/nvflare/poc/example_project/prod_00" + ] + }, + { + "cell_type": "markdown", + "id": "7edb8732", + "metadata": {}, + "source": [ + "#### POC with docker image\n", + "\n", + "The -d option instructs the provision tool to create a docker.sh use the specified docker_image. The docker.sh will start in detached mode.\n", + "\n", + "nvflare poc prepare -d [DOCKER_IMAGE]\n", + "This will create docker.sh for each client and server which will run docker pull docker_image from docker hub, then running the docker in detached mode. The docker_image must use nvflare. For example, we use the following docker image \"nvflare/nvflare\" which has nvflare preinstalled.\n", + "\n", + ">Note: you should build your own image if you want to include your dependencies such as pytorch etc.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "bd01f71e", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33fd4423", + "metadata": {}, + "outputs": [], + "source": [ + "! echo 'y'| nvflare poc prepare -d 'nvflare/nvflare'\n", + "! tree /tmp/nvflare/poc/example_project/prod_00\n" + ] + }, + { + "cell_type": "markdown", + "id": "73daeb53", + "metadata": {}, + "source": [ + "Notice the new \"docker.sh\", now each client will using docker run with we specified \"nvflare/nvflare\" docker image\n", + "\n", + "If you like to see how to specify Homomorphic encryptions you can check out our [POC tutorials](https://github.com/NVIDIA/NVFlare/blob/main/examples/tutorials/setup_poc.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "e0443f30", + "metadata": {}, + "source": [ + "### Start NVFlare system in POC mode" + ] + }, + { + "cell_type": "markdown", + "id": "2c426596", + "metadata": {}, + "source": [ + "When starting the POC deployment, it's necessary to use a separate terminal since the nvflare poc start command will run in the foreground emitting output from the server and any connected clients.\n", + "\n", + "Also note that nvflare poc start starts all clients and server as well as project admin console. All other participants (org admin, lead and member) will not started.\n", + "\n", + "#### POC start clients and server without NVFLARE admin console\n", + "\n", + "In many cases, we want to start the clients and server, but without the FLARE console for project admin, as we are going to interact with the system from a notebook or CLI. You first need to find out the user name for the project admin. By default, this is admin@nvidia.com\n", + "\n", + "Create a terminal to execute the following command (in JupyterLab or host terminal):\n", + "\n", + " nvflare poc start -ex admin@nvidia.com\n", + "\n", + "> Note: Using %%bash -bg to run the above command in a code cell may not always work\n", + "\n", + "**Homework**: run the nvflare poc start command with or without -ex option\n", + "\n", + "\n", + "#### POC start individial site Only \n", + " \n", + "nvflare poc start -p \"site-name\"\n", + "\n", + "Now, let start the POC with default poc and run some jobs\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d95b76fd", + "metadata": {}, + "outputs": [], + "source": [ + "! echo y | nvflare poc prepare -n 5\n", + "! tree /tmp/nvflare/poc/example_project/prod_00" + ] + }, + { + "cell_type": "markdown", + "id": "6e5baf55", + "metadata": {}, + "source": [ + "Once the FLARE system is started, you can learn how to interact with it at next section: [interact with federated computing system](../03.3_interact_with_federated_computing_system/%20ways_to_interact_with_fl_system.ipynb)\n", + "\n", + "\n", + "After running with POC, you can shut it down. " + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "8ecc7eaa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "start shutdown NVFLARE\n", + "connect to nvflare server\n", + "checking running jobs\n", + "shutdown NVFLARE\n", + "waiting system to shutdown\n" + ] + } + ], + "source": [ + "! nvflare poc stop" + ] + }, + { + "cell_type": "markdown", + "id": "c223c758", + "metadata": {}, + "source": [ + "After you are done with poc, you can clean it up" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "17a3c85e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/tmp/nvflare/poc is removed\n" + ] + } + ], + "source": [ + "! nvflare poc clean" + ] + }, + { + "cell_type": "markdown", + "id": "e866b984", + "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { - "display_name": "nvflare_example", + "display_name": "nvflare_env", "language": "python", - "name": "nvflare_example" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -25,7 +434,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.10.12" } }, "nbformat": 4, diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/ ways_to_interact_with_fl_system.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/ ways_to_interact_with_fl_system.ipynb new file mode 100644 index 0000000000..e89c853bf8 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/ ways_to_interact_with_fl_system.ipynb @@ -0,0 +1,434 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0d4fa659", + "metadata": {}, + "source": [ + "# Interact with NVIDIA FLARE System\n", + "\n", + "There are several ways of interacting with NVIDIA FLARE System\n", + "\n", + "* Interact via FLARE admin console\n", + "* Interact via FLARE python API\n", + "* Interact via FLARE Job CLI \n", + "\n", + "\n", + "Before we dive into each interacted mode, lets prepare a job to submit. We can use the previous cifar 10 training job. \n", + "\n", + "* Install requirements\n", + "* download data\n", + "* generate job config" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "191bba82", + "metadata": {}, + "outputs": [], + "source": [ + "! echo \"install requirements\"\n", + "! pip install -r code/requirements.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f1e0a60", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "download data\n", + "Files already downloaded and verified\n", + "Files already downloaded and verified\n" + ] + } + ], + "source": [ + "! echo \"download data\"\n", + "! python code/data/download.py" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "772fd25e", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "! echo \"generate job config\"\n", + "\n", + "%cd code\n", + "\n", + "! python fl_job.py\n", + "\n", + "%cd ../.\n", + "\n", + "! echo \"show job directory\"\n", + "\n", + "! tree /tmp/nvflare/jobs/workdir/fedavg" + ] + }, + { + "cell_type": "markdown", + "id": "39371985", + "metadata": {}, + "source": [ + "Now start a FLARE system in POC mode\n", + "\n", + "And use a terminal to start the POC withut admin console.\n", + "\n", + "```nvflare poc start -ex admin@nvidia.com```\n", + "\n", + "Then use a separate terminal \n", + "\n", + "```nvflare poc start -p admin@nvidia.com```\n", + "\n", + "\n", + "At this point, we assume the system is already started, we can go through the different interaction methods\n" + ] + }, + { + "cell_type": "markdown", + "id": "e6e835f1", + "metadata": {}, + "source": [ + "## FLARE Admin Console\n", + "\n", + "Now we need to use videos to show the interactive commands from Admin console. we can take a look what it looks like here \n", + "\n", + "![FLARE Admin Console](admin_console.png)\n" + ] + }, + { + "cell_type": "markdown", + "id": "975023a7", + "metadata": {}, + "source": [ + "\n", + "You can submit job, list jobs and check results, check status of sites, list jobs, abort jobs\n" + ] + }, + { + "cell_type": "markdown", + "id": "e5703c6f", + "metadata": {}, + "source": [ + "## Interact via FLARE python API" + ] + }, + { + "cell_type": "markdown", + "id": "95bce19f", + "metadata": {}, + "source": [ + "Another way to interact with FLARE system is using FLARE python APIs. These APIs have the equivallent functions of the Admin Commands. And they can be issued directly from notebooks. \n", + "\n", + "Let's take a look how this can be done. \n", + "\n", + "\n", + "### create session" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc0efcf1", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from nvflare.fuel.flare_api.flare_api import new_secure_session\n", + " \n", + "username = \"admin@nvidia.com\"\n", + "workspace= \"/tmp/nvflare/poc/example_project/prod_00\"\n", + "admin_user_dir = os.path.join(workspace, username)\n", + "\n", + "sess = new_secure_session(username=username, startup_kit_location=admin_user_dir)\n", + "print(sess.get_system_info())" + ] + }, + { + "cell_type": "markdown", + "id": "d87f1b60", + "metadata": {}, + "source": [ + "#### Submit a job" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa0cc0bb", + "metadata": {}, + "outputs": [], + "source": [ + "job_dir = \"/tmp/nvflare/jobs/workdir/fedavg\"\n", + "job_id = sess.submit_job(job_dir)\n", + "print(job_id + \" was submitted\")" + ] + }, + { + "cell_type": "markdown", + "id": "22612078", + "metadata": {}, + "source": [ + "In the terminal, you should see the training output, but here we like to use API to monitoring the job \n", + "\n", + "#### Monitor job\n", + "The command ```monitor_job()``` allows you to follow a job until the job is done.\n", + "\n", + "By default, monitor_job() only has one required arguement, the job_id of the job you are waiting for, and the default behavior is to wait until the job is complete before returning a Return Code of JOB_FINISHED.\n", + "\n", + "In order to follow along and see a more meaningful result and demonstrate some of the possibilities of using this function, the following cell contains a sample_cb() callback that keeps track of the number of times the callback is run and prints the job_meta the first three times and the final time before monitor_job() completes with every other call just printing a dot to save output space. This callback is just an example of what can be done with additional arguments and the job_meta information of the job that is being monitored. You can use logic to return a value other than True to conditionally stop monitor_job() and return MonitorReturnCode.ENDED_BY_CB.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "99885b70", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "100b47e3", + "metadata": {}, + "outputs": [], + "source": [ + "from nvflare.fuel.flare_api.flare_api import Session\n", + "\n", + "def sample_cb(\n", + " session: Session, job_id: str, job_meta, *cb_args, **cb_kwargs\n", + " ) -> bool:\n", + " if job_meta[\"status\"] == \"RUNNING\":\n", + " if cb_kwargs[\"cb_run_counter\"][\"count\"] < 3:\n", + " print(job_meta)\n", + " print(cb_kwargs[\"cb_run_counter\"])\n", + " else:\n", + " print(\".\", end=\"\")\n", + " else:\n", + " print(\"\\n\" + str(job_meta))\n", + " \n", + " cb_kwargs[\"cb_run_counter\"][\"count\"] += 1\n", + " return True\n", + "\n", + "sess.monitor_job(job_id, cb=sample_cb, cb_run_counter={\"count\":0})" + ] + }, + { + "cell_type": "markdown", + "id": "bc2abf68", + "metadata": {}, + "source": [ + "#### Get Job Meta\n", + "To get the job meta information, you can use the get_job_meta() command. The only argument required for this command is the job id for the job you are getting the meta for. The job meta information will be returned as an object." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f40009d2", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "sess.get_job_meta(job_id)" + ] + }, + { + "cell_type": "markdown", + "id": "c3a36d41", + "metadata": {}, + "source": [ + "\n", + "#### List Jobs\n", + "To get the information for what jobs have been submitted to the server, you can use the list_jobs() command. If no arguments are included, the defaults are False for both \"detailed\" and \"reverse\".\n", + "\n", + "Setting \"detailed\" to True will return more detailed information about each job.\n", + "\n", + "Setting \"reverse\" to True will return the jobs in reverse order by submission time.\n", + "\n", + "The arg \"limit\" can be set to specify the maximum number of jobs to return, with 0 or None meaning return all jobs (the default is None to show all).\n", + "\n", + "The args \"id_prefix\" and \"name_prefix\" can be used to further filter the jobs returned to have an id or name beginning with the string set for the respective argument.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63f2f8cc", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "def format_json( data: dict): \n", + " print(json.dumps(data, sort_keys=True, indent=4,separators=(',', ': ')))\n", + "\n", + "list_jobs_output = sess.list_jobs()\n", + "print(format_json(list_jobs_output))\n" + ] + }, + { + "cell_type": "markdown", + "id": "9d4f2731", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f3baf81", + "metadata": {}, + "outputs": [], + "source": [ + "list_jobs_output_detailed = sess.list_jobs(detailed=True)\n", + "print(format_json(list_jobs_output_detailed))" + ] + }, + { + "cell_type": "markdown", + "id": "acfebd37", + "metadata": {}, + "source": [ + "#### Download Job Result\n", + "The download_job_result() command downloads the job result to the \"download_dir\" (this is usually set in fed_admin.json in the startup directory of the admin_user_dir used when launching the FLARE API Session, and this value is relative to the admin_user_dir). This command only has one required arguement, the job_id of the job result to download." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89b7ab69", + "metadata": {}, + "outputs": [], + "source": [ + "sess.download_job_result(job_id)" + ] + }, + { + "cell_type": "markdown", + "id": "4f6f7632", + "metadata": {}, + "source": [ + "#### Abort Job\n", + "If training gets stuck or there is another reason to stop a running job, you can use the abort_job() command. The abort_job() command only has one required arguement, the job_id of the job to abort, and None is returned upon successfully issuing the command." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "218c75ed", + "metadata": {}, + "outputs": [], + "source": [ + "print(job_id)\n", + "sess.abort_job(job_id)" + ] + }, + { + "cell_type": "markdown", + "id": "701ece7b", + "metadata": {}, + "source": [ + "## Interact via FLARE Job CLI\n", + "\n", + "\n", + "#### Show variables\n", + "We can check the configuration variables with the following command\n", + "\n", + "job_dir = \"/tmp/nvflare/jobs/workdir/fedavg\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb1bd4af", + "metadata": {}, + "outputs": [], + "source": [ + "! nvflare job show_variables -j /tmp/nvflare/jobs/workdir/fedavg" + ] + }, + { + "cell_type": "markdown", + "id": "7677af03", + "metadata": {}, + "source": [ + "#### Submit Job from CLI\n", + "You can use the following command to directly submit job from the command line.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44d22dcd", + "metadata": {}, + "outputs": [], + "source": [ + "! nvflare job submit -j /tmp/nvflare/jobs/workdir/fedavg" + ] + }, + { + "cell_type": "markdown", + "id": "a36fe927", + "metadata": {}, + "source": [ + "You use the same FLARE python APIs to monitoring the job status or stop the job." + ] + }, + { + "cell_type": "markdown", + "id": "bff432db", + "metadata": {}, + "source": [ + "## Summary \n" + ] + }, + { + "cell_type": "markdown", + "id": "a216ce5d", + "metadata": {}, + "source": [ + "So far, we have learnt three different ways to interact with FLARE system. Although we used POC model to simulate the real deployment. In production, the same interaction commands can be used in production setup\n", + "\n", + "Next, lets see how do we [monitoring FLARE system](../03.4_system_monitoring/system_monitorinig.ipynb)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "786b4520", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nvflare_example", + "language": "python", + "name": "nvflare_example" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.0 ways_to_interact_with_fl_system.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.0 ways_to_interact_with_fl_system.ipynb deleted file mode 100644 index d0e621906a..0000000000 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.0 ways_to_interact_with_fl_system.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "0b4ae4f9-39de-49a7-9def-44ee99c7f2f7", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "nvflare_example", - "language": "python", - "name": "nvflare_example" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.1_interaction_via_admin_console.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.1_interaction_via_admin_console.ipynb deleted file mode 100644 index bc949eb5a1..0000000000 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.1_interaction_via_admin_console.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "4b0065ca-39cb-4ece-bca8-712b5f20f9c0", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "nvflare_example", - "language": "python", - "name": "nvflare_example" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.2_interaction_system_with_python_api.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.2_interaction_system_with_python_api.ipynb deleted file mode 100644 index bd96f68afa..0000000000 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.2_interaction_system_with_python_api.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "3991aaaf-5a84-48a5-a1ef-ec7bfd3c38ea", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "nvflare_example", - "language": "python", - "name": "nvflare_example" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.3_Interaction_with_cli.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.3_Interaction_with_cli.ipynb deleted file mode 100644 index 88b760d8ce..0000000000 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/03.3.3_Interaction_with_cli.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "4b7d9657-7152-473c-beb9-b92c402d2269", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "nvflare_example", - "language": "python", - "name": "nvflare_example" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/admin_console.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.3_interact_with_federated_computing_system/admin_console.png new file mode 100644 index 0000000000000000000000000000000000000000..ef56a3012ede52a32f6c3029970c851e619cd267 GIT binary patch literal 186979 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

jC=#4LqH385>1smW$YN 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 literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/statsd_export_metrics_view.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/statsd_export_metrics_view.png new file mode 100644 index 0000000000000000000000000000000000000000..c959309a563c90f5e147610c66bd1ceaca867a57 GIT binary patch literal 385212 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\^?#wT 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�xf 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

YJXU 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: As of July 2023, docker-compose v1 is no longer supported. Make sure you download and use v2, verify docker compose version\n", + " ```\n", + " docker compose version\n", + " ```\n", + " \n", + "\n", + "### Steps:\n", + "\n", + "From a terminal, not from Notebook cell\n", + "\n", + "1. Navigate to the setup directory:\n", + " ```bash\n", + " cd setup\n", + " ```\n", + "\n", + "2. Start the services using Docker Compose:\n", + " ```bash\n", + " docker compose up -d\n", + " ```\n", + " You should see something similar to the following:\n", + "\n", + " ```\n", + " Creating network \"setup_monitoring\" with driver \"bridge\"\n", + " Creating statsd-exporter ... done\n", + " Creating prometheus ... done\n", + " Creating grafana ... done\n", + " ```\n", + "\n", + "3. To stop the services, run:\n", + " ```bash\n", + " docker compose down\n", + " ```\n", + "\n", + "**Note:** The StatsD Exporter port is 9125 (not 8125).\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! docker compose version" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%cd setup\n", + "\n", + "!docker compose up -d\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! docker compose down\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Prepare FLARE Metrics Monitoring Configuration\n", + " \n", + "### Prepare Configuration for Setup 1: All Sites Share the Same Monitoring System\n", + "\n", + "![setup-1](./figures/setup-1.png)\n", + "\n", + "As described in the [system monitorinig introduction](./system_monitorinig.ipynb), we will make different component configurations depending on the setups.\n", + "\n", + "In this setup, all sites (server and clients) will share the same monitoring system with the same host and port.\n", + "\n", + "#### Job Metrics Monitoring Configuration\n", + "\n", + "Instead of manually configuring the metrics monitoring, we can directly use the Job API. You can refer to the [jobs/setup-1/code/](./jobs/setup-1/code/fl_job.py).\n", + "\n", + "This is done by adding additional components on top of the existing code:\n", + "\n", + "```python\n", + " \n", + " server_tags = {\"site\": \"server\", \"env\": \"dev\"}\n", + " metrics_reporter = StatsDReporter(site=\"server\", host=\"localhost\", port=9125)\n", + " metrics_collector = JobMetricsCollector(tags=server_tags, streaming_to_server=False)\n", + "\n", + " job.to_server(metrics_collector, id=\"server_job_metrics_collector\")\n", + " job.to_server(metrics_reporter, id=\"statsd_reporter\")\n", + "\n", + " # Add clients\n", + " for i in range(n_clients):\n", + " \n", + " \n", + "\n", + " # add client side monitoring components\n", + " tags = {\"site\": client_site, \"env\": \"dev\"}\n", + "\n", + " metrics_collector = JobMetricsCollector(tags=tags)\n", + "\n", + " job.to(metrics_collector, target=client_site, id=f\"{client_site}_job_metrics_collector\")\n", + " job.to(metrics_reporter, target=client_site, id=\"statsd_reporter\")\n", + "\n", + "```\n", + "\n", + "#### System Metrics Monitoring Configuration\n", + "\n", + "We need to manually edit the configuration files for System Metrics collections.\n", + "\n", + "For example, we need to add server to include \n", + "\n", + "* system metrics collector \n", + "* statsd reporter\n", + "\n", + "In the default POC setup, these components are added to \n", + "\"/tmp/nvflare/poc/example_project/prod_00/server/local/resources.json\"\n", + "\n", + "For Client sides, we need to add \n", + "\n", + "* system metrics collector \n", + "* statsd reporter\n", + "\n", + "\"/tmp/nvflare/poc/example_project/prod_00//local/resources.json\"\n", + "\n", + "for the default POC setup.\n", + "\n", + "\n", + "Instead of manually, go through each file, we wrote a small python program to do this: \n", + "\n", + "```bash\n", + "cd setup-1\n", + "./prepare_local_config.sh false\n", + "```\n", + "This will generate the needed system configuration for each site in this setup. \n", + "\n", + "\n", + "## Start up FLARE FL system with POC\n", + "\n", + "Now we are ready to start the FLARE FL system.\n", + "\n", + "1. Prepare POC:\n", + "\n", + " ```bash\n", + " nvflare poc prepare\n", + " ```\n", + "\n", + " This will prepare 1 server and 2 clients (\"site-1\", \"site-2\") and one admin console client (admin@nvidia.com). You can examine the output directory: ```/tmp/nvflare/poc/example_project/prod_00```.\n", + "\n", + "2. Start POC:\n", + " ```bash\n", + " nvflare poc start -ex admin@nvidia.com\n", + " ```\n", + " This will exclude the admin console service.\n", + "\n", + "3. Run Job:\n", + " See the run job section.\n", + "\n", + "4. Stop POC:\n", + " After you complete the job run, you can stop the POC by:\n", + "\n", + " ```bash\n", + " nvflare poc stop\n", + " ```\n", + "\n", + "## Run Job via CLI\n", + "\n", + "To run the job from the command line, use the following command:\n", + "\n", + "```bash\n", + "# Generate job config folder\n", + "python3 fl_job.py -j /tmp/nvflare/jobs/job_config\n", + "\n", + "# Submit the NVFlare job\n", + "nvflare job submit -j /tmp/nvflare/jobs/job_config/fedavg\n", + "```\n", + "\n", + "\n", + "## Monitoring View\n", + "\n", + "Once you setup the system, you can view from the followingt website\n", + "for statsd-exporter, you can look at \n", + "\n", + "### Statsd-exporter metrics view\n", + "\n", + "\n", + "metrics page: \"http://localhost:9102/metrics\" \n", + "\n", + "for the metrics published to statsd-export, which can be scraped by prometheus.\n", + "Here is a screen shot\n", + "\n", + "![screen shot](./figures/statsd_export_metrics_view.png)\n", + "\n", + "\n", + "### Prometheus metrics view\n", + "The same metrics is scraped by Prometheus can be found in this URL\n", + "\n", + "\n", + "metrics page: \"http://localhost:9090/metrics\"\n", + "\n", + "\n", + "### Grafana Dashboard views\n", + "\n", + "We can visualize them better via Grafana. \n", + "\n", + "\n", + "Visualization: http://localhost:3000\n", + "\n", + "Here are two metrics dashboards examples\n", + "\n", + "![Client heartbeat (before & after) time taken](./figures/grafana_plot_metrics_heatbeat_time_taken.png)\n", + "\n", + "![task processed accumated count](./figures/grafana_plot_metrics_view_task_count.png)\n", + "\n", + "\n", + "\n", + "## Complete steps\n", + "\n", + "Now, lets go to terminal and following all the steps to do the excersize\n", + "\n", + "* install dependencies \n", + "\n", + " ```\n", + " pip install -r jobs/requirements.txt\n", + " \n", + " ```\n", + "\n", + "* start monitoring systems (statsD, prometheus and grafana)\n", + " \n", + " ```\n", + " cd setup \n", + " \n", + " docker compose up -d\n", + "\n", + " cd ..\n", + " ```\n", + "\n", + "\n", + "* prepare poc\n", + "\n", + "```\n", + " nvflare poc prepare -n 5\n", + "\n", + "```\n", + "\n", + "* prepare local site configurations\n", + "\n", + "```\n", + " # the argument stream_to_server = false\n", + " \n", + " jobs/prepare_local_config.sh false\n", + "```\n", + " \n", + "* start poc \n", + "\n", + "```\n", + " nvflare poc start -ex admin@nvidia.com \n", + "\n", + "```\n", + "\n", + "* prepare data\n", + "\n", + "```\n", + " python jobs/data/download.py\n", + "\n", + "```\n", + "\n", + "* submit job\n", + "\n", + "\n", + "```bash\n", + " cd jobs/setup-1/code\n", + "\n", + " ./submit_job.sh\n", + "```\n", + "\n", + "* Monitoring System performance\n", + "\n", + "\n", + "statsd metrics page: \"http://localhost:9102/metrics\" \n", + "\n", + "\n", + "prometheus metrics page: \"http://localhost:9090/metrics\"\n", + "\n", + "\n", + "grafana visualization: http://localhost:3000\n", + "\n", + "\n", + "* Stop POC\n", + "\n", + "```\n", + " nvflare poc stop\n", + "\n", + " nvflare poc clean\n", + "```\n", + " \n", + "* Stop Monitoring Systems\n", + "\n", + "```\n", + " docker compose down\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Setup 2: Client Metrics streamed to Server\n", + "\n", + "In this setup, only the server site is connected to the monitoring system. This allows the server to monitor metrics on all client sites.\n", + "\n", + "![setup-2](./figures/setup-2.png)\n", + "\n", + "### Prepare Configuration for Setup 2: Client Metrics Streamed to Server\n", + "\n", + "Similar to setup 1, we need to consider both job and system level configurations\n", + "\n", + "\n", + "#### Job Metrics Monitoring Configuration\n", + "\n", + "We will configure the job to stream client metrics to the server. You can refer to the [jobs/setup-2/coode/fl_job.py](jobs/setup-2/code/fl_job.py).\n", + "\n", + "Here is the configuration:\n", + "\n", + "```python\n", + " job_name = \"fedavg\"\n", + "\n", + "\n", + "# add server side monitoring components\n", + "\n", + "server_tags = {\"site\": \"server\", \"env\": \"dev\"}\n", + "\n", + "metrics_reporter = StatsDReporter(site=\"server\", host=\"localhost\", port=9125)\n", + "metrics_collector = JobMetricsCollector(tags=server_tags, streaming_to_server=False)\n", + "remote_metrics_receiver = RemoteMetricsReceiver(events=[METRICS_EVENT_TYPE])\n", + "\n", + "job.to_server(metrics_collector, id=\"server_job_metrics_collector\")\n", + "job.to_server(metrics_reporter, id=\"statsd_reporter\")\n", + "job.to_server(remote_metrics_receiver, id=\"remote_metrics_receiver\")\n", + "\n", + "fed_event_converter = ConvertToFedEvent(events_to_convert=[METRICS_EVENT_TYPE])\n", + "\n", + "\n", + "# clients\n", + " .... ...\n", + "\n", + " client_site = f\"site-{i + 1}\"\n", + " job.to(executor, client_site)\n", + "\n", + " # add client side monitoring components\n", + " tags = {\"site\": client_site, \"env\": \"dev\"}\n", + "\n", + " metrics_collector = JobMetricsCollector(tags=tags)\n", + "\n", + " job.to(metrics_collector, target=client_site, id=f\"{client_site}_job_metrics_collector\")\n", + " job.to(fed_event_converter, target= client_site, id=f\"event_converter\")\n", + "```\n", + "\n", + "#### System Metrics Monitoring Configuration\n", + "\n", + "We need to manually edit the configuration files for System Metrics collections.\n", + "\n", + "We can use the same code in step is pretty the same except the followings\n", + "\n", + "* prepare local configs\n", + "\n", + "```bash\n", + " # stream_to_server = true\n", + " \n", + " jobs/prepare_local_config.sh true\n", + " \n", + "```\n", + "\n", + "* submit job\n", + "\n", + "\n", + "```bash\n", + " cd jobs/setup-2/code\n", + "\n", + " ./submit_job.sh\n", + "```\n", + "\n", + "\n", + "### Complete with rest of the steps \n", + "\n", + " * start monitoring system\n", + " * start the POC\n", + " * submit job\n", + " * review the metrics and visualization\n", + " * stop the POC \n", + " * stop monitoring system\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nvflare_env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/data/download.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/data/download.py new file mode 100644 index 0000000000..ebd8cfdc41 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/data/download.py @@ -0,0 +1,60 @@ +# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This Dirichlet sampling strategy for creating a heterogeneous partition is adopted +# from FedMA (https://github.com/IBM/FedMA). + +# MIT License + +# Copyright (c) 2020 International Business Machines + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import argparse + +import torchvision.datasets as datasets + +# default dataset path +CIFAR10_ROOT = "/tmp/nvflare/data/cifar10" + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, default=CIFAR10_ROOT, nargs="?") + args = parser.parse_args() + return args + + +def main(args): + datasets.CIFAR10(root=args.dataset_path, train=True, download=True) + datasets.CIFAR10(root=args.dataset_path, train=False, download=True) + + +if __name__ == "__main__": + main(define_parser()) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/edit_site_local_resources.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/edit_site_local_resources.py new file mode 100644 index 0000000000..0c3150ed0e --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/edit_site_local_resources.py @@ -0,0 +1,139 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import json +import os +import sys + + +def get_sys_metrics_collector(site: str, streaming_to_server: bool = False) -> dict: + return json.loads( + f""" + {{ + "id": "sys_metrics_collector", + "path": "nvflare.metrics.system_metrics_collector.SysMetricsCollector", + "args": {{ + "tags": {{ + "site": "{site}", + "env": "dev" + }}, + "streaming_to_server": {str(streaming_to_server).lower()} + }} + }} + """ + ) + + +def get_sys_metrics_receiver() -> dict: + return json.loads( + """ + { + + "id": "remote_metrics_receiver", + "path": "nvflare.metrics.remote_metrics_receiver.RemoteMetricsReceiver", + "args": { + "events": [ + "fed.metrics_event" + ] + } + } + """ + ) + + +def get_fed_event_converter() -> dict: + return json.loads( + """ + { + "id": "sys_metrics_event_to_fed", + "path": "nvflare.app_common.widgets.convert_to_fed_event.ConvertToFedEvent", + "args": { + "events_to_convert": ["metrics_event"] + } + } + """ + ) + + +def get_statsd_reporter() -> dict: + return json.loads( + """ + { + "id": "statsd_reporter", + "path": "nvflare.fuel_opt.statsd.statsd_reporter.StatsDReporter", + "args": { + "host": "localhost", + "port": 9125 + } + } + """ + ) + + +def add_components_to_json( + input_file_path, output_file_path, site: str, receiving: bool = False, streaming_to_server: bool = False +): + + try: + with open(input_file_path, "r") as file: + data = json.load(file) + except (FileNotFoundError, json.JSONDecodeError): + print("Error: Unable to read or parse JSON file.") + return + + if "components" not in data or not isinstance(data["components"], list): + print("Error: 'components' key not found or is not a list.") + return + + new_components = [get_sys_metrics_collector(site, streaming_to_server)] + + if receiving is True: + new_components.append(get_sys_metrics_receiver()) + + if streaming_to_server is True: + new_components.append(get_fed_event_converter()) + else: + new_components.append(get_statsd_reporter()) + + # Append new components to the list + data["components"].extend(new_components) + + # Write the updated JSON back to the file + with open(output_file_path, "w") as file: + json.dump(data, file, indent=4) + + print(f"Successfully generate file: '{output_file_path}'.") + + +if __name__ == "__main__": + + n_sites = int(sys.argv[1]) + streaming_to_server = sys.argv[2].lower() == "true" + + project_root_dir = sys.argv[3] + + receiving = streaming_to_server + + sites = [("server", receiving, False)] + + for n in range(n_sites): + sites.append((f"site-{n + 1}", False, streaming_to_server)) + + for site_name, receiving, streaming in sites: + input_file_path = os.path.join(project_root_dir, site_name, "local", "resources.json.default") + output_file_path = os.path.join(project_root_dir, site_name, "local", "resources.json") + add_components_to_json( + input_file_path, output_file_path, site_name, receiving=receiving, streaming_to_server=streaming + ) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/prepare_local_config.sh b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/prepare_local_config.sh new file mode 100755 index 0000000000..ffe3b94f1d --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/prepare_local_config.sh @@ -0,0 +1,4 @@ + +streaming_to_server="$1" +parent_dir=$(dirname "$BASH_SOURCE") +python ${parent_dir}/edit_site_local_resources.py 5 "${streaming_to_server}" /tmp/nvflare/poc/example_project/prod_00 \ No newline at end of file diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/requirements.txt b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/requirements.txt new file mode 100644 index 0000000000..bd818e8341 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/requirements.txt @@ -0,0 +1,4 @@ +torch +torchvision +tdigest +datadog diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/fl_job.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/fl_job.py new file mode 100644 index 0000000000..601f69639f --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/fl_job.py @@ -0,0 +1,90 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +from src.network import SimpleNetwork +from src.server import FedAvg + +from nvflare.fuel_opt.statsd.statsd_reporter import StatsDReporter +from nvflare.job_config.api import FedJob +from nvflare.job_config.script_runner import ScriptRunner +from nvflare.metrics.job_metrics_collector import JobMetricsCollector + + +def define_parser(parser): + + parser.add_argument( + "-j", "--job_configs_dir", type=str, default="/tmp/nvflare/jobs/job_config/", help="job configure folder" + ) + return parser + + +def main(job_configs_dir): + num_clients = 2 + num_rounds = 2 + train_script = "src/client.py" + job_name = "fedavg" + + job = FedJob(name=job_name, min_clients=num_clients) + + controller = FedAvg( + stop_cond="accuracy > 25", + save_filename="global_model.pt", + initial_model=SimpleNetwork(), + num_clients=num_clients, + num_rounds=num_rounds, + ) + + job.to_server(controller) + + # add server side monitoring components + + server_tags = {"site": "server", "env": "dev"} + + metrics_reporter = StatsDReporter(site="server", host="localhost", port=9125) + metrics_collector = JobMetricsCollector(tags=server_tags, streaming_to_server=False) + + job.to_server(metrics_collector, id="server_job_metrics_collector") + job.to_server(metrics_reporter, id="statsd_reporter") + + # Add clients + for i in range(num_clients): + executor = ScriptRunner(script=train_script, script_args="") + client_site = f"site-{i + 1}" + job.to(executor, client_site) + + # add client side monitoring components + tags = {"site": client_site, "env": "dev"} + + metrics_collector = JobMetricsCollector(tags=tags) + + job.to(metrics_collector, target=client_site, id=f"{client_site}_job_metrics_collector") + job.to(metrics_reporter, target=client_site, id="statsd_reporter") + + job_config_path = os.path.join(job_configs_dir, job_name) + print(f"job config folder = {job_config_path}") + + job.export_job(job_configs_dir) + # job.simulator_run("/tmp/nvflare/jobs/workdir", gpu="0") + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser(description="FedAvg Job Script") + parser = define_parser(parser) + args = parser.parse_args() + + main(args.job_configs_dir) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/client.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/client.py new file mode 100644 index 0000000000..0bb68f8c08 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/client.py @@ -0,0 +1,193 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +import torch +import torch.nn as nn +import torch.optim as optim +import torchvision +import torchvision.transforms as transforms +from network import SimpleNetwork + +# (1) import nvflare client API +import nvflare.client as flare +from nvflare.app_common.app_constant import ModelName + +# (optional) set a fix place so we don't need to download everytime +CIFAR10_ROOT = "/tmp/nvflare/data/cifar10" + +# (optional) We change to use GPU to speed things up. +# if you want to use CPU, change DEVICE="cpu" +DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, default=CIFAR10_ROOT, nargs="?") + parser.add_argument("--batch_size", type=int, default=4, nargs="?") + parser.add_argument("--learning_rate", type=float, default=0.001, nargs="?") + parser.add_argument("--num_workers", type=int, default=1, nargs="?") + parser.add_argument("--local_epochs", type=int, default=2, nargs="?") + parser.add_argument("--model_path", type=str, default=f"{CIFAR10_ROOT}/cifar_net.pth", nargs="?") + return parser.parse_args() + + +def main(): + # define local parameters + args = define_parser() + + dataset_path = args.dataset_path + batch_size = args.batch_size + num_workers = args.num_workers + local_epochs = args.local_epochs + model_path = args.model_path + lr = args.learning_rate + + transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) + trainset = torchvision.datasets.CIFAR10(root=dataset_path, train=True, download=True, transform=transform) + trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=num_workers) + testset = torchvision.datasets.CIFAR10(root=dataset_path, train=False, download=True, transform=transform) + testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size, shuffle=False, num_workers=num_workers) + + net = SimpleNetwork() + best_accuracy = 0.0 + + # wraps evaluation logic into a method to re-use for + # evaluation on both trained and received model + def evaluate(input_weights): + net = SimpleNetwork() + net.load_state_dict(input_weights) + # (optional) use GPU to speed things up + net.to(DEVICE) + + correct = 0 + total = 0 + # since we're not training, we don't need to calculate the gradients for our outputs + with torch.no_grad(): + for data in testloader: + # (optional) use GPU to speed things up + images, labels = data[0].to(DEVICE), data[1].to(DEVICE) + # calculate outputs by running images through the network + outputs = net(images) + # the class with the highest energy is what we choose as prediction + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + + return 100 * correct // total + + # (2) initialize NVFlare client API + flare.init() + + # (3) run continously when launch_once=true + while flare.is_running(): + + # (4) receive FLModel from NVFlare + input_model = flare.receive() + client_id = flare.get_site_name() + + # Based on different "task" we will do different things + # for "train" task (flare.is_train()) we use the received model to do training and/or evaluation + # and send back updated model and/or evaluation metrics, if the "train_with_evaluation" is specified as True + # in the config_fed_client we will need to do evaluation and include the evaluation metrics + # for "evaluate" task (flare.is_evaluate()) we use the received model to do evaluation + # and send back the evaluation metrics + # for "submit_model" task (flare.is_submit_model()) we just need to send back the local model + # (5) performing train task on received model + if flare.is_train(): + print(f"({client_id}) current_round={input_model.current_round}, total_rounds={input_model.total_rounds}") + + # (5.1) loads model from NVFlare + net.load_state_dict(input_model.params) + + criterion = nn.CrossEntropyLoss() + optimizer = optim.SGD(net.parameters(), lr=lr, momentum=0.9) + + # (optional) use GPU to speed things up + net.to(DEVICE) + # (optional) calculate total steps + steps = local_epochs * len(trainloader) + for epoch in range(local_epochs): # loop over the dataset multiple times + + running_loss = 0.0 + for i, data in enumerate(trainloader, 0): + # get the inputs; data is a list of [inputs, labels] + # (optional) use GPU to speed things up + inputs, labels = data[0].to(DEVICE), data[1].to(DEVICE) + + # zero the parameter gradients + optimizer.zero_grad() + + # forward + backward + optimize + outputs = net(inputs) + loss = criterion(outputs, labels) + loss.backward() + optimizer.step() + + # print statistics + running_loss += loss.item() + if i % 2000 == 1999: # print every 2000 mini-batches + print(f"({client_id}) [{epoch + 1}, {i + 1:5d}] loss: {running_loss / 2000:.3f}") + running_loss = 0.0 + break + + print(f"({client_id}) Finished Training") + + # (5.2) evaluation on local trained model to save best model + local_accuracy = evaluate(net.state_dict()) + print(f"({client_id}) Evaluating local trained model. Accuracy on the 10000 test images: {local_accuracy}") + if local_accuracy > best_accuracy: + best_accuracy = local_accuracy + torch.save(net.state_dict(), model_path) + + # (5.3) evaluate on received model for model selection + accuracy = evaluate(input_model.params) + print( + f"({client_id}) Evaluating received model for model selection. Accuracy on the 10000 test images: {accuracy}" + ) + + # (5.4) construct trained FL model + output_model = flare.FLModel( + params=net.cpu().state_dict(), + metrics={"accuracy": accuracy}, + meta={"NUM_STEPS_CURRENT_ROUND": steps}, + ) + + # (5.5) send model back to NVFlare + flare.send(output_model) + + # (6) performing evaluate task on received model + elif flare.is_evaluate(): + accuracy = evaluate(input_model.params) + print(f"({client_id}) accuracy: {accuracy}") + flare.send(flare.FLModel(metrics={"accuracy": accuracy})) + + # (7) performing submit_model task to obtain best local model + elif flare.is_submit_model(): + model_name = input_model.meta["submit_model_name"] + if model_name == ModelName.BEST_MODEL: + try: + weights = torch.load(model_path) + net = SimpleNetwork() + net.load_state_dict(weights) + flare.send(flare.FLModel(params=net.cpu().state_dict())) + except Exception as e: + raise ValueError("Unable to load best model") from e + else: + raise ValueError(f"Unknown model_type: {model_name}") + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/network.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/network.py new file mode 100644 index 0000000000..609b0b1581 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/network.py @@ -0,0 +1,37 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +class SimpleNetwork(nn.Module): + def __init__(self): + super(SimpleNetwork, self).__init__() + self.conv1 = nn.Conv2d(3, 6, 5) + self.pool = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(6, 16, 5) + self.fc1 = nn.Linear(16 * 5 * 5, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = self.pool(F.relu(self.conv1(x))) + x = self.pool(F.relu(self.conv2(x))) + x = torch.flatten(x, 1) # flatten all dimensions except batch + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/server.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/server.py new file mode 100644 index 0000000000..2792cbfee5 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/src/server.py @@ -0,0 +1,149 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +from typing import Callable, Dict, List, Optional + +import torch + +from nvflare.app_common.abstract.fl_model import FLModel +from nvflare.app_common.utils.math_utils import parse_compare_criteria +from nvflare.app_common.workflows.base_fedavg import BaseFedAvg +from nvflare.app_opt.pt.decomposers import TensorDecomposer +from nvflare.fuel.utils import fobs + + +class FedAvg(BaseFedAvg): + """Controller for FedAvg Workflow with Early Stopping and Model Selection. + + Args: + num_clients (int, optional): The number of clients. Defaults to 3. + num_rounds (int, optional): The total number of training rounds. Defaults to 5. + stop_cond (str, optional): early stopping condition based on metric. + string literal in the format of " " (e.g. "accuracy >= 80") + save_filename (str, optional): filename for saving model + initial_model (nn.Module, optional): initial PyTorch model + """ + + def __init__(self, *args, stop_cond: str, save_filename: str = "FL_global_model.pt", initial_model=None, **kwargs): + super().__init__(*args, **kwargs) + + self.stop_cond = stop_cond + + if stop_cond: + self.stop_condition = parse_compare_criteria(stop_cond) + else: + self.stop_condition = None + self.save_filename = save_filename + self.initial_model = initial_model + self.best_model: Optional[FLModel] = None + + def run(self) -> None: + self.info("Start FedAvg.") + + if self.initial_model: + # Use FOBS for serializing/deserializing PyTorch tensors (self.initial_model) + fobs.register(TensorDecomposer) + # PyTorch weights + initial_weights = self.initial_model.state_dict() + else: + initial_weights = {} + + model = FLModel(params=initial_weights) + + model.start_round = self.start_round + model.total_rounds = self.num_rounds + + for self.current_round in range(self.start_round, self.start_round + self.num_rounds): + self.info(f"Round {self.current_round} started.") + model.current_round = self.current_round + + clients = self.sample_clients(self.num_clients) + + results: List[FLModel] = self.send_model_and_wait(targets=clients, data=model) + aggregate_results = self.aggregate( + results, aggregate_fn=self.aggregate_fn + ) # using default aggregate_fn with `WeightedAggregationHelper`. Can overwrite self.aggregate_fn with signature Callable[List[FLModel], FLModel] + + model = self.update_model(model, aggregate_results) + + self.info(f"Round {self.current_round} global metrics: {model.metrics}") + + self.select_best_model(model) + + self.save_model(self.best_model, os.path.join(os.getcwd(), self.save_filename)) + + if self.should_stop(model.metrics, self.stop_condition): + self.info( + f"Stopping at round={self.current_round} out of total_rounds={self.num_rounds}. Early stop condition satisfied: {self.stop_condition}" + ) + break + + self.info("Finished FedAvg.") + + def should_stop(self, metrics: Optional[Dict] = None, stop_condition: Optional[str] = None): + if stop_condition is None or metrics is None: + return False + + key, target, op_fn = stop_condition + value = metrics.get(key, None) + + if value is None: + raise RuntimeError(f"stop criteria key '{key}' doesn't exists in metrics") + + return op_fn(value, target) + + def select_best_model(self, curr_model: FLModel): + if self.best_model is None: + self.best_model = curr_model + return + + if self.stop_condition: + metric, _, op_fn = self.stop_condition + if self.is_curr_model_better(self.best_model, curr_model, metric, op_fn): + self.info("Current model is new best model.") + self.best_model = curr_model + else: + self.best_model = curr_model + + def is_curr_model_better( + self, best_model: FLModel, curr_model: FLModel, target_metric: str, op_fn: Callable + ) -> bool: + curr_metrics = curr_model.metrics + if curr_metrics is None: + return False + if target_metric not in curr_metrics: + return False + + best_metrics = best_model.metrics + return op_fn(curr_metrics.get(target_metric), best_metrics.get(target_metric)) + + def save_model(self, model, filepath=""): + params = model.params + # PyTorch save + torch.save(params, filepath) + + # save FLModel metadata + model.params = {} + fobs.dumpf(model, filepath + ".metadata") + model.params = params + + def load_model(self, filepath=""): + # PyTorch load + params = torch.load(filepath) + + # load FLModel metadata + model = fobs.loadf(filepath + ".metadata") + model.params = params + return model diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/submit_job.sh b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/submit_job.sh new file mode 100755 index 0000000000..0a7452c28d --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-1/code/submit_job.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +# generate job config folder +python3 fl_job.py -j /tmp/nvflare/jobs/job_config + +# Submit the NVFlare job +nvflare job submit -j /tmp/nvflare/jobs/job_config/fedavg diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/data/download.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/data/download.py new file mode 100644 index 0000000000..ebd8cfdc41 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/data/download.py @@ -0,0 +1,60 @@ +# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This Dirichlet sampling strategy for creating a heterogeneous partition is adopted +# from FedMA (https://github.com/IBM/FedMA). + +# MIT License + +# Copyright (c) 2020 International Business Machines + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import argparse + +import torchvision.datasets as datasets + +# default dataset path +CIFAR10_ROOT = "/tmp/nvflare/data/cifar10" + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, default=CIFAR10_ROOT, nargs="?") + args = parser.parse_args() + return args + + +def main(args): + datasets.CIFAR10(root=args.dataset_path, train=True, download=True) + datasets.CIFAR10(root=args.dataset_path, train=False, download=True) + + +if __name__ == "__main__": + main(define_parser()) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/fl_job.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/fl_job.py new file mode 100644 index 0000000000..6b6b0d1f69 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/fl_job.py @@ -0,0 +1,96 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +from src.network import SimpleNetwork +from src.server import FedAvg + +from nvflare.app_common.widgets.convert_to_fed_event import ConvertToFedEvent +from nvflare.fuel_opt.statsd.statsd_reporter import StatsDReporter +from nvflare.job_config.api import FedJob +from nvflare.job_config.script_runner import ScriptRunner +from nvflare.metrics.job_metrics_collector import JobMetricsCollector +from nvflare.metrics.metrics_keys import METRICS_EVENT_TYPE +from nvflare.metrics.remote_metrics_receiver import RemoteMetricsReceiver + + +def define_parser(parser): + + parser.add_argument( + "-j", "--job_configs_dir", type=str, default="/tmp/nvflare/jobs/job_config/", help="job configure folder" + ) + return parser + + +def main(job_configs_dir): + num_clients = 5 + num_rounds = 5 + job_name = "fedavg" + train_script = "src/client.py" + + job = FedJob(name=job_name, min_clients=num_clients) + + controller = FedAvg( + stop_cond="accuracy > 25", + save_filename="global_model.pt", + initial_model=SimpleNetwork(), + num_clients=num_clients, + num_rounds=num_rounds, + ) + + job.to_server(controller) + # add server side monitoring components + + server_tags = {"site": "server", "env": "dev"} + + metrics_reporter = StatsDReporter(site="server", host="localhost", port=9125) + metrics_collector = JobMetricsCollector(tags=server_tags, streaming_to_server=False) + remote_metrics_receiver = RemoteMetricsReceiver(events=[METRICS_EVENT_TYPE]) + + job.to_server(metrics_collector, id="server_job_metrics_collector") + job.to_server(metrics_reporter, id="statsd_reporter") + job.to_server(remote_metrics_receiver, id="remote_metrics_receiver") + + fed_event_converter = ConvertToFedEvent(events_to_convert=[METRICS_EVENT_TYPE]) + + # Add clients + for i in range(num_clients): + executor = ScriptRunner(script=train_script, script_args="") + client_site = f"site-{i + 1}" + job.to(executor, client_site) + + # add client side monitoring components + tags = {"site": client_site, "env": "dev"} + + metrics_collector = JobMetricsCollector(tags=tags) + + job.to(metrics_collector, target=client_site, id=f"{client_site}_job_metrics_collector") + job.to(fed_event_converter, target=client_site, id="event_converter") + + job_config_path = os.path.join(job_configs_dir, job_name) + print(f"job config folder = {job_config_path}") + + job.export_job(job_configs_dir) + # job.simulator_run("/tmp/nvflare/jobs/workdir", gpu="0") + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser(description="FedAvg Job Script") + parser = define_parser(parser) + args = parser.parse_args() + + main(args.job_configs_dir) diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/client.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/client.py new file mode 100644 index 0000000000..220559b3cf --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/client.py @@ -0,0 +1,193 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +import torch +import torch.nn as nn +import torch.optim as optim +import torchvision +import torchvision.transforms as transforms +from network import SimpleNetwork + +# (1) import nvflare client API +import nvflare.client as flare +from nvflare.app_common.app_constant import ModelName + +# (optional) set a fix place so we don't need to download everytime +CIFAR10_ROOT = "/tmp/nvflare/data/cifar10" + +# (optional) We change to use GPU to speed things up. +# if you want to use CPU, change DEVICE="cpu" +DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, default=CIFAR10_ROOT, nargs="?") + parser.add_argument("--batch_size", type=int, default=4, nargs="?") + parser.add_argument("--learning_rate", type=float, default=0.001, nargs="?") + parser.add_argument("--num_workers", type=int, default=1, nargs="?") + parser.add_argument("--local_epochs", type=int, default=2, nargs="?") + parser.add_argument("--model_path", type=str, default=f"{CIFAR10_ROOT}/cifar_net.pth", nargs="?") + return parser.parse_args() + + +def main(): + # define local parameters + args = define_parser() + + dataset_path = args.dataset_path + batch_size = args.batch_size + num_workers = args.num_workers + local_epochs = args.local_epochs + model_path = args.model_path + lr = args.learning_rate + + transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) + trainset = torchvision.datasets.CIFAR10(root=dataset_path, train=True, download=True, transform=transform) + trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=num_workers) + testset = torchvision.datasets.CIFAR10(root=dataset_path, train=False, download=True, transform=transform) + testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size, shuffle=False, num_workers=num_workers) + + net = SimpleNetwork() + best_accuracy = 0.0 + + # wraps evaluation logic into a method to re-use for + # evaluation on both trained and received model + def evaluate(input_weights): + net = SimpleNetwork() + net.load_state_dict(input_weights) + # (optional) use GPU to speed things up + net.to(DEVICE) + + correct = 0 + total = 0 + # since we're not training, we don't need to calculate the gradients for our outputs + with torch.no_grad(): + for data in testloader: + # (optional) use GPU to speed things up + images, labels = data[0].to(DEVICE), data[1].to(DEVICE) + # calculate outputs by running images through the network + outputs = net(images) + # the class with the highest energy is what we choose as prediction + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + + return 100 * correct // total + + # (2) initialize NVFlare client API + flare.init() + + # (3) run continously when launch_once=true + while flare.is_running(): + + # (4) receive FLModel from NVFlare + input_model = flare.receive() + client_id = flare.get_site_name() + + # Based on different "task" we will do different things + # for "train" task (flare.is_train()) we use the received model to do training and/or evaluation + # and send back updated model and/or evaluation metrics, if the "train_with_evaluation" is specified as True + # in the config_fed_client we will need to do evaluation and include the evaluation metrics + # for "evaluate" task (flare.is_evaluate()) we use the received model to do evaluation + # and send back the evaluation metrics + # for "submit_model" task (flare.is_submit_model()) we just need to send back the local model + # (5) performing train task on received model + if flare.is_train(): + print(f"({client_id}) current_round={input_model.current_round}, total_rounds={input_model.total_rounds}") + + # (5.1) loads model from NVFlare + net.load_state_dict(input_model.params) + + criterion = nn.CrossEntropyLoss() + optimizer = optim.SGD(net.parameters(), lr=lr, momentum=0.9) + + # (optional) use GPU to speed things up + net.to(DEVICE) + # (optional) calculate total steps + steps = local_epochs * len(trainloader) + for epoch in range(local_epochs): # loop over the dataset multiple times + + running_loss = 0.0 + for i, data in enumerate(trainloader, 0): + # get the inputs; data is a list of [inputs, labels] + # (optional) use GPU to speed things up + inputs, labels = data[0].to(DEVICE), data[1].to(DEVICE) + + # zero the parameter gradients + optimizer.zero_grad() + + # forward + backward + optimize + outputs = net(inputs) + loss = criterion(outputs, labels) + loss.backward() + optimizer.step() + + # print statistics + running_loss += loss.item() + if i % 2000 == 1999: # print every 2000 mini-batches + print(f"({client_id}) [{epoch + 1}, {i + 1:5d}] loss: {running_loss / 2000:.3f}") + running_loss = 0.0 + break + + print(f"({client_id}) Finished Training") + + # (5.2) evaluation on local trained model to save best model + local_accuracy = evaluate(net.state_dict()) + print(f"({client_id}) Evaluating local trained model. Accuracy on the 10000 test images: {local_accuracy}") + if local_accuracy > best_accuracy: + best_accuracy = local_accuracy + torch.save(net.state_dict(), model_path) + + # (5.3) evaluate on received model for model selection + accuracy = evaluate(input_model.params) + print( + f"({client_id}) Evaluating received model for model selection. Accuracy on the 10000 test images: {accuracy}" + ) + + # (5.4) construct trained FL model + output_model = flare.FLModel( + params=net.cpu().state_dict(), + metrics={"accuracy": accuracy}, + meta={"NUM_STEPS_CURRENT_ROUND": steps}, + ) + + # (5.5) send model back to NVFlare + flare.send(output_model) + + # (6) performing evaluate task on received model + elif flare.is_evaluate(): + accuracy = evaluate(input_model.params) + print(f"({client_id}) accuracy: {accuracy}") + flare.send(flare.FLModel(metrics={"accuracy": accuracy})) + + # (7) performing submit_model task to obtain best local model + elif flare.is_submit_model(): + model_name = input_model.meta["submit_model_name"] + if model_name == ModelName.BEST_MODEL: + try: + weights = torch.load(model_path) + net = SimpleNetwork() + net.load_state_dict(weights) + flare.send(flare.FLModel(params=net.cpu().state_dict())) + except Exception as e: + raise ValueError("Unable to load best model") from e + else: + raise ValueError(f"Unknown model_type: {model_name}") + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/network.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/network.py new file mode 100644 index 0000000000..609b0b1581 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/network.py @@ -0,0 +1,37 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +class SimpleNetwork(nn.Module): + def __init__(self): + super(SimpleNetwork, self).__init__() + self.conv1 = nn.Conv2d(3, 6, 5) + self.pool = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(6, 16, 5) + self.fc1 = nn.Linear(16 * 5 * 5, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = self.pool(F.relu(self.conv1(x))) + x = self.pool(F.relu(self.conv2(x))) + x = torch.flatten(x, 1) # flatten all dimensions except batch + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/server.py b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/server.py new file mode 100644 index 0000000000..2792cbfee5 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/src/server.py @@ -0,0 +1,149 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +from typing import Callable, Dict, List, Optional + +import torch + +from nvflare.app_common.abstract.fl_model import FLModel +from nvflare.app_common.utils.math_utils import parse_compare_criteria +from nvflare.app_common.workflows.base_fedavg import BaseFedAvg +from nvflare.app_opt.pt.decomposers import TensorDecomposer +from nvflare.fuel.utils import fobs + + +class FedAvg(BaseFedAvg): + """Controller for FedAvg Workflow with Early Stopping and Model Selection. + + Args: + num_clients (int, optional): The number of clients. Defaults to 3. + num_rounds (int, optional): The total number of training rounds. Defaults to 5. + stop_cond (str, optional): early stopping condition based on metric. + string literal in the format of " " (e.g. "accuracy >= 80") + save_filename (str, optional): filename for saving model + initial_model (nn.Module, optional): initial PyTorch model + """ + + def __init__(self, *args, stop_cond: str, save_filename: str = "FL_global_model.pt", initial_model=None, **kwargs): + super().__init__(*args, **kwargs) + + self.stop_cond = stop_cond + + if stop_cond: + self.stop_condition = parse_compare_criteria(stop_cond) + else: + self.stop_condition = None + self.save_filename = save_filename + self.initial_model = initial_model + self.best_model: Optional[FLModel] = None + + def run(self) -> None: + self.info("Start FedAvg.") + + if self.initial_model: + # Use FOBS for serializing/deserializing PyTorch tensors (self.initial_model) + fobs.register(TensorDecomposer) + # PyTorch weights + initial_weights = self.initial_model.state_dict() + else: + initial_weights = {} + + model = FLModel(params=initial_weights) + + model.start_round = self.start_round + model.total_rounds = self.num_rounds + + for self.current_round in range(self.start_round, self.start_round + self.num_rounds): + self.info(f"Round {self.current_round} started.") + model.current_round = self.current_round + + clients = self.sample_clients(self.num_clients) + + results: List[FLModel] = self.send_model_and_wait(targets=clients, data=model) + aggregate_results = self.aggregate( + results, aggregate_fn=self.aggregate_fn + ) # using default aggregate_fn with `WeightedAggregationHelper`. Can overwrite self.aggregate_fn with signature Callable[List[FLModel], FLModel] + + model = self.update_model(model, aggregate_results) + + self.info(f"Round {self.current_round} global metrics: {model.metrics}") + + self.select_best_model(model) + + self.save_model(self.best_model, os.path.join(os.getcwd(), self.save_filename)) + + if self.should_stop(model.metrics, self.stop_condition): + self.info( + f"Stopping at round={self.current_round} out of total_rounds={self.num_rounds}. Early stop condition satisfied: {self.stop_condition}" + ) + break + + self.info("Finished FedAvg.") + + def should_stop(self, metrics: Optional[Dict] = None, stop_condition: Optional[str] = None): + if stop_condition is None or metrics is None: + return False + + key, target, op_fn = stop_condition + value = metrics.get(key, None) + + if value is None: + raise RuntimeError(f"stop criteria key '{key}' doesn't exists in metrics") + + return op_fn(value, target) + + def select_best_model(self, curr_model: FLModel): + if self.best_model is None: + self.best_model = curr_model + return + + if self.stop_condition: + metric, _, op_fn = self.stop_condition + if self.is_curr_model_better(self.best_model, curr_model, metric, op_fn): + self.info("Current model is new best model.") + self.best_model = curr_model + else: + self.best_model = curr_model + + def is_curr_model_better( + self, best_model: FLModel, curr_model: FLModel, target_metric: str, op_fn: Callable + ) -> bool: + curr_metrics = curr_model.metrics + if curr_metrics is None: + return False + if target_metric not in curr_metrics: + return False + + best_metrics = best_model.metrics + return op_fn(curr_metrics.get(target_metric), best_metrics.get(target_metric)) + + def save_model(self, model, filepath=""): + params = model.params + # PyTorch save + torch.save(params, filepath) + + # save FLModel metadata + model.params = {} + fobs.dumpf(model, filepath + ".metadata") + model.params = params + + def load_model(self, filepath=""): + # PyTorch load + params = torch.load(filepath) + + # load FLModel metadata + model = fobs.loadf(filepath + ".metadata") + model.params = params + return model diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/submit_job.sh b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/submit_job.sh new file mode 100755 index 0000000000..0a7452c28d --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/jobs/setup-2/code/submit_job.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +# generate job config folder +python3 fl_job.py -j /tmp/nvflare/jobs/job_config + +# Submit the NVFlare job +nvflare job submit -j /tmp/nvflare/jobs/job_config/fedavg diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/docker-compose.yml b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/docker-compose.yml new file mode 100644 index 0000000000..782e664720 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.7' + +services: + + statsd-exporter: + image: prom/statsd-exporter:latest + container_name: statsd-exporter + ports: + - "9102:9102" # Prometheus metrics endpoint + - "9125:9125" + - "9125:9125/udp" + networks: + - monitoring + + + prometheus: + image: prom/prometheus + container_name: prometheus + depends_on: + - statsd-exporter + networks: + - monitoring + ports: + - "9090:9090" + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + + grafana: + image: grafana/grafana + container_name: grafana + ports: + - "3000:3000" + volumes: + - ./grafana/provisioning:/etc/grafana/provisioning + networks: + - monitoring + environment: + - GF_SECURITY_ADMIN_PASSWORD=admin + restart: always + depends_on: + - prometheus + +networks: + monitoring: + driver: bridge diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/grafana/provisioning/datasources/datasources.yaml b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/grafana/provisioning/datasources/datasources.yaml new file mode 100644 index 0000000000..86fd3465e1 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/grafana/provisioning/datasources/datasources.yaml @@ -0,0 +1,8 @@ +apiVersion: 1 + +datasources: + - name: Prometheus + type: prometheus + access: proxy + url: http://prometheus:9090 + isDefault: true diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/prometheus.yml b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/prometheus.yml new file mode 100644 index 0000000000..e4b41ca047 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/setup/prometheus.yml @@ -0,0 +1,9 @@ +global: + scrape_interval: 5s + evaluation_interval: 5s + +scrape_configs: + - job_name: 'statsd' + static_configs: + - targets: ['statsd-exporter:9102'] # Use the container name for statsd-exporter + \ No newline at end of file diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/system_monitorinig.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/system_monitorinig.ipynb index 5a0bc7016c..13f8b85f0b 100644 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/system_monitorinig.ipynb +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/system_monitorinig.ipynb @@ -1,11 +1,418 @@ { "cells": [ { - "cell_type": "code", - "execution_count": null, - "id": "54a97bf3-1f81-4967-b9bd-695a86a23c2a", + "cell_type": "markdown", + "id": "343838f7", + "metadata": {}, + "source": [ + "# FLARE System Monitoring" + ] + }, + { + "cell_type": "markdown", + "id": "f6d42899", + "metadata": {}, + "source": [ + "# NVFLARE System Metrics Monitoring\n", + "\n", + "FLARE Monitoring provides a initial solution for tracking system metrics of your federated learning jobs.\n", + "Different from Machine learning experiment tracking, where it focused on the training metrics, the monitoring here focused on the FL system: i.e. job and system lifecycle metrics.\n", + "\n", + "This guide describes how to set up NVFLARE metrics publishing to StatsD Exporter, which then can be scraped by Prometheus and visualized with Grafana.\n", + "\n", + "## Setup Types\n", + "\n", + "### 1. Shared Monitoring System for All Sites\n", + "\n", + "All sites will share the same monitoring system.\n", + "\n", + "![setup-1](./figures/setup-1.png)\n", + "\n", + "#### Steps:\n", + "1. **Install StatsD Exporter, Prometheus, and Grafana** on a central monitoring server.\n", + "2. **Configure system metrics collector and statsd-report** to receive metrics from all NVFLARE sites and export to statsd-exporter\n", + "3. **Configure Prometheus** to scrape metrics from the central StatsD Exporter.\n", + "4. **Set up Grafana** to visualize the metrics from Prometheus.\n", + "\n", + "> side notes: \n", + " don't confuse statsd-exporter and statsd-reporter. statsd-exporter is a libary (such as from datadog) used to receive metrics and for prometheus to scrape from; statsd-reporter is the FLARE component which export metrics to statsd-exporter. \n", + "\n", + "\n", + "\n", + "### 2. Clients Forward Metrics to Server Site\n", + "\n", + "Clients will forward (stream) the metrics to the server site, and the server site will publish them to the monitoring system, which will have a consolidated view of all metrics.\n", + "\n", + "![setup-2](figures/setup-2.png)\n", + "\n", + "#### Steps:\n", + "1. **Install StatsD Exporter, Prometheus, and Grafana** on the site that can be reached by FL server\n", + "2. **Configure clients** \n", + " * add system metrics collector and enable event streaming \n", + " * add Fed Event Conveter to conver local metrics_event to Fed Event, which forward metrics to the server site.\n", + "\n", + "3. **Configure system metrice receiver and StatsD Exporter** on the server site to receive metrics from all clients.\n", + "4. **Configure system metrics collector** on the server site\n", + "5. **Configure Prometheus** on the server site to scrape metrics from StatsD Exporter.\n", + "6. **Set up Grafana** on the server site to visualize the metrics from Prometheus.\n", + "\n", + "\n", + "### 3. Individual Monitoring Systems for Each Site\n", + "\n", + "Each client site and the server site will have its own monitoring system, including StatsD Exporter, Prometheus, and Grafana.\n", + "\n", + "![setup-3](figures/setup-3.png)\n", + "\n", + "#### Steps:\n", + "1. **Install StatsD Exporter, Prometheus, and Grafana** on each site.\n", + "2. **Configure System metrics collector and StatsD Exporter** to receive metrics from NVFLARE.\n", + "3. **Configure Prometheus** to scrape metrics from StatsD Exporter.\n", + "4. **Set up Grafana** to visualize the metrics from Prometheus.\n", + "\n", + "## NVFLARE Monitoring Metrics\n", + "\n", + "| Event | Metric Count | Metric Time Taken |\n", + "|-------|--------------|-------------------|\n", + "| SYSTEM_START | _system_start_count | |\n", + "| SYSTEM_END | _system_end_count | _system_time_taken |\n", + "| ABOUT_TO_START_RUN | _about_to_start_run_count | |\n", + "| START_RUN | _start_run_count | |\n", + "| ABOUT_TO_END_RUN | _about_to_end_run_count | |\n", + "| END_RUN | _end_run_count | _run_time_taken |\n", + "| CHECK_END_RUN_READINESS | _check_end_run_readiness_count | |\n", + "| SWAP_IN | _swap_in_count | |\n", + "| SWAP_OUT | _swap_out_count | |\n", + "| START_WORKFLOW | _start_workflow_count | |\n", + "| END_WORKFLOW | _end_workflow_count | _workflow_time_taken |\n", + "| ABORT_TASK | _abort_task_count | |\n", + "| FATAL_SYSTEM_ERROR | _fatal_system_error_count | |\n", + "| JOB_DEPLOYED | _job_deployed_count | |\n", + "| JOB_STARTED | _job_started_count | |\n", + "| JOB_COMPLETED | _job_completed_count | _job_time_taken |\n", + "| JOB_ABORTED | _job_aborted_count | |\n", + "| JOB_CANCELLED | _job_cancelled_count | |\n", + "| CLIENT_DISCONNECTED | _client_disconnected_count | |\n", + "| CLIENT_RECONNECTED | _client_reconnected_count | |\n", + "| BEFORE_PULL_TASK | _before_pull_task_count | |\n", + "| AFTER_PULL_TASK | _after_pull_task_count | _pull_task_time_taken |\n", + "| BEFORE_PROCESS_TASK_REQUEST | _before_process_task_request_count | |\n", + "| AFTER_PROCESS_TASK_REQUEST | _after_process_task_request_count | _process_task_request_time_taken |\n", + "| BEFORE_PROCESS_SUBMISSION | _before_process_submission_count | |\n", + "| AFTER_PROCESS_SUBMISSION | _after_process_submission_count | _process_submission_time_taken |\n", + "| BEFORE_TASK_DATA_FILTER | _before_task_data_filter_count | |\n", + "| AFTER_TASK_DATA_FILTER | _after_task_data_filter_count | _data_filter_time_taken |\n", + "| BEFORE_TASK_RESULT_FILTER | _before_task_result_filter_count | |\n", + "| AFTER_TASK_RESULT_FILTER | _after_task_result_filter_count | _result_filter_time_taken |\n", + "| BEFORE_TASK_EXECUTION | _before_task_execution_count | |\n", + "| AFTER_TASK_EXECUTION | _after_task_execution_count | _task_execution_time_taken |\n", + "| BEFORE_SEND_TASK_RESULT | _before_send_task_result_count | |\n", + "| AFTER_SEND_TASK_RESULT | _after_send_task_result_count | _send_task_result_time_taken |\n", + "| BEFORE_PROCESS_RESULT_OF_UNKNOWN_TASK | _before_process_result_of_unknown_task_count | |\n", + "| AFTER_PROCESS_RESULT_OF_UNKNOWN_TASK | _after_process_result_of_unknown_task_count | _process_result_of_unknown_task_time_taken |\n", + "| PRE_RUN_RESULT_AVAILABLE | _pre_run_result_available_count | |\n", + "| BEFORE_CHECK_CLIENT_RESOURCES | _before_check_client_resources_count | |\n", + "| AFTER_CHECK_CLIENT_RESOURCES | _after_check_client_resources./ways_to_interact_with_fl_system.ipynb_count | _check_client_resources_time_taken |\n", + "| SUBMIT_JOB | _submit_job_count | |\n", + "| DEPLOY_JOB_TO_SERVER | _deploy_job_to_server_count | |\n", + "| DEPLOY_JOB_TO_CLIENT | _deploy_job_to_client_count | |\n", + "| BEFORE_CHECK_RESOURCE_MANAGER | _before_check_resource_manager_count | |\n", + "| BEFORE_SEND_ADMIN_COMMAND | _before_send_admin_command_count | |\n", + "| BEFORE_CLIENT_REGISTER | _before_client_register_count | |\n", + "| AFTER_CLIENT_REGISTER | _after_client_register_count | client_register_time_taken |\n", + "| CLIENT_REGISTER_RECEIVED | _client_register_received_count | |\n", + "| CLIENT_REGISTER_PROCESSED | _client_register_processed_count | |\n", + "| CLIENT_QUIT | _client_quit_count | |\n", + "| SYSTEM_BOOTSTRAP | _system_bootstrap_count | |\n", + "| BEFORE_AGGREGATION | _before_aggregation_count | |\n", + "| END_AGGREGATION | _end_aggregation_count | _aggregation_time_taken|\n", + "| RECEIVE_BEST_MODEL | _receive_best_model_count | |\n", + "| BEFORE_TRAIN | _before_train_count | |\n", + "| AFTER_TRAIN | _after_train_count |_train_time_taken |\n", + "| TRAIN_DONE | _train_done_count | |\n", + "| TRAINING_STARTED | _training_count | |\n", + "| TRAINING_FINISHED | _training_count | _training_time_taken|\n", + "| ROUND_STARTED | _round_started_count | |\n", + "| ROUND_DONE | _round_done_count | _round_time_taken |\n", + " \n", + "\n", + "These metrics can be separated into Job Metrics and System Metrics. System Metrics are associated with the Client and Server parent processes, while Job Metrics are associated with each job.\n", + "\n", + "\n", + "## NVFLARE Monitoring Components Configuration\n", + "\n", + "### Components Overview\n", + "\n", + "We have several components to use depending on the type of metrics as well as the setups:\n", + "We have several components to use depending on the type of metrics and the setup:\n", + "1. **StatsDReporter**: This component will post the collected metrics to StatsD Exporter service.\n", + "2. **JobMetricsCollector**: This component collects job-level metrics and publishes them to the databus. It can be added to the workflow components on both client and server sites.\n", + "3. **SysMetricsCollector**: This component collects system-level metrics running in the parent process of the server and clients. The metrics will be published to the databus.\n", + "4. **RemoteMetricsReceiver**: This component receives the federated metrics streamed from client sides and publish the metriics. \n", + "4. **RemoteMetricsReceiver**: This component receives the federated metrics streamed from client sides and publishes the metrics.\n", + "\n", + "\n", + "### Components Configuration\n", + "\n", + "We will describe the component configuration in the following sections, but note some of the Job level configurations can be auto-generated from Job API, which will be described in the [job example](jobs/README.md).\n", + "\n", + ">> sidebar note:\n", + "\n", + "> The NVIDIA FLARE json component configration is very simple, it consists the following patterns \n", + "> The NVIDIA FLARE JSON component configuration is very simple. It consists of the following patterns:\n", + "```{ \n", + " \"id\": \"\"\n", + " \"args\": {\n", + " \n", + " }\n", + "```\n", + "\n", + "#### 1. Shared Monitoring System for All Sites\n", + "\n", + "In this setup, all sites post the metrics to the common StatsD Exporter service. Therefore, all sites will need StatsD Exporter with the same host and port. Additionally, all sites will need both JobMetricsCollector and SysMetricsCollector components. \n", + "In this setup, all sites post the metrics to the common StatsD Exporter service. Therefore, all sites will need StatsD Exporter with the same host and port. Additionally, all sites will need both JobMetricsCollector and SysMetricsCollector components.\n", + "We don't need streaming metrics, so the ConvertToFedEvent and RemoteMetricsReceiver components are not needed.\n", + "\n", + "To add Job Metrics Collector, we will add component in job configurations ```fed_config_client.json``` and ```fed_config_server.json```. For example\n", + "\n", + "\n", + "```fed_config_client.json```\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"job_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.job_metrics_collector.JobMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"site_1\",\n", + " \"env\": \"dev\"\n", + " }\n", + " }\n", + "},\n", + "{\n", + " \"id\": \"statsd_reporter\",\n", + " \"path\": \"nvflare.fuel_opt.statsd.statsd_reporter.StatsDReporter\",\n", + " \"args\": {\n", + " \"host\": \"\",\n", + " \"port\": \n", + " }\n", + "}\n", + "``` \n", + "\n", + "\n", + "```fed_config_server.json```\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"job_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.job_metrics_collector.JobMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"server\",\n", + " \"env\": \"dev\"\n", + " }\n", + " }\n", + "},\n", + "{\n", + " \"id\": \"statsd_reporter\",\n", + " \"path\": \"nvflare.fuel_opt.statsd.statsd_reporter.StatsDReporter\",\n", + " \"args\": {\n", + " \"host\": \"\",\n", + " \"port\": \n", + " }\n", + "}\n", + "``` \n", + "\n", + "tags can be key, value pair, they are used for group metrics in the report. Here we used \"site\" to indicate origin of the metrics, the \"dev\" env. to indicating the dev environment. \n", + "Tags can be key-value pairs used for grouping metrics in the report. Here we used \"site\" to indicate the origin of the metrics and \"env\" to indicate the development environment.\n", + "\n", + "\n", + "The `SysMetricsCollector` is for the client and server parent process and must be configured in the local resources configuration file for each site. This cannot be specified from the Job API.\n", + "The `SysMetricsCollector` is for the client and server parent processes and must be configured in the local resources configuration file for each site. This cannot be specified from the Job API.\n", + "In the ```//local/resources.json.default```\n", + "\n", + "we can create a customized local configuration\n", + "\n", + "```//local/resources.json```\n", + "\n", + "by rename ```resources.json.default``` to ```resources.json```\n", + "by renaming ```resources.json.default``` to ```resources.json```\n", + "in ```//local/resources.json```\n", + "\n", + "Add the following configuration:\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"sys_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.sys_metrics_collector.SysMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"\",\n", + " \"env\": \"dev\"\n", + " }\n", + " }\n", + "}, \n", + "{\n", + " \"id\": \"statsd_reporter\",\n", + " \"path\": \"nvflare.fuel_opt.statsd.statsd_reporter.StatsDReporter\",\n", + " \"args\": {\n", + " \"host\": \"\",\n", + " \"port\": \n", + " }\n", + "}\n", + "```\n", + "\n", + "Replace `` and `` with the appropriate values for your setup.\n", + "\n", + "\n", + "\n", + "#### 2. Clients Forward Metrics to Server Site\n", + "In this setup, all client-side metrics will not directly post to the StatsD Exporter. Instead, the metrics are streamed to the server site. Therefore, the client side will need the following components:\n", + "In this setup, all client-side metrics will not be directly posted to the StatsD Exporter. Instead, the metrics are streamed to the server site. Therefore, the client side will need the following components:\n", + "- **JobMetricsCollector**\n", + "- **SysMetricsCollector**\n", + "- **ConvertToFedEvent**\n", + "\n", + "On the server side, we will need:\n", + "\n", + "- **StatsDReporter**\n", + "- **JobMetricsCollector**\n", + "- **SysMetricsCollector**\n", + "- **RemoteMetricsReceiver**\n", + "\n", + "In ```fed_config_client.json```,\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"job_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.job_metrics_collector.JobMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"site_1\",\n", + " \"env\": \"dev\"\n", + " }, \n", + " \"streaming_to_server\": true\n", + " }\n", + "},\n", + "{\n", + " \"id\": \"event_convertor\",\n", + " \"path\": \"nvflare.app_common.widgets.convert_to_fed_event.ConvertToFedEvent\",\n", + " \"args\": {\n", + " \"events_to_convert\": [\"metrics_event\"]\n", + " }\n", + "}\n", + "```\n", + "\n", + "\n", + "```fed_config_server.json```\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"job_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.job_metrics_collector.JobMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"server\",\n", + " \"env\": \"dev\"\n", + " }\n", + " }\n", + "},\n", + "{\n", + " \"id\": \"statsd_reporter\",\n", + " \"path\": \"nvflare.fuel_opt.statsd.statsd_reporter.StatsDReporter\",\n", + " \"args\": {\n", + " \"host\": \"\",\n", + " \"port\": \n", + " }\n", + "},\n", + "{\n", + " \"id\": \"remote_metrics_receiver\",\n", + " \"path\": \"nvflare.metrics.remote_metrics_reciever.RemoteMetricsReceiver\",\n", + " \"args\": {\n", + " \"events\": [\"fed.metrics_event\"]\n", + " }\n", + "} \n", + "```\n", + "\n", + "\n", + "in client side (site-1, site-2) ```//local/resources.json```\n", + "\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"sys_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.sys_metrics_collector.SysMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"\",\n", + " \"env\": \"dev\"\n", + " },\n", + " \n", + " \"streaming_to_server\": true\n", + "\n", + " }\n", + "}, \n", + "{\n", + " \"id\": \"event_convertor\",\n", + " \"path\": \"nvflare.app_common.widgets.convert_to_fed_event.ConvertToFedEvent\",\n", + " \"args\": {\n", + " \"events_to_convert\": [\"metrics_event\"]\n", + " }\n", + "}\n", + " \n", + "```\n", + "\n", + "in server side (such \"server\") ```//local/resources.json```\n", + "\n", + "\n", + "```json\n", + "{\n", + " \"id\": \"sys_metrics_collector\",\n", + " \"path\": \"nvflare.metrics.sys_metrics_collector.SysMetricsCollector\",\n", + " \"args\": {\n", + " \"tags\": {\n", + " \"site\": \"\",\n", + " \"env\": \"dev\"\n", + " }\n", + " }\n", + "}, \n", + "{\n", + " \"id\": \"statsd_reporter\",\n", + " \"path\": \"nvflare.fuel_opt.statsd.statsd_reporter.StatsDReporter\",\n", + " \"args\": {\n", + " \"host\": \"\",\n", + " \"port\": \n", + " }\n", + "},\n", + "{\n", + " \"id\": \"remote_metrics_receiver\",\n", + " \"path\": \"nvflare.metrics.remote_metrics_reciever.RemoteMetricsReceiver\",\n", + " \"args\": {\n", + " \"events\": [\"fed.metrics_event\"]\n", + " }\n", + "}\n", + "```\n", + "\n", + "\n", + "#### 3. Individual Monitoring Systems for Each Site\n", + "\n", + "The configuration for this setup should be the same as setup 1, the only differences are the statsd-exporters' hosts and ports are not the same. \n", + "The configuration for this setup should be the same as setup 1, with the only differences being the StatsD Exporter's hosts and ports.\n", + "\n", + "### Summary\n", + "\n", + "By following the steps outlined above, you can set up NVFLARE to publish metrics to StatsD Exporter, Prometheus, and Grafana, using one of the three setup types that best fits your needs.\n", + "\n", + "## Job Example\n", + "\n", + "We are going to use hello-pt as an example and demonstrate the two setup scenarios. Please continue with the [Job Example](jobs/README.md).\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "8a930ff1", "metadata": {}, - "outputs": [], "source": [] } ], diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.5_recap/recap.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.5_recap/recap.ipynb index 62209f770d..08c8ad0df8 100644 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.5_recap/recap.ipynb +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.5_recap/recap.ipynb @@ -1,9 +1,25 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "7c3c89fa-6355-4d34-8d85-a9447152996f", + "metadata": {}, + "source": [ + "# Chapter 3 Summary\n", + "\n", + "\n", + "In this chapter, we explored:\n", + "\n", + "* FLARE's overall system architecture\n", + "* POC mode to simulate deployment locally\n", + "* Different ways to interact with the FLARE system\n", + "* Monitoring the system with StatsD, Prometheus, and Grafana\n" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "7c3c89fa-6355-4d34-8d85-a9447152996f", + "id": "c64e6390", "metadata": {}, "outputs": [], "source": [] diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.3_provision_and_run_with_docker/provision_and_run_with_dockers.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.4_provision_and_run_with_docker/provision_and_run_with_dockers.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.3_provision_and_run_with_docker/provision_and_run_with_dockers.ipynb rename to examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.4_provision_and_run_with_docker/provision_and_run_with_dockers.ipynb diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.4_provision_and_run_with_k8s/provision_and_run_with_k8s.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.7_provision_and_run_with_k8s/provision_and_run_with_k8s.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.4_provision_and_run_with_k8s/provision_and_run_with_k8s.ipynb rename to examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.7_provision_and_run_with_k8s/provision_and_run_with_k8s.ipynb diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.7_recap/recap.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.8_recap/recap.ipynb similarity index 100% rename from examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.7_recap/recap.ipynb rename to examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-4_setup_federated_system/04.8_recap/recap.ipynb diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/part-2_introduction.ipynb b/examples/tutorials/self-paced-training/part-2_federated_learning_system/part-2_introduction.ipynb index 0ed7d1d53a..23f8202bf9 100644 --- a/examples/tutorials/self-paced-training/part-2_federated_learning_system/part-2_introduction.ipynb +++ b/examples/tutorials/self-paced-training/part-2_federated_learning_system/part-2_introduction.ipynb @@ -6,9 +6,9 @@ "source": [ "# Part 2: Federated Computing System\n", "\n", - "[Chapter 2.1 federated computing platform](chapter-2.1_federated_computing_platform/02.1.0_introduction.ipynb)\n", + "[Chapter 3 federated computing platform](./chapter-3_federated_computing_platform/03.0_introduction/introduction.ipynb)\n", "\n", - "[Chapter 2.2 setup federated computing system](./chapter-2.2_provision_and_running_federated_applications/02.2.0_introduction.ipynb)" + "[Chapter 4 setup federated computing system](./chapter-4_setup_federated_system/04.0_introduction/introduction.ipynb)" ] }, { @@ -20,7 +20,9 @@ "We will further discuss different ways for users to interact with a Federated Learning System. These include admin console commands, Python API, and command-line commands.\n", "\n", "Finally, we will look at how to monitor system events using Prometheus and Grafana.\n", - "> note: this monitoring feature requres FLARE 2.6.0 release or later" + "> note: this monitoring feature requres FLARE 2.6.0 release or later\n", + "\n", + "Let's dive in. " ] }, { From c0a6e7cc9206a73ea85d50c53b515cde18674b31 Mon Sep 17 00:00:00 2001 From: Chester Chen <512707+chesterxgchen@users.noreply.github.com> Date: Tue, 4 Feb 2025 14:49:01 -0800 Subject: [PATCH 2/9] Add self-paced-training tutorial readme (#3202) Fixes # . ### Description A few sentences describing the changes proposed in this pull request. ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- .../tutorials/self-paced-training/README.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 examples/tutorials/self-paced-training/README.md diff --git a/examples/tutorials/self-paced-training/README.md b/examples/tutorials/self-paced-training/README.md new file mode 100644 index 0000000000..3b8c396fcb --- /dev/null +++ b/examples/tutorials/self-paced-training/README.md @@ -0,0 +1,33 @@ +# Federated Learning with NVIDIA FLARE + +This is a five-part course on Federated Learning with NVIDIA FLARE covers various aspects of federated learning, including how to develop and run federated learning applications, set up and deploy federated learning systems, and understand the privacy and security aspects of federated learning. + +The initial 12-chapter course give you a comprehensive views of the FLARE, from running federated learning application, algorithms, system architecture, experimental treacking, system monitoring to industrial applications. + + While each notebook can run independently, and you can skip certain chapters or sections, it is recommended to follow them one-by-one in order. + +### [Part 1: Introduction to Federated Learning](./part-1_federated_learning_introduction/part_1_introduction.ipynb) + +Running and developing federated learning applications using a simulator. + +### [Part 2: Federated Learning System](./part-2_federated_learning_system/part-2_introduction.ipynb) + +In this part, we dive into NVIDIA FLARE's federated learning/computing system, including system architecture, deployment process, deployment simulation, and interaction with the system. + +### [Part 3: Security and Privacy](./part-3_security_and_privacy/part-3_introduction.ipynb) + +Once we understand the basics of federated learning applications and federated computing systems, we will dive into other aspects of federated learning applications: privacy and security. We will discuss privacy and security concerns, different Privacy Enhancing Techniques (PETs), as well as enterprise security support. + +### [Part 4: Advanced Topics in Federated Learning](./part-4_advanced_federated_learning/part-4_introduction.ipynb) + +We will discuss federated learning with advanced topics: + +* Different federated learning algorithms such as FedOpt, FedProx, etc. +* Different federated learning workflows: cyclic, split learning, swarm learning +* How to train or fine-tune large language models +* How to train secure federated XGBoost +* FLARE high-level vs. low-level APIs: dive into low-level but powerful APIs + +### [Part 5: Federated Learning in Different Industries](./part-5_federated_learning_applications_in_industries/part-5_introduction.ipynb) + +We have covered quite a bit of federated learning techniques. How do we apply them to different training use cases for cancer studies or fraud detection? Part 5 will show you how to use these techniques in different applications. \ No newline at end of file From 3a02e691b3dfdfe3c4c27a27a1b31eb35675f74f Mon Sep 17 00:00:00 2001 From: nvkevlu <55759229+nvkevlu@users.noreply.github.com> Date: Wed, 5 Feb 2025 07:36:34 -0800 Subject: [PATCH 3/9] Add content for survival analysis for DLI (#3204) Add content for survival analysis for DLI. ### Description Add content for KM survival analysis for DLI. ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- .../code/figs/km_curve_baseline.png | Bin 0 -> 28709 bytes .../code/figs/km_curve_fl.png | Bin 0 -> 16831 bytes .../code/figs/km_curve_fl_he.png | Bin 0 -> 17041 bytes .../code/km_job.py | 115 ++++++++ .../code/requirements.txt | 3 + .../code/src/kaplan_meier_train.py | 152 ++++++++++ .../code/src/kaplan_meier_train_he.py | 195 +++++++++++++ .../code/src/kaplan_meier_wf.py | 83 ++++++ .../code/src/kaplan_meier_wf_he.py | 131 +++++++++ .../code/utils/baseline_kaplan_meier.py | 82 ++++++ .../code/utils/prepare_data.py | 89 ++++++ .../code/utils/prepare_he_context.py | 62 ++++ .../convert_survival_analysis_to_fl.ipynb | 270 +++++++++++++++++- 13 files changed, 1177 insertions(+), 5 deletions(-) create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_baseline.png create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_fl.png create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_fl_he.png create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/km_job.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/requirements.txt create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train_he.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf_he.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/baseline_kaplan_meier.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_data.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_he_context.py diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_baseline.png b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_baseline.png new file mode 100644 index 0000000000000000000000000000000000000000..9ff1fcdb4c52e01d8a60c108b00246354aa72dfa GIT binary patch literal 28709 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 P@JIT#yhM(ep4a~YH!?K~ literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_fl_he.png b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/figs/km_curve_fl_he.png new file mode 100644 index 0000000000000000000000000000000000000000..b1610c41832c943b08cc9bdaaced332632df98fc GIT binary patch literal 17041 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 QI5&vWWmWm?OGdu`AK>trx&QzG literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/km_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/km_job.py new file mode 100644 index 0000000000..6a3e79f164 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/km_job.py @@ -0,0 +1,115 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +from src.kaplan_meier_wf import KM +from src.kaplan_meier_wf_he import KM_HE + +from nvflare import FedJob +from nvflare.job_config.script_runner import ScriptRunner + + +def main(): + args = define_parser() + # Default paths + data_root = "/tmp/nvflare/dataset/km_data" + he_context_path = "/tmp/nvflare/he_context/he_context_client.txt" + + # Set the script and config + if args.encryption: + job_name = "KM_HE" + train_script = "src/kaplan_meier_train_he.py" + script_args = f"--data_root {data_root} --he_context_path {he_context_path}" + else: + job_name = "KM" + train_script = "src/kaplan_meier_train.py" + script_args = f"--data_root {data_root}" + + # Set the number of clients and threads + num_clients = args.num_clients + if args.num_threads: + num_threads = args.num_threads + else: + num_threads = num_clients + + # Set the output workspace and job directories + workspace_dir = os.path.join(args.workspace_dir, job_name) + job_dir = args.job_dir + + # Create the FedJob + job = FedJob(name=job_name, min_clients=num_clients) + + # Define the KM controller workflow and send to server + if args.encryption: + controller = KM_HE(min_clients=num_clients, he_context_path=he_context_path) + else: + controller = KM(min_clients=num_clients) + job.to_server(controller) + + # Define the ScriptRunner and send to all clients + runner = ScriptRunner( + script=train_script, + script_args=script_args, + params_exchange_format="raw", + launch_external_process=False, + ) + job.to_clients(runner, tasks=["train"]) + + # Export the job + print("job_dir=", job_dir) + job.export_job(job_dir) + + # Run the job + print("workspace_dir=", workspace_dir) + print("num_threads=", num_threads) + job.simulator_run(workspace_dir, n_clients=num_clients, threads=num_threads) + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--workspace_dir", + type=str, + default="/tmp/nvflare/jobs/km/workdir", + help="work directory, default to '/tmp/nvflare/jobs/km/workdir'", + ) + parser.add_argument( + "--job_dir", + type=str, + default="/tmp/nvflare/jobs/km/jobdir", + help="directory for job export, default to '/tmp/nvflare/jobs/km/jobdir'", + ) + parser.add_argument( + "--encryption", + action=argparse.BooleanOptionalAction, + help="whether to enable encryption, default to False", + ) + parser.add_argument( + "--num_clients", + type=int, + default=5, + help="number of clients to simulate, default to 5", + ) + parser.add_argument( + "--num_threads", + type=int, + help="number of threads to use for FL simulation, default to the number of clients if not specified", + ) + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/requirements.txt new file mode 100644 index 0000000000..e6d18ba9a3 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/requirements.txt @@ -0,0 +1,3 @@ +lifelines +tenseal +scikit-survival diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train.py new file mode 100644 index 0000000000..d8d7e55d28 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train.py @@ -0,0 +1,152 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import json +import os + +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +from lifelines import KaplanMeierFitter +from lifelines.utils import survival_table_from_events + +# (1) import nvflare client API +import nvflare.client as flare +from nvflare.app_common.abstract.fl_model import FLModel, ParamsType + + +# Client code +def details_save(kmf): + # Get the survival function at all observed time points + survival_function_at_all_times = kmf.survival_function_ + # Get the timeline (time points) + timeline = survival_function_at_all_times.index.values + # Get the KM estimate + km_estimate = survival_function_at_all_times["KM_estimate"].values + # Get the event count at each time point + event_count = kmf.event_table.iloc[:, 0].values # Assuming the first column is the observed events + # Get the survival rate at each time point (using the 1st column of the survival function) + survival_rate = 1 - survival_function_at_all_times.iloc[:, 0].values + # Return the results + results = { + "timeline": timeline.tolist(), + "km_estimate": km_estimate.tolist(), + "event_count": event_count.tolist(), + "survival_rate": survival_rate.tolist(), + } + file_path = os.path.join(os.getcwd(), "km_global.json") + print(f"save the details of KM analysis result to {file_path} \n") + with open(file_path, "w") as json_file: + json.dump(results, json_file, indent=4) + + +def plot_and_save(kmf): + # Plot and save the Kaplan-Meier survival curve + plt.figure() + plt.title("Federated") + kmf.plot_survival_function() + plt.ylim(0, 1) + plt.ylabel("prob") + plt.xlabel("time") + plt.legend("", frameon=False) + plt.tight_layout() + file_path = os.path.join(os.getcwd(), "km_curve_fl.png") + print(f"save the curve plot to {file_path} \n") + plt.savefig(file_path) + + +def main(): + parser = argparse.ArgumentParser(description="KM analysis") + parser.add_argument("--data_root", type=str, help="Root path for data files") + args = parser.parse_args() + + flare.init() + + site_name = flare.get_site_name() + print(f"Kaplan-meier analysis for {site_name}") + + # get local data + data_path = os.path.join(args.data_root, site_name + ".csv") + data = pd.read_csv(data_path) + event_local = data["event"] + time_local = data["time"] + + while flare.is_running(): + # receives global message from NVFlare + global_msg = flare.receive() + curr_round = global_msg.current_round + print(f"current_round={curr_round}") + + if curr_round == 1: + # First round: + # Empty payload from server, send local histogram + # Convert local data to histogram + event_table = survival_table_from_events(time_local, event_local) + hist_idx = event_table.index.values.astype(int) + hist_obs = {} + hist_cen = {} + for idx in range(max(hist_idx)): + hist_obs[idx] = 0 + hist_cen[idx] = 0 + # Assign values + idx = event_table.index.values.astype(int) + observed = event_table["observed"].to_numpy() + censored = event_table["censored"].to_numpy() + for i in range(len(idx)): + hist_obs[idx[i]] = observed[i] + hist_cen[idx[i]] = censored[i] + # Send histograms to server + response = FLModel(params={"hist_obs": hist_obs, "hist_cen": hist_cen}, params_type=ParamsType.FULL) + flare.send(response) + + elif curr_round == 2: + # Get global histograms + hist_obs_global = global_msg.params["hist_obs_global"] + hist_cen_global = global_msg.params["hist_cen_global"] + # Unfold histogram to event list + time_unfold = [] + event_unfold = [] + for i in hist_obs_global.keys(): + for j in range(hist_obs_global[i]): + time_unfold.append(i) + event_unfold.append(True) + for k in range(hist_cen_global[i]): + time_unfold.append(i) + event_unfold.append(False) + time_unfold = np.array(time_unfold) + event_unfold = np.array(event_unfold) + + # Perform Kaplan-Meier analysis on global aggregated information + # Create a Kaplan-Meier estimator + kmf = KaplanMeierFitter() + + # Fit the model + kmf.fit(durations=time_unfold, event_observed=event_unfold) + + # Plot and save the KM curve + plot_and_save(kmf) + + # Save details of the KM result to a json file + details_save(kmf) + + # Send a simple response to server + response = FLModel(params={}, params_type=ParamsType.FULL) + flare.send(response) + + print(f"finish send for {site_name}, complete") + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train_he.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train_he.py new file mode 100644 index 0000000000..1ff9c69dbb --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_train_he.py @@ -0,0 +1,195 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import base64 +import json +import os + +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import tenseal as ts +from lifelines import KaplanMeierFitter +from lifelines.utils import survival_table_from_events + +# (1) import nvflare client API +import nvflare.client as flare +from nvflare.app_common.abstract.fl_model import FLModel, ParamsType + + +# Client code +def read_data(file_name: str): + with open(file_name, "rb") as f: + data = f.read() + return base64.b64decode(data) + + +def details_save(kmf): + # Get the survival function at all observed time points + survival_function_at_all_times = kmf.survival_function_ + # Get the timeline (time points) + timeline = survival_function_at_all_times.index.values + # Get the KM estimate + km_estimate = survival_function_at_all_times["KM_estimate"].values + # Get the event count at each time point + event_count = kmf.event_table.iloc[:, 0].values # Assuming the first column is the observed events + # Get the survival rate at each time point (using the 1st column of the survival function) + survival_rate = 1 - survival_function_at_all_times.iloc[:, 0].values + # Return the results + results = { + "timeline": timeline.tolist(), + "km_estimate": km_estimate.tolist(), + "event_count": event_count.tolist(), + "survival_rate": survival_rate.tolist(), + } + file_path = os.path.join(os.getcwd(), "km_global.json") + print(f"save the details of KM analysis result to {file_path} \n") + with open(file_path, "w") as json_file: + json.dump(results, json_file, indent=4) + + +def plot_and_save(kmf): + # Plot and save the Kaplan-Meier survival curve + plt.figure() + plt.title("Federated HE") + kmf.plot_survival_function() + plt.ylim(0, 1) + plt.ylabel("prob") + plt.xlabel("time") + plt.legend("", frameon=False) + plt.tight_layout() + file_path = os.path.join(os.getcwd(), "km_curve_fl_he.png") + print(f"save the curve plot to {file_path} \n") + plt.savefig(file_path) + + +def main(): + parser = argparse.ArgumentParser(description="KM analysis") + parser.add_argument("--data_root", type=str, help="Root path for data files") + parser.add_argument("--he_context_path", type=str, help="Path for the HE context file") + args = parser.parse_args() + + flare.init() + + site_name = flare.get_site_name() + print(f"Kaplan-meier analysis for {site_name}") + + # get local data + data_path = os.path.join(args.data_root, site_name + ".csv") + data = pd.read_csv(data_path) + event_local = data["event"] + time_local = data["time"] + + # HE context + # In real-life application, HE context is prepared by secure provisioning + he_context_serial = read_data(args.he_context_path) + he_context = ts.context_from(he_context_serial) + + while flare.is_running(): + # receives global message from NVFlare + global_msg = flare.receive() + curr_round = global_msg.current_round + print(f"current_round={curr_round}") + + if curr_round == 1: + # First round: + # Empty payload from server, send max index back + # Condense local data to histogram + event_table = survival_table_from_events(time_local, event_local) + hist_idx = event_table.index.values.astype(int) + # Get the max index to be synced globally + max_hist_idx = max(hist_idx) + + # Send max to server + print(f"send max hist index for site = {flare.get_site_name()}") + model = FLModel(params={"max_idx": max_hist_idx}, params_type=ParamsType.FULL) + flare.send(model) + + elif curr_round == 2: + # Second round, get global max index + # Organize local histogram and encrypt + max_idx_global = global_msg.params["max_idx_global"] + print("Global Max Idx") + print(max_idx_global) + # Convert local table to uniform histogram + hist_obs = {} + hist_cen = {} + for idx in range(max_idx_global): + hist_obs[idx] = 0 + hist_cen[idx] = 0 + # assign values + idx = event_table.index.values.astype(int) + observed = event_table["observed"].to_numpy() + censored = event_table["censored"].to_numpy() + for i in range(len(idx)): + hist_obs[idx[i]] = observed[i] + hist_cen[idx[i]] = censored[i] + # Encrypt with tenseal using BFV scheme since observations are integers + hist_obs_he = ts.bfv_vector(he_context, list(hist_obs.values())) + hist_cen_he = ts.bfv_vector(he_context, list(hist_cen.values())) + # Serialize for transmission + hist_obs_he_serial = hist_obs_he.serialize() + hist_cen_he_serial = hist_cen_he.serialize() + # Send encrypted histograms to server + response = FLModel( + params={"hist_obs": hist_obs_he_serial, "hist_cen": hist_cen_he_serial}, params_type=ParamsType.FULL + ) + flare.send(response) + + elif curr_round == 3: + # Get global histograms + hist_obs_global_serial = global_msg.params["hist_obs_global"] + hist_cen_global_serial = global_msg.params["hist_cen_global"] + # Deserialize + hist_obs_global = ts.bfv_vector_from(he_context, hist_obs_global_serial) + hist_cen_global = ts.bfv_vector_from(he_context, hist_cen_global_serial) + # Decrypt + hist_obs_global = hist_obs_global.decrypt() + hist_cen_global = hist_cen_global.decrypt() + # Unfold histogram to event list + time_unfold = [] + event_unfold = [] + for i in range(max_idx_global): + for j in range(hist_obs_global[i]): + time_unfold.append(i) + event_unfold.append(True) + for k in range(hist_cen_global[i]): + time_unfold.append(i) + event_unfold.append(False) + time_unfold = np.array(time_unfold) + event_unfold = np.array(event_unfold) + + # Perform Kaplan-Meier analysis on global aggregated information + # Create a Kaplan-Meier estimator + kmf = KaplanMeierFitter() + + # Fit the model + kmf.fit(durations=time_unfold, event_observed=event_unfold) + + # Plot and save the KM curve + plot_and_save(kmf) + + # Save details of the KM result to a json file + details_save(kmf) + + # Send a simple response to server + response = FLModel(params={}, params_type=ParamsType.FULL) + flare.send(response) + + print(f"finish send for {site_name}, complete") + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf.py new file mode 100644 index 0000000000..54fa1d384c --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf.py @@ -0,0 +1,83 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import logging +from typing import Dict + +from nvflare.app_common.abstract.fl_model import FLModel, ParamsType +from nvflare.app_common.workflows.model_controller import ModelController + + +# Controller Workflow +class KM(ModelController): + def __init__(self, min_clients: int): + super(KM, self).__init__() + self.logger = logging.getLogger(self.__class__.__name__) + self.min_clients = min_clients + self.num_rounds = 2 + + def run(self): + hist_local = self.start_fl_collect_hist() + hist_obs_global, hist_cen_global = self.aggr_hist(hist_local) + _ = self.distribute_global_hist(hist_obs_global, hist_cen_global) + + def start_fl_collect_hist(self): + self.logger.info("send initial message to all sites to start FL \n") + model = FLModel(params={}, start_round=1, current_round=1, total_rounds=self.num_rounds) + + results = self.send_model_and_wait(data=model) + return results + + def aggr_hist(self, sag_result: Dict[str, Dict[str, FLModel]]): + self.logger.info("aggregate histogram \n") + + if not sag_result: + raise RuntimeError("input is None or empty") + + hist_idx_max = 0 + for fl_model in sag_result: + hist = fl_model.params["hist_obs"] + if hist_idx_max < max(hist.keys()): + hist_idx_max = max(hist.keys()) + hist_idx_max += 1 + + hist_obs_global = {} + hist_cen_global = {} + for idx in range(hist_idx_max + 1): + hist_obs_global[idx] = 0 + hist_cen_global[idx] = 0 + + for fl_model in sag_result: + hist_obs = fl_model.params["hist_obs"] + hist_cen = fl_model.params["hist_cen"] + for i in hist_obs.keys(): + hist_obs_global[i] += hist_obs[i] + for i in hist_cen.keys(): + hist_cen_global[i] += hist_cen[i] + + return hist_obs_global, hist_cen_global + + def distribute_global_hist(self, hist_obs_global, hist_cen_global): + self.logger.info("send global accumulated histograms within HE to all sites \n") + + model = FLModel( + params={"hist_obs_global": hist_obs_global, "hist_cen_global": hist_cen_global}, + params_type=ParamsType.FULL, + start_round=1, + current_round=2, + total_rounds=self.num_rounds, + ) + + results = self.send_model_and_wait(data=model) + return results diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf_he.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf_he.py new file mode 100644 index 0000000000..12acf51f4b --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/src/kaplan_meier_wf_he.py @@ -0,0 +1,131 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import base64 +import logging +from typing import Dict + +import tenseal as ts + +from nvflare.app_common.abstract.fl_model import FLModel, ParamsType +from nvflare.app_common.workflows.model_controller import ModelController + +# Controller Workflow + + +class KM_HE(ModelController): + def __init__(self, min_clients: int, he_context_path: str): + super(KM_HE, self).__init__() + self.logger = logging.getLogger(self.__class__.__name__) + self.min_clients = min_clients + self.he_context_path = he_context_path + self.num_rounds = 3 + + def run(self): + max_idx_results = self.start_fl_collect_max_idx() + global_res = self.aggr_max_idx(max_idx_results) + enc_hist_results = self.distribute_max_idx_collect_enc_stats(global_res) + hist_obs_global, hist_cen_global = self.aggr_he_hist(enc_hist_results) + _ = self.distribute_global_hist(hist_obs_global, hist_cen_global) + + def read_data(self, file_name: str): + with open(file_name, "rb") as f: + data = f.read() + return base64.b64decode(data) + + def start_fl_collect_max_idx(self): + self.logger.info("send initial message to all sites to start FL \n") + model = FLModel(params={}, start_round=1, current_round=1, total_rounds=self.num_rounds) + + results = self.send_model_and_wait(data=model) + return results + + def aggr_max_idx(self, sag_result: Dict[str, Dict[str, FLModel]]): + self.logger.info("aggregate max histogram index \n") + + if not sag_result: + raise RuntimeError("input is None or empty") + + max_idx_global = [] + for fl_model in sag_result: + max_idx = fl_model.params["max_idx"] + max_idx_global.append(max_idx) + # actual time point as index, so plus 1 for storage + return max(max_idx_global) + 1 + + def distribute_max_idx_collect_enc_stats(self, result: int): + self.logger.info("send global max_index to all sites \n") + + model = FLModel( + params={"max_idx_global": result}, + params_type=ParamsType.FULL, + start_round=1, + current_round=2, + total_rounds=self.num_rounds, + ) + + results = self.send_model_and_wait(data=model) + return results + + def aggr_he_hist(self, sag_result: Dict[str, Dict[str, FLModel]]): + self.logger.info("aggregate histogram within HE \n") + + # Load HE context + he_context_serial = self.read_data(self.he_context_path) + he_context = ts.context_from(he_context_serial) + + if not sag_result: + raise RuntimeError("input is None or empty") + + hist_obs_global = None + hist_cen_global = None + for fl_model in sag_result: + site = fl_model.meta.get("client_name", None) + hist_obs_he_serial = fl_model.params["hist_obs"] + hist_obs_he = ts.bfv_vector_from(he_context, hist_obs_he_serial) + hist_cen_he_serial = fl_model.params["hist_cen"] + hist_cen_he = ts.bfv_vector_from(he_context, hist_cen_he_serial) + + if not hist_obs_global: + print(f"assign global hist with result from {site}") + hist_obs_global = hist_obs_he + else: + print(f"add to global hist with result from {site}") + hist_obs_global += hist_obs_he + + if not hist_cen_global: + print(f"assign global hist with result from {site}") + hist_cen_global = hist_cen_he + else: + print(f"add to global hist with result from {site}") + hist_cen_global += hist_cen_he + + # return the two accumulated vectors, serialized for transmission + hist_obs_global_serial = hist_obs_global.serialize() + hist_cen_global_serial = hist_cen_global.serialize() + return hist_obs_global_serial, hist_cen_global_serial + + def distribute_global_hist(self, hist_obs_global_serial, hist_cen_global_serial): + self.logger.info("send global accumulated histograms within HE to all sites \n") + + model = FLModel( + params={"hist_obs_global": hist_obs_global_serial, "hist_cen_global": hist_cen_global_serial}, + params_type=ParamsType.FULL, + start_round=1, + current_round=3, + total_rounds=self.num_rounds, + ) + + results = self.send_model_and_wait(data=model) + return results diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/baseline_kaplan_meier.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/baseline_kaplan_meier.py new file mode 100644 index 0000000000..0bd37b0bb1 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/baseline_kaplan_meier.py @@ -0,0 +1,82 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +import matplotlib.pyplot as plt +import numpy as np +from lifelines import KaplanMeierFitter +from sksurv.datasets import load_veterans_lung_cancer + + +def args_parser(): + parser = argparse.ArgumentParser(description="Kaplan Meier Survival Analysis Baseline") + parser.add_argument( + "--output_curve_path", + type=str, + default="/tmp/nvflare/baseline/km_curve_baseline.png", + help="save path for the output curve", + ) + return parser + + +def prepare_data(bin_days: int = 7): + data_x, data_y = load_veterans_lung_cancer() + total_data_num = data_x.shape[0] + event = data_y["Status"] + time = data_y["Survival_in_days"] + # Categorize data to a bin, default is a week (7 days) + time = np.ceil(time / bin_days).astype(int) * bin_days + return event, time + + +def main(): + parser = args_parser() + args = parser.parse_args() + + # Set parameters + output_curve_path = args.output_curve_path + + # Set plot + plt.figure() + plt.title("Baseline") + + # Fit and plot Kaplan Meier curve with lifelines + + # Generate data with binning + event, time = prepare_data(bin_days=7) + kmf = KaplanMeierFitter() + # Fit the survival data + kmf.fit(time, event) + # Plot and save the Kaplan-Meier survival curve + kmf.plot_survival_function(label="Binned Weekly") + + # Generate data without binning + event, time = prepare_data(bin_days=1) + kmf = KaplanMeierFitter() + # Fit the survival data + kmf.fit(time, event) + # Plot and save the Kaplan-Meier survival curve + kmf.plot_survival_function(label="No binning - Daily") + + plt.ylim(0, 1) + plt.ylabel("prob") + plt.xlabel("time") + plt.tight_layout() + plt.legend() + plt.savefig(output_curve_path) + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_data.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_data.py new file mode 100644 index 0000000000..0517ad6274 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_data.py @@ -0,0 +1,89 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +import numpy as np +import pandas as pd +from sksurv.datasets import load_veterans_lung_cancer + +np.random.seed(77) + + +def data_split_args_parser(): + parser = argparse.ArgumentParser(description="Generate data split for dataset") + parser.add_argument("--site_num", type=int, default=5, help="Total number of sites, default is 5") + parser.add_argument( + "--site_name_prefix", + type=str, + default="site-", + help="Site name prefix, default is site-", + ) + parser.add_argument("--bin_days", type=int, default=1, help="Bin days for categorizing data") + parser.add_argument("--out_path", type=str, help="Output root path for split data files") + return parser + + +def prepare_data(data, site_num, bin_days): + # Get total data count + total_data_num = data.shape[0] + print(f"Total data count: {total_data_num}") + # Get event and time + event = data["Status"] + time = data["Survival_in_days"] + # Categorize data to a bin, default is a week (7 days) + time = np.ceil(time / bin_days).astype(int) * bin_days + # Shuffle data + idx = np.random.permutation(total_data_num) + # Split data to clients + event_clients = {} + time_clients = {} + for i in range(site_num): + start = int(i * total_data_num / site_num) + end = int((i + 1) * total_data_num / site_num) + event_i = event[idx[start:end]] + time_i = time[idx[start:end]] + event_clients["site-" + str(i + 1)] = event_i + time_clients["site-" + str(i + 1)] = time_i + return event_clients, time_clients + + +def main(): + parser = data_split_args_parser() + args = parser.parse_args() + + # Load data + # For this KM analysis, we use full timeline and event label only + _, data = load_veterans_lung_cancer() + + # Prepare data + event_clients, time_clients = prepare_data(data=data, site_num=args.site_num, bin_days=args.bin_days) + + # Save data to csv files + if not os.path.exists(args.out_path): + os.makedirs(args.out_path, exist_ok=True) + for site in range(args.site_num): + output_file = os.path.join(args.out_path, f"{args.site_name_prefix}{site + 1}.csv") + df = pd.DataFrame( + { + "event": event_clients["site-" + str(site + 1)], + "time": time_clients["site-" + str(site + 1)], + } + ) + df.to_csv(output_file, index=False) + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_he_context.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_he_context.py new file mode 100644 index 0000000000..ceedf4c9a4 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/code/utils/prepare_he_context.py @@ -0,0 +1,62 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import base64 +import os + +import tenseal as ts + + +def data_split_args_parser(): + parser = argparse.ArgumentParser(description="Generate HE context") + parser.add_argument("--scheme", type=str, default="BFV", help="HE scheme, default is BFV") + parser.add_argument("--poly_modulus_degree", type=int, default=4096, help="Poly modulus degree, default is 4096") + parser.add_argument("--out_path", type=str, help="Output root path for HE context files for client and server") + return parser + + +def write_data(file_name: str, data: bytes): + data = base64.b64encode(data) + with open(file_name, "wb") as f: + f.write(data) + + +def main(): + parser = data_split_args_parser() + args = parser.parse_args() + if args.scheme == "BFV": + scheme = ts.SCHEME_TYPE.BFV + # Generate HE context + context = ts.context(scheme, poly_modulus_degree=args.poly_modulus_degree, plain_modulus=1032193) + elif args.scheme == "CKKS": + scheme = ts.SCHEME_TYPE.CKKS + # Generate HE context, CKKS does not need plain_modulus + context = ts.context(scheme, poly_modulus_degree=args.poly_modulus_degree) + else: + raise ValueError("HE scheme not supported") + + # Save HE context to file for client + if not os.path.exists(args.out_path): + os.makedirs(args.out_path, exist_ok=True) + context_serial = context.serialize(save_secret_key=True) + write_data(os.path.join(args.out_path, "he_context_client.txt"), context_serial) + + # Save HE context to file for server + context_serial = context.serialize(save_secret_key=False) + write_data(os.path.join(args.out_path, "he_context_server.txt"), context_serial) + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb index f53ad94e0f..3626b93cc5 100644 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.3_convert_survival_analysis_to_federated_learning/convert_survival_analysis_to_fl.ipynb @@ -1,19 +1,279 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "d40828dd", + "metadata": {}, + "source": [ + "# Secure Federated Kaplan-Meier Analysis via Time-Binning and Homomorphic Encryption" + ] + }, + { + "cell_type": "markdown", + "id": "c0937cf5", + "metadata": {}, + "source": [ + "This example illustrates two features:\n", + "* How to perform Kaplan-Meier survival analysis in federated setting without and with secure features via time-binning and Homomorphic Encryption (HE).\n", + "* How to use the FLARE ModelController API to contract a workflow to facilitate HE under simulator mode." + ] + }, + { + "cell_type": "markdown", + "id": "da8644ba", + "metadata": {}, + "source": [ + "## Basics of Kaplan-Meier Analysis\n", + "Kaplan-Meier survival analysis is a non-parametric statistic used to estimate the survival function from lifetime data. It is used to analyze the time it takes for an event of interest to occur. For example, during a clinical trial, the Kaplan-Meier estimator can be used to estimate the proportion of patients who survive a certain amount of time after treatment. \n", + "\n", + "The Kaplan-Meier estimator takes into account the time of the event (e.g. \"Survival Days\") and whether the event was observed or censored. An event is observed if the event of interest (e.g. \"death\") occurred at the end of the observation process. An event is censored if the event of interest did not occur (i.e. patient is still alive) at the end of the observation process.\n", + "\n", + "One example dataset used here for Kaplan-Meier analysis is the `veterans_lung_cancer` dataset. This dataset contains information about the survival time of veterans with advanced lung cancer. Below we provide some samples of the dataset:\n", + "\n", + "| ID | Age | Celltype | Karnofsky | Diagtime | Prior | Treat | Status | Survival Days |\n", + "|----|-----|------------|------------|----------|-------|-----------|--------|---------------|\n", + "| 1 | 64 | squamous | 70 | 5 | yes | standard | TRUE | 411 |\n", + "| 20 | 55 | smallcell | 40 | 3 | no | standard | FALSE | 123 |\n", + "| 45 | 61 | adeno | 20 | 19 | yes | standard | TRUE | 8 |\n", + "| 63 | 62 | large | 90 | 2 | no | standard | FALSE | 182 |\n", + "\n", + "To perform the analysis, in this data, we have:\n", + "- Time `Survival Days`: days passed from the beginning of the observation till the end\n", + "- Event `Status`: whether event (i.e. death) happened at the end of the observation, or not\n", + "\n", + "Based on the above understanding, we can interpret the data as follows:\n", + "- Patient #1 goes through an observation period of 411 days, and passes away at Day 411\n", + "- Patient #20 goes through an observation period of 123 days, and is still alive when the observation stops at Day 123 \n", + "\n", + "The purpose of Kaplan-Meier analysis is to estimate the survival function, which is the probability that a patient survives beyond a certain time. Naturally, it will be a monotonic decreasing function, since the probability of surviving will decrease as time goes by." + ] + }, + { + "cell_type": "markdown", + "id": "06986478", + "metadata": {}, + "source": [ + "## Secure Multi-party Kaplan-Meier Analysis\n", + "As described above, Kaplan-Meier survival analysis is a one-shot (non-iterative) analysis performed on a list of events (`Status`) and their corresponding time (`Survival Days`). In this example, we use [lifelines](https://zenodo.org/records/10456828) to perform this analysis. \n", + "\n", + "Essentially, the estimator needs to get access to this event list, and under the setting of federated analysis, the aggregated event list from all participants.\n", + "\n", + "However, this poses a data security concern - the event list is equivalent to the raw data. If it gets exposed to external parties, it essentially breaks the core value of federated analysis.\n", + "\n", + "Therefore, we would like to design a secure mechanism to enable collaborative Kaplan-Meier analysis without the risk of exposing the raw information from a participant, the targeted protection includes:\n", + "- Prevent clients from getting RAW data from each other;\n", + "- Prevent the aggregation server to access ANY information from participants' submissions.\n", + "\n", + "This is achieved by two techniques:\n", + "- Condense the raw event list to two histograms (one for observed events and the other for censored event) using binning at certain interval (e.g. a week)\n", + "- Perform the aggregation of the histograms using Homomorphic Encryption (HE)\n", + "\n", + "With time-binning, the above event list will be converted to histograms: if using a week as interval:\n", + "- Patient #1 will contribute 1 to the 411/7 = 58th bin of the observed event histogram\n", + "- Patient #20 will contribute 1 to the 123/7 = 17th bin of the censored event histogram\n", + "\n", + "In this way, events happened within the same bin from different participants can be aggregated and will not be distinguishable for the final aggregated histograms. Note that coarser binning will lead to higher protection, but also lower resolution of the final Kaplan-Meier curve.\n", + "\n", + "Local histograms will then be encrypted as one single vector before sending to server, and the global aggregation operation at server side will be performed entirely within encryption space with HE. This will not cause any information loss, while the server will not be able to access any plain-text information.\n", + "\n", + "With these two settings, the server will have no access to any knowledge regarding local submissions, and participants will only receive global aggregated histograms that will not contain distinguishable information regarding any individual participants (client number >= 3 - if only two participants, one can infer the other party's info by subtracting its own histograms).\n", + "\n", + "The final Kaplan-Meier survival analysis will be performed locally on the global aggregated event list, recovered from decrypted global histograms." + ] + }, + { + "cell_type": "markdown", + "id": "f75beeb3", + "metadata": {}, + "source": [ + "## Install requirements\n", + "Make sure to install the required packages:" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "348e87c0-2e9f-4852-9d6a-1a9db5cb5dde", + "id": "56133db2", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "%pip install -r code/requirements.txt" + ] + }, + { + "cell_type": "markdown", + "id": "d4b57b15", + "metadata": {}, + "source": [ + "## Baseline Kaplan-Meier Analysis\n", + "We first illustrate the baseline centralized Kaplan-Meier analysis without any secure features. We used veterans_lung_cancer dataset by\n", + "`from sksurv.datasets import load_veterans_lung_cancer`, and used `Status` as the event type and `Survival_in_days` as the event time to construct the event list.\n", + "\n", + "To run the baseline script, simply execute:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41206a7d", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "! python3 utils/baseline_kaplan_meier.py" + ] + }, + { + "cell_type": "markdown", + "id": "31ab94be", + "metadata": {}, + "source": [ + "By default, this will generate a KM curve image `km_curve_baseline.png` under `/tmp` directory. The resutling KM curve is shown below:\n", + "\n", + "![KM survival baseline](code/figs/km_curve_baseline.png)\n", + "\n", + "Here, we show the survival curve for both daily (without binning) and weekly binning. The two curves aligns well with each other, while the weekly-binned curve has lower resolution." + ] + }, + { + "cell_type": "markdown", + "id": "a42f69c0", + "metadata": {}, + "source": [ + "## Federated Kaplan-Meier Analysis without and with Homomorphic Encryption\n", + "We make use of the FLARE ModelController API to implement the federated Kaplan-Meier analysis, both without and with HE.\n", + "\n", + "The FLARE ModelController API (`ModelController`) provides the functionality of flexible FLModel payloads for each round of federated analysis. This gives us the flexibility of transmitting various information needed by our scheme at different stages of federated learning.\n", + "\n", + "Our [existing HE examples](https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/cifar10/cifar10-real-world) use a data filter mechanism for HE, provisioning the HE context information (specs and keys) for both client and server of the federated job under the [CKKS](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_opt/he/model_encryptor.py) scheme. In this example, we would like to illustrate ModelController's capability in supporting customized needs beyond the existing HE functionalities (designed mainly for encrypting deep learning models):\n", + "- different HE schemes (BFV) rather than CKKS\n", + "- different content at different rounds of federated learning, and only specific payloads need to be encrypted\n", + "\n", + "With the ModelController API, such experiments become easy. In this example, the federated analysis pipeline includes 2 rounds without HE or 3 rounds with HE.\n", + "\n", + "For the federated analysis without HE, the detailed steps are as follows:\n", + "1. Server sends the simple start message without any payload.\n", + "2. Clients submit the local event histograms to server. Server aggregates the histograms with varying lengths by adding event counts of the same slot together, and sends the aggregated histograms back to clients.\n", + "\n", + "For the federated analysis with HE, we need to ensure proper HE aggregation using BFV, and the detailed steps are as follows:\n", + "1. Server sends the simple start message without any payload. \n", + "2. Clients collect the information of the local maximum bin number (for event time) and send to the server, where the server aggregates the information by selecting the maximum among all clients. The global maximum number is then distributed back to the clients. This step is necessary because we would like to standardize the histograms generated by all clients, such that they will have the exact same length and can be encrypted as vectors of same size, which will be addable.\n", + "3. Clients condense their local raw event lists into two histograms with the global length received, encrypt the histogram value vectors, and send to the server. The server aggregates the received histograms by adding the encrypted vectors together, and sends the aggregated histograms back to the clients.\n", + "\n", + "After these rounds, the federated work is completed. Then at each client, the aggregated histograms will be decrypted and converted back to an event list, and Kaplan-Meier analysis can be performed on the global information." + ] + }, + { + "cell_type": "markdown", + "id": "302c4285", + "metadata": {}, + "source": [ + "## Run the job\n", + "First, we prepare data for a 5-client federated job. We split and generate the data files for each client with binning interval of 7 days." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a354d0d", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "! python3 code/utils/prepare_data.py --site_num 5 --bin_days 7 --out_path \"/tmp/nvflare/dataset/km_data\"" + ] + }, + { + "cell_type": "markdown", + "id": "40d6fa4e", + "metadata": {}, + "source": [ + "Then, we prepare the HE context for the clients and the server. Note that this step is done by secure provisioning for real-life applications, but in this study experimenting with BFV scheme, we use this script to distribute the HE context." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b12b162d", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "! python3 code/utils/prepare_he_context.py --out_path \"/tmp/nvflare/he_context\"" + ] + }, + { + "cell_type": "markdown", + "id": "7cc4d792", + "metadata": {}, + "source": [ + "Next, we run the federated training using the NVFlare Simulator via the [JobAPI](https://nvflare.readthedocs.io/en/main/programming_guide/fed_job_api.html), both without and with HE:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4c91649", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "! python3 code/km_job.py" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c24c50a", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "! python3 code/km_job.py --encryption" + ] + }, + { + "cell_type": "markdown", + "id": "e31897b5", + "metadata": {}, + "source": [ + "By default, this will generate a KM curve image `km_curve_fl.png` and `km_curve_fl_he.png` under each client's directory." + ] + }, + { + "cell_type": "markdown", + "id": "e12cde9e", + "metadata": {}, + "source": [ + "## Display Result\n", + "\n", + "By comparing the two curves, we can observe that all curves are identical:\n", + "\n", + "![KM survival fl](code/figs/km_curve_fl.png)\n", + "![KM survival fl_he](code/figs/km_curve_fl_he.png)\n" + ] } ], "metadata": { "kernelspec": { - "display_name": "nvflare_example", + "display_name": "Python 3", "language": "python", - "name": "nvflare_example" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -25,7 +285,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.10.12" } }, "nbformat": 4, From 70f2ba2a1701341b4e41abda985dee31cd7f8197 Mon Sep 17 00:00:00 2001 From: Chester Chen <512707+chesterxgchen@users.noreply.github.com> Date: Wed, 5 Feb 2025 07:56:33 -0800 Subject: [PATCH 4/9] add missing init file (#3206) Fixes # . ### Description A few sentences describing the changes proposed in this pull request. ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. Co-authored-by: Ziyue Xu --- nvflare/lighter/templates/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 nvflare/lighter/templates/__init__.py diff --git a/nvflare/lighter/templates/__init__.py b/nvflare/lighter/templates/__init__.py new file mode 100644 index 0000000000..341a77c5bc --- /dev/null +++ b/nvflare/lighter/templates/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. From 48978653f9632e2e002c01b7dc9c990c4dbc1fca Mon Sep 17 00:00:00 2001 From: Sean Yang Date: Thu, 6 Feb 2025 15:12:26 -0800 Subject: [PATCH 5/9] Add init file for log sender and receiver (#3207) ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- nvflare/app_common/logging/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 nvflare/app_common/logging/__init__.py diff --git a/nvflare/app_common/logging/__init__.py b/nvflare/app_common/logging/__init__.py new file mode 100644 index 0000000000..341a77c5bc --- /dev/null +++ b/nvflare/app_common/logging/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. From 4c5948e13c136f5c10189a9d72a1820cdde0a9c5 Mon Sep 17 00:00:00 2001 From: nvkevlu <55759229+nvkevlu@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:59:42 -0800 Subject: [PATCH 6/9] Add content for logistic regression for DLI (#3209) Add content for logistic regression for DLI. ### Description Add content for logistic regression for DLI. ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- .../convert_lr_to_fl.ipynb | 33 -- .../code/data/prepare_heart_disease_data.sh | 29 ++ .../code/data/utils/convert_data_to_np.py | 58 +++ .../code/figs/tb-metrics.png | Bin 0 -> 366528 bytes .../code/log_config.json | 87 +++++ .../code/lr_fl_job.py | 50 +++ .../app/config/config_fed_client.json | 75 ++++ .../app/config/config_fed_server.json | 34 ++ .../app/custom/newton_raphson_persistor.py | 64 ++++ .../app/custom/newton_raphson_train.py | 184 ++++++++++ .../app/custom/newton_raphson_workflow.py | 167 +++++++++ .../code/newton_raphson/meta.json | 10 + .../code/requirements.txt | 2 + .../code/src/newton_raphson_persistor.py | 64 ++++ .../code/src/newton_raphson_train.py | 184 ++++++++++ .../code/src/newton_raphson_workflow.py | 167 +++++++++ .../code/train_centralized.py | 118 ++++++ .../convert_logistic_regression_to_fl.ipynb | 341 ++++++++++++++++++ 18 files changed, 1634 insertions(+), 33 deletions(-) delete mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb create mode 100755 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/prepare_heart_disease_data.sh create mode 100755 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/utils/convert_data_to_np.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/figs/tb-metrics.png create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/log_config.json create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/lr_fl_job.py create mode 100755 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_client.json create mode 100755 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_server.json create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_persistor.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_train.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_workflow.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/meta.json create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/requirements.txt create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_persistor.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_train.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_workflow.py create mode 100755 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/train_centralized.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/convert_logistic_regression_to_fl.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb deleted file mode 100644 index 8c1499c76e..0000000000 --- a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_Logistics_regression_to_federated_learning/convert_lr_to_fl.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "efab40aa-4001-4c7b-813f-7a9dfcc1a412", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "nvflare_example", - "language": "python", - "name": "nvflare_example" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/prepare_heart_disease_data.sh b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/prepare_heart_disease_data.sh new file mode 100755 index 0000000000..c297f15e71 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/prepare_heart_disease_data.sh @@ -0,0 +1,29 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +DATA_DIR=/tmp/flare/dataset/heart_disease_data + +# Install dependencies +#pip install wget +FLAMBY_INSTALL_DIR=$(python3 -c "import sysconfig; print(sysconfig.get_path('purelib'))") +# git clone https://github.com/owkin/FLamby.git && cd FLamby && pip install -e . + +# Download data using FLamby +mkdir -p ${DATA_DIR} +python3 ${FLAMBY_INSTALL_DIR}/flamby/datasets/fed_heart_disease/dataset_creation_scripts/download.py --output-folder ${DATA_DIR} + +# Convert data to numpy files +python3 ${SCRIPT_DIR}/utils/convert_data_to_np.py ${DATA_DIR} diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/utils/convert_data_to_np.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/utils/convert_data_to_np.py new file mode 100755 index 0000000000..a35ba16084 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/data/utils/convert_data_to_np.py @@ -0,0 +1,58 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse +import os + +import numpy as np +from flamby.datasets.fed_heart_disease import FedHeartDisease +from torch.utils.data import DataLoader as dl + +if __name__ == "__main__": + + parser = argparse.ArgumentParser("save UCI Heart Disease as numpy arrays.") + parser.add_argument("save_dir", type=str, help="directory to save converted numpy arrays as .npy files.") + args = parser.parse_args() + + if not os.path.exists(args.save_dir): + os.makedirs(args.save_dir, exist_ok=True) + + for site in range(4): + + for flag in ("train", "test"): + + # To load data a pytorch dataset + data = FedHeartDisease(center=site, train=(flag == "train")) + + # Save training dataset + data_x = [] + data_y = [] + for x, y in dl(data, batch_size=1, shuffle=False, num_workers=0): + data_x.append(x.cpu().numpy().reshape(-1)) + data_y.append(y.cpu().numpy().reshape(-1)) + + data_x = np.array(data_x).reshape(-1, 13) + data_y = np.array(data_y).reshape(-1, 1) + + print("site {} - {} - variables shape: {}".format(site, flag, data_x.shape)) + print("site {} - {} - outcomes shape: {}".format(site, flag, data_y.shape)) + + save_x_path = "{}/site-{}.{}.x.npy".format(args.save_dir, site + 1, flag) + print("saving data: {}".format(save_x_path)) + np.save(save_x_path, data_x) + + save_y_path = "{}/site-{}.{}.y.npy".format(args.save_dir, site + 1, flag) + print("saving data: {}".format(save_y_path)) + np.save(save_y_path, data_y) diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/figs/tb-metrics.png b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/figs/tb-metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..148bacea0f4ef6d6514c840201f3019b5a54a4aa GIT binary patch literal 366528 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 literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/log_config.json b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/log_config.json new file mode 100644 index 0000000000..e5732b4950 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/log_config.json @@ -0,0 +1,87 @@ +{ + "version": 1, + "disable_existing_loggers": false, + "formatters": { + "baseFormatter": { + "()": "nvflare.fuel.utils.log_utils.BaseFormatter", + "fmt": "%(asctime)s - %(name)s - %(levelname)s - %(fl_ctx)s - %(message)s" + }, + "colorFormatter": { + "()": "nvflare.fuel.utils.log_utils.ColorFormatter", + "fmt": "%(asctime)s - %(levelname)s - %(message)s", + "datefmt": "%Y-%m-%d %H:%M:%S" + }, + "jsonFormatter": { + "()": "nvflare.fuel.utils.log_utils.JsonFormatter", + "fmt": "%(asctime)s - %(identity)s - %(name)s - %(fullName)s - %(levelname)s - %(fl_ctx)s - %(message)s" + } + }, + "filters": { + "FLFilter": { + "()": "nvflare.fuel.utils.log_utils.LoggerNameFilter", + "logger_names": ["custom", "nvflare.app_common", "nvflare.app_opt"] + } + }, + "handlers": { + "consoleHandler": { + "class": "logging.StreamHandler", + "level": "INFO", + "formatter": "colorFormatter", + "filters": ["FLFilter"], + "stream": "ext://sys.stdout" + }, + "logFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "baseFormatter", + "filename": "log.txt", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10 + }, + "errorFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "ERROR", + "formatter": "baseFormatter", + "filename": "log_error.txt", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10 + }, + "jsonFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "jsonFormatter", + "filename": "log.json", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10 + }, + "FLFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "baseFormatter", + "filters": ["FLFilter"], + "filename": "log_fl.txt", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10, + "delay": true + } + }, + "loggers": { + "root": { + "level": "INFO", + "handlers": ["consoleHandler", "logFileHandler", "errorFileHandler", "jsonFileHandler", "FLFileHandler"] + } + } +} + + + + + + + + + diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/lr_fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/lr_fl_job.py new file mode 100644 index 0000000000..4cc8c55e48 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/lr_fl_job.py @@ -0,0 +1,50 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from src.newton_raphson_persistor import NewtonRaphsonModelPersistor +from src.newton_raphson_workflow import FedAvgNewtonRaphson + +from nvflare.app_opt.pt.job_config.base_fed_job import BaseFedJob +from nvflare.client.config import ExchangeFormat +from nvflare.job_config.script_runner import ScriptRunner + +if __name__ == "__main__": + n_clients = 4 + num_rounds = 5 + + job = BaseFedJob( + name="logistic_regression_fedavg", + model_persistor=NewtonRaphsonModelPersistor(n_features=13), + ) + + controller = FedAvgNewtonRaphson( + num_clients=n_clients, + num_rounds=num_rounds, + damping_factor=0.8, + persistor_id="newton_raphson_persistor", + ) + job.to(controller, "server") + + # Add clients + for i in range(n_clients): + runner = ScriptRunner( + script="src/newton_raphson_train.py", + script_args="--data_root /tmp/flare/dataset/heart_disease_data", + launch_external_process=True, + params_exchange_format=ExchangeFormat.RAW, + ) + job.to(runner, f"site-{i + 1}") + + job.export_job("/tmp/nvflare/jobs/job_config") + job.simulator_run("/tmp/nvflare/jobs/workdir", gpu="0", log_config="./log_config.json") diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_client.json b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_client.json new file mode 100755 index 0000000000..75413266b0 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_client.json @@ -0,0 +1,75 @@ +{ + "format_version": 2, + "app_script": "newton_raphson_train.py", + "app_config": "--data_root /tmp/flare/dataset/heart_disease_data", + "executors": [ + { + "tasks": [ + "train" + ], + "executor": { + "path": "nvflare.app_common.executors.client_api_launcher_executor.ClientAPILauncherExecutor", + "args": { + "launcher_id": "launcher", + "pipe_id": "pipe", + "heartbeat_timeout": 60, + "params_exchange_format": "raw", + "params_transfer_type": "FULL", + "train_with_evaluation": false + } + } + } + ], + "task_data_filters": [], + "task_result_filters": [], + "components": [ + { + "id": "launcher", + "path": "nvflare.app_common.launchers.subprocess_launcher.SubprocessLauncher", + "args": { + "script": "python3 custom/{app_script} {app_config}", + "launch_once": true + } + }, + { + "id": "pipe", + "path": "nvflare.fuel.utils.pipe.cell_pipe.CellPipe", + "args": { + "mode": "PASSIVE", + "site_name": "{SITE_NAME}", + "token": "{JOB_ID}", + "root_url": "{ROOT_URL}", + "secure_mode": "{SECURE_MODE}", + "workspace_dir": "{WORKSPACE}" + } + }, + { + "id": "metrics_pipe", + "path": "nvflare.fuel.utils.pipe.cell_pipe.CellPipe", + "args": { + "mode": "PASSIVE", + "site_name": "{SITE_NAME}", + "token": "{JOB_ID}", + "root_url": "{ROOT_URL}", + "secure_mode": "{SECURE_MODE}", + "workspace_dir": "{WORKSPACE}" + } + }, + { + "id": "metric_relay", + "path": "nvflare.app_common.widgets.metric_relay.MetricRelay", + "args": { + "pipe_id": "metrics_pipe", + "event_type": "fed.analytix_log_stats", + "read_interval": 0.1 + } + }, + { + "id": "client_api_config_preparer", + "path": "nvflare.app_common.widgets.external_configurator.ExternalConfigurator", + "args": { + "component_ids": ["metric_relay"] + } + } + ] +} diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_server.json b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_server.json new file mode 100755 index 0000000000..43f67b299e --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/config/config_fed_server.json @@ -0,0 +1,34 @@ +{ + "format_version": 2, + "server": { + "heart_beat_timeout": 600 + }, + "task_data_filters": [], + "task_result_filters": [], + "components": [ + { + "id": "newton_raphson_persistor", + "path": "newton_raphson_persistor.NewtonRaphsonModelPersistor", + "args": { + "n_features": 13 + } + }, + { + "id": "tb_analytics_receiver", + "path": "nvflare.app_opt.tracking.tb.tb_receiver.TBAnalyticsReceiver", + "args.events": ["fed.analytix_log_stats"] + } + ], + "workflows": [ + { + "id": "fedavg_newton_raphson", + "path": "newton_raphson_workflow.FedAvgNewtonRaphson", + "args": { + "num_clients": 4, + "num_rounds": 5, + "damping_factor": 0.8, + "persistor_id": "newton_raphson_persistor" + } + } + ] +} diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_persistor.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_persistor.py new file mode 100644 index 0000000000..5b324dd50c --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_persistor.py @@ -0,0 +1,64 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import numpy as np + +from nvflare.app_common.np.np_model_persistor import NPModelPersistor + + +class NewtonRaphsonModelPersistor(NPModelPersistor): + """ + This class defines the persistor for Newton Raphson model. + + A persistor controls the logic behind initializing, loading + and saving of the model / parameters for each round of a + federated learning process. + + In the 2nd order Newton Raphson case, a model is just a + 1-D numpy vector containing the parameters for logistic + regression. The length of the parameter vector is defined + by the number of features in the dataset. + + """ + + def __init__(self, model_dir="models", model_name="weights.npy", n_features=13): + """ + Init function for NewtonRaphsonModelPersistor. + + Args: + model_dir: sub-folder name to save and load the global model + between rounds. + model_name: name to save and load the global model. + n_features: number of features for the logistic regression. + For the UCI ML heart Disease dataset, this is 13. + + """ + + super().__init__() + + self.model_dir = model_dir + self.model_name = model_name + self.n_features = n_features + + # A default model is loaded when no local model is available. + # This happen when training starts. + # + # A `model` for a binary logistic regression is just a matrix, + # with shape (n_features + 1, 1). + # For the UCI ML Heart Disease dataset, the n_features = 13. + # + # A default matrix with value 0s is created. + # + self.default_data = np.zeros((self.n_features + 1, 1), dtype=np.float32) diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_train.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_train.py new file mode 100644 index 0000000000..419b9ed70b --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_train.py @@ -0,0 +1,184 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse +import os + +import numpy as np +from sklearn.metrics import accuracy_score, precision_score + +import nvflare.client as flare +from nvflare.apis.fl_constant import FLMetaKey +from nvflare.app_common.abstract.fl_model import FLModel, ParamsType +from nvflare.app_common.np.constants import NPConstants +from nvflare.client.tracking import SummaryWriter + + +def parse_arguments(): + """ + Parse command line args for client side training. + """ + parser = argparse.ArgumentParser(description="Federated Second-Order Newton Raphson") + + parser.add_argument("--data_root", type=str, help="Path to load client side data.") + + return parser.parse_args() + + +def load_data(data_root, site_name): + """ + Load the data for each client. + + Args: + data_root: root directory storing client site data. + site_name: client site name + Returns: + A dict with client site training and validation data. + """ + print("loading data for client {} from: {}".format(site_name, data_root)) + train_x_path = os.path.join(data_root, "{}.train.x.npy".format(site_name)) + train_y_path = os.path.join(data_root, "{}.train.y.npy".format(site_name)) + test_x_path = os.path.join(data_root, "{}.test.x.npy".format(site_name)) + test_y_path = os.path.join(data_root, "{}.test.y.npy".format(site_name)) + + train_X = np.load(train_x_path) + train_y = np.load(train_y_path) + valid_X = np.load(test_x_path) + valid_y = np.load(test_y_path) + + return {"train_X": train_X, "train_y": train_y, "valid_X": valid_X, "valid_y": valid_y} + + +def sigmoid(inp): + return 1.0 / (1.0 + np.exp(-inp)) + + +def train_newton_raphson(data, theta): + """ + Compute gradient and hessian on local data + based on paramters received from server. + + """ + train_X = data["train_X"] + train_y = data["train_y"] + + # Add intercept, pre-pend 1s to as first + # column of train_X + train_X = np.concatenate((np.ones((train_X.shape[0], 1)), train_X), axis=1) + + # Compute probabilities from current weights + proba = sigmoid(np.dot(train_X, theta)) + + # The gradient is X^T . (y - proba) + gradient = np.dot(train_X.T, (train_y - proba)) + + # The hessian is X^T . D . X, where D is the + # diagnoal matrix with values proba * (1 - proba) + D = np.diag((proba * (1 - proba))[:, 0]) + hessian = train_X.T.dot(D).dot(train_X) + + return {"gradient": gradient, "hessian": hessian} + + +def validate(data, theta): + """ + Performs local validation. + Computes accuracy and precision scores. + + """ + valid_X = data["valid_X"] + valid_y = data["valid_y"] + + # Add intercept, pre-pend 1s to as first + # column of valid_X + valid_X = np.concatenate((np.ones((valid_X.shape[0], 1)), valid_X), axis=1) + + # Compute probabilities from current weights + proba = sigmoid(np.dot(valid_X, theta)) + + return {"accuracy": accuracy_score(valid_y, proba.round()), "precision": precision_score(valid_y, proba.round())} + + +def main(): + """ + This is a typical ML training loop, + augmented with Flare Client API to + perform local training on each client + side and send result to server. + + """ + args = parse_arguments() + + flare.init() + + site_name = flare.get_site_name() + print("training on client site: {}".format(site_name)) + + # Load client site data. + data = load_data(args.data_root, site_name) + + # Get metric summary writer + writer = SummaryWriter() + + while flare.is_running(): + + # Receive global model (FLModel) from server. + global_model = flare.receive() + + curr_round = global_model.current_round + print("current_round={}".format(curr_round)) + + print( + ("[ROUND {}] - client site: {}, received " "global model: {}").format(curr_round, site_name, global_model) + ) + + # Get the weights, aka parameter theta for + # logistic regression. + global_weights = global_model.params[NPConstants.NUMPY_KEY] + print("[ROUND {}] - global model weights: {}".format(curr_round, global_weights)) + + # Local validation before training + print(("[ROUND {}] - start validation of global " "model on client: {}").format(curr_round, site_name)) + validation_scores = validate(data, global_weights) + print( + ("[ROUND {}] - validation metric scores on " "client: {} = {}").format( + curr_round, site_name, validation_scores + ) + ) + + # Write validation metric summary + writer.add_scalar("{}/accuracy".format(site_name), validation_scores["accuracy"], curr_round) + + writer.add_scalar("{}/precision".format(site_name), validation_scores["precision"], curr_round) + + # Local training + print(("[ROUND {}] - start local training on client " "site: {}").format(curr_round, site_name)) + result_dict = train_newton_raphson(data, theta=global_weights) + + # Send result to server for aggregation. + result_model = FLModel(params=result_dict, params_type=ParamsType.FULL) + result_model.meta[FLMetaKey.NUM_STEPS_CURRENT_ROUND] = data["train_X"].shape[0] + + print( + ( + "[ROUND {}] - local newton raphson training from " "client: {} complete, sending results to server: {}" + ).format(curr_round, site_name, result_model) + ) + + flare.send(result_model) + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_workflow.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_workflow.py new file mode 100644 index 0000000000..a4094cb7f6 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/app/custom/newton_raphson_workflow.py @@ -0,0 +1,167 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from typing import List + +import numpy as np + +from nvflare.apis.fl_constant import FLMetaKey +from nvflare.app_common.abstract.fl_model import FLModel +from nvflare.app_common.aggregators.weighted_aggregation_helper import WeightedAggregationHelper +from nvflare.app_common.app_constant import AppConstants +from nvflare.app_common.np.constants import NPConstants +from nvflare.app_common.workflows.base_fedavg import BaseFedAvg + + +class FedAvgNewtonRaphson(BaseFedAvg): + def __init__(self, damping_factor, epsilon=1.0, *args, **kwargs): + super().__init__(*args, **kwargs) + """ + Init function for FedAvgNewtonRaphson. + + Args: + damping_factor: damping factor for Newton Raphson updates. + epsilon: a regularization factor to avoid empty hessian for + matrix inversion + """ + self.damping_factor = damping_factor + self.epsilon = epsilon + self.aggregator = WeightedAggregationHelper() + + def run(self) -> None: + """ + The run function executes the logic of federated + second order Newton Raphson optimization. + + """ + self.info("starting Federated Averaging Netwon Raphson ...") + + # First load the model and set up some training params. + # A `persisitor` (NewtonRaphsonModelPersistor) will load + # the model in `ModelLearnable` format, then will be + # converted `FLModel` by `ModelController`. + # + model = self.load_model() + + model.start_round = self.start_round + model.total_rounds = self.num_rounds + + self.info("Server side model loader: {}".format(model)) + + for self.current_round in range(self.start_round, self.start_round + self.num_rounds): + self.info(f"Round {self.current_round} started.") + + # Get the list of clients. + clients = self.sample_clients(self.num_clients) + + model.current_round = self.current_round + + # Send training task and current global model to clients. + # + # A `task` isntance will be created, and sent + # to clients, the model is first converted to a shareable + # and is attached to the task. + # + # After the task is finished, the result (shareable) recieved + # from the task is converted to FLModel, and is returned to the + # server. The `results` below is a list with result (FLModel) + # from all clients. + # + # The full logic of `task` is implemented in: + # https://github.com/NVIDIA/NVFlare/blob/d6827bca96d332adb3402ceceb4b67e876146067/nvflare/app_common/workflows/model_controller.py#L178 + # + self.info("sending server side global model to clients") + results = self.send_model_and_wait(targets=clients, data=model) + + # Aggregate results receieved from clients. + aggregate_results = self.aggregate(results, aggregate_fn=self.newton_raphson_aggregator_fn) + + # Update global model based on the following formula: + # weights = weights + updates, where + # updates = -damping_factor * Hessian^{-1} . Gradient + self.update_model(model, aggregate_results) + + # Save global model. + self.save_model(model) + + self.info("Finished FedAvg.") + + def newton_raphson_aggregator_fn(self, results: List[FLModel]): + """ + Custom aggregator function for second order Newton Raphson + optimization. + + This uses the default thread-safe WeightedAggregationHelper, + which implement a weighted average of all values received from + a `result` dictionary. + + Args: + results: a list of `FLModel`s. Each `FLModel` is received + from a client. The field `params` is a dictionary that + contains values to be aggregated: the gradient and hessian. + """ + self.info("receieved results from clients: {}".format(results)) + + # On client side the `NUM_STEPS_CURRENT_ROUND` key + # is used to track the number of samples for each client. + for curr_result in results: + self.aggregator.add( + data=curr_result.params, + weight=curr_result.meta.get(FLMetaKey.NUM_STEPS_CURRENT_ROUND, 1.0), + contributor_name=curr_result.meta.get("client_name", AppConstants.CLIENT_UNKNOWN), + contribution_round=curr_result.current_round, + ) + + aggregated_dict = self.aggregator.get_result() + self.info("aggregated result: {}".format(aggregated_dict)) + + # Compute global model update: + # update = - damping_factor * Hessian^{-1} . Gradient + # A regularization is added to avoid empty hessian. + # + reg = self.epsilon * np.eye(aggregated_dict["hessian"].shape[0]) + newton_raphson_updates = self.damping_factor * np.linalg.solve( + aggregated_dict["hessian"] + reg, aggregated_dict["gradient"] + ) + self.info("newton raphson updates: {}".format(newton_raphson_updates)) + + # Convert the aggregated result to `FLModel`, this `FLModel` + # will then be used by `update_model` method from the base class, + # to update the global model weights. + # + aggr_result = FLModel( + params={"newton_raphson_updates": newton_raphson_updates}, + params_type=results[0].params_type, + meta={ + "nr_aggregated": len(results), + AppConstants.CURRENT_ROUND: results[0].current_round, + AppConstants.NUM_ROUNDS: self.num_rounds, + }, + ) + return aggr_result + + def update_model(self, model, model_update, replace_meta=True) -> FLModel: + """ + Update logistic regression parameters based on + aggregated gradient and hessian. + + """ + if replace_meta: + model.meta = model_update.meta + else: + model.meta.update(model_update.meta) + + model.metrics = model_update.metrics + model.params[NPConstants.NUMPY_KEY] += model_update.params["newton_raphson_updates"] diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/meta.json b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/meta.json new file mode 100644 index 0000000000..c157e9f65a --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/newton_raphson/meta.json @@ -0,0 +1,10 @@ +{ + "name": "newton_raphson", + "resource_spec": {}, + "min_clients" : 4, + "deploy_map": { + "app": [ + "@ALL" + ] + } +} diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/requirements.txt new file mode 100644 index 0000000000..513c8f8be0 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/requirements.txt @@ -0,0 +1,2 @@ +flamby @ git+https://github.com/owkin/FLamby.git@main +wget==3.2 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_persistor.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_persistor.py new file mode 100644 index 0000000000..5b324dd50c --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_persistor.py @@ -0,0 +1,64 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import numpy as np + +from nvflare.app_common.np.np_model_persistor import NPModelPersistor + + +class NewtonRaphsonModelPersistor(NPModelPersistor): + """ + This class defines the persistor for Newton Raphson model. + + A persistor controls the logic behind initializing, loading + and saving of the model / parameters for each round of a + federated learning process. + + In the 2nd order Newton Raphson case, a model is just a + 1-D numpy vector containing the parameters for logistic + regression. The length of the parameter vector is defined + by the number of features in the dataset. + + """ + + def __init__(self, model_dir="models", model_name="weights.npy", n_features=13): + """ + Init function for NewtonRaphsonModelPersistor. + + Args: + model_dir: sub-folder name to save and load the global model + between rounds. + model_name: name to save and load the global model. + n_features: number of features for the logistic regression. + For the UCI ML heart Disease dataset, this is 13. + + """ + + super().__init__() + + self.model_dir = model_dir + self.model_name = model_name + self.n_features = n_features + + # A default model is loaded when no local model is available. + # This happen when training starts. + # + # A `model` for a binary logistic regression is just a matrix, + # with shape (n_features + 1, 1). + # For the UCI ML Heart Disease dataset, the n_features = 13. + # + # A default matrix with value 0s is created. + # + self.default_data = np.zeros((self.n_features + 1, 1), dtype=np.float32) diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_train.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_train.py new file mode 100644 index 0000000000..419b9ed70b --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_train.py @@ -0,0 +1,184 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse +import os + +import numpy as np +from sklearn.metrics import accuracy_score, precision_score + +import nvflare.client as flare +from nvflare.apis.fl_constant import FLMetaKey +from nvflare.app_common.abstract.fl_model import FLModel, ParamsType +from nvflare.app_common.np.constants import NPConstants +from nvflare.client.tracking import SummaryWriter + + +def parse_arguments(): + """ + Parse command line args for client side training. + """ + parser = argparse.ArgumentParser(description="Federated Second-Order Newton Raphson") + + parser.add_argument("--data_root", type=str, help="Path to load client side data.") + + return parser.parse_args() + + +def load_data(data_root, site_name): + """ + Load the data for each client. + + Args: + data_root: root directory storing client site data. + site_name: client site name + Returns: + A dict with client site training and validation data. + """ + print("loading data for client {} from: {}".format(site_name, data_root)) + train_x_path = os.path.join(data_root, "{}.train.x.npy".format(site_name)) + train_y_path = os.path.join(data_root, "{}.train.y.npy".format(site_name)) + test_x_path = os.path.join(data_root, "{}.test.x.npy".format(site_name)) + test_y_path = os.path.join(data_root, "{}.test.y.npy".format(site_name)) + + train_X = np.load(train_x_path) + train_y = np.load(train_y_path) + valid_X = np.load(test_x_path) + valid_y = np.load(test_y_path) + + return {"train_X": train_X, "train_y": train_y, "valid_X": valid_X, "valid_y": valid_y} + + +def sigmoid(inp): + return 1.0 / (1.0 + np.exp(-inp)) + + +def train_newton_raphson(data, theta): + """ + Compute gradient and hessian on local data + based on paramters received from server. + + """ + train_X = data["train_X"] + train_y = data["train_y"] + + # Add intercept, pre-pend 1s to as first + # column of train_X + train_X = np.concatenate((np.ones((train_X.shape[0], 1)), train_X), axis=1) + + # Compute probabilities from current weights + proba = sigmoid(np.dot(train_X, theta)) + + # The gradient is X^T . (y - proba) + gradient = np.dot(train_X.T, (train_y - proba)) + + # The hessian is X^T . D . X, where D is the + # diagnoal matrix with values proba * (1 - proba) + D = np.diag((proba * (1 - proba))[:, 0]) + hessian = train_X.T.dot(D).dot(train_X) + + return {"gradient": gradient, "hessian": hessian} + + +def validate(data, theta): + """ + Performs local validation. + Computes accuracy and precision scores. + + """ + valid_X = data["valid_X"] + valid_y = data["valid_y"] + + # Add intercept, pre-pend 1s to as first + # column of valid_X + valid_X = np.concatenate((np.ones((valid_X.shape[0], 1)), valid_X), axis=1) + + # Compute probabilities from current weights + proba = sigmoid(np.dot(valid_X, theta)) + + return {"accuracy": accuracy_score(valid_y, proba.round()), "precision": precision_score(valid_y, proba.round())} + + +def main(): + """ + This is a typical ML training loop, + augmented with Flare Client API to + perform local training on each client + side and send result to server. + + """ + args = parse_arguments() + + flare.init() + + site_name = flare.get_site_name() + print("training on client site: {}".format(site_name)) + + # Load client site data. + data = load_data(args.data_root, site_name) + + # Get metric summary writer + writer = SummaryWriter() + + while flare.is_running(): + + # Receive global model (FLModel) from server. + global_model = flare.receive() + + curr_round = global_model.current_round + print("current_round={}".format(curr_round)) + + print( + ("[ROUND {}] - client site: {}, received " "global model: {}").format(curr_round, site_name, global_model) + ) + + # Get the weights, aka parameter theta for + # logistic regression. + global_weights = global_model.params[NPConstants.NUMPY_KEY] + print("[ROUND {}] - global model weights: {}".format(curr_round, global_weights)) + + # Local validation before training + print(("[ROUND {}] - start validation of global " "model on client: {}").format(curr_round, site_name)) + validation_scores = validate(data, global_weights) + print( + ("[ROUND {}] - validation metric scores on " "client: {} = {}").format( + curr_round, site_name, validation_scores + ) + ) + + # Write validation metric summary + writer.add_scalar("{}/accuracy".format(site_name), validation_scores["accuracy"], curr_round) + + writer.add_scalar("{}/precision".format(site_name), validation_scores["precision"], curr_round) + + # Local training + print(("[ROUND {}] - start local training on client " "site: {}").format(curr_round, site_name)) + result_dict = train_newton_raphson(data, theta=global_weights) + + # Send result to server for aggregation. + result_model = FLModel(params=result_dict, params_type=ParamsType.FULL) + result_model.meta[FLMetaKey.NUM_STEPS_CURRENT_ROUND] = data["train_X"].shape[0] + + print( + ( + "[ROUND {}] - local newton raphson training from " "client: {} complete, sending results to server: {}" + ).format(curr_round, site_name, result_model) + ) + + flare.send(result_model) + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_workflow.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_workflow.py new file mode 100644 index 0000000000..a4094cb7f6 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/src/newton_raphson_workflow.py @@ -0,0 +1,167 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from typing import List + +import numpy as np + +from nvflare.apis.fl_constant import FLMetaKey +from nvflare.app_common.abstract.fl_model import FLModel +from nvflare.app_common.aggregators.weighted_aggregation_helper import WeightedAggregationHelper +from nvflare.app_common.app_constant import AppConstants +from nvflare.app_common.np.constants import NPConstants +from nvflare.app_common.workflows.base_fedavg import BaseFedAvg + + +class FedAvgNewtonRaphson(BaseFedAvg): + def __init__(self, damping_factor, epsilon=1.0, *args, **kwargs): + super().__init__(*args, **kwargs) + """ + Init function for FedAvgNewtonRaphson. + + Args: + damping_factor: damping factor for Newton Raphson updates. + epsilon: a regularization factor to avoid empty hessian for + matrix inversion + """ + self.damping_factor = damping_factor + self.epsilon = epsilon + self.aggregator = WeightedAggregationHelper() + + def run(self) -> None: + """ + The run function executes the logic of federated + second order Newton Raphson optimization. + + """ + self.info("starting Federated Averaging Netwon Raphson ...") + + # First load the model and set up some training params. + # A `persisitor` (NewtonRaphsonModelPersistor) will load + # the model in `ModelLearnable` format, then will be + # converted `FLModel` by `ModelController`. + # + model = self.load_model() + + model.start_round = self.start_round + model.total_rounds = self.num_rounds + + self.info("Server side model loader: {}".format(model)) + + for self.current_round in range(self.start_round, self.start_round + self.num_rounds): + self.info(f"Round {self.current_round} started.") + + # Get the list of clients. + clients = self.sample_clients(self.num_clients) + + model.current_round = self.current_round + + # Send training task and current global model to clients. + # + # A `task` isntance will be created, and sent + # to clients, the model is first converted to a shareable + # and is attached to the task. + # + # After the task is finished, the result (shareable) recieved + # from the task is converted to FLModel, and is returned to the + # server. The `results` below is a list with result (FLModel) + # from all clients. + # + # The full logic of `task` is implemented in: + # https://github.com/NVIDIA/NVFlare/blob/d6827bca96d332adb3402ceceb4b67e876146067/nvflare/app_common/workflows/model_controller.py#L178 + # + self.info("sending server side global model to clients") + results = self.send_model_and_wait(targets=clients, data=model) + + # Aggregate results receieved from clients. + aggregate_results = self.aggregate(results, aggregate_fn=self.newton_raphson_aggregator_fn) + + # Update global model based on the following formula: + # weights = weights + updates, where + # updates = -damping_factor * Hessian^{-1} . Gradient + self.update_model(model, aggregate_results) + + # Save global model. + self.save_model(model) + + self.info("Finished FedAvg.") + + def newton_raphson_aggregator_fn(self, results: List[FLModel]): + """ + Custom aggregator function for second order Newton Raphson + optimization. + + This uses the default thread-safe WeightedAggregationHelper, + which implement a weighted average of all values received from + a `result` dictionary. + + Args: + results: a list of `FLModel`s. Each `FLModel` is received + from a client. The field `params` is a dictionary that + contains values to be aggregated: the gradient and hessian. + """ + self.info("receieved results from clients: {}".format(results)) + + # On client side the `NUM_STEPS_CURRENT_ROUND` key + # is used to track the number of samples for each client. + for curr_result in results: + self.aggregator.add( + data=curr_result.params, + weight=curr_result.meta.get(FLMetaKey.NUM_STEPS_CURRENT_ROUND, 1.0), + contributor_name=curr_result.meta.get("client_name", AppConstants.CLIENT_UNKNOWN), + contribution_round=curr_result.current_round, + ) + + aggregated_dict = self.aggregator.get_result() + self.info("aggregated result: {}".format(aggregated_dict)) + + # Compute global model update: + # update = - damping_factor * Hessian^{-1} . Gradient + # A regularization is added to avoid empty hessian. + # + reg = self.epsilon * np.eye(aggregated_dict["hessian"].shape[0]) + newton_raphson_updates = self.damping_factor * np.linalg.solve( + aggregated_dict["hessian"] + reg, aggregated_dict["gradient"] + ) + self.info("newton raphson updates: {}".format(newton_raphson_updates)) + + # Convert the aggregated result to `FLModel`, this `FLModel` + # will then be used by `update_model` method from the base class, + # to update the global model weights. + # + aggr_result = FLModel( + params={"newton_raphson_updates": newton_raphson_updates}, + params_type=results[0].params_type, + meta={ + "nr_aggregated": len(results), + AppConstants.CURRENT_ROUND: results[0].current_round, + AppConstants.NUM_ROUNDS: self.num_rounds, + }, + ) + return aggr_result + + def update_model(self, model, model_update, replace_meta=True) -> FLModel: + """ + Update logistic regression parameters based on + aggregated gradient and hessian. + + """ + if replace_meta: + model.meta = model_update.meta + else: + model.meta.update(model_update.meta) + + model.metrics = model_update.metrics + model.params[NPConstants.NUMPY_KEY] += model_update.params["newton_raphson_updates"] diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/train_centralized.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/train_centralized.py new file mode 100755 index 0000000000..c64ee6cb6e --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/code/train_centralized.py @@ -0,0 +1,118 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse +import os + +import numpy as np +from sklearn.linear_model import LogisticRegression +from sklearn.metrics import accuracy_score, precision_score + +DATA_ROOT = "/tmp/flare/dataset/heart_disease_data/" + +MAX_ITERS = 4 +EPSILON = 1.0 + + +def sigmoid(inp): + return 1.0 / (1.0 + np.exp(-inp)) + + +def lr_solver(X, y): + """ + Custom logistic regression solver using Newton Raphson + method. + + """ + n_features = X.shape[1] + theta = np.zeros((n_features + 1, 1)) + X = np.concatenate((np.ones((X.shape[0], 1)), X), axis=1) + + for iter in range(MAX_ITERS): + proba = sigmoid(np.dot(X, theta)) + gradient = np.dot(X.T, (y - proba)) + D = np.diag((proba * (1 - proba))[:, 0]) + hessian = X.T.dot(D).dot(X) + + reg = EPSILON * np.eye(hessian.shape[0]) + updates = np.linalg.solve(hessian + reg, gradient) + + theta += updates + + return theta + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument( + "--solver", + type=str, + default="custom", + help=("which solver to use: custom (default) or sklearn " "LogisticRegression. The results are the same. "), + ) + args = parser.parse_args() + + print("using solver:", args.solver) + + print("loading training data.") + train_X = np.concatenate( + ( + np.load(os.path.join(DATA_ROOT, "site-1.train.x.npy")), + np.load(os.path.join(DATA_ROOT, "site-2.train.x.npy")), + np.load(os.path.join(DATA_ROOT, "site-3.train.x.npy")), + np.load(os.path.join(DATA_ROOT, "site-4.train.x.npy")), + ) + ) + train_y = np.concatenate( + ( + np.load(os.path.join(DATA_ROOT, "site-1.train.y.npy")), + np.load(os.path.join(DATA_ROOT, "site-2.train.y.npy")), + np.load(os.path.join(DATA_ROOT, "site-3.train.y.npy")), + np.load(os.path.join(DATA_ROOT, "site-4.train.y.npy")), + ) + ) + +if args.solver == "sklearn": + train_y = train_y.reshape(-1) + +print("training data X loaded. shape:", train_X.shape) +print("training data y loaded. shape:", train_y.shape) + +if args.solver == "sklearn": + clf = LogisticRegression(random_state=0, solver="newton-cholesky", verbose=1).fit(train_X, train_y) + +else: + theta = lr_solver(train_X, train_y) + +for site in range(4): + + print("\nsite - {}".format(site + 1)) + test_X = np.load(os.path.join(DATA_ROOT, "site-{}.test.x.npy".format(site + 1))) + test_y = np.load(os.path.join(DATA_ROOT, "site-{}.test.y.npy".format(site + 1))) + test_y = test_y.reshape(-1) + + print("validation set n_samples: ", test_X.shape[0]) + + if args.solver == "sklearn": + proba = clf.predict_proba(test_X) + proba = proba[:, 1] + + else: + test_X = np.concatenate((np.ones((test_X.shape[0], 1)), test_X), axis=1) + proba = sigmoid(np.dot(test_X, theta)) + + print("accuracy:", accuracy_score(test_y, proba.round())) + print("precision:", precision_score(test_y, proba.round())) diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/convert_logistic_regression_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/convert_logistic_regression_to_fl.ipynb new file mode 100644 index 0000000000..5bf4d3f4f1 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.3_convert_machine_learning_to_federated_learning/02.3.1_convert_logistic_regression_to_federated_learning/convert_logistic_regression_to_fl.ipynb @@ -0,0 +1,341 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e8c19632", + "metadata": {}, + "source": [ + "# Converting Logistic Regression to FL" + ] + }, + { + "cell_type": "markdown", + "id": "7f9d96ed", + "metadata": {}, + "source": [ + "## Federated Logistic Regression with Second-Order Newton-Raphson optimization\n", + "This example shows how to implement a federated binary classification via logistic regression with second-order Newton-Raphson optimization.\n", + "\n", + "The [UCI Heart Disease dataset](https://archive.ics.uci.edu/dataset/45/heart+disease) is\n", + "used in this example. Scripts are provided to download and process the\n", + "dataset as described\n", + "[here](https://github.com/owkin/FLamby/tree/main/flamby/datasets/fed_heart_disease).\n", + "\n", + "This dataset contains samples from 4 sites, splitted into training and\n", + "testing sets as described below:\n", + "|site | sample split |\n", + "|-------------|---------------------------------------|\n", + "|Cleveland | train: 199 samples, test: 104 samples |\n", + "|Hungary | train: 172 samples, test: 89 samples |\n", + "|Switzerland | train: 30 samples, test: 16 samples |\n", + "|Long Beach V | train: 85 samples, test: 45 samples |\n", + "\n", + "The number of features in each sample is 13." + ] + }, + { + "cell_type": "markdown", + "id": "e54f0dcc", + "metadata": {}, + "source": [ + "## Introduction\n", + "\n", + "The [Newton-Raphson\n", + "optimization](https://en.wikipedia.org/wiki/Newton%27s_method) problem\n", + "can be described as follows.\n", + "\n", + "In a binary classification task with logistic regression, the\n", + "probability of a data sample $x$ classified as positive is formulated\n", + "as:\n", + "$$p(x) = \\sigma(\\beta \\cdot x + \\beta_{0})$$\n", + "where $\\sigma(.)$ denotes the sigmoid function. We can incorporate\n", + "$\\beta_{0}$ and $\\beta$ into a single parameter vector $\\theta =\n", + "( \\beta_{0}, \\beta)$. Let $d$ be the number\n", + "of features for each data sample $x$ and let $N$ be the number of data\n", + "samples. We then have the matrix version of the above probability\n", + "equation:\n", + "$$p(X) = \\sigma( X \\theta )$$\n", + "Here $X$ is the matrix of all samples, with shape $N \\times (d+1)$,\n", + "having it's first column filled with value 1 to account for the\n", + "intercept $\\theta_{0}$.\n", + "\n", + "The goal is to compute parameter vector $\\theta$ that maximizes the\n", + "below likelihood function:\n", + "$$L_{\\theta} = \\prod_{i=1}^{N} p(x_i)^{y_i} (1 - p(x_i)^{1-y_i})$$\n", + "\n", + "The Newton-Raphson method optimizes the likelihood function via\n", + "quadratic approximation. Omitting the maths, the theoretical update\n", + "formula for parameter vector $\\theta$ is:\n", + "$$\\theta^{n+1} = \\theta^{n} - H_{\\theta^{n}}^{-1} \\nabla L_{\\theta^{n}}$$\n", + "where\n", + "$$\\nabla L_{\\theta^{n}} = X^{T}(y - p(X))$$\n", + "is the gradient of the likelihood function, with $y$ being the vector\n", + "of ground truth for sample data matrix $X$, and\n", + "$$H_{\\theta^{n}} = -X^{T} D X$$\n", + "is the Hessian of the likelihood function, with $D$ a diagonal matrix\n", + "where diagonal value at $(i,i)$ is $D(i,i) = p(x_i) (1 - p(x_i))$.\n", + "\n", + "In federated Newton-Raphson optimization, each client will compute its\n", + "own gradient $\\nabla L_{\\theta^{n}}$ and Hessian $H_{\\theta^{n}}$\n", + "based on local training samples. A server will aggregate the gradients\n", + "and Hessians computed from all clients, and perform the update of\n", + "parameter $\\theta$ based on the theoretical update formula described\n", + "above." + ] + }, + { + "cell_type": "markdown", + "id": "32003ba9", + "metadata": {}, + "source": [ + "## Implementation\n", + "\n", + "Using `nvflare`, The federated logistic regression with Newton-Raphson\n", + "optimization is implemented as follows.\n", + "\n", + "On the server side, all workflow logics are implemented in\n", + "class `FedAvgNewtonRaphson`, which can be found\n", + "[here](code/newton_raphson/app/custom/newton_raphson_workflow.py). The\n", + "`FedAvgNewtonRaphson` class inherits from the\n", + "[`BaseFedAvg`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/base_fedavg.py)\n", + "class, which itself inherits from the **ModelController**\n", + "([`ModelController`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/model_controller.py))\n", + "class. This is the preferrable approach to implement a custom\n", + "workflow, since `ModelController` decouples communication logic from\n", + "actual workflow (training & validation) logic. The mandatory\n", + "method to override in `ModelController` is the\n", + "[`run()`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/model_controller.py#L37)\n", + "method, where the orchestration of server-side workflow actually\n", + "happens. The implementation of `run()` method in\n", + "[`FedAvgNewtonRaphson`](code/newton_raphson/app/custom/newton_raphson_workflow.py)\n", + "is similar to the classic\n", + "[`FedAvg`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/fedavg.py#L44):\n", + "- Initialize the global model, this is acheived through method `load_model()`\n", + " from base class\n", + " [`ModelController`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/model_controller.py#L292),\n", + " which relies on the\n", + " [`ModelPersistor`](https://nvflare.readthedocs.io/en/main/glossary.html#persistor). A\n", + " custom\n", + " [`NewtonRaphsonModelPersistor`](code/newton_raphson/app/custom/newton_raphson_persistor.py)\n", + " is implemented in this example, which is based on the\n", + " [`NPModelPersistor`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/np/np_model_persistor.py)\n", + " for numpy data, since the _model_ in the case of logistic regression\n", + " is just the parameter vector $\\theta$ that can be represented by a\n", + " numpy array. Only the `__init__` method needs to be re-implemented\n", + " to provide a proper initialization for the global parameter vector\n", + " $\\theta$.\n", + "- During each training round, the global model will be sent to the\n", + " list of participating clients to perform a training task. This is\n", + " done using the\n", + " [`send_model_and_wait()`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/model_controller.py#L41)\n", + " method. Once\n", + " the clients finish their local training, results will be collected\n", + " and sent back to server as\n", + " [`FLModel`](https://nvflare.readthedocs.io/en/main/programming_guide/fl_model.html#flmodel)s.\n", + "- Results sent by clients contain their locally computed gradient and\n", + " Hessian. A [custom aggregation\n", + " function](code/newton_raphson/app/custom/newton_raphson_workflow.py)\n", + " is implemented to get the averaged gradient and Hessian, and compute\n", + " the Newton-Raphson update for the global parameter vector $\\theta$,\n", + " based on the theoretical formula shown above. The averaging of\n", + " gradient and Hessian is based on the\n", + " [`WeightedAggregationHelper`](https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/aggregators/weighted_aggregation_helper.py#L20),\n", + " which weighs the contribution from each client based on the number\n", + " of local training samples. The aggregated Newton-Raphson update is\n", + " returned as an `FLModel`.\n", + "- After getting the aggregated Newton-Raphson update, an\n", + " [`update_model()`](code/newton_raphson/app/custom/newton_raphson_workflow.py#L172)\n", + " method is implemented to actually apply the Newton-Raphson update to\n", + " the global model.\n", + "- The last step is to save the updated global model, again through\n", + " the `NewtonRaphsonModelPersistor` using `save_model()`.\n", + "\n", + "\n", + "On the client side, the local training logic is implemented\n", + "[here](code/newton_raphson/app/custom/newton_raphson_train.py). The\n", + "implementation is based on the [`Client\n", + "API`](https://nvflare.readthedocs.io/en/main/programming_guide/execution_api_type.html#client-api). This\n", + "allows user to add minimum `nvflare`-specific code to turn a typical\n", + "centralized training script into a federated client side local training\n", + "script.\n", + "- During local training, each client receives a copy of the global\n", + " model, sent by the server, using `flare.receive()` from the Client API.\n", + " The received global model is an instance of `FLModel`.\n", + "- A local validation is first performed, where validation metrics\n", + " (accuracy and precision) are streamed to server using the\n", + " [`SummaryWriter`](https://nvflare.readthedocs.io/en/main/apidocs/nvflare.client.tracking.html#nvflare.client.tracking.SummaryWriter). The\n", + " streamed metrics can be loaded and visualized using tensorboard.\n", + "- Then each client computes it's gradient and Hessian based on local\n", + " training data, using their respective theoretical formula described\n", + " above. This is implemented in the\n", + " [`train_newton_raphson()`](code/newton_raphson/app/custom/newton_raphson_train.py#L82)\n", + " method. Each client then sends the computed results (always in\n", + " `FLModel` format) to server for aggregation, using the Client API call\n", + " `flare.send()`.\n", + "\n", + "Each client site corresponds to a site listed in the data table above.\n", + "\n", + "A [centralized training script](code/train_centralized.py) is also\n", + "provided, which allows for comparing the federated Newton-Raphson\n", + "optimization versus the centralized version. In the centralized\n", + "version, training data samples from all 4 sites were concatenated into\n", + "a single matrix, used to optimize the model parameters. The\n", + "optimized model was then tested separately on testing data samples of\n", + "the 4 sites, using accuracy and precision as metrics.\n", + "\n", + "Comparing the federated [client-side training\n", + "code](code/newton_raphson/app/custom/newton_raphson_train.py) with the\n", + "centralized [training code](code/train_centralized.py), we can see that\n", + "the training logic remains similar: load data, perform training\n", + "(Newton-Raphson updates), and valid trained model. The only added\n", + "differences in the federated code are related to interaction with the\n", + "FL system, such as receiving and send `FLModel`." + ] + }, + { + "cell_type": "markdown", + "id": "c3fc55e0", + "metadata": {}, + "source": [ + "## Install requirements\n", + "First, install the required packages:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04911ca3", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install -r code/requirements.txt" + ] + }, + { + "cell_type": "markdown", + "id": "33ea8504", + "metadata": {}, + "source": [ + "## Download and prepare data\n", + "\n", + "Execute the following script\n", + "```\n", + "bash ./code/data/prepare_heart_disease_data.sh\n", + "```\n", + "This will download the heart disease dataset under\n", + "`/tmp/flare/dataset/heart_disease_data/`\n", + "\n", + "Please note that you may need to accept the data terms in order to complete the download." + ] + }, + { + "cell_type": "markdown", + "id": "d548b466", + "metadata": {}, + "source": [ + "## Centralized Logistic Regression\n", + "\n", + "Launch the following script:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c68fe1a", + "metadata": {}, + "outputs": [], + "source": [ + "! python3 code/train_centralized.py --solver custom" + ] + }, + { + "cell_type": "markdown", + "id": "fa666b79", + "metadata": {}, + "source": [ + "Two implementations of logistic regression are provided in the\n", + "centralized training script, which can be specified by the `--solver`\n", + "argument:\n", + "- One is using `sklearn.LogisticRegression` with the `newton-cholesky`\n", + " solver\n", + "- The other one is manually implemented using the theoretical update\n", + " formulas described above.\n", + "\n", + "Both implementations were tested to converge in 4 iterations and to\n", + "give the same result.\n", + "\n", + "Example output:\n", + "```\n", + "using solver: custom\n", + "loading training data.\n", + "training data X loaded. shape: (486, 13)\n", + "training data y loaded. shape: (486, 1)\n", + "\n", + "site - 1\n", + "validation set n_samples: 104\n", + "accuracy: 0.75\n", + "precision: 0.7115384615384616\n", + "\n", + "site - 2\n", + "validation set n_samples: 89\n", + "accuracy: 0.7528089887640449\n", + "precision: 0.6122448979591837\n", + "\n", + "site - 3\n", + "validation set n_samples: 16\n", + "accuracy: 0.75\n", + "precision: 1.0\n", + "\n", + "site - 4\n", + "validation set n_samples: 45\n", + "accuracy: 0.6\n", + "precision: 0.9047619047619048\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "0b72ef2b", + "metadata": {}, + "source": [ + "## Federated Logistic Regression\n", + "\n", + "Execute the following command to launch federated logistic\n", + "regression. This will run in `nvflare`'s simulator mode.\n", + "```\n", + "nvflare simulator -w ./workspace -n 4 -t 4 job/newton_raphson/\n", + "```\n", + "\n", + "Accuracy and precision for each site can be viewed in Tensorboard:\n", + "```\n", + "tensorboard --logdir=./workspace/server/simulate_job/tb_events\n", + "```\n", + "As can be seen from the figure below, per-site evaluation metrics in\n", + "federated logistic regression are on-par with the centralized version.\n", + "\n", + "\"Tensorboard\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 6c29d7ff6fbe2bd4056dd6c973753e273d90c988 Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Fri, 7 Feb 2025 09:51:59 -0500 Subject: [PATCH 7/9] Convert learner+template to clientAPI+jobAPI for nlp example (#3200) Fixes # . ### Description Update NLP_NER example by converting learner+job template to clientAPI+jobAPI, for tutorial ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- examples/advanced/nlp-ner/README.md | 49 +-- .../nlp-ner/custom/learners/nlp_learner.py | 382 ------------------ .../app/config/config_fed_client.json | 41 -- .../app/config/config_fed_server.json | 59 --- .../advanced/nlp-ner/jobs/bert_ncbi/meta.json | 9 - .../app/config/config_fed_client.json | 41 -- .../app/config/config_fed_server.json | 59 --- .../advanced/nlp-ner/jobs/gpt2_ncbi/meta.json | 9 - examples/advanced/nlp-ner/nlp_fl_job.py | 84 ++++ examples/advanced/nlp-ner/requirements.txt | 1 - .../{custom/utils => src}/data_sequence.py | 0 examples/advanced/nlp-ner/src/nlp_fl.py | 193 +++++++++ .../{custom/models => src}/nlp_models.py | 0 .../advanced/nlp-ner/test_global_model.sh | 4 +- .../advanced/nlp-ner/utils/ner_model_test.py | 4 +- 15 files changed, 299 insertions(+), 636 deletions(-) delete mode 100644 examples/advanced/nlp-ner/custom/learners/nlp_learner.py delete mode 100644 examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_client.json delete mode 100644 examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_server.json delete mode 100644 examples/advanced/nlp-ner/jobs/bert_ncbi/meta.json delete mode 100644 examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_client.json delete mode 100644 examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_server.json delete mode 100644 examples/advanced/nlp-ner/jobs/gpt2_ncbi/meta.json create mode 100644 examples/advanced/nlp-ner/nlp_fl_job.py rename examples/advanced/nlp-ner/{custom/utils => src}/data_sequence.py (100%) create mode 100644 examples/advanced/nlp-ner/src/nlp_fl.py rename examples/advanced/nlp-ner/{custom/models => src}/nlp_models.py (100%) diff --git a/examples/advanced/nlp-ner/README.md b/examples/advanced/nlp-ner/README.md index d110d944ba..e5fbacc25f 100644 --- a/examples/advanced/nlp-ner/README.md +++ b/examples/advanced/nlp-ner/README.md @@ -22,11 +22,13 @@ pip install -r ./requirements.txt The raw data can be accessed from [official page](https://www.ncbi.nlm.nih.gov/CBBresearch/Dogan/DISEASE/). In this example, we use the preprocessed csv-files from the reference repo above, which can be downloaded [here](https://drive.google.com/drive/folders/13wROtEAnMgWpLMIGHB5CY1BQ1Xe2XqhG). Please download three files `train.csv`, `dev.csv`, and `test.csv`. +In the following, we assume the downloaded files are placed in a folder `DATASET_ROOT`, and we default to `/tmp/nvflare/data/nlp_ner` We then use the preprocessed data to generate random splits for both 4-client and 2-client experiments. Please modify the `DATASET_ROOT` below to point to folder containing the four downloaded csv-files. ```commandline -bash prepare_data.sh DATASET_ROOT +DATASET_ROOT=/tmp/nvflare/data/nlp_ner +bash prepare_data.sh $DATASET_ROOT ``` The expected output is ``` @@ -52,31 +54,14 @@ Let's take a closer look at the word-label correspondence: As shown above, the task is to capture the keywords related to medical findings. ## Run automated experiments -We use the NVFlare [simulator](https://nvflare.readthedocs.io/en/latest/user_guide/nvflare_cli/fl_simulator.html) to run the FL training. -Set `PYTHONPATH` to include custom files of this example: +We run the federated training on a single client using NVFlare Simulator via [JobAPI](https://nvflare.readthedocs.io/en/main/programming_guide/fed_job_api.html). ``` -export PYTHONPATH=${PWD} -``` -### Prepare local configs -Please modify the `DATASET_ROOT` within [config_fed_client.json](./jobs/bert_ncbi/app/config/config_fed_client.json) -### Use NVFlare simulator to run the experiments -We use the NVFlare simulator to run the FL training experiments, following the pattern: +python3 nlp_fl_job.py --model_name Bert +python3 nlp_fl_job.py --model_name GPT ``` -nvflare simulator jobs/[job] -w ${workspace_path}/[job] -c [clients] -gpu [gpu] -t [thread] -``` -`[job]` is the experiment job that will be submitted for the FL training. -In this example, it will be `bert_ncbi` and `gpt2_ncbi`. -The combination of `-c` and `-gpu`/`-t` controls the resource allocation. ## Results -In this example, we run 4 clients on 2 GPUs with 4 threads for BERT model, and 2 clients on 2 GPUs with 2 threads for GPT-2 model. The minimum GPU memory requirement is 10 GB per GPU for BERT and 8 GB per GPU for GPT-2. We put the workspace in `/tmp` folder -``` -nvflare simulator jobs/bert_ncbi -w /tmp/nvflare/workspaces/bert_ncbi -n 4 -gpu 0,1,0,1 -``` -and -``` -nvflare simulator jobs/gpt2_ncbi -w /tmp/nvflare/workspaces/gpt2_ncbi -n 2 -gpu 0,1 -``` +In this example, we run 4 clients for BERT model, and 2 clients for GPT-2 model. ### Validation curve on each site In this example, each client computes their validation scores using their own @@ -94,27 +79,29 @@ The testing score is computed for the global model over the testing set. We provide a script for performing validation on testing data. Please modify the `DATASET_ROOT` below: ``` -bash test_global_model.sh DATASET_ROOT +DATASET_ROOT=/tmp/nvflare/data/nlp_ner +export PYTHONPATH=${PWD} +bash test_global_model.sh ${DATASET_ROOT} ``` The test results are: ``` BERT precision recall f1-score support - _ 0.96 0.97 0.97 1255 + _ 0.96 0.98 0.97 1255 - micro avg 0.96 0.97 0.97 1255 - macro avg 0.96 0.97 0.97 1255 -weighted avg 0.96 0.97 0.97 1255 + micro avg 0.96 0.98 0.97 1255 + macro avg 0.96 0.98 0.97 1255 +weighted avg 0.96 0.98 0.97 1255 GPT-2 precision recall f1-score support - _ 0.86 0.90 0.88 1255 + _ 0.87 0.90 0.88 1255 - micro avg 0.86 0.90 0.88 1255 - macro avg 0.86 0.90 0.88 1255 -weighted avg 0.86 0.90 0.88 1255 + micro avg 0.87 0.90 0.88 1255 + macro avg 0.87 0.90 0.88 1255 +weighted avg 0.87 0.90 0.88 1255 ``` Note that training is not deterministic so the numbers can have some variations. diff --git a/examples/advanced/nlp-ner/custom/learners/nlp_learner.py b/examples/advanced/nlp-ner/custom/learners/nlp_learner.py deleted file mode 100644 index 6a85778d51..0000000000 --- a/examples/advanced/nlp-ner/custom/learners/nlp_learner.py +++ /dev/null @@ -1,382 +0,0 @@ -# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os - -import numpy as np -import pandas as pd -import torch -from custom.models.nlp_models import BertModel, GPTModel -from custom.utils.data_sequence import DataSequence -from seqeval.metrics import classification_report -from torch.optim import AdamW -from torch.utils.data import DataLoader -from torch.utils.tensorboard import SummaryWriter - -from nvflare.apis.dxo import DXO, DataKind, MetaKey, from_shareable -from nvflare.apis.fl_constant import FLContextKey, ReturnCode -from nvflare.apis.fl_context import FLContext -from nvflare.apis.shareable import Shareable, make_reply -from nvflare.apis.signal import Signal -from nvflare.app_common.abstract.learner_spec import Learner -from nvflare.app_common.app_constant import AppConstants, ValidateType - -os.environ["TOKENIZERS_PARALLELISM"] = "false" - - -class NLPLearner(Learner): - def __init__( - self, - data_path: str, - learning_rate: float = 1e-5, - batch_size: int = 32, - model_name: str = "bert-base-uncased", - num_labels: int = 3, - ignore_token: int = -100, - aggregation_epochs: int = 1, - train_task_name: str = AppConstants.TASK_TRAIN, - ): - """Supervised NLP task Learner. - This provides the basic functionality of a local learner for NLP models: perform before-train - validation on global model at the beginning of each round, perform local training, - and send the updated weights. No model will be saved locally, tensorboard record for - local loss and global model validation score. - - Args: - data_path: path to dataset, - learning_rate, - batch_size, - model_name: the model name to be used in the pipeline - num_labels: num_labels for the model, - ignore_token: the value for representing padding / null token - aggregation_epochs: the number of training epochs for a round. Defaults to 1. - train_task_name: name of the task to train the model. - - Returns: - a Shareable with the updated local model after running `execute()` - """ - super().__init__() - self.aggregation_epochs = aggregation_epochs - self.train_task_name = train_task_name - self.model_name = model_name - self.num_labels = num_labels - self.ignore_token = ignore_token - self.lr = learning_rate - self.bs = batch_size - self.data_path = data_path - # client ID - self.client_id = None - # Epoch counter - self.epoch_of_start_time = 0 - self.epoch_global = 0 - # Training-related - self.train_loader = None - self.valid_loader = None - self.optimizer = None - self.device = None - self.model = None - self.writer = None - self.best_metric = 0.0 - self.labels_to_ids = None - self.ids_to_labels = None - - def load_data(self): - df_train = pd.read_csv(os.path.join(self.data_path, self.client_id + "_train.csv")) - df_valid = pd.read_csv(os.path.join(self.data_path, self.client_id + "_val.csv")) - return df_train, df_valid - - def get_labels(self, df_train): - labels = [] - for x in df_train["labels"].values: - labels.extend(x.split(" ")) - unique_labels = set(labels) - # check label length - if len(unique_labels) != self.num_labels: - self.system_panic( - f"num_labels {self.num_labels} need to align with dataset, actual data {len(unique_labels)}!", fl_ctx - ) - return make_reply(ReturnCode.EXECUTION_EXCEPTION) - self.labels_to_ids = {k: v for v, k in enumerate(sorted(unique_labels))} - self.ids_to_labels = {v: k for v, k in enumerate(sorted(unique_labels))} - - def initialize(self, parts: dict, fl_ctx: FLContext): - # when a run starts, this is where the actual settings get initialized for trainer - # set the paths according to fl_ctx - engine = fl_ctx.get_engine() - ws = engine.get_workspace() - app_dir = ws.get_app_dir(fl_ctx.get_job_id()) - - # get and print the args - fl_args = fl_ctx.get_prop(FLContextKey.ARGS) - self.client_id = fl_ctx.get_identity_name() - self.log_info( - fl_ctx, - f"Client {self.client_id} initialized with args: \n {fl_args}", - ) - - # set local tensorboard writer for local validation score of global model - self.writer = SummaryWriter(app_dir) - - # set the training-related contexts, this is task-specific - # get data from csv files - self.log_info(fl_ctx, f"Reading data from {self.data_path}") - df_train, df_valid = self.load_data() - - # get labels from data - self.get_labels(df_train) - - # initialize model - self.log_info( - fl_ctx, - f"Creating model {self.model_name}", - ) - if self.model_name == "bert-base-uncased": - self.model = BertModel(model_name=self.model_name, num_labels=self.num_labels) - elif self.model_name == "gpt2": - self.model = GPTModel(model_name=self.model_name, num_labels=self.num_labels) - else: - self.system_panic(f"Model {self.model} not supported!", fl_ctx) - return make_reply(ReturnCode.EXECUTION_EXCEPTION) - tokenizer = self.model.tokenizer - - # set data - train_dataset = DataSequence(df_train, self.labels_to_ids, tokenizer=tokenizer, ignore_token=self.ignore_token) - valid_dataset = DataSequence(df_valid, self.labels_to_ids, tokenizer=tokenizer, ignore_token=self.ignore_token) - self.train_loader = DataLoader(train_dataset, num_workers=2, batch_size=self.bs, shuffle=True) - self.valid_loader = DataLoader(valid_dataset, num_workers=2, batch_size=self.bs, shuffle=False) - self.log_info( - fl_ctx, - f"Training Size: {len(self.train_loader.dataset)}, Validation Size: {len(self.valid_loader.dataset)}", - ) - # Set the training-related context - self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") - self.model.to(self.device) - self.optimizer = AdamW(self.model.parameters(), lr=self.lr) - - def local_train( - self, - fl_ctx, - train_loader, - abort_signal: Signal, - ): - """Typical training logic - Total local epochs: self.aggregation_epochs - Load data pairs from train_loader - Compute loss with self.model - Update model - """ - for epoch in range(self.aggregation_epochs): - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - self.model.train() - epoch_len = len(train_loader) - self.epoch_global = self.epoch_of_start_time + epoch - self.log_info( - fl_ctx, - f"Local epoch {self.client_id}: {epoch + 1}/{self.aggregation_epochs} (lr={self.lr})", - ) - for i, batch_data in enumerate(train_loader): - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - - mask = batch_data[0]["attention_mask"].squeeze(1).to(self.device) - input_id = batch_data[0]["input_ids"].squeeze(1).to(self.device) - train_label = batch_data[1].to(self.device) - - # optimize - loss, logits = self.model(input_id, mask, train_label) - - self.optimizer.zero_grad() - loss.backward() - self.optimizer.step() - - current_step = epoch_len * self.epoch_global + i - self.writer.add_scalar("train_loss", loss.item(), current_step) - - def local_valid( - self, - valid_loader, - abort_signal: Signal, - tb_id_pre=None, - record_epoch=None, - ): - """Typical validation logic - Load data pairs from train_loader - Compute outputs with model - Compute evaluation metric with self.valid_metric - Add score to tensorboard record with specified id - """ - self.model.eval() - with torch.no_grad(): - total_acc_val, total_loss_val, val_total = 0, 0, 0 - val_y_pred, val_y_true = [], [] - for val_data, val_label in valid_loader: - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - val_label = val_label.to(self.device) - val_total += val_label.shape[0] - mask = val_data["attention_mask"].squeeze(1).to(self.device) - input_id = val_data["input_ids"].squeeze(1).to(self.device) - # Inference - loss, logits = self.model(input_id, mask, val_label) - # Add items for metric computation - for i in range(logits.shape[0]): - # remove pad tokens - logits_clean = logits[i][val_label[i] != self.ignore_token] - label_clean = val_label[i][val_label[i] != self.ignore_token] - # calcluate acc and store prediciton and true labels - predictions = logits_clean.argmax(dim=1) - acc = (predictions == label_clean).float().mean() - total_acc_val += acc.item() - val_y_pred.append([self.ids_to_labels[x.item()] for x in predictions]) - val_y_true.append([self.ids_to_labels[x.item()] for x in label_clean]) - # compute metric - metric_dict = classification_report(y_true=val_y_true, y_pred=val_y_pred, output_dict=True, zero_division=0) - # tensorboard record id prefix, add to record if provided - if tb_id_pre: - self.writer.add_scalar(tb_id_pre + "_precision", metric_dict["macro avg"]["precision"], record_epoch) - self.writer.add_scalar(tb_id_pre + "_recall", metric_dict["macro avg"]["recall"], record_epoch) - self.writer.add_scalar(tb_id_pre + "_f1-score", metric_dict["macro avg"]["f1-score"], record_epoch) - return metric_dict["macro avg"]["f1-score"] - - def train( - self, - shareable: Shareable, - fl_ctx: FLContext, - abort_signal: Signal, - ) -> Shareable: - """Typical training task pipeline - Get global model weights (potentially with HE) - Local training - Return updated weights (model_diff) - """ - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - - # get round information - current_round = shareable.get_header(AppConstants.CURRENT_ROUND) - total_rounds = shareable.get_header(AppConstants.NUM_ROUNDS) - self.log_info(fl_ctx, f"Current/Total Round: {current_round + 1}/{total_rounds}") - self.log_info(fl_ctx, f"Client identity: {fl_ctx.get_identity_name()}") - - # update local model weights with received weights - dxo = from_shareable(shareable) - global_weights = dxo.data - - # Before loading weights, tensors might need to be reshaped to support HE for secure aggregation. - local_var_dict = self.model.state_dict() - model_keys = global_weights.keys() - for var_name in local_var_dict: - if var_name in model_keys: - weights = global_weights[var_name] - try: - # reshape global weights to compute difference later on - global_weights[var_name] = np.reshape(weights, local_var_dict[var_name].shape) - # update the local dict - local_var_dict[var_name] = torch.as_tensor(global_weights[var_name]) - except Exception as e: - raise ValueError("Convert weight from {} failed with error: {}".format(var_name, str(e))) - self.model.load_state_dict(local_var_dict) - - # local steps - epoch_len = len(self.train_loader) - self.log_info(fl_ctx, f"Local steps per epoch: {epoch_len}") - - # local train - self.local_train( - fl_ctx=fl_ctx, - train_loader=self.train_loader, - abort_signal=abort_signal, - ) - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - self.epoch_of_start_time += self.aggregation_epochs - - # compute delta model, global model has the primary key set - local_weights = self.model.state_dict() - model_diff = {} - for name in global_weights: - if name not in local_weights: - continue - model_diff[name] = np.subtract(local_weights[name].cpu().numpy(), global_weights[name], dtype=np.float32) - if np.any(np.isnan(model_diff[name])): - self.system_panic(f"{name} weights became NaN...", fl_ctx) - return make_reply(ReturnCode.EXECUTION_EXCEPTION) - - # flush the tb writer - self.writer.flush() - - # build the shareable - dxo = DXO(data_kind=DataKind.WEIGHT_DIFF, data=model_diff) - dxo.set_meta_prop(MetaKey.NUM_STEPS_CURRENT_ROUND, epoch_len) - - self.log_info(fl_ctx, "Local epochs finished. Returning shareable") - return dxo.to_shareable() - - def validate(self, shareable: Shareable, fl_ctx: FLContext, abort_signal: Signal) -> Shareable: - """Typical validation task pipeline - Get global model weights (potentially with HE) - Validation on local data - Return validation F-1 score - """ - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - - # validation on global model - model_owner = "global_model" - - # update local model weights with received weights - dxo = from_shareable(shareable) - global_weights = dxo.data - - # Before loading weights, tensors might need to be reshaped to support HE for secure aggregation. - local_var_dict = self.model.state_dict() - model_keys = global_weights.keys() - n_loaded = 0 - for var_name in local_var_dict: - if var_name in model_keys: - weights = torch.as_tensor(global_weights[var_name], device=self.device) - try: - # update the local dict - local_var_dict[var_name] = torch.as_tensor(torch.reshape(weights, local_var_dict[var_name].shape)) - n_loaded += 1 - except Exception as e: - raise ValueError("Convert weight from {} failed with error: {}".format(var_name, str(e))) - self.model.load_state_dict(local_var_dict) - if n_loaded == 0: - raise ValueError(f"No weights loaded for validation! Received weight dict is {global_weights}") - - # before_train_validate only, can extend to other validate types - validate_type = shareable.get_header(AppConstants.VALIDATE_TYPE) - if validate_type == ValidateType.BEFORE_TRAIN_VALIDATE: - # perform valid before local train - global_metric = self.local_valid( - self.valid_loader, - abort_signal, - tb_id_pre="val_global", - record_epoch=self.epoch_global, - ) - if abort_signal.triggered: - return make_reply(ReturnCode.TASK_ABORTED) - self.log_info(fl_ctx, f"val_f1_global_model ({model_owner}): {global_metric:.4f}") - # validation metrics will be averaged with weights at server end for best model record - metric_dxo = DXO( - data_kind=DataKind.METRICS, - data={MetaKey.INITIAL_METRICS: global_metric}, - meta={}, - ) - metric_dxo.set_meta_prop(MetaKey.NUM_STEPS_CURRENT_ROUND, len(self.valid_loader)) - return metric_dxo.to_shareable() - else: - return make_reply(ReturnCode.VALIDATE_TYPE_UNKNOWN) diff --git a/examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_client.json b/examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_client.json deleted file mode 100644 index 87416a6f2a..0000000000 --- a/examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_client.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "format_version": 2, - - "DATASET_ROOT": "/data/NCBI-disease", - - "executors": [ - { - "tasks": [ - "train", - "validate" - ], - "executor": { - "id": "Executor", - "path": "nvflare.app_common.executors.learner_executor.LearnerExecutor", - "args": { - "learner_id": "nlp-learner" - } - } - } - ], - - "task_result_filters": [ - ], - "task_data_filters": [ - ], - - "components": [ - { - "id": "nlp-learner", - "path": "custom.learners.nlp_learner.NLPLearner", - "args": { - "data_path": "{DATASET_ROOT}/4_split", - "model_name": "bert-base-uncased", - "learning_rate": 1e-5, - "batch_size": 16, - "num_labels": 3, - "aggregation_epochs": 1 - } - } - ] -} diff --git a/examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_server.json b/examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_server.json deleted file mode 100644 index 610699eeec..0000000000 --- a/examples/advanced/nlp-ner/jobs/bert_ncbi/app/config/config_fed_server.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "format_version": 2, - "min_clients": 4, - "num_rounds": 50, - "server": { - "heart_beat_timeout": 600 - }, - "task_data_filters": [], - "task_result_filters": [], - "components": [ - { - "id": "persistor", - "path": "nvflare.app_opt.pt.file_model_persistor.PTFileModelPersistor", - "args": { - "model": { - "path": "custom.models.nlp_models.BertModel", - "args": { - "num_labels": 3, - "model_name": "bert-base-uncased" - } - } - } - }, - { - "id": "shareable_generator", - "path": "nvflare.app_common.shareablegenerators.full_model_shareable_generator.FullModelShareableGenerator", - "args": {} - }, - { - "id": "aggregator", - "path": "nvflare.app_common.aggregators.intime_accumulate_model_aggregator.InTimeAccumulateWeightedAggregator", - "args": {} - }, - { - "id": "model_selector", - "path": "nvflare.app_common.widgets.intime_model_selector.IntimeModelSelector", - "args": { - "weigh_by_local_iter": true - } - } - ], - "workflows": [ - { - "id": "scatter_and_gather", - "path": "nvflare.app_common.workflows.scatter_and_gather.ScatterAndGather", - "args": { - "min_clients": "{min_clients}", - "num_rounds": "{num_rounds}", - "start_round": 0, - "wait_time_after_min_received": 10, - "aggregator_id": "aggregator", - "persistor_id": "persistor", - "shareable_generator_id": "shareable_generator", - "train_task_name": "train", - "train_timeout": 0 - } - } - ] -} diff --git a/examples/advanced/nlp-ner/jobs/bert_ncbi/meta.json b/examples/advanced/nlp-ner/jobs/bert_ncbi/meta.json deleted file mode 100644 index 4f02bd5b61..0000000000 --- a/examples/advanced/nlp-ner/jobs/bert_ncbi/meta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "bert_ncbi", - "resource_spec": {}, - "deploy_map": { - "app": [ - "@ALL" - ] - } -} diff --git a/examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_client.json b/examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_client.json deleted file mode 100644 index 8ffd15ec67..0000000000 --- a/examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_client.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "format_version": 2, - - "DATASET_ROOT": "/data/NCBI-disease", - - "executors": [ - { - "tasks": [ - "train", - "validate" - ], - "executor": { - "id": "Executor", - "path": "nvflare.app_common.executors.learner_executor.LearnerExecutor", - "args": { - "learner_id": "nlp-learner" - } - } - } - ], - - "task_result_filters": [ - ], - "task_data_filters": [ - ], - - "components": [ - { - "id": "nlp-learner", - "path": "custom.learners.nlp_learner.NLPLearner", - "args": { - "data_path": "{DATASET_ROOT}/2_split", - "model_name": "gpt2", - "learning_rate": 1e-5, - "batch_size": 16, - "num_labels": 3, - "aggregation_epochs": 1 - } - } - ] -} diff --git a/examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_server.json b/examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_server.json deleted file mode 100644 index 994cb35c52..0000000000 --- a/examples/advanced/nlp-ner/jobs/gpt2_ncbi/app/config/config_fed_server.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "format_version": 2, - "min_clients": 2, - "num_rounds": 50, - "server": { - "heart_beat_timeout": 600 - }, - "task_data_filters": [], - "task_result_filters": [], - "components": [ - { - "id": "persistor", - "path": "nvflare.app_opt.pt.file_model_persistor.PTFileModelPersistor", - "args": { - "model": { - "path": "custom.models.nlp_models.GPTModel", - "args": { - "num_labels": 3, - "model_name": "gpt2" - } - } - } - }, - { - "id": "shareable_generator", - "path": "nvflare.app_common.shareablegenerators.full_model_shareable_generator.FullModelShareableGenerator", - "args": {} - }, - { - "id": "aggregator", - "path": "nvflare.app_common.aggregators.intime_accumulate_model_aggregator.InTimeAccumulateWeightedAggregator", - "args": {} - }, - { - "id": "model_selector", - "path": "nvflare.app_common.widgets.intime_model_selector.IntimeModelSelector", - "args": { - "weigh_by_local_iter": true - } - } - ], - "workflows": [ - { - "id": "scatter_and_gather", - "path": "nvflare.app_common.workflows.scatter_and_gather.ScatterAndGather", - "args": { - "min_clients": "{min_clients}", - "num_rounds": "{num_rounds}", - "start_round": 0, - "wait_time_after_min_received": 10, - "aggregator_id": "aggregator", - "persistor_id": "persistor", - "shareable_generator_id": "shareable_generator", - "train_task_name": "train", - "train_timeout": 0 - } - } - ] -} diff --git a/examples/advanced/nlp-ner/jobs/gpt2_ncbi/meta.json b/examples/advanced/nlp-ner/jobs/gpt2_ncbi/meta.json deleted file mode 100644 index 771b9559f5..0000000000 --- a/examples/advanced/nlp-ner/jobs/gpt2_ncbi/meta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "gpt2_ncbi", - "resource_spec": {}, - "deploy_map": { - "app": [ - "@ALL" - ] - } -} diff --git a/examples/advanced/nlp-ner/nlp_fl_job.py b/examples/advanced/nlp-ner/nlp_fl_job.py new file mode 100644 index 0000000000..545ce63862 --- /dev/null +++ b/examples/advanced/nlp-ner/nlp_fl_job.py @@ -0,0 +1,84 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +from src.nlp_models import BertModel, GPTModel + +from nvflare.app_common.widgets.intime_model_selector import IntimeModelSelector +from nvflare.app_common.workflows.fedavg import FedAvg +from nvflare.app_opt.pt.job_config.model import PTModel +from nvflare.job_config.api import FedJob +from nvflare.job_config.script_runner import ScriptRunner + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--model_name", + type=str, + default="Bert", + help="Which model to choose, either Bert or GPT", + ) + return parser.parse_args() + + +def main(): + args = define_parser() + model_name = args.model_name + + # Create the FedJob + if model_name.lower() == "bert": + num_clients = 4 + job = FedJob(name="Bert", min_clients=num_clients) + train_model_name = "bert-base-uncased" + model = PTModel(BertModel(num_labels=3, model_name=train_model_name)) + output_path = "Bert" + elif model_name.lower() == "gpt": + num_clients = 2 + job = FedJob(name="GPT", min_clients=num_clients) + train_model_name = "gpt2" + model = PTModel(GPTModel(num_labels=3, model_name=train_model_name)) + output_path = "GPT" + else: + raise ValueError(f"Invalid model_name: {model_name}, only Bert and GPT are supported.") + + # Local training parameters + num_rounds = 50 + dataset_path = f"/tmp/nvflare/data/nlp_ner/{num_clients}_split" + train_script = "src/nlp_fl.py" + train_args = f"--dataset_path {dataset_path} --model_name {train_model_name}" + + # Define the controller workflow and send to server + controller = FedAvg( + num_clients=num_clients, + num_rounds=num_rounds, + ) + job.to_server(controller) + + # Define the initial global model and send to server + job.to_server(model) + job.to(IntimeModelSelector(key_metric="eval_acc"), "server") + + # Add executor to clients + executor = ScriptRunner(script=train_script, script_args=train_args) + job.to_clients(executor) + + # Export job config and run the job + job.export_job("/tmp/nvflare/workspace/jobs/") + job.simulator_run(f"/tmp/nvflare/workspace/works/{output_path}", n_clients=num_clients, gpu="0") + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/nlp-ner/requirements.txt b/examples/advanced/nlp-ner/requirements.txt index b90fbdbe4d..b7340693d5 100644 --- a/examples/advanced/nlp-ner/requirements.txt +++ b/examples/advanced/nlp-ner/requirements.txt @@ -1,4 +1,3 @@ -nvflare~=2.5.0rc torch torchvision tensorboard diff --git a/examples/advanced/nlp-ner/custom/utils/data_sequence.py b/examples/advanced/nlp-ner/src/data_sequence.py similarity index 100% rename from examples/advanced/nlp-ner/custom/utils/data_sequence.py rename to examples/advanced/nlp-ner/src/data_sequence.py diff --git a/examples/advanced/nlp-ner/src/nlp_fl.py b/examples/advanced/nlp-ner/src/nlp_fl.py new file mode 100644 index 0000000000..81eb856a3d --- /dev/null +++ b/examples/advanced/nlp-ner/src/nlp_fl.py @@ -0,0 +1,193 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +import pandas as pd +import torch +from data_sequence import DataSequence +from nlp_models import BertModel, GPTModel +from seqeval.metrics import classification_report +from torch.optim import AdamW +from torch.utils.data import DataLoader +from torch.utils.tensorboard import SummaryWriter + +# import nvflare client API +import nvflare.client as flare + +# (optional) We change to use GPU to speed things up. +# if you want to use CPU, change DEVICE="cpu" +DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + +os.environ["TOKENIZERS_PARALLELISM"] = "false" + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dataset_path", type=str, nargs="?") + parser.add_argument("--batch_size", type=int, default=16, nargs="?") + parser.add_argument("--learning_rate", type=float, default=1e-5, nargs="?") + parser.add_argument("--num_workers", type=int, default=1, nargs="?") + parser.add_argument("--local_epochs", type=int, default=1, nargs="?") + parser.add_argument("--model_name", type=str, default="bert-base-uncased", nargs="?") + parser.add_argument("--num_labels", type=int, default=3, nargs="?") + parser.add_argument("--ignore_token", type=int, default=-100, nargs="?") + return parser.parse_args() + + +def get_labels(df_train, num_labels): + labels = [] + for x in df_train["labels"].values: + labels.extend(x.split(" ")) + unique_labels = set(labels) + # check label length + if len(unique_labels) != num_labels: + raise ValueError(f"num_labels {num_labels} need to align with dataset, actual data {len(unique_labels)}!") + labels_to_ids = {k: v for v, k in enumerate(sorted(unique_labels))} + ids_to_labels = {v: k for v, k in enumerate(sorted(unique_labels))} + return labels_to_ids, ids_to_labels + + +def main(): + # define local parameters + args = define_parser() + dataset_path = args.dataset_path + batch_size = args.batch_size + lr = args.learning_rate + num_workers = args.num_workers + local_epochs = args.local_epochs + model_name = args.model_name + num_labels = args.num_labels + ignore_token = args.ignore_token + + # Initializes NVFlare client API and get site_name from flare + flare.init() + site_name = flare.get_site_name() + + # load data + df_train = pd.read_csv(os.path.join(dataset_path, site_name + "_train.csv")) + df_valid = pd.read_csv(os.path.join(dataset_path, site_name + "_val.csv")) + labels_to_ids, ids_to_labels = get_labels(df_train, num_labels) + + # training components + writer = SummaryWriter("./") + if model_name == "bert-base-uncased": + model = BertModel(model_name=model_name, num_labels=num_labels) + elif model_name == "gpt2": + model = GPTModel(model_name=model_name, num_labels=num_labels) + else: + raise ValueError(f"Model {model_name} not supported!") + tokenizer = model.tokenizer + train_dataset = DataSequence(df_train, labels_to_ids, tokenizer=tokenizer, ignore_token=ignore_token) + valid_dataset = DataSequence(df_valid, labels_to_ids, tokenizer=tokenizer, ignore_token=ignore_token) + train_loader = DataLoader(train_dataset, num_workers=num_workers, batch_size=batch_size, shuffle=True) + valid_loader = DataLoader(valid_dataset, num_workers=num_workers, batch_size=batch_size, shuffle=False) + print(f"Training Size: {len(train_loader.dataset)}, Validation Size: {len(valid_loader.dataset)}") + optimizer = AdamW(model.parameters(), lr=lr) + local_model_file = "local_model.pt" + best_global_model_file = "best_global_model_file.pt" + best_acc = 0.0 + + # Train federated rounds + # start with global model at the beginning of each round + while flare.is_running(): + # receive FLModel from NVFlare + global_model = flare.receive() + curr_round = global_model.current_round + epoch_global = local_epochs * curr_round + print(f"({site_name}) current_round={curr_round + 1}/{global_model.total_rounds}") + + # load global model from NVFlare + model.load_state_dict(global_model.params) + model.to(DEVICE) + + # wraps evaluation logic into a method to re-use for + # evaluation on both trained and received model + def evaluate(tb_id): + model.eval() + with torch.no_grad(): + total_acc_val, total_loss_val, val_total = 0, 0, 0 + val_y_pred, val_y_true = [], [] + for val_data, val_label in valid_loader: + val_label = val_label.to(DEVICE) + val_total += val_label.shape[0] + mask = val_data["attention_mask"].squeeze(1).to(DEVICE) + input_id = val_data["input_ids"].squeeze(1).to(DEVICE) + # Inference + loss, logits = model(input_id, mask, val_label) + # Add items for metric computation + for i in range(logits.shape[0]): + # remove pad tokens + logits_clean = logits[i][val_label[i] != ignore_token] + label_clean = val_label[i][val_label[i] != ignore_token] + # calcluate acc and store prediciton and true labels + predictions = logits_clean.argmax(dim=1) + acc = (predictions == label_clean).float().mean() + total_acc_val += acc.item() + val_y_pred.append([ids_to_labels[x.item()] for x in predictions]) + val_y_true.append([ids_to_labels[x.item()] for x in label_clean]) + # compute metric + metric_dict = classification_report( + y_true=val_y_true, y_pred=val_y_pred, output_dict=True, zero_division=0 + ) + # tensorboard record id prefix, add to record if provided + writer.add_scalar(tb_id + "_precision", metric_dict["macro avg"]["precision"], epoch_global) + writer.add_scalar(tb_id + "_recall", metric_dict["macro avg"]["recall"], epoch_global) + writer.add_scalar(tb_id + "_f1-score", metric_dict["macro avg"]["f1-score"], epoch_global) + return metric_dict["macro avg"]["f1-score"] + + # evaluate on received global model + val_acc = evaluate("global_val_acc") + if val_acc > best_acc: + best_acc = val_acc + torch.save(model.state_dict(), best_global_model_file) + + # train local model + epoch_len = len(train_loader) + for epoch in range(local_epochs): + model.train() + print(f"Local epoch {site_name}: {epoch + 1}/{local_epochs} (lr={lr})") + + for i, batch_data in enumerate(train_loader): + mask = batch_data[0]["attention_mask"].squeeze(1).to(DEVICE) + input_id = batch_data[0]["input_ids"].squeeze(1).to(DEVICE) + train_label = batch_data[1].to(DEVICE) + # model output + loss, logits = model(input_id, mask, train_label) + # optimize + optimizer.zero_grad() + loss.backward() + optimizer.step() + # record loss + current_step = epoch_len * epoch_global + i + writer.add_scalar("train_loss", loss.item(), current_step) + + # evaluation on local trained model + val_acc_local = evaluate("local_val_acc") + torch.save(model.state_dict(), local_model_file) + + # construct trained FL model + output_model = flare.FLModel( + params=model.cpu().state_dict(), + metrics={"eval_acc": val_acc_local}, + meta={"NUM_STEPS_CURRENT_ROUND": epoch_len * local_epochs}, + ) + + # send model back to NVFlare + flare.send(output_model) + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/nlp-ner/custom/models/nlp_models.py b/examples/advanced/nlp-ner/src/nlp_models.py similarity index 100% rename from examples/advanced/nlp-ner/custom/models/nlp_models.py rename to examples/advanced/nlp-ner/src/nlp_models.py diff --git a/examples/advanced/nlp-ner/test_global_model.sh b/examples/advanced/nlp-ner/test_global_model.sh index a472867bc9..4fc27a871b 100755 --- a/examples/advanced/nlp-ner/test_global_model.sh +++ b/examples/advanced/nlp-ner/test_global_model.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash DATASET_ROOT=${1} echo "BERT" -python3 ./utils/ner_model_test.py --model_path "/tmp/nvflare/workspaces/bert_ncbi/simulate_job/app_server/" --model_name "bert-base-uncased" --data_path ${DATASET_ROOT} --num_labels 3 +python3 ./utils/ner_model_test.py --model_path "/tmp/nvflare/workspace/works/Bert/server/simulate_job/app_server/" --model_name "bert-base-uncased" --data_path ${DATASET_ROOT} --num_labels 3 echo "GPT-2" -python3 ./utils/ner_model_test.py --model_path "/tmp/nvflare/workspaces/gpt2_ncbi/simulate_job/app_server/" --model_name "gpt2" --data_path ${DATASET_ROOT} --num_labels 3 +python3 ./utils/ner_model_test.py --model_path "/tmp/nvflare/workspace/works/GPT/server/simulate_job/app_server/" --model_name "gpt2" --data_path ${DATASET_ROOT} --num_labels 3 diff --git a/examples/advanced/nlp-ner/utils/ner_model_test.py b/examples/advanced/nlp-ner/utils/ner_model_test.py index bb975e08dd..3bed4fdf20 100644 --- a/examples/advanced/nlp-ner/utils/ner_model_test.py +++ b/examples/advanced/nlp-ner/utils/ner_model_test.py @@ -17,9 +17,9 @@ import pandas as pd import torch -from custom.models.nlp_models import BertModel, GPTModel -from custom.utils.data_sequence import DataSequence from seqeval.metrics import classification_report +from src.data_sequence import DataSequence +from src.nlp_models import BertModel, GPTModel from torch.utils.data import DataLoader os.environ["TOKENIZERS_PARALLELISM"] = "False" From 9bb23a31d9d8ef18bca782c8f3522a5ba598e329 Mon Sep 17 00:00:00 2001 From: nvkevlu <55759229+nvkevlu@users.noreply.github.com> Date: Fri, 7 Feb 2025 07:14:11 -0800 Subject: [PATCH 8/9] Add lightning to FL content for DLI (#3208) Add PyTorch lightning to FL content for DLI. ### Description Add PyTorch lightning to FL content for DLI. ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- .../code/lightning_fl_job.py | 44 ++ .../code/log_config.json | 87 ++++ .../code/requirements.txt | 5 + .../code/src/cifar10_lightning_fl.py | 105 +++++ .../code/src/lit_net.py | 93 ++++ .../convert_torch_lightning_to_dl.ipynb | 0 .../convert_torch_lightning_to_fl.ipynb | 446 ++++++++++++++++++ 7 files changed, 780 insertions(+) create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/lightning_fl_job.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/log_config.json create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/requirements.txt create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/cifar10_lightning_fl.py create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/lit_net.py delete mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb create mode 100644 examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_fl.ipynb diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/lightning_fl_job.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/lightning_fl_job.py new file mode 100644 index 0000000000..b51724a962 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/lightning_fl_job.py @@ -0,0 +1,44 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from src.lit_net import LitNet + +from nvflare.app_common.workflows.fedavg import FedAvg +from nvflare.app_opt.pt.job_config.base_fed_job import BaseFedJob +from nvflare.job_config.script_runner import ScriptRunner + +if __name__ == "__main__": + n_clients = 5 + num_rounds = 2 + + job = BaseFedJob( + name="cifar10_lightning_fedavg", + initial_model=LitNet(), + ) + + controller = FedAvg( + num_clients=n_clients, + num_rounds=num_rounds, + ) + job.to(controller, "server") + + # Add clients + for i in range(n_clients): + runner = ScriptRunner( + script="src/cifar10_lightning_fl.py", script_args="" # f"--batch_size 32 --data_path /tmp/data/site-{i}" + ) + job.to(runner, f"site-{i + 1}") + + job.export_job("/tmp/nvflare/jobs/job_config") + job.simulator_run("/tmp/nvflare/jobs/workdir", gpu="0", log_config="./log_config.json") diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/log_config.json b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/log_config.json new file mode 100644 index 0000000000..e5732b4950 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/log_config.json @@ -0,0 +1,87 @@ +{ + "version": 1, + "disable_existing_loggers": false, + "formatters": { + "baseFormatter": { + "()": "nvflare.fuel.utils.log_utils.BaseFormatter", + "fmt": "%(asctime)s - %(name)s - %(levelname)s - %(fl_ctx)s - %(message)s" + }, + "colorFormatter": { + "()": "nvflare.fuel.utils.log_utils.ColorFormatter", + "fmt": "%(asctime)s - %(levelname)s - %(message)s", + "datefmt": "%Y-%m-%d %H:%M:%S" + }, + "jsonFormatter": { + "()": "nvflare.fuel.utils.log_utils.JsonFormatter", + "fmt": "%(asctime)s - %(identity)s - %(name)s - %(fullName)s - %(levelname)s - %(fl_ctx)s - %(message)s" + } + }, + "filters": { + "FLFilter": { + "()": "nvflare.fuel.utils.log_utils.LoggerNameFilter", + "logger_names": ["custom", "nvflare.app_common", "nvflare.app_opt"] + } + }, + "handlers": { + "consoleHandler": { + "class": "logging.StreamHandler", + "level": "INFO", + "formatter": "colorFormatter", + "filters": ["FLFilter"], + "stream": "ext://sys.stdout" + }, + "logFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "baseFormatter", + "filename": "log.txt", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10 + }, + "errorFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "ERROR", + "formatter": "baseFormatter", + "filename": "log_error.txt", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10 + }, + "jsonFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "jsonFormatter", + "filename": "log.json", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10 + }, + "FLFileHandler": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "baseFormatter", + "filters": ["FLFilter"], + "filename": "log_fl.txt", + "mode": "a", + "maxBytes": 20971520, + "backupCount": 10, + "delay": true + } + }, + "loggers": { + "root": { + "level": "INFO", + "handlers": ["consoleHandler", "logFileHandler", "errorFileHandler", "jsonFileHandler", "FLFileHandler"] + } + } +} + + + + + + + + + diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/requirements.txt b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/requirements.txt new file mode 100644 index 0000000000..5db2fd4d24 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/requirements.txt @@ -0,0 +1,5 @@ +nvflare~=2.5.0rc +torch +torchvision +pytorch_lightning +tensorboard \ No newline at end of file diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/cifar10_lightning_fl.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/cifar10_lightning_fl.py new file mode 100644 index 0000000000..18861f604f --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/cifar10_lightning_fl.py @@ -0,0 +1,105 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch +import torchvision +import torchvision.transforms as transforms +from lit_net import LitNet +from pytorch_lightning import LightningDataModule, Trainer, seed_everything +from torch.utils.data import DataLoader, random_split + +# (1) import nvflare lightning client API +import nvflare.client.lightning as flare + +seed_everything(7) + + +DATASET_PATH = "/tmp/nvflare/data" +BATCH_SIZE = 4 + +transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) + + +class CIFAR10DataModule(LightningDataModule): + def __init__(self, data_dir: str = DATASET_PATH, batch_size: int = BATCH_SIZE): + super().__init__() + self.data_dir = data_dir + self.batch_size = batch_size + + def prepare_data(self): + torchvision.datasets.CIFAR10(root=self.data_dir, train=True, download=True, transform=transform) + torchvision.datasets.CIFAR10(root=self.data_dir, train=False, download=True, transform=transform) + + def setup(self, stage: str): + # Assign train/val datasets for use in dataloaders + if stage == "fit" or stage == "validate": + cifar_full = torchvision.datasets.CIFAR10( + root=self.data_dir, train=True, download=False, transform=transform + ) + self.cifar_train, self.cifar_val = random_split(cifar_full, [0.8, 0.2]) + + # Assign test dataset for use in dataloader(s) + if stage == "test" or stage == "predict": + self.cifar_test = torchvision.datasets.CIFAR10( + root=self.data_dir, train=False, download=False, transform=transform + ) + + def train_dataloader(self): + return DataLoader(self.cifar_train, batch_size=self.batch_size) + + def val_dataloader(self): + return DataLoader(self.cifar_val, batch_size=self.batch_size) + + def test_dataloader(self): + return DataLoader(self.cifar_test, batch_size=self.batch_size) + + def predict_dataloader(self): + return DataLoader(self.cifar_test, batch_size=self.batch_size) + + +def main(): + model = LitNet() + cifar10_dm = CIFAR10DataModule() + trainer = Trainer(max_epochs=1, devices=1, accelerator="gpu" if torch.cuda.is_available() else "cpu") + + # (2) patch the lightning trainer + flare.patch(trainer) + + while flare.is_running(): + # (3) receives FLModel from NVFlare + # Note that we don't need to pass this input_model to trainer + # because after flare.patch the trainer.fit/validate will get the + # global model internally + input_model = flare.receive() + print(f"\n[Current Round={input_model.current_round}, Site = {flare.get_site_name()}]\n") + + # (4) evaluate the current global model to allow server-side model selection + print("--- validate global model ---") + trainer.validate(model, datamodule=cifar10_dm) + + # perform local training starting with the received global model + print("--- train new model ---") + trainer.fit(model, datamodule=cifar10_dm) + + # test local model + print("--- test new model ---") + trainer.test(ckpt_path="best", datamodule=cifar10_dm) + + # get predictions + print("--- prediction with new best model ---") + trainer.predict(ckpt_path="best", datamodule=cifar10_dm) + + +if __name__ == "__main__": + main() diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/lit_net.py b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/lit_net.py new file mode 100644 index 0000000000..d70b85ca5a --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/code/src/lit_net.py @@ -0,0 +1,93 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torch.optim as optim +from pytorch_lightning import LightningModule +from torchmetrics import Accuracy + +NUM_CLASSES = 10 +criterion = nn.CrossEntropyLoss() + + +class Net(nn.Module): + def __init__(self): + super().__init__() + self.conv1 = nn.Conv2d(3, 6, 5) + self.pool = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(6, 16, 5) + self.fc1 = nn.Linear(16 * 5 * 5, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x): + x = self.pool(F.relu(self.conv1(x))) + x = self.pool(F.relu(self.conv2(x))) + x = torch.flatten(x, 1) # flatten all dimensions except batch + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = self.fc3(x) + return x + + +class LitNet(LightningModule): + def __init__(self): + super().__init__() + self.save_hyperparameters() + self.model = Net() + self.train_acc = Accuracy(task="multiclass", num_classes=NUM_CLASSES) + self.valid_acc = Accuracy(task="multiclass", num_classes=NUM_CLASSES) + # (optional) pass additional information via self.__fl_meta__ + self.__fl_meta__ = {} + + def forward(self, x): + out = self.model(x) + return out + + def training_step(self, batch, batch_idx): + x, labels = batch + outputs = self(x) + loss = criterion(outputs, labels) + self.train_acc(outputs, labels) + self.log("train_loss", loss) + self.log("train_acc", self.train_acc, on_step=True, on_epoch=False) + return loss + + def evaluate(self, batch, stage=None): + x, labels = batch + outputs = self(x) + loss = criterion(outputs, labels) + self.valid_acc(outputs, labels) + + if stage: + self.log(f"{stage}_loss", loss) + self.log(f"{stage}_acc", self.valid_acc, on_step=True, on_epoch=True) + return outputs + + def validation_step(self, batch, batch_idx): + self.evaluate(batch, "val") + + def test_step(self, batch, batch_idx): + self.evaluate(batch, "test") + + def predict_step(self, batch: Any, batch_idx: int, dataloader_idx: int = 0) -> Any: + return self.evaluate(batch) + + def configure_optimizers(self): + optimizer = optim.SGD(self.parameters(), lr=0.001, momentum=0.9) + return {"optimizer": optimizer} diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_dl.ipynb deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_fl.ipynb b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_fl.ipynb new file mode 100644 index 0000000000..0693c707c7 --- /dev/null +++ b/examples/tutorials/self-paced-training/part-1_federated_learning_introduction/chapter-2_develop_federated_learning_applications/02.2_convert_torch_lightning_to_federated_learning/convert_torch_lightning_to_fl.ipynb @@ -0,0 +1,446 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7a5c3d67-a6ea-4f59-84d2-effc3ef016e1", + "metadata": {}, + "source": [ + "# Converting PyTorch Lightning to FL\n", + "\n", + "In this notebook, we use FedAvg and CIFAR10 PyTorch Lightning for client training code to create and run a federated learning job with NVFlare." + ] + }, + { + "cell_type": "markdown", + "id": "fcf2b4a8-ed42-421d-8898-c0c93f9d8a09", + "metadata": {}, + "source": [ + "## Basic Concepts\n", + "At the heart of NVFlare lies the concept of collaboration through\n", + "\"tasks.\" An FL controller assigns tasks (e.g., training on local data) to one or more FL clients, processes returned\n", + "results (e.g., model weight updates), and may assign additional\n", + "tasks based on these results and other factors (e.g., a pre-configured\n", + "number of training rounds). The clients run executors which can listen for tasks and perform the necessary computations locally, such as model training. This task-based interaction repeats\n", + "until the experiment’s objectives are met. " + ] + }, + { + "cell_type": "markdown", + "id": "b68cb248-dc6a-48d1-880d-33c4324d9723", + "metadata": {}, + "source": [ + "## Federated Averaging with NVFlare\n", + "Given the flexible controller and executor concepts, it is easy to implement different computing & communication patterns with NVFlare, such as [FedAvg](https://proceedings.mlr.press/v54/mcmahan17a?ref=https://githubhelp.com) and [cyclic weight transfer](https://academic.oup.com/jamia/article/25/8/945/4956468). \n", + "\n", + "The controller's `run()` routine is responsible for assigning tasks and processing task results from the Executors. " + ] + }, + { + "cell_type": "markdown", + "id": "b2f84fb1-9dd3-4c72-a727-c4614260f02f", + "metadata": {}, + "source": [ + "### Server Code\n", + "First, we provide a simple implementation of the [FedAvg](https://proceedings.mlr.press/v54/mcmahan17a?ref=https://githubhelp.com) algorithm with NVFlare. \n", + "The `run()` routine implements the main algorithmic logic. \n", + "Subroutines, like `sample_clients()` and `scatter_and_gather_model()` utilize the communicator object, native to each Controller to get the list of available clients,\n", + "distribute the current global model to the clients, and collect their results.\n", + "\n", + "The FedAvg controller implements these main steps:\n", + "1. FL server initializes an initial model using `self.load_model()`.\n", + "2. For each round (global iteration):\n", + " - FL server samples available clients using `self.sample_clients()`.\n", + " - FL server sends the global model to clients and waits for their updates using `self.send_model_and_wait()`.\n", + " - FL server aggregates all the `results` and produces a new global model using `self.update_model()`." + ] + }, + { + "cell_type": "markdown", + "id": "d62a13d5-1130-44e6-8818-70e30de401e6", + "metadata": {}, + "source": [ + "```python\n", + "class FedAvg(BaseFedAvg):\n", + " def run(self) -> None:\n", + " self.info(\"Start FedAvg.\")\n", + "\n", + " model = self.load_model()\n", + " model.start_round = self.start_round\n", + " model.total_rounds = self.num_rounds\n", + "\n", + " for self.current_round in range(self.start_round, self.start_round + self.num_rounds):\n", + " self.info(f\"Round {self.current_round} started.\")\n", + " model.current_round = self.current_round\n", + "\n", + " clients = self.sample_clients(self.num_clients)\n", + "\n", + " results = self.send_model_and_wait(targets=clients, data=model)\n", + "\n", + " aggregate_results = self.aggregate(results)\n", + "\n", + " model = self.update_model(model, aggregate_results)\n", + "\n", + " self.save_model(model)\n", + "\n", + " self.info(\"Finished FedAvg.\")\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "d24b6476-089a-4e9d-825b-07107bd5d84a", + "metadata": {}, + "source": [ + "### Client Code \n", + "Given a CIFAR10 [PyTorch Lightning](https://lightning.ai/) code example with the network wrapped into a LightningModule [LitNet](code/src/lit_net.py) class, we wish to adapt this centralized training code to something that can run in a federated setting." + ] + }, + { + "cell_type": "markdown", + "id": "1c551053-5460-4d83-8578-796074170342", + "metadata": {}, + "source": [ + "On the client side, the training workflow is as follows:\n", + "1. Receive the model from the FL server.\n", + "2. Perform local training on the received global model\n", + "and/or evaluate the received global model for model\n", + "selection.\n", + "3. Send the new model back to the FL server." + ] + }, + { + "cell_type": "markdown", + "id": "c02bfc2a-783c-494f-9427-c38f40a2e870", + "metadata": {}, + "source": [ + "Using NVFlare's Client Lightning API, we can easily adapt machine learning code that was written for centralized training and apply it in a federated scenario.\n", + "For general use cases, we can use the Client Lightning API patch function:\n", + "- `flare.patch(trainer)`: Patch the lightning trainer. After flare.patch, functions such as `trainer.fit()` and `trainer.validate()` will get the global model internally and automatically send the result model to the FL server." + ] + }, + { + "cell_type": "markdown", + "id": "9115ee07-d848-4a7c-99ad-64e20ab7093c", + "metadata": {}, + "source": [ + "With this method, the developers can use the Client API\n", + "to change their centralized training code to an FL scenario with\n", + "these simple code changes shown below.\n", + "```python\n", + " # (1) import nvflare lightning client API\n", + " import nvflare.client.lightning as flare\n", + "\n", + " # (2) patch the lightning trainer\n", + " flare.patch(trainer)\n", + "\n", + " while flare.is_running():\n", + " \n", + " # Note that we can optionally receive the FLModel from NVFLARE.\n", + " # We don't need to pass this input_model to trainer because after flare.patch \n", + " # the trainer.fit/validate will get the global model internally\n", + " input_model = flare.receive()\n", + "\n", + " trainer.validate(...)\n", + "\n", + " trainer.fit(...)\n", + "\n", + " trainer.test(...)\n", + "\n", + " trainer.predict(...)\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "67432f44-4144-4347-8d74-e7f57e065a14", + "metadata": {}, + "source": [ + "The full client training script is saved in a separate file, e.g. [code/src/cifar10_lightning_fl.py](code/src/cifar10_lightning_fl.py) doing CNN training on the [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) dataset." + ] + }, + { + "cell_type": "markdown", + "id": "5da34414-bac4-4352-8077-ab7ade998eec", + "metadata": {}, + "source": [ + "## Run an NVFlare Job\n", + "Now that we have defined the FedAvg controller to run our federated compute workflow on the FL server, and our client training script to receive the global models, run local training, and send the results back to the FL server, we can put everything together using NVFlare's Job API." + ] + }, + { + "cell_type": "markdown", + "id": "17b69013", + "metadata": {}, + "source": [ + "## Install requirements\n", + "Make sure to install the required packages:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d14e8f49", + "metadata": {}, + "outputs": [], + "source": [ + "% pip install -r code/requirements.txt" + ] + }, + { + "cell_type": "markdown", + "id": "0cedaf75-3a4a-4843-8017-7716b53149a2", + "metadata": {}, + "source": [ + "#### 1. Define the initial model\n", + "First, we define the global model used to initialize the model on the FL server. See [code/src/lit_net.py](code/src/lit_net.py)." + ] + }, + { + "cell_type": "markdown", + "id": "93889e62-b725-427c-8839-2771ca81d24c", + "metadata": {}, + "source": [ + "```python\n", + "from typing import Any\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import torch.optim as optim\n", + "from pytorch_lightning import LightningModule\n", + "from torchmetrics import Accuracy\n", + "\n", + "NUM_CLASSES = 10\n", + "criterion = nn.CrossEntropyLoss()\n", + "\n", + "class Net(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.conv1 = nn.Conv2d(3, 6, 5)\n", + " self.pool = nn.MaxPool2d(2, 2)\n", + " self.conv2 = nn.Conv2d(6, 16, 5)\n", + " self.fc1 = nn.Linear(16 * 5 * 5, 120)\n", + " self.fc2 = nn.Linear(120, 84)\n", + " self.fc3 = nn.Linear(84, 10)\n", + "\n", + " def forward(self, x):\n", + " x = self.pool(F.relu(self.conv1(x)))\n", + " x = self.pool(F.relu(self.conv2(x)))\n", + " x = torch.flatten(x, 1) # flatten all dimensions except batch\n", + " x = F.relu(self.fc1(x))\n", + " x = F.relu(self.fc2(x))\n", + " x = self.fc3(x)\n", + " return x\n", + "\n", + "\n", + "class LitNet(LightningModule):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.save_hyperparameters()\n", + " self.model = Net()\n", + " self.train_acc = Accuracy(task=\"multiclass\", num_classes=NUM_CLASSES)\n", + " self.valid_acc = Accuracy(task=\"multiclass\", num_classes=NUM_CLASSES)\n", + " # (optional) pass additional information via self.__fl_meta__\n", + " self.__fl_meta__ = {}\n", + "\n", + " def forward(self, x):\n", + " out = self.model(x)\n", + " return out\n", + "\n", + " def training_step(self, batch, batch_idx):\n", + " x, labels = batch\n", + " outputs = self(x)\n", + " loss = criterion(outputs, labels)\n", + " self.train_acc(outputs, labels)\n", + " self.log(\"train_loss\", loss)\n", + " self.log(\"train_acc\", self.train_acc, on_step=True, on_epoch=False)\n", + " return loss\n", + "\n", + " def evaluate(self, batch, stage=None):\n", + " x, labels = batch\n", + " outputs = self(x)\n", + " loss = criterion(outputs, labels)\n", + " self.valid_acc(outputs, labels)\n", + "\n", + " if stage:\n", + " self.log(f\"{stage}_loss\", loss)\n", + " self.log(f\"{stage}_acc\", self.valid_acc, on_step=True, on_epoch=True)\n", + " return outputs\n", + "\n", + " def validation_step(self, batch, batch_idx):\n", + " self.evaluate(batch, \"val\")\n", + "\n", + " def test_step(self, batch, batch_idx):\n", + " self.evaluate(batch, \"test\")\n", + "\n", + " def predict_step(self, batch: Any, batch_idx: int, dataloader_idx: int = 0) -> Any:\n", + " return self.evaluate(batch)\n", + "\n", + " def configure_optimizers(self):\n", + " optimizer = optim.SGD(self.parameters(), lr=0.001, momentum=0.9)\n", + " return {\"optimizer\": optimizer}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "1b70da5d-ba8b-4e65-b47f-44bb9bddae4d", + "metadata": {}, + "source": [ + "#### 2. Define a FedJob\n", + "The `FedJob` is used to define how controllers and executors are placed within a federated job using the `to(object, target)` routine.\n", + "\n", + "Here we use a PyTorch `BaseFedJob`, where we can define the job name and the initial global model.\n", + "The `BaseFedJob` automatically configures components for model persistence, model selection, and TensorBoard streaming for convenience." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aaa2b6f4", + "metadata": {}, + "outputs": [], + "source": [ + "from code.src.lit_net import LitNet\n", + "\n", + "from nvflare.app_common.workflows.fedavg import FedAvg\n", + "from nvflare.app_opt.pt.job_config.base_fed_job import BaseFedJob\n", + "from nvflare.job_config.script_runner import ScriptRunner\n", + "\n", + "job = BaseFedJob(\n", + " name=\"cifar10_lightning_fedavg\",\n", + " initial_model=LitNet(),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "9361d9f8-54f3-4363-b3ba-706a7ae3a8e9", + "metadata": {}, + "source": [ + "#### 3. Define the Controller Workflow\n", + "Define the controller workflow and send to server." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6962e6cc-995e-4356-8156-3ceba2c7a249", + "metadata": {}, + "outputs": [], + "source": [ + "n_clients = 2\n", + "\n", + "controller = FedAvg(\n", + " num_clients=n_clients,\n", + " num_rounds=2,\n", + ")\n", + "job.to(controller, \"server\")" + ] + }, + { + "cell_type": "markdown", + "id": "77f5bc7f-4fb4-46e9-8f02-5e7245d95070", + "metadata": {}, + "source": [ + "That completes the components that need to be defined on the server." + ] + }, + { + "cell_type": "markdown", + "id": "548966c2-90bf-47ad-91d2-5c6c22c3c4f0", + "metadata": {}, + "source": [ + "#### 4. Add clients\n", + "Next, we can use the `ScriptRunner` and send it to each of the clients to run our training script.\n", + "\n", + "Note that our script could have additional input arguments, such as batch size or data path, but we don't use them here for simplicity." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad5d36fe-9ae5-43c3-80bc-2cdc66bf7a7e", + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(n_clients):\n", + " runner = ScriptRunner(\n", + " script=\"src/cifar10_lightning_fl.py\", script_args=\"\" # f\"--batch_size 32 --data_path /tmp/data/site-{i}\"\n", + " )\n", + " job.to(runner, f\"site-{i+1}\")" + ] + }, + { + "cell_type": "markdown", + "id": "113fd6af-85be-4f75-8a8e-4666771252b3", + "metadata": {}, + "source": [ + "That's it!\n", + "\n", + "#### 5. Optionally export the job\n", + "Now, we could export the job and submit it to a real NVFlare deployment using the [Admin client](https://nvflare.readthedocs.io/en/main/real_world_fl/operation.html) or [FLARE API](https://nvflare.readthedocs.io/en/main/real_world_fl/flare_api.html). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99a270bf-c906-425b-b999-2306cb76eb62", + "metadata": {}, + "outputs": [], + "source": [ + "job.export_job(\"/tmp/nvflare/jobs/job_config\")" + ] + }, + { + "cell_type": "markdown", + "id": "9ac3f0a8-06bb-4bea-89d3-4a5fc5b76c63", + "metadata": {}, + "source": [ + "#### 6. Run FL Simulation\n", + "Finally, we can run our FedJob in simulation using NVFlare's [simulator](https://nvflare.readthedocs.io/en/main/user_guide/nvflare_cli/fl_simulator.html) under the hood. We can also specify which GPU should be used to run this client, which is helpful for simulated environments. The results will be saved in the specified `workdir`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13068ab7-35cf-49e7-91ed-10993049ef0d", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "job.simulator_run(\"/tmp/nvflare/jobs/workdir\", gpu=\"0\")" + ] + }, + { + "cell_type": "markdown", + "id": "fb2e1266", + "metadata": {}, + "source": [ + "You can see the full code for this job in [lightning_fl_job](code/lightning_fl_job.py)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From ea496324babc45d2b5751021559678feec86fe2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yuan-Ting=20Hsieh=20=28=E8=AC=9D=E6=B2=85=E5=BB=B7=29?= Date: Fri, 7 Feb 2025 11:52:27 -0800 Subject: [PATCH 9/9] Add shutdown method to Flare Client API (#3152) ### Issue - Flare API does not close the Flare agent and CellPipe resources - LauncherExecutor does not shutdown its threadpoolexecutor - SubprocessLauncher have a racing issue when multiple threads try to stop/start the process and monitor the process ### Description - Adds the shutdown functionality to the Flare API. - In addition, introduces the context concept so prepare for future if multiple connections need to be made. - Existing API usage is still compatible. - Makes corresponding changes to tracking and lightning API - Adds shutdown of threadpoolexecutor in LauncherExecutor - Adds a lock in SubprocessLauncher New API Usage: ``` import nvflare.client as flare from nvflare.client import FLModel with flare.init() as ctx: input_model = flare.receive(ctx=ctx) # do some training flare.send(FLModel(xxx), ctx=ctx) ``` ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Quick tests passed locally by running `./runtest.sh`. - [ ] In-line docstrings updated. - [ ] Documentation updated. --- .../app_common/executors/launcher_executor.py | 9 +- .../launchers/subprocess_launcher.py | 87 ++++++----- nvflare/app_opt/lightning/api.py | 3 + nvflare/client/__init__.py | 1 + nvflare/client/api.py | 145 ++++++++++-------- nvflare/client/api_context.py | 63 ++++++++ nvflare/client/api_spec.py | 13 ++ nvflare/client/ex_process/api.py | 23 +-- nvflare/client/in_process/api.py | 5 + nvflare/client/lightning/__init__.py | 1 + nvflare/client/task_registry.py | 4 - nvflare/client/tracking.py | 44 ++++-- nvflare/fuel/utils/pipe/pipe_handler.py | 23 ++- nvflare/job_config/script_runner.py | 1 + .../launchers/subprocess_launcher_test.py | 2 +- 15 files changed, 293 insertions(+), 131 deletions(-) create mode 100644 nvflare/client/api_context.py diff --git a/nvflare/app_common/executors/launcher_executor.py b/nvflare/app_common/executors/launcher_executor.py index b7540021f3..441153e5d5 100644 --- a/nvflare/app_common/executors/launcher_executor.py +++ b/nvflare/app_common/executors/launcher_executor.py @@ -129,6 +129,7 @@ def initialize(self, fl_ctx: FLContext) -> None: def finalize(self, fl_ctx: FLContext) -> None: self._execute_launcher_method_in_thread_executor(method_name="finalize", fl_ctx=fl_ctx) + self._thread_pool_executor.shutdown() def handle_event(self, event_type: str, fl_ctx: FLContext) -> None: if event_type == EventType.START_RUN: @@ -295,7 +296,7 @@ def _wait_external_setup(self, task_name: str, fl_ctx: FLContext, abort_signal: run_status = self.launcher.check_run_status(task_name, fl_ctx) if run_status != LauncherRunStatus.RUNNING: - self.log_info( + self.log_error( fl_ctx, f"External process has not called flare.init and run status becomes {run_status}." ) return False @@ -316,7 +317,7 @@ def _finalize_external_execution( fl_ctx=fl_ctx, ) if not self._received_result.is_set() and check_run_status != LauncherRunStatus.COMPLETE_SUCCESS: - self.log_warning(fl_ctx, f"Try to stop task ({task_name}) when launcher run status is {check_run_status}") + self.log_debug(fl_ctx, f"Try to stop task ({task_name}) when launcher run status is {check_run_status}") self.log_info(fl_ctx, f"Calling stop task ({task_name}).") stop_task_success = self._execute_launcher_method_in_thread_executor( @@ -407,11 +408,11 @@ def _monitor_launcher(self, fl_ctx: FLContext): self._launcher_finish = True self.log_info( fl_ctx, - f"launcher completed {task_name} with status {run_status} at time {self._launcher_finish_time}", + f"launcher completed with status {run_status} at time {self._launcher_finish_time}", ) if run_status == LauncherRunStatus.COMPLETE_FAILED: - msg = f"Launcher failed with at time {self._launcher_finish_time} " + msg = f"Launcher failed at time {self._launcher_finish_time} " self._abort_signal.trigger(msg) break diff --git a/nvflare/app_common/launchers/subprocess_launcher.py b/nvflare/app_common/launchers/subprocess_launcher.py index e1d36afaf4..0944dbff39 100644 --- a/nvflare/app_common/launchers/subprocess_launcher.py +++ b/nvflare/app_common/launchers/subprocess_launcher.py @@ -15,7 +15,7 @@ import os import shlex import subprocess -from threading import Thread +from threading import Lock, Thread from typing import Optional from nvflare.apis.fl_constant import FLContextKey @@ -84,12 +84,21 @@ def log_subprocess_output(process, logger): class SubprocessLauncher(Launcher): - def __init__(self, script: str, launch_once: bool = True, clean_up_script: Optional[str] = None): + def __init__( + self, + script: str, + launch_once: Optional[bool] = True, + clean_up_script: Optional[str] = None, + shutdown_timeout: Optional[float] = None, + ): """Initializes the SubprocessLauncher. Args: script (str): Script to be launched using subprocess. + launch_once (bool): Whether the external process will be launched only once at the beginning or on each task. clean_up_script (Optional[str]): Optional clean up script to be run after the main script execution. + shutdown_timeout (float): If provided, will wait for this number of seconds before shutdown. + None means never times out. """ super().__init__() @@ -98,6 +107,8 @@ def __init__(self, script: str, launch_once: bool = True, clean_up_script: Optio self._script = script self._launch_once = launch_once self._clean_up_script = clean_up_script + self._shutdown_timeout = shutdown_timeout + self._lock = Lock() self.logger = get_obj_logger(self) def initialize(self, fl_ctx: FLContext): @@ -119,40 +130,46 @@ def stop_task(self, task_name: str, fl_ctx: FLContext, abort_signal: Signal) -> self._stop_external_process() def _start_external_process(self, fl_ctx: FLContext): - if self._process is None: - command = self._script - env = os.environ.copy() - env["CLIENT_API_TYPE"] = "EX_PROCESS_API" - - workspace = fl_ctx.get_prop(FLContextKey.WORKSPACE_OBJECT) - job_id = fl_ctx.get_prop(FLContextKey.CURRENT_JOB_ID) - app_custom_folder = workspace.get_app_custom_dir(job_id) - add_custom_dir_to_path(app_custom_folder, env) - - command_seq = shlex.split(command) - self._process = subprocess.Popen( - command_seq, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self._app_dir, env=env - ) - self._log_thread = Thread(target=log_subprocess_output, args=(self._process, self.logger)) - self._log_thread.start() + with self._lock: + if self._process is None: + command = self._script + env = os.environ.copy() + env["CLIENT_API_TYPE"] = "EX_PROCESS_API" + + workspace = fl_ctx.get_prop(FLContextKey.WORKSPACE_OBJECT) + job_id = fl_ctx.get_prop(FLContextKey.CURRENT_JOB_ID) + app_custom_folder = workspace.get_app_custom_dir(job_id) + add_custom_dir_to_path(app_custom_folder, env) + + command_seq = shlex.split(command) + self._process = subprocess.Popen( + command_seq, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self._app_dir, env=env + ) + self._log_thread = Thread(target=log_subprocess_output, args=(self._process, self.logger)) + self._log_thread.start() def _stop_external_process(self): - if self._process: - self._process.terminate() - self._process.wait() - self._log_thread.join() - if self._clean_up_script: - command_seq = shlex.split(self._clean_up_script) - process = subprocess.Popen(command_seq, cwd=self._app_dir) - process.wait() - self._process = None + with self._lock: + if self._process: + try: + self._process.wait(self._shutdown_timeout) + except subprocess.TimeoutExpired: + pass + self._process.terminate() + self._log_thread.join() + if self._clean_up_script: + command_seq = shlex.split(self._clean_up_script) + process = subprocess.Popen(command_seq, cwd=self._app_dir) + process.wait() + self._process = None def check_run_status(self, task_name: str, fl_ctx: FLContext) -> str: - if self._process is None: - return LauncherRunStatus.NOT_RUNNING - return_code = self._process.poll() - if return_code is None: - return LauncherRunStatus.RUNNING - if return_code == 0: - return LauncherRunStatus.COMPLETE_SUCCESS - return LauncherRunStatus.COMPLETE_FAILED + with self._lock: + if self._process is None: + return LauncherRunStatus.NOT_RUNNING + return_code = self._process.poll() + if return_code is None: + return LauncherRunStatus.RUNNING + if return_code == 0: + return LauncherRunStatus.COMPLETE_SUCCESS + return LauncherRunStatus.COMPLETE_FAILED diff --git a/nvflare/app_opt/lightning/api.py b/nvflare/app_opt/lightning/api.py index 8cf7c6f29f..4e674e5915 100644 --- a/nvflare/app_opt/lightning/api.py +++ b/nvflare/app_opt/lightning/api.py @@ -19,8 +19,10 @@ from torch import Tensor from nvflare.app_common.abstract.fl_model import FLModel, MetaKey +from nvflare.app_opt.pt.decomposers import TensorDecomposer from nvflare.client.api import clear, get_config, init, is_evaluate, is_submit_model, is_train, receive, send from nvflare.client.config import ConfigKey +from nvflare.fuel.utils import fobs from .callbacks import RestoreState @@ -65,6 +67,7 @@ def __init__(self): self.__fl_meta__ = {"CUSTOM_VAR": "VALUE_OF_THE_VAR"} """ + fobs.register(TensorDecomposer) callbacks = trainer.callbacks if isinstance(callbacks, Callback): callbacks = [callbacks] diff --git a/nvflare/client/__init__.py b/nvflare/client/__init__.py index 8d66896223..50411ce3c9 100644 --- a/nvflare/client/__init__.py +++ b/nvflare/client/__init__.py @@ -30,6 +30,7 @@ from .api import log as log from .api import receive as receive from .api import send as send +from .api import shutdown as shutdown from .api import system_info as system_info from .decorator import evaluate as evaluate from .decorator import train as train diff --git a/nvflare/client/api.py b/nvflare/client/api.py index a536b5812c..f6322cdae5 100644 --- a/nvflare/client/api.py +++ b/nvflare/client/api.py @@ -13,61 +13,78 @@ # limitations under the License. import logging -import os -from enum import Enum +from threading import Lock from typing import Any, Dict, Optional from nvflare.apis.analytix import AnalyticsDataType from nvflare.app_common.abstract.fl_model import FLModel -from nvflare.fuel.data_event.data_bus import DataBus -from .api_spec import CLIENT_API_KEY, CLIENT_API_TYPE_KEY, APISpec -from .ex_process.api import ExProcessClientAPI +from .api_context import APIContext +global_context_lock = Lock() +context_dict = {} +default_context = None -class ClientAPIType(Enum): - IN_PROCESS_API = "IN_PROCESS_API" - EX_PROCESS_API = "EX_PROCESS_API" +def get_context(ctx: Optional[APIContext] = None) -> APIContext: + """Gets an APIContext. -client_api: Optional[APISpec] = None -data_bus = DataBus() + Args: + ctx (Optional[APIContext]): The context to use, + if None means use default context. Defaults to None. + + Raises: + RuntimeError: if can't get a valid APIContext. + Returns: + An APIContext. + """ + if ctx: + return ctx + elif default_context: + return default_context + else: + raise RuntimeError("APIContext is None") -def init(rank: Optional[str] = None): + +def init(rank: Optional[str] = None, config_file: Optional[str] = None) -> APIContext: """Initializes NVFlare Client API environment. Args: rank (str): local rank of the process. It is only useful when the training script has multiple worker processes. (for example multi GPU) + config_file (str): client api configuration. Returns: - None + APIContext """ - api_type_name = os.environ.get(CLIENT_API_TYPE_KEY, ClientAPIType.IN_PROCESS_API.value) - api_type = ClientAPIType(api_type_name) - global client_api - if client_api is None: - if api_type == ClientAPIType.IN_PROCESS_API: - client_api = data_bus.get_data(CLIENT_API_KEY) + with global_context_lock: + global context_dict + global default_context + local_ctx = context_dict.get((rank, config_file)) + + if local_ctx is None: + local_ctx = APIContext(rank=rank, config_file=config_file) + context_dict[(rank, config_file)] = local_ctx + default_context = local_ctx else: - client_api = ExProcessClientAPI() - client_api.init(rank=rank) - else: - logging.warning("Warning: called init() more than once. The subsequence calls are ignored") + logging.warning( + "Warning: called init() more than once with same parameters." "The subsequence calls are ignored" + ) + return local_ctx -def receive(timeout: Optional[float] = None) -> Optional[FLModel]: +def receive(timeout: Optional[float] = None, ctx: Optional[APIContext] = None) -> Optional[FLModel]: """Receives model from NVFlare side. Returns: An FLModel received. """ - global client_api - return client_api.receive(timeout) + local_ctx = get_context(ctx) + return local_ctx.api.receive(timeout) -def send(model: FLModel, clear_cache: bool = True) -> None: +def send(model: FLModel, clear_cache: bool = True, ctx: Optional[APIContext] = None) -> None: """Sends the model to NVFlare side. Args: @@ -76,11 +93,11 @@ def send(model: FLModel, clear_cache: bool = True) -> None: """ if not isinstance(model, FLModel): raise TypeError("model needs to be an instance of FLModel") - global client_api - return client_api.send(model, clear_cache) + local_ctx = get_context(ctx) + return local_ctx.api.send(model, clear_cache) -def system_info() -> Dict: +def system_info(ctx: Optional[APIContext] = None) -> Dict: """Gets NVFlare system information. System information will be available after a valid FLModel is received. @@ -93,91 +110,91 @@ def system_info() -> Dict: A dict of system information. """ - global client_api - return client_api.system_info() + local_ctx = get_context(ctx) + return local_ctx.api.system_info() -def get_config() -> Dict: +def get_config(ctx: Optional[APIContext] = None) -> Dict: """Gets the ClientConfig dictionary. Returns: A dict of the configuration used in Client API. """ - global client_api - return client_api.get_config() + local_ctx = get_context(ctx) + return local_ctx.api.get_config() -def get_job_id() -> str: +def get_job_id(ctx: Optional[APIContext] = None) -> str: """Gets job id. Returns: The current job id. """ - global client_api - return client_api.get_job_id() + local_ctx = get_context(ctx) + return local_ctx.api.get_job_id() -def get_site_name() -> str: +def get_site_name(ctx: Optional[APIContext] = None) -> str: """Gets site name. Returns: The site name of this client. """ - global client_api - return client_api.get_site_name() + local_ctx = get_context(ctx) + return local_ctx.api.get_site_name() -def get_task_name() -> str: +def get_task_name(ctx: Optional[APIContext] = None) -> str: """Gets task name. Returns: The task name. """ - global client_api - return client_api.get_task_name() + local_ctx = get_context(ctx) + return local_ctx.api.get_task_name() -def is_running() -> bool: +def is_running(ctx: Optional[APIContext] = None) -> bool: """Returns whether the NVFlare system is up and running. Returns: True, if the system is up and running. False, otherwise. """ - global client_api - return client_api.is_running() + local_ctx = get_context(ctx) + return local_ctx.api.is_running() -def is_train() -> bool: +def is_train(ctx: Optional[APIContext] = None) -> bool: """Returns whether the current task is a training task. Returns: True, if the current task is a training task. False, otherwise. """ - global client_api - return client_api.is_train() + local_ctx = get_context(ctx) + return local_ctx.api.is_train() -def is_evaluate() -> bool: +def is_evaluate(ctx: Optional[APIContext] = None) -> bool: """Returns whether the current task is an evaluate task. Returns: True, if the current task is an evaluate task. False, otherwise. """ - global client_api - return client_api.is_evaluate() + local_ctx = get_context(ctx) + return local_ctx.api.is_evaluate() -def is_submit_model() -> bool: +def is_submit_model(ctx: Optional[APIContext] = None) -> bool: """Returns whether the current task is a submit_model task. Returns: True, if the current task is a submit_model. False, otherwise. """ - global client_api - return client_api.is_submit_model() + local_ctx = get_context(ctx) + return local_ctx.api.is_submit_model() -def log(key: str, value: Any, data_type: AnalyticsDataType, **kwargs): +def log(key: str, value: Any, data_type: AnalyticsDataType, ctx: Optional[APIContext] = None, **kwargs): """Logs a key value pair. We suggest users use the high-level APIs in nvflare/client/tracking.py @@ -191,11 +208,17 @@ def log(key: str, value: Any, data_type: AnalyticsDataType, **kwargs): Returns: whether the key value pair is logged successfully """ - global client_api - return client_api.log(key, value, data_type, **kwargs) + local_ctx = get_context(ctx) + return local_ctx.api.log(key, value, data_type, **kwargs) -def clear(): +def clear(ctx: Optional[APIContext] = None): """Clears the cache.""" - global client_api - return client_api.clear() + local_ctx = get_context(ctx) + return local_ctx.api.clear() + + +def shutdown(ctx: Optional[APIContext] = None): + """Releases all threads and resources used by the API and stops operation.""" + local_ctx = get_context(ctx) + return local_ctx.api.shutdown() diff --git a/nvflare/client/api_context.py b/nvflare/client/api_context.py new file mode 100644 index 0000000000..f16cd31cfd --- /dev/null +++ b/nvflare/client/api_context.py @@ -0,0 +1,63 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import os +from enum import Enum +from typing import Optional + +from nvflare.client.constants import CLIENT_API_CONFIG +from nvflare.fuel.data_event.data_bus import DataBus + +from .api_spec import CLIENT_API_KEY, CLIENT_API_TYPE_KEY, APISpec +from .ex_process.api import ExProcessClientAPI +from .in_process.api import InProcessClientAPI + +DEFAULT_CONFIG = f"config/{CLIENT_API_CONFIG}" +data_bus = DataBus() + + +class ClientAPIType(Enum): + IN_PROCESS_API = "IN_PROCESS_API" + EX_PROCESS_API = "EX_PROCESS_API" + + +class APIContext: + def __init__(self, rank: Optional[str] = None, config_file: str = None): + self.rank = rank + self.config_file = config_file if config_file else DEFAULT_CONFIG + + api_type_name = os.environ.get(CLIENT_API_TYPE_KEY, ClientAPIType.IN_PROCESS_API.value) + api_type = ClientAPIType(api_type_name) + self.api = self._create_client_api(api_type) + self.api.init(rank=self.rank) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Cleanup the client API when the context ends.""" + if self.api: + self.api.shutdown() + self.api = None + + def _create_client_api(self, api_type: ClientAPIType) -> APISpec: + """Creates a new client_api based on the provided API type.""" + if api_type == ClientAPIType.IN_PROCESS_API: + api = data_bus.get_data(CLIENT_API_KEY) + if not isinstance(api, InProcessClientAPI): + raise RuntimeError(f"api {api} is not a valid InProcessClientAPI") + return api + else: + return ExProcessClientAPI(config_file=self.config_file) diff --git a/nvflare/client/api_spec.py b/nvflare/client/api_spec.py index d2a5802852..458976638e 100644 --- a/nvflare/client/api_spec.py +++ b/nvflare/client/api_spec.py @@ -277,3 +277,16 @@ def clear(self): """ pass + + @abstractmethod + def shutdown(self): + """Releases all threads and resources used by the API and stops operation. + + Example: + + .. code-block:: python + + nvflare.client.shutdown() + + """ + pass diff --git a/nvflare/client/ex_process/api.py b/nvflare/client/ex_process/api.py index 73e9328a9e..d5d6eceb05 100644 --- a/nvflare/client/ex_process/api.py +++ b/nvflare/client/ex_process/api.py @@ -22,7 +22,6 @@ from nvflare.app_common.abstract.fl_model import FLModel from nvflare.client.api_spec import APISpec from nvflare.client.config import ClientConfig, ConfigKey, ExchangeFormat, from_file -from nvflare.client.constants import CLIENT_API_CONFIG from nvflare.client.flare_agent import FlareAgentException from nvflare.client.flare_agent_with_fl_model import FlareAgentWithFLModel from nvflare.client.model_registry import ModelRegistry @@ -74,16 +73,18 @@ def _create_pipe_using_config(client_config: ClientConfig, section: str) -> Tupl class ExProcessClientAPI(APISpec): - def __init__(self): - self.process_model_registry = None + def __init__(self, config_file: str): + self.model_registry = None self.logger = get_obj_logger(self) self.receive_called = False + self.config_file = config_file + self.flare_agent = None def get_model_registry(self) -> ModelRegistry: """Gets the ModelRegistry.""" - if self.process_model_registry is None: + if self.model_registry is None: raise RuntimeError("needs to call init method first") - return self.process_model_registry + return self.model_registry def init(self, rank: Optional[str] = None): """Initializes NVFlare Client API environment. @@ -96,12 +97,11 @@ def init(self, rank: Optional[str] = None): if rank is None: rank = os.environ.get("RANK", "0") - if self.process_model_registry: + if self.model_registry: self.logger.warning("Warning: called init() more than once. The subsequence calls are ignored") return - config_file = f"config/{CLIENT_API_CONFIG}" - client_config = _create_client_config(config=config_file) + client_config = _create_client_config(config=self.config_file) flare_agent = None try: @@ -133,7 +133,8 @@ def init(self, rank: Optional[str] = None): ) flare_agent.start() - self.process_model_registry = ModelRegistry(client_config, rank, flare_agent) + self.model_registry = ModelRegistry(client_config, rank, flare_agent) + self.flare_agent = flare_agent except Exception as e: self.logger.error(f"flare.init failed: {e}") raise e @@ -215,3 +216,7 @@ def clear(self): model_registry = self.get_model_registry() model_registry.clear() self.receive_called = False + + def shutdown(self): + if self.flare_agent: + self.flare_agent.stop() diff --git a/nvflare/client/in_process/api.py b/nvflare/client/in_process/api.py index 83d9c4cdb1..5993b61af9 100644 --- a/nvflare/client/in_process/api.py +++ b/nvflare/client/in_process/api.py @@ -234,3 +234,8 @@ def __continue_job(self) -> bool: return False return True + + def shutdown(self): + self.stop = True + self.event_manager.fire_event(TOPIC_STOP) + self.stop_reason = "API shutdown called." diff --git a/nvflare/client/lightning/__init__.py b/nvflare/client/lightning/__init__.py index 2a5d3789fe..fe3d87405e 100644 --- a/nvflare/client/lightning/__init__.py +++ b/nvflare/client/lightning/__init__.py @@ -39,4 +39,5 @@ from nvflare.client import is_running as is_running from nvflare.client import log as log from nvflare.client import receive as receive + from nvflare.client import shutdown as shutdown from nvflare.client import system_info as system_info diff --git a/nvflare/client/task_registry.py b/nvflare/client/task_registry.py index 182356a340..743fb53ae5 100644 --- a/nvflare/client/task_registry.py +++ b/nvflare/client/task_registry.py @@ -113,7 +113,3 @@ def clear(self) -> None: def __str__(self): return f"{self.__class__.__name__}(config: {self.config.get_config()})" - - def __del__(self): - if self.flare_agent: - self.flare_agent.stop() diff --git a/nvflare/client/tracking.py b/nvflare/client/tracking.py index e2ba7e66b7..6bbb370a6a 100644 --- a/nvflare/client/tracking.py +++ b/nvflare/client/tracking.py @@ -17,10 +17,18 @@ from nvflare.apis.analytix import AnalyticsDataType from nvflare.app_common.tracking.tracker_types import LogWriterName -from .api import log +# flake8: noqa +from .api import default_context as default_context +from .api import get_context, log +from .api_context import APIContext -class SummaryWriter: +class _BaseWriter: + def __init__(self, ctx: Optional[APIContext] = None): + self.ctx = get_context(ctx) + + +class SummaryWriter(_BaseWriter): """SummaryWriter mimics the usage of Tensorboard's SummaryWriter. Users can replace the import of Tensorboard's SummaryWriter with FLARE's SummaryWriter. @@ -43,6 +51,7 @@ def add_scalar(self, tag: str, scalar: float, global_step: Optional[int] = None, data_type=AnalyticsDataType.SCALAR, global_step=global_step, writer=LogWriterName.TORCH_TB, + ctx=self.ctx, **kwargs, ) @@ -61,6 +70,7 @@ def add_scalars(self, tag: str, scalars: dict, global_step: Optional[int] = None data_type=AnalyticsDataType.SCALARS, global_step=global_step, writer=LogWriterName.TORCH_TB, + ctx=self.ctx, **kwargs, ) @@ -69,7 +79,7 @@ def flush(self): pass -class WandBWriter: +class WandBWriter(_BaseWriter): """WandBWriter mimics the usage of weights and biases. Users can replace the import of wandb with FLARE's WandBWriter. @@ -90,10 +100,11 @@ def log(self, metrics: Dict[str, float], step: Optional[int] = None): data_type=AnalyticsDataType.METRICS, global_step=step, writer=LogWriterName.WANDB, + ctx=self.ctx, ) -class MLflowWriter: +class MLflowWriter(_BaseWriter): """MLflowWriter mimics the usage of MLflow. Users can replace the import of MLflow with FLARE's MLflowWriter. @@ -113,7 +124,7 @@ def log_param(self, key: str, value: any) -> None: All backend stores support values up to length 500, but some may support larger values. """ - log(key=key, value=value, data_type=AnalyticsDataType.PARAMETER, writer=LogWriterName.MLFLOW) + log(key=key, value=value, data_type=AnalyticsDataType.PARAMETER, writer=LogWriterName.MLFLOW, ctx=self.ctx) def log_params(self, values: dict) -> None: """Log a batch of params for the current run. @@ -121,7 +132,13 @@ def log_params(self, values: dict) -> None: Args: values (dict): Dictionary of param_name: String -> value: (String, but will be string-ified if not) """ - log(key="params", value=values, data_type=AnalyticsDataType.PARAMETERS, writer=LogWriterName.MLFLOW) + log( + key="params", + value=values, + data_type=AnalyticsDataType.PARAMETERS, + writer=LogWriterName.MLFLOW, + ctx=self.ctx, + ) def log_metric(self, key: str, value: float, step: Optional[int] = None) -> None: """Log a metric under the current run. @@ -136,7 +153,14 @@ def log_metric(self, key: str, value: float, step: Optional[int] = None) -> None support larger values. step (int, optional): Metric step. Defaults to zero if unspecified. """ - log(key=key, value=value, data_type=AnalyticsDataType.METRIC, global_step=step, writer=LogWriterName.MLFLOW) + log( + key=key, + value=value, + data_type=AnalyticsDataType.METRIC, + global_step=step, + writer=LogWriterName.MLFLOW, + ctx=self.ctx, + ) def log_metrics(self, metrics: Dict[str, float], step: Optional[int] = None) -> None: """Log multiple metrics for the current run. @@ -154,6 +178,7 @@ def log_metrics(self, metrics: Dict[str, float], step: Optional[int] = None) -> data_type=AnalyticsDataType.METRICS, global_step=step, writer=LogWriterName.MLFLOW, + ctx=self.ctx, ) def log_text(self, text: str, artifact_file_path: str) -> None: @@ -170,6 +195,7 @@ def log_text(self, text: str, artifact_file_path: str) -> None: data_type=AnalyticsDataType.TEXT, path=artifact_file_path, writer=LogWriterName.MLFLOW, + ctx=self.ctx, ) def set_tag(self, key: str, tag: any) -> None: @@ -181,7 +207,7 @@ def set_tag(self, key: str, tag: any) -> None: All backend stores will support values up to length 5000, but some may support larger values. """ - log(key=key, value=tag, data_type=AnalyticsDataType.TAG, writer=LogWriterName.MLFLOW) + log(key=key, value=tag, data_type=AnalyticsDataType.TAG, writer=LogWriterName.MLFLOW, ctx=self.ctx) def set_tags(self, tags: dict) -> None: """Log a batch of tags for the current run. @@ -190,4 +216,4 @@ def set_tags(self, tags: dict) -> None: tags (dict): Dictionary of tag_name: String -> value: (String, but will be string-ified if not) """ - log(key="tags", value=tags, data_type=AnalyticsDataType.TAGS, writer=LogWriterName.MLFLOW) + log(key="tags", value=tags, data_type=AnalyticsDataType.TAGS, writer=LogWriterName.MLFLOW, ctx=self.ctx) diff --git a/nvflare/fuel/utils/pipe/pipe_handler.py b/nvflare/fuel/utils/pipe/pipe_handler.py index a780369172..a147accaec 100644 --- a/nvflare/fuel/utils/pipe/pipe_handler.py +++ b/nvflare/fuel/utils/pipe/pipe_handler.py @@ -178,6 +178,10 @@ def set_message_cb(self, cb, *args, **kwargs): self.msg_cb_kwargs = kwargs def _send_to_pipe(self, msg: Message, timeout=None, abort_signal: Signal = None): + if self._is_stopped_or_aborted(abort_signal): + self.logger.debug("cannot send message to pipe since PipeHandler is asked to stop") + return False + pipe = self.pipe if not pipe: self.logger.error("cannot send message to pipe since it's already closed") @@ -199,20 +203,14 @@ def _send_to_pipe(self, msg: Message, timeout=None, abort_signal: Signal = None) self.logger.error(f"abort sending after {num_sends} tries") return False - if self.asked_to_stop: - return False - - if abort_signal and abort_signal.triggered: + if self._is_stopped_or_aborted(abort_signal): return False # wait for resend_interval before resend, but return if asked_to_stop is set during the wait self.logger.info(f"will resend '{msg.topic}' in {self.resend_interval} secs") start_wait = time.time() while True: - if self.asked_to_stop: - return False - - if abort_signal and abort_signal.triggered: + if self._is_stopped_or_aborted(abort_signal): return False if time.time() - start_wait > self.resend_interval: @@ -220,6 +218,15 @@ def _send_to_pipe(self, msg: Message, timeout=None, abort_signal: Signal = None) time.sleep(0.1) return False + def _is_stopped_or_aborted(self, abort_signal: Optional[Signal] = None): + if self.asked_to_stop: + return True + + if abort_signal and abort_signal.triggered: + return True + + return False + def start(self): """Starts the PipeHandler. diff --git a/nvflare/job_config/script_runner.py b/nvflare/job_config/script_runner.py index 7b3ca4f40b..71a9a1ef43 100644 --- a/nvflare/job_config/script_runner.py +++ b/nvflare/job_config/script_runner.py @@ -227,6 +227,7 @@ def add_to_fed_job(self, job: FedJob, ctx, **kwargs): if self._launcher else SubprocessLauncher( script=self._command + " custom/" + self._script + " " + self._script_args, + shutdown_timeout=0.0, ) ) launcher_id = job.add_component("launcher", launcher, ctx) diff --git a/tests/unit_test/app_common/launchers/subprocess_launcher_test.py b/tests/unit_test/app_common/launchers/subprocess_launcher_test.py index a3db0f28f8..41c8ff4125 100644 --- a/tests/unit_test/app_common/launchers/subprocess_launcher_test.py +++ b/tests/unit_test/app_common/launchers/subprocess_launcher_test.py @@ -38,7 +38,7 @@ def test_launch(self): def test_stop(self): tempdir = tempfile.mkdtemp() fl_ctx = FLContext() - launcher = SubprocessLauncher("python -c \"for i in range(1000000): print('cool')\"") + launcher = SubprocessLauncher("python -c \"for i in range(1000000): print('cool')\"", shutdown_timeout=0.0) launcher._app_dir = tempdir signal = Signal()

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 AP5=M^ literal 0 HcmV?d00001 diff --git a/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/grafana_plot_metrics_heatbeat_time_taken.png b/examples/tutorials/self-paced-training/part-2_federated_learning_system/chapter-3_federated_computing_platform/03.4_system_monitoring/figures/grafana_plot_metrics_heatbeat_time_taken.png new file mode 100644 index 0000000000000000000000000000000000000000..8986beb9f1da534e7a3bb0ca9744d89b807c3bd1 GIT binary patch literal 175869 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 z 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 XO;z5;fbv8a6huNA@V_RNLogf{noW9eTiaK^C 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%0ALL;B(V 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