From 8a86b3c14b9e1d77aa84d4357fc27b0e54081bde Mon Sep 17 00:00:00 2001 From: huan <3174348550@qq.com> Date: Thu, 17 Jul 2025 14:13:27 +0800 Subject: [PATCH] delete redundant folders --- docs/federated/docs/Makefile | 20 - .../_ext/overwriteautosummary_generate.txt | 707 ------------------ .../docs/_ext/overwriteobjectiondirective.txt | 374 --------- .../federated/docs/_ext/overwriteviewcode.txt | 378 ---------- docs/federated/docs/requirements.txt | 7 - docs/federated/docs/source_en/Data_Join.rst | 12 - .../source_en/communication_compression.md | 139 ---- docs/federated/docs/source_en/conf.py | 203 ----- .../federated/docs/source_en/cross_device.rst | 17 - docs/federated/docs/source_en/data_join.md | 241 ------ .../docs/source_en/deploy_federated_client.md | 202 ----- .../docs/source_en/deploy_federated_server.md | 317 -------- docs/federated/docs/source_en/deploy_vfl.md | 69 -- docs/federated/docs/source_en/faq.md | 9 - .../docs/source_en/federated_install.md | 25 - .../docs/source_en/horizontal_server.rst | 12 - .../image_classfication_dataset_process.md | 450 ----------- .../image_classification_application.md | 331 -------- ...lassification_application_in_cross_silo.md | 313 -------- .../docs/source_en/images/HFL_en.png | Bin 100803 -> 0 bytes .../docs/source_en/images/VFL_en.png | Bin 66346 -> 0 bytes .../images/create_android_project.png | Bin 57219 -> 0 bytes .../docs/source_en/images/data_join_en.png | Bin 64011 -> 0 bytes .../docs/source_en/images/deploy_VFL_en.png | Bin 116709 -> 0 bytes .../images/download_compress_client_en.png | Bin 6734 -> 0 bytes .../images/download_compress_server_en.png | Bin 8107 -> 0 bytes .../docs/source_en/images/label_dp_en.png | Bin 21352 -> 0 bytes .../images/lenet_50_clients_acc_en.png | Bin 14437 -> 0 bytes .../images/lenet_signds_loss_auc.png | Bin 73257 -> 0 bytes .../images/mindspore_federated_networking.png | Bin 26359 -> 0 bytes .../images/splitnn_pangu_alpha_en.png | Bin 74481 -> 0 bytes .../images/splitnn_wide_and_deep_en.png | Bin 30783 -> 0 bytes .../images/start_android_project.png | Bin 33377 -> 0 bytes .../images/upload_compress_server_en.png | Bin 10761 -> 0 bytes .../images/upload_compression_client_en.png | Bin 8580 -> 0 bytes .../docs/source_en/images/vfl_1_en.png | Bin 23255 -> 0 bytes .../docs/source_en/images/vfl_backward_en.png | Bin 7041 -> 0 bytes .../vfl_feature_reconstruction_defense_en.png | Bin 60594 -> 0 bytes .../images/vfl_feature_reconstruction_en.png | Bin 56828 -> 0 bytes .../docs/source_en/images/vfl_forward_en.png | Bin 4800 -> 0 bytes .../vfl_normal_communication_compress_en.png | Bin 19824 -> 0 bytes .../vfl_pangu_communication_compress_en.png | Bin 30395 -> 0 bytes .../docs/source_en/images/vfl_with_tee_en.png | Bin 28548 -> 0 bytes .../images/weight_diff_decode_en.png | Bin 18898 -> 0 bytes .../images/weight_diff_encode_en.png | Bin 21619 -> 0 bytes docs/federated/docs/source_en/index.rst | 177 ----- .../interface_description_federated_client.md | 350 --------- .../docs/source_en/java_api_callback.md | 66 -- .../docs/source_en/java_api_client.md | 173 ----- .../docs/source_en/java_api_clientmanager.md | 44 -- .../docs/source_en/java_api_dataset.md | 63 -- .../docs/source_en/java_api_flparameter.md | 636 ---------------- .../docs/source_en/java_api_syncfljob.md | 64 -- ...local_differential_privacy_eval_laplace.md | 236 ------ ...cal_differential_privacy_training_noise.md | 45 -- ...al_differential_privacy_training_signds.md | 178 ----- ...ect_detection_application_in_cross_silo.md | 264 ------- .../source_en/pairwise_encryption_training.md | 67 -- .../source_en/private_set_intersection.md | 129 ---- ...ure_vertical_federated_learning_with_DP.md | 158 ---- ...cal_federated_learning_with_EmbeddingDP.md | 135 ---- ...re_vertical_federated_learning_with_TEE.md | 281 ------- .../sentiment_classification_application.md | 563 -------------- .../split_pangu_alpha_application.md | 338 --------- .../docs/source_en/split_wnd_application.md | 280 ------- .../source_en/vertical_federated_trainer.rst | 12 - .../source_en/vfl_communication_compress.md | 231 ------ .../federated/docs/source_zh_cn/Data_Join.rst | 12 - .../__pycache__/my_signature.cpython-37.pyc | Bin 6812 -> 0 bytes .../source_zh_cn/communication_compression.md | 137 ---- docs/federated/docs/source_zh_cn/conf.py | 231 ------ .../docs/source_zh_cn/cross_device.rst | 17 - docs/federated/docs/source_zh_cn/data_join.md | 242 ------ .../source_zh_cn/deploy_federated_client.md | 200 ----- .../source_zh_cn/deploy_federated_server.md | 317 -------- .../federated/docs/source_zh_cn/deploy_vfl.md | 69 -- docs/federated/docs/source_zh_cn/faq.md | 9 - .../docs/source_zh_cn/federated_install.md | 25 - .../docs/source_zh_cn/horizontal_server.rst | 12 - .../image_classfication_dataset_process.md | 451 ----------- .../image_classification_application.md | 331 -------- ...lassification_application_in_cross_silo.md | 313 -------- .../docs/source_zh_cn/images/HFL.png | Bin 166782 -> 0 bytes .../docs/source_zh_cn/images/LeNet_5.jpg | Bin 50554 -> 0 bytes .../docs/source_zh_cn/images/SILHOUETTE.png | Bin 37901 -> 0 bytes .../docs/source_zh_cn/images/VFL.png | Bin 116041 -> 0 bytes .../images/create_android_project.png | Bin 57219 -> 0 bytes .../cross-silo_fastrcnn-2workers-loss.png | Bin 70276 -> 0 bytes .../docs/source_zh_cn/images/data_join.png | Bin 51235 -> 0 bytes .../docs/source_zh_cn/images/deploy_VFL.png | Bin 114384 -> 0 bytes .../images/download_compression_client.png | Bin 6013 -> 0 bytes .../images/download_compression_server.png | Bin 6006 -> 0 bytes .../docs/source_zh_cn/images/eval_flow.png | Bin 21665 -> 0 bytes .../images/inverse_ecdh_psi_flow.png | Bin 89477 -> 0 bytes .../docs/source_zh_cn/images/label_dp.png | Bin 22239 -> 0 bytes .../docs/source_zh_cn/images/laplace_pdf.png | Bin 17783 -> 0 bytes .../images/lenet_50_clients_acc.png | Bin 19869 -> 0 bytes .../images/lenet_signds_loss_auc.png | Bin 73257 -> 0 bytes .../images/mindspore_federated_networking.png | Bin 26359 -> 0 bytes .../docs/source_zh_cn/images/signds_flow.png | Bin 29610 -> 0 bytes .../source_zh_cn/images/signds_framework.png | Bin 42786 -> 0 bytes .../images/signds_step_length.png | Bin 60777 -> 0 bytes .../images/splitnn_pangu_alpha.png | Bin 64858 -> 0 bytes .../images/splitnn_pangu_alpha_result.png | Bin 38549 -> 0 bytes .../images/splitnn_wide_and_deep.png | Bin 176768 -> 0 bytes .../images/start_android_project.png | Bin 33377 -> 0 bytes .../docs/source_zh_cn/images/two_cluster.png | Bin 29974 -> 0 bytes .../images/upload_compression_client.png | Bin 5834 -> 0 bytes .../images/upload_compression_server.png | Bin 6766 -> 0 bytes .../docs/source_zh_cn/images/vfl_1.png | Bin 27687 -> 0 bytes .../docs/source_zh_cn/images/vfl_backward.png | Bin 9410 -> 0 bytes .../images/vfl_feature_reconstruction.png | Bin 55183 -> 0 bytes .../vfl_feature_reconstruction_defense.png | Bin 59391 -> 0 bytes .../docs/source_zh_cn/images/vfl_forward.png | Bin 13474 -> 0 bytes .../source_zh_cn/images/vfl_mnist_detail.png | Bin 25935 -> 0 bytes .../vfl_normal_communication_compress.png | Bin 23371 -> 0 bytes .../vfl_pangu_communication_compress.png | Bin 36884 -> 0 bytes .../docs/source_zh_cn/images/vfl_with_tee.png | Bin 29293 -> 0 bytes .../images/weight_diff_decode.png | Bin 13672 -> 0 bytes .../images/weight_diff_encode.png | Bin 14403 -> 0 bytes docs/federated/docs/source_zh_cn/index.rst | 177 ----- .../interface_description_federated_client.md | 350 --------- .../docs/source_zh_cn/java_api_callback.md | 66 -- .../docs/source_zh_cn/java_api_client.md | 173 ----- .../source_zh_cn/java_api_clientmanager.md | 44 -- .../docs/source_zh_cn/java_api_dataset.md | 63 -- .../docs/source_zh_cn/java_api_flparameter.md | 636 ---------------- .../docs/source_zh_cn/java_api_syncfljob.md | 64 -- ...local_differential_privacy_eval_laplace.md | 236 ------ ...cal_differential_privacy_training_noise.md | 43 -- ...al_differential_privacy_training_signds.md | 179 ----- ...ect_detection_application_in_cross_silo.md | 264 ------- .../pairwise_encryption_training.md | 64 -- .../source_zh_cn/private_set_intersection.md | 129 ---- ...ure_vertical_federated_learning_with_DP.md | 157 ---- ...cal_federated_learning_with_EmbeddingDP.md | 135 ---- ...re_vertical_federated_learning_with_TEE.md | 281 ------- .../sentiment_classification_application.md | 563 -------------- .../split_pangu_alpha_application.md | 338 --------- .../source_zh_cn/split_wnd_application.md | 280 ------- .../vertical_federated_trainer.rst | 12 - .../vfl_communication_compress.md | 231 ------ docs/graphlearning/docs/Makefile | 20 - .../docs/_ext/customdocumenter.txt | 245 ------ docs/graphlearning/docs/_ext/myautosummary.py | 522 ------------- .../_ext/overwriteautosummary_generate.txt | 707 ------------------ .../docs/_ext/overwriteobjectiondirective.txt | 374 --------- .../docs/_ext/overwriteviewcode.txt | 378 ---------- docs/graphlearning/docs/requirements.txt | 7 - .../source_en/_templates/classtemplate.rst | 27 - .../source_en/batched_graph_training_GIN.md | 278 ------- docs/graphlearning/docs/source_en/conf.py | 216 ------ docs/graphlearning/docs/source_en/faq.md | 37 - .../docs/source_en/full_training_of_GCN.md | 262 ------- .../docs/source_en/images/gat_example.PNG | Bin 168997 -> 0 bytes .../source_en/images/graphlearning_en.png | Bin 55438 -> 0 bytes docs/graphlearning/docs/source_en/index.rst | 93 --- .../mindspore_graphlearning_install.md | 57 -- .../single_host_distributed_Graphsage.md | 270 ------- .../spatio_temporal_graph_training_STGCN.md | 165 ---- .../source_zh_cn/_templates/classtemplate.rst | 27 - .../batched_graph_training_GIN.md | 276 ------- docs/graphlearning/docs/source_zh_cn/conf.py | 267 ------- docs/graphlearning/docs/source_zh_cn/faq.md | 37 - .../docs/source_zh_cn/full_training_of_GCN.md | 263 ------- .../docs/source_zh_cn/images/gat_example.PNG | Bin 168997 -> 0 bytes .../source_zh_cn/images/graphlearning_cn.png | Bin 20444 -> 0 bytes .../graphlearning/docs/source_zh_cn/index.rst | 93 --- .../mindspore_graphlearning_install.md | 57 -- .../single_host_distributed_Graphsage.md | 271 ------- .../spatio_temporal_graph_training_STGCN.md | 164 ---- docs/mindpandas/docs/Makefile | 20 - .../mindpandas/docs/_ext/customdocumenter.txt | 245 ------ .../docs/_ext/overwriteobjectiondirective.txt | 374 --------- .../docs/_ext/overwriteviewcode.txt | 378 ---------- docs/mindpandas/docs/_ext/rename_include.py | 60 -- docs/mindpandas/docs/requirements.txt | 8 - docs/mindpandas/docs/source_en/conf.py | 191 ----- docs/mindpandas/docs/source_en/faq.md | 106 --- .../docs/source_en/images/cluster.png | Bin 18377 -> 0 bytes .../images/mindpandas_architecture.png | Bin 751220 -> 0 bytes .../source_en/images/mindpandas_channel.png | Bin 51501 -> 0 bytes .../images/mindpandas_channel_impl.png | Bin 85374 -> 0 bytes .../images/mindpandas_channel_multirecv.png | Bin 108775 -> 0 bytes .../source_en/images/mindpandas_fillna.png | Bin 175782 -> 0 bytes .../docs/source_en/images/mindpandas_io.png | Bin 52008 -> 0 bytes .../source_en/images/mindpandas_multicore.png | Bin 20233 -> 0 bytes .../docs/source_en/images/multiprocess1.png | Bin 163499 -> 0 bytes .../docs/source_en/images/multiprocess2.png | Bin 174690 -> 0 bytes .../docs/source_en/images/multithread.png | Bin 120097 -> 0 bytes .../docs/source_en/images/partition.png | Bin 92083 -> 0 bytes .../source_en/images/performance_compare.png | Bin 58552 -> 0 bytes docs/mindpandas/docs/source_en/index.rst | 178 ----- .../docs/source_en/mindpandas.DataFrame.md | 118 --- .../docs/source_en/mindpandas.Groupby.md | 21 - .../docs/source_en/mindpandas.Others.md | 11 - .../docs/source_en/mindpandas.Series.md | 51 -- .../docs/source_en/mindpandas_channel.md | 29 - .../source_en/mindpandas_configuration.md | 210 ------ .../docs/source_en/mindpandas_install.md | 48 -- .../source_en/mindpandas_quick_start.ipynb | 638 ---------------- docs/mindpandas/docs/source_zh_cn/conf.py | 260 ------- docs/mindpandas/docs/source_zh_cn/faq.md | 106 --- .../docs/source_zh_cn/images/cluster.png | Bin 18377 -> 0 bytes .../images/mindpandas_architecture.png | Bin 751220 -> 0 bytes .../images/mindpandas_channel.png | Bin 58426 -> 0 bytes .../images/mindpandas_channel_impl.png | Bin 87716 -> 0 bytes .../images/mindpandas_channel_multirecv.png | Bin 111057 -> 0 bytes .../source_zh_cn/images/mindpandas_fillna.png | Bin 85036 -> 0 bytes .../source_zh_cn/images/mindpandas_io.png | Bin 63137 -> 0 bytes .../images/mindpandas_multicore.png | Bin 20233 -> 0 bytes .../source_zh_cn/images/multiprocess1.png | Bin 163499 -> 0 bytes .../source_zh_cn/images/multiprocess2.png | Bin 174690 -> 0 bytes .../docs/source_zh_cn/images/multithread.png | Bin 120097 -> 0 bytes .../docs/source_zh_cn/images/partition.png | Bin 92083 -> 0 bytes .../images/performance_compare.png | Bin 67114 -> 0 bytes docs/mindpandas/docs/source_zh_cn/index.rst | 178 ----- .../docs/source_zh_cn/mindpandas.DataFrame.md | 118 --- .../docs/source_zh_cn/mindpandas.Groupby.md | 21 - .../docs/source_zh_cn/mindpandas.Others.md | 11 - .../docs/source_zh_cn/mindpandas.Series.md | 51 -- .../docs/source_zh_cn/mindpandas_channel.md | 29 - .../source_zh_cn/mindpandas_configuration.md | 210 ------ .../docs/source_zh_cn/mindpandas_install.md | 48 -- .../source_zh_cn/mindpandas_quick_start.ipynb | 621 --------------- docs/serving/docs/Makefile | 20 - docs/serving/docs/_ext/customdocumenter.txt | 245 ------ .../docs/_ext/overwriteobjectiondirective.txt | 374 --------- docs/serving/docs/_ext/overwriteviewcode.txt | 378 ---------- docs/serving/docs/_ext/rename_include.py | 60 -- docs/serving/docs/requirements.txt | 7 - docs/serving/docs/source_en/client.rst | 5 - docs/serving/docs/source_en/conf.py | 155 ---- docs/serving/docs/source_en/faq.md | 82 -- .../source_en/images/distributed_servable.png | Bin 46771 -> 0 bytes .../source_en/images/matmul_without_batch.png | Bin 9499 -> 0 bytes .../docs/source_en/images/ocr_example.png | Bin 89205 -> 0 bytes .../docs/source_en/images/parallel.png | Bin 99071 -> 0 bytes .../docs/source_en/images/resnet_example.png | Bin 107265 -> 0 bytes .../source_en/images/resnet_with_batch.png | Bin 42232 -> 0 bytes .../docs/source_en/images/serving_en.png | Bin 17600 -> 0 bytes docs/serving/docs/source_en/index.rst | 75 -- docs/serving/docs/source_en/server.rst | 17 - .../source_en/serving_distributed_example.md | 253 ------- .../serving/docs/source_en/serving_example.md | 220 ------ docs/serving/docs/source_en/serving_grpc.md | 378 ---------- .../serving/docs/source_en/serving_install.md | 97 --- docs/serving/docs/source_en/serving_model.md | 337 --------- .../docs/source_en/serving_multi_subgraphs.md | 192 ----- .../serving/docs/source_en/serving_restful.md | 283 ------- docs/serving/docs/source_zh_cn/conf.py | 251 ------- docs/serving/docs/source_zh_cn/faq.md | 82 -- .../images/distributed_servable.png | Bin 46771 -> 0 bytes .../images/matmul_without_batch.png | Bin 9499 -> 0 bytes .../docs/source_zh_cn/images/ocr_example.png | Bin 89205 -> 0 bytes .../docs/source_zh_cn/images/parallel.png | Bin 99071 -> 0 bytes .../source_zh_cn/images/resnet_example.png | Bin 107265 -> 0 bytes .../source_zh_cn/images/resnet_with_batch.png | Bin 42232 -> 0 bytes .../docs/source_zh_cn/images/serving_cn.png | Bin 17600 -> 0 bytes docs/serving/docs/source_zh_cn/index.rst | 76 -- .../serving_distributed_example.md | 251 ------- .../docs/source_zh_cn/serving_example.md | 221 ------ .../serving/docs/source_zh_cn/serving_grpc.md | 366 --------- .../docs/source_zh_cn/serving_install.md | 92 --- .../docs/source_zh_cn/serving_model.md | 335 --------- .../source_zh_cn/serving_multi_subgraphs.md | 190 ----- .../docs/source_zh_cn/serving_restful.md | 282 ------- docs/xai/docs/Makefile | 20 - .../docs/_ext/overwriteobjectiondirective.txt | 374 --------- docs/xai/docs/_ext/overwriteviewcode.txt | 378 ---------- docs/xai/docs/requirements.txt | 7 - docs/xai/docs/source_en/conf.py | 143 ---- docs/xai/docs/source_en/images/PLC.png | Bin 60850 -> 0 bytes .../source_en/images/grad_cam_saliency.png | Bin 93131 -> 0 bytes .../docs/source_en/images/lime_tabular.png | Bin 41943 -> 0 bytes .../source_en/images/rise_plus_saliency.png | Bin 108645 -> 0 bytes .../source_en/images/saliency_overlay.png | Bin 111805 -> 0 bytes .../docs/source_en/images/shap_gradient.png | Bin 55059 -> 0 bytes .../xai/docs/source_en/images/shap_kernel.png | Bin 53762 -> 0 bytes docs/xai/docs/source_en/images/xai_en.png | Bin 18729 -> 0 bytes docs/xai/docs/source_en/index.rst | 45 -- docs/xai/docs/source_en/installation.md | 55 -- .../source_en/mindspore_xai.benchmark.rst | 5 - .../source_en/mindspore_xai.explainer.rst | 6 - .../xai/docs/source_en/mindspore_xai.tool.rst | 5 - .../docs/source_en/mindspore_xai.visual.rst | 5 - docs/xai/docs/source_en/troubleshoot.md | 36 - .../xai/docs/source_en/using_cv_benchmarks.md | 84 --- .../xai/docs/source_en/using_cv_explainers.md | 248 ------ docs/xai/docs/source_en/using_tabsim.md | 176 ----- .../source_en/using_tabular_explainers.md | 254 ------- docs/xai/docs/source_en/using_tbnet.md | 287 ------- docs/xai/docs/source_zh_cn/conf.py | 225 ------ docs/xai/docs/source_zh_cn/images/PLC.png | Bin 60850 -> 0 bytes .../source_zh_cn/images/grad_cam_saliency.png | Bin 93131 -> 0 bytes .../docs/source_zh_cn/images/lime_tabular.png | Bin 41943 -> 0 bytes .../images/rise_plus_saliency.png | Bin 108645 -> 0 bytes .../source_zh_cn/images/saliency_overlay.png | Bin 111805 -> 0 bytes .../source_zh_cn/images/shap_gradient.png | Bin 55059 -> 0 bytes .../docs/source_zh_cn/images/shap_kernel.png | Bin 53762 -> 0 bytes docs/xai/docs/source_zh_cn/images/xai_cn.png | Bin 18272 -> 0 bytes docs/xai/docs/source_zh_cn/index.rst | 45 -- docs/xai/docs/source_zh_cn/installation.md | 55 -- .../source_zh_cn/mindspore_xai.benchmark.rst | 5 - .../source_zh_cn/mindspore_xai.explainer.rst | 5 - .../docs/source_zh_cn/mindspore_xai.tool.rst | 5 - .../source_zh_cn/mindspore_xai.visual.rst | 5 - docs/xai/docs/source_zh_cn/troubleshoot.md | 35 - .../docs/source_zh_cn/using_cv_benchmarks.md | 84 --- .../docs/source_zh_cn/using_cv_explainers.md | 248 ------ docs/xai/docs/source_zh_cn/using_tabsim.md | 168 ----- .../source_zh_cn/using_tabular_explainers.md | 253 ------- docs/xai/docs/source_zh_cn/using_tbnet.md | 284 ------- 313 files changed, 33488 deletions(-) delete mode 100644 docs/federated/docs/Makefile delete mode 100644 docs/federated/docs/_ext/overwriteautosummary_generate.txt delete mode 100644 docs/federated/docs/_ext/overwriteobjectiondirective.txt delete mode 100644 docs/federated/docs/_ext/overwriteviewcode.txt delete mode 100644 docs/federated/docs/requirements.txt delete mode 100644 docs/federated/docs/source_en/Data_Join.rst delete mode 100644 docs/federated/docs/source_en/communication_compression.md delete mode 100644 docs/federated/docs/source_en/conf.py delete mode 100644 docs/federated/docs/source_en/cross_device.rst delete mode 100644 docs/federated/docs/source_en/data_join.md delete mode 100644 docs/federated/docs/source_en/deploy_federated_client.md delete mode 100644 docs/federated/docs/source_en/deploy_federated_server.md delete mode 100644 docs/federated/docs/source_en/deploy_vfl.md delete mode 100644 docs/federated/docs/source_en/faq.md delete mode 100644 docs/federated/docs/source_en/federated_install.md delete mode 100644 docs/federated/docs/source_en/horizontal_server.rst delete mode 100644 docs/federated/docs/source_en/image_classfication_dataset_process.md delete mode 100644 docs/federated/docs/source_en/image_classification_application.md delete mode 100644 docs/federated/docs/source_en/image_classification_application_in_cross_silo.md delete mode 100644 docs/federated/docs/source_en/images/HFL_en.png delete mode 100644 docs/federated/docs/source_en/images/VFL_en.png delete mode 100644 docs/federated/docs/source_en/images/create_android_project.png delete mode 100644 docs/federated/docs/source_en/images/data_join_en.png delete mode 100644 docs/federated/docs/source_en/images/deploy_VFL_en.png delete mode 100644 docs/federated/docs/source_en/images/download_compress_client_en.png delete mode 100644 docs/federated/docs/source_en/images/download_compress_server_en.png delete mode 100644 docs/federated/docs/source_en/images/label_dp_en.png delete mode 100644 docs/federated/docs/source_en/images/lenet_50_clients_acc_en.png delete mode 100644 docs/federated/docs/source_en/images/lenet_signds_loss_auc.png delete mode 100644 docs/federated/docs/source_en/images/mindspore_federated_networking.png delete mode 100644 docs/federated/docs/source_en/images/splitnn_pangu_alpha_en.png delete mode 100644 docs/federated/docs/source_en/images/splitnn_wide_and_deep_en.png delete mode 100644 docs/federated/docs/source_en/images/start_android_project.png delete mode 100644 docs/federated/docs/source_en/images/upload_compress_server_en.png delete mode 100644 docs/federated/docs/source_en/images/upload_compression_client_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_1_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_backward_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_feature_reconstruction_defense_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_feature_reconstruction_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_forward_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_normal_communication_compress_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_pangu_communication_compress_en.png delete mode 100644 docs/federated/docs/source_en/images/vfl_with_tee_en.png delete mode 100644 docs/federated/docs/source_en/images/weight_diff_decode_en.png delete mode 100644 docs/federated/docs/source_en/images/weight_diff_encode_en.png delete mode 100644 docs/federated/docs/source_en/index.rst delete mode 100644 docs/federated/docs/source_en/interface_description_federated_client.md delete mode 100644 docs/federated/docs/source_en/java_api_callback.md delete mode 100644 docs/federated/docs/source_en/java_api_client.md delete mode 100644 docs/federated/docs/source_en/java_api_clientmanager.md delete mode 100644 docs/federated/docs/source_en/java_api_dataset.md delete mode 100644 docs/federated/docs/source_en/java_api_flparameter.md delete mode 100644 docs/federated/docs/source_en/java_api_syncfljob.md delete mode 100644 docs/federated/docs/source_en/local_differential_privacy_eval_laplace.md delete mode 100644 docs/federated/docs/source_en/local_differential_privacy_training_noise.md delete mode 100644 docs/federated/docs/source_en/local_differential_privacy_training_signds.md delete mode 100644 docs/federated/docs/source_en/object_detection_application_in_cross_silo.md delete mode 100644 docs/federated/docs/source_en/pairwise_encryption_training.md delete mode 100644 docs/federated/docs/source_en/private_set_intersection.md delete mode 100644 docs/federated/docs/source_en/secure_vertical_federated_learning_with_DP.md delete mode 100644 docs/federated/docs/source_en/secure_vertical_federated_learning_with_EmbeddingDP.md delete mode 100644 docs/federated/docs/source_en/secure_vertical_federated_learning_with_TEE.md delete mode 100644 docs/federated/docs/source_en/sentiment_classification_application.md delete mode 100644 docs/federated/docs/source_en/split_pangu_alpha_application.md delete mode 100644 docs/federated/docs/source_en/split_wnd_application.md delete mode 100644 docs/federated/docs/source_en/vertical_federated_trainer.rst delete mode 100644 docs/federated/docs/source_en/vfl_communication_compress.md delete mode 100644 docs/federated/docs/source_zh_cn/Data_Join.rst delete mode 100644 docs/federated/docs/source_zh_cn/_ext/__pycache__/my_signature.cpython-37.pyc delete mode 100644 docs/federated/docs/source_zh_cn/communication_compression.md delete mode 100644 docs/federated/docs/source_zh_cn/conf.py delete mode 100644 docs/federated/docs/source_zh_cn/cross_device.rst delete mode 100644 docs/federated/docs/source_zh_cn/data_join.md delete mode 100644 docs/federated/docs/source_zh_cn/deploy_federated_client.md delete mode 100644 docs/federated/docs/source_zh_cn/deploy_federated_server.md delete mode 100644 docs/federated/docs/source_zh_cn/deploy_vfl.md delete mode 100644 docs/federated/docs/source_zh_cn/faq.md delete mode 100644 docs/federated/docs/source_zh_cn/federated_install.md delete mode 100644 docs/federated/docs/source_zh_cn/horizontal_server.rst delete mode 100644 docs/federated/docs/source_zh_cn/image_classfication_dataset_process.md delete mode 100644 docs/federated/docs/source_zh_cn/image_classification_application.md delete mode 100644 docs/federated/docs/source_zh_cn/image_classification_application_in_cross_silo.md delete mode 100644 docs/federated/docs/source_zh_cn/images/HFL.png delete mode 100644 docs/federated/docs/source_zh_cn/images/LeNet_5.jpg delete mode 100644 docs/federated/docs/source_zh_cn/images/SILHOUETTE.png delete mode 100644 docs/federated/docs/source_zh_cn/images/VFL.png delete mode 100644 docs/federated/docs/source_zh_cn/images/create_android_project.png delete mode 100644 docs/federated/docs/source_zh_cn/images/cross-silo_fastrcnn-2workers-loss.png delete mode 100644 docs/federated/docs/source_zh_cn/images/data_join.png delete mode 100644 docs/federated/docs/source_zh_cn/images/deploy_VFL.png delete mode 100644 docs/federated/docs/source_zh_cn/images/download_compression_client.png delete mode 100644 docs/federated/docs/source_zh_cn/images/download_compression_server.png delete mode 100644 docs/federated/docs/source_zh_cn/images/eval_flow.png delete mode 100644 docs/federated/docs/source_zh_cn/images/inverse_ecdh_psi_flow.png delete mode 100644 docs/federated/docs/source_zh_cn/images/label_dp.png delete mode 100644 docs/federated/docs/source_zh_cn/images/laplace_pdf.png delete mode 100644 docs/federated/docs/source_zh_cn/images/lenet_50_clients_acc.png delete mode 100644 docs/federated/docs/source_zh_cn/images/lenet_signds_loss_auc.png delete mode 100644 docs/federated/docs/source_zh_cn/images/mindspore_federated_networking.png delete mode 100644 docs/federated/docs/source_zh_cn/images/signds_flow.png delete mode 100644 docs/federated/docs/source_zh_cn/images/signds_framework.png delete mode 100644 docs/federated/docs/source_zh_cn/images/signds_step_length.png delete mode 100644 docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha.png delete mode 100644 docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha_result.png delete mode 100644 docs/federated/docs/source_zh_cn/images/splitnn_wide_and_deep.png delete mode 100644 docs/federated/docs/source_zh_cn/images/start_android_project.png delete mode 100644 docs/federated/docs/source_zh_cn/images/two_cluster.png delete mode 100644 docs/federated/docs/source_zh_cn/images/upload_compression_client.png delete mode 100644 docs/federated/docs/source_zh_cn/images/upload_compression_server.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_1.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_backward.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_feature_reconstruction.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_feature_reconstruction_defense.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_forward.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_mnist_detail.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_normal_communication_compress.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_pangu_communication_compress.png delete mode 100644 docs/federated/docs/source_zh_cn/images/vfl_with_tee.png delete mode 100644 docs/federated/docs/source_zh_cn/images/weight_diff_decode.png delete mode 100644 docs/federated/docs/source_zh_cn/images/weight_diff_encode.png delete mode 100644 docs/federated/docs/source_zh_cn/index.rst delete mode 100644 docs/federated/docs/source_zh_cn/interface_description_federated_client.md delete mode 100644 docs/federated/docs/source_zh_cn/java_api_callback.md delete mode 100644 docs/federated/docs/source_zh_cn/java_api_client.md delete mode 100644 docs/federated/docs/source_zh_cn/java_api_clientmanager.md delete mode 100644 docs/federated/docs/source_zh_cn/java_api_dataset.md delete mode 100644 docs/federated/docs/source_zh_cn/java_api_flparameter.md delete mode 100644 docs/federated/docs/source_zh_cn/java_api_syncfljob.md delete mode 100644 docs/federated/docs/source_zh_cn/local_differential_privacy_eval_laplace.md delete mode 100644 docs/federated/docs/source_zh_cn/local_differential_privacy_training_noise.md delete mode 100644 docs/federated/docs/source_zh_cn/local_differential_privacy_training_signds.md delete mode 100644 docs/federated/docs/source_zh_cn/object_detection_application_in_cross_silo.md delete mode 100644 docs/federated/docs/source_zh_cn/pairwise_encryption_training.md delete mode 100644 docs/federated/docs/source_zh_cn/private_set_intersection.md delete mode 100644 docs/federated/docs/source_zh_cn/secure_vertical_federated_learning_with_DP.md delete mode 100644 docs/federated/docs/source_zh_cn/secure_vertical_federated_learning_with_EmbeddingDP.md delete mode 100644 docs/federated/docs/source_zh_cn/secure_vertical_federated_learning_with_TEE.md delete mode 100644 docs/federated/docs/source_zh_cn/sentiment_classification_application.md delete mode 100644 docs/federated/docs/source_zh_cn/split_pangu_alpha_application.md delete mode 100644 docs/federated/docs/source_zh_cn/split_wnd_application.md delete mode 100644 docs/federated/docs/source_zh_cn/vertical_federated_trainer.rst delete mode 100644 docs/federated/docs/source_zh_cn/vfl_communication_compress.md delete mode 100644 docs/graphlearning/docs/Makefile delete mode 100644 docs/graphlearning/docs/_ext/customdocumenter.txt delete mode 100644 docs/graphlearning/docs/_ext/myautosummary.py delete mode 100644 docs/graphlearning/docs/_ext/overwriteautosummary_generate.txt delete mode 100644 docs/graphlearning/docs/_ext/overwriteobjectiondirective.txt delete mode 100644 docs/graphlearning/docs/_ext/overwriteviewcode.txt delete mode 100644 docs/graphlearning/docs/requirements.txt delete mode 100644 docs/graphlearning/docs/source_en/_templates/classtemplate.rst delete mode 100644 docs/graphlearning/docs/source_en/batched_graph_training_GIN.md delete mode 100644 docs/graphlearning/docs/source_en/conf.py delete mode 100644 docs/graphlearning/docs/source_en/faq.md delete mode 100644 docs/graphlearning/docs/source_en/full_training_of_GCN.md delete mode 100644 docs/graphlearning/docs/source_en/images/gat_example.PNG delete mode 100644 docs/graphlearning/docs/source_en/images/graphlearning_en.png delete mode 100644 docs/graphlearning/docs/source_en/index.rst delete mode 100644 docs/graphlearning/docs/source_en/mindspore_graphlearning_install.md delete mode 100644 docs/graphlearning/docs/source_en/single_host_distributed_Graphsage.md delete mode 100644 docs/graphlearning/docs/source_en/spatio_temporal_graph_training_STGCN.md delete mode 100644 docs/graphlearning/docs/source_zh_cn/_templates/classtemplate.rst delete mode 100644 docs/graphlearning/docs/source_zh_cn/batched_graph_training_GIN.md delete mode 100644 docs/graphlearning/docs/source_zh_cn/conf.py delete mode 100644 docs/graphlearning/docs/source_zh_cn/faq.md delete mode 100644 docs/graphlearning/docs/source_zh_cn/full_training_of_GCN.md delete mode 100644 docs/graphlearning/docs/source_zh_cn/images/gat_example.PNG delete mode 100644 docs/graphlearning/docs/source_zh_cn/images/graphlearning_cn.png delete mode 100644 docs/graphlearning/docs/source_zh_cn/index.rst delete mode 100644 docs/graphlearning/docs/source_zh_cn/mindspore_graphlearning_install.md delete mode 100644 docs/graphlearning/docs/source_zh_cn/single_host_distributed_Graphsage.md delete mode 100644 docs/graphlearning/docs/source_zh_cn/spatio_temporal_graph_training_STGCN.md delete mode 100644 docs/mindpandas/docs/Makefile delete mode 100644 docs/mindpandas/docs/_ext/customdocumenter.txt delete mode 100644 docs/mindpandas/docs/_ext/overwriteobjectiondirective.txt delete mode 100644 docs/mindpandas/docs/_ext/overwriteviewcode.txt delete mode 100644 docs/mindpandas/docs/_ext/rename_include.py delete mode 100644 docs/mindpandas/docs/requirements.txt delete mode 100644 docs/mindpandas/docs/source_en/conf.py delete mode 100644 docs/mindpandas/docs/source_en/faq.md delete mode 100644 docs/mindpandas/docs/source_en/images/cluster.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_architecture.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_channel.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_channel_impl.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_channel_multirecv.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_fillna.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_io.png delete mode 100644 docs/mindpandas/docs/source_en/images/mindpandas_multicore.png delete mode 100644 docs/mindpandas/docs/source_en/images/multiprocess1.png delete mode 100644 docs/mindpandas/docs/source_en/images/multiprocess2.png delete mode 100644 docs/mindpandas/docs/source_en/images/multithread.png delete mode 100644 docs/mindpandas/docs/source_en/images/partition.png delete mode 100644 docs/mindpandas/docs/source_en/images/performance_compare.png delete mode 100644 docs/mindpandas/docs/source_en/index.rst delete mode 100644 docs/mindpandas/docs/source_en/mindpandas.DataFrame.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas.Groupby.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas.Others.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas.Series.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas_channel.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas_configuration.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas_install.md delete mode 100644 docs/mindpandas/docs/source_en/mindpandas_quick_start.ipynb delete mode 100644 docs/mindpandas/docs/source_zh_cn/conf.py delete mode 100644 docs/mindpandas/docs/source_zh_cn/faq.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/cluster.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/mindpandas_architecture.png delete mode 100755 docs/mindpandas/docs/source_zh_cn/images/mindpandas_channel.png delete mode 100755 docs/mindpandas/docs/source_zh_cn/images/mindpandas_channel_impl.png delete mode 100755 docs/mindpandas/docs/source_zh_cn/images/mindpandas_channel_multirecv.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/mindpandas_fillna.png delete mode 100755 docs/mindpandas/docs/source_zh_cn/images/mindpandas_io.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/mindpandas_multicore.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/multiprocess1.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/multiprocess2.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/multithread.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/partition.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/images/performance_compare.png delete mode 100644 docs/mindpandas/docs/source_zh_cn/index.rst delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas.DataFrame.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas.Groupby.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas.Others.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas.Series.md delete mode 100755 docs/mindpandas/docs/source_zh_cn/mindpandas_channel.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas_configuration.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas_install.md delete mode 100644 docs/mindpandas/docs/source_zh_cn/mindpandas_quick_start.ipynb delete mode 100644 docs/serving/docs/Makefile delete mode 100644 docs/serving/docs/_ext/customdocumenter.txt delete mode 100644 docs/serving/docs/_ext/overwriteobjectiondirective.txt delete mode 100644 docs/serving/docs/_ext/overwriteviewcode.txt delete mode 100644 docs/serving/docs/_ext/rename_include.py delete mode 100644 docs/serving/docs/requirements.txt delete mode 100644 docs/serving/docs/source_en/client.rst delete mode 100644 docs/serving/docs/source_en/conf.py delete mode 100644 docs/serving/docs/source_en/faq.md delete mode 100644 docs/serving/docs/source_en/images/distributed_servable.png delete mode 100644 docs/serving/docs/source_en/images/matmul_without_batch.png delete mode 100644 docs/serving/docs/source_en/images/ocr_example.png delete mode 100644 docs/serving/docs/source_en/images/parallel.png delete mode 100644 docs/serving/docs/source_en/images/resnet_example.png delete mode 100644 docs/serving/docs/source_en/images/resnet_with_batch.png delete mode 100644 docs/serving/docs/source_en/images/serving_en.png delete mode 100644 docs/serving/docs/source_en/index.rst delete mode 100644 docs/serving/docs/source_en/server.rst delete mode 100644 docs/serving/docs/source_en/serving_distributed_example.md delete mode 100644 docs/serving/docs/source_en/serving_example.md delete mode 100644 docs/serving/docs/source_en/serving_grpc.md delete mode 100644 docs/serving/docs/source_en/serving_install.md delete mode 100644 docs/serving/docs/source_en/serving_model.md delete mode 100644 docs/serving/docs/source_en/serving_multi_subgraphs.md delete mode 100644 docs/serving/docs/source_en/serving_restful.md delete mode 100644 docs/serving/docs/source_zh_cn/conf.py delete mode 100644 docs/serving/docs/source_zh_cn/faq.md delete mode 100644 docs/serving/docs/source_zh_cn/images/distributed_servable.png delete mode 100644 docs/serving/docs/source_zh_cn/images/matmul_without_batch.png delete mode 100644 docs/serving/docs/source_zh_cn/images/ocr_example.png delete mode 100644 docs/serving/docs/source_zh_cn/images/parallel.png delete mode 100644 docs/serving/docs/source_zh_cn/images/resnet_example.png delete mode 100644 docs/serving/docs/source_zh_cn/images/resnet_with_batch.png delete mode 100644 docs/serving/docs/source_zh_cn/images/serving_cn.png delete mode 100644 docs/serving/docs/source_zh_cn/index.rst delete mode 100644 docs/serving/docs/source_zh_cn/serving_distributed_example.md delete mode 100644 docs/serving/docs/source_zh_cn/serving_example.md delete mode 100644 docs/serving/docs/source_zh_cn/serving_grpc.md delete mode 100644 docs/serving/docs/source_zh_cn/serving_install.md delete mode 100644 docs/serving/docs/source_zh_cn/serving_model.md delete mode 100644 docs/serving/docs/source_zh_cn/serving_multi_subgraphs.md delete mode 100644 docs/serving/docs/source_zh_cn/serving_restful.md delete mode 100644 docs/xai/docs/Makefile delete mode 100644 docs/xai/docs/_ext/overwriteobjectiondirective.txt delete mode 100644 docs/xai/docs/_ext/overwriteviewcode.txt delete mode 100644 docs/xai/docs/requirements.txt delete mode 100644 docs/xai/docs/source_en/conf.py delete mode 100644 docs/xai/docs/source_en/images/PLC.png delete mode 100644 docs/xai/docs/source_en/images/grad_cam_saliency.png delete mode 100644 docs/xai/docs/source_en/images/lime_tabular.png delete mode 100644 docs/xai/docs/source_en/images/rise_plus_saliency.png delete mode 100644 docs/xai/docs/source_en/images/saliency_overlay.png delete mode 100644 docs/xai/docs/source_en/images/shap_gradient.png delete mode 100644 docs/xai/docs/source_en/images/shap_kernel.png delete mode 100644 docs/xai/docs/source_en/images/xai_en.png delete mode 100644 docs/xai/docs/source_en/index.rst delete mode 100644 docs/xai/docs/source_en/installation.md delete mode 100644 docs/xai/docs/source_en/mindspore_xai.benchmark.rst delete mode 100644 docs/xai/docs/source_en/mindspore_xai.explainer.rst delete mode 100644 docs/xai/docs/source_en/mindspore_xai.tool.rst delete mode 100644 docs/xai/docs/source_en/mindspore_xai.visual.rst delete mode 100644 docs/xai/docs/source_en/troubleshoot.md delete mode 100644 docs/xai/docs/source_en/using_cv_benchmarks.md delete mode 100644 docs/xai/docs/source_en/using_cv_explainers.md delete mode 100644 docs/xai/docs/source_en/using_tabsim.md delete mode 100644 docs/xai/docs/source_en/using_tabular_explainers.md delete mode 100644 docs/xai/docs/source_en/using_tbnet.md delete mode 100644 docs/xai/docs/source_zh_cn/conf.py delete mode 100644 docs/xai/docs/source_zh_cn/images/PLC.png delete mode 100644 docs/xai/docs/source_zh_cn/images/grad_cam_saliency.png delete mode 100644 docs/xai/docs/source_zh_cn/images/lime_tabular.png delete mode 100644 docs/xai/docs/source_zh_cn/images/rise_plus_saliency.png delete mode 100644 docs/xai/docs/source_zh_cn/images/saliency_overlay.png delete mode 100644 docs/xai/docs/source_zh_cn/images/shap_gradient.png delete mode 100644 docs/xai/docs/source_zh_cn/images/shap_kernel.png delete mode 100644 docs/xai/docs/source_zh_cn/images/xai_cn.png delete mode 100644 docs/xai/docs/source_zh_cn/index.rst delete mode 100644 docs/xai/docs/source_zh_cn/installation.md delete mode 100644 docs/xai/docs/source_zh_cn/mindspore_xai.benchmark.rst delete mode 100644 docs/xai/docs/source_zh_cn/mindspore_xai.explainer.rst delete mode 100644 docs/xai/docs/source_zh_cn/mindspore_xai.tool.rst delete mode 100644 docs/xai/docs/source_zh_cn/mindspore_xai.visual.rst delete mode 100644 docs/xai/docs/source_zh_cn/troubleshoot.md delete mode 100644 docs/xai/docs/source_zh_cn/using_cv_benchmarks.md delete mode 100644 docs/xai/docs/source_zh_cn/using_cv_explainers.md delete mode 100644 docs/xai/docs/source_zh_cn/using_tabsim.md delete mode 100644 docs/xai/docs/source_zh_cn/using_tabular_explainers.md delete mode 100644 docs/xai/docs/source_zh_cn/using_tbnet.md diff --git a/docs/federated/docs/Makefile b/docs/federated/docs/Makefile deleted file mode 100644 index 1eff895270..0000000000 --- a/docs/federated/docs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = source_zh_cn -BUILDDIR = build_zh_cn - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/federated/docs/_ext/overwriteautosummary_generate.txt b/docs/federated/docs/_ext/overwriteautosummary_generate.txt deleted file mode 100644 index 4b0a1b1dd2..0000000000 --- a/docs/federated/docs/_ext/overwriteautosummary_generate.txt +++ /dev/null @@ -1,707 +0,0 @@ -""" - sphinx.ext.autosummary.generate - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Usable as a library or script to generate automatic RST source files for - items referred to in autosummary:: directives. - - Each generated RST file contains a single auto*:: directive which - extracts the docstring of the referred item. - - Example Makefile rule:: - - generate: - sphinx-autogen -o source/generated source/*.rst - - :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -import argparse -import importlib -import inspect -import locale -import os -import pkgutil -import pydoc -import re -import sys -import warnings -from gettext import NullTranslations -from os import path -from typing import Any, Dict, List, NamedTuple, Sequence, Set, Tuple, Type, Union - -from jinja2 import TemplateNotFound -from jinja2.sandbox import SandboxedEnvironment - -import sphinx.locale -from sphinx import __display_version__, package_dir -from sphinx.application import Sphinx -from sphinx.builders import Builder -from sphinx.config import Config -from sphinx.deprecation import RemovedInSphinx50Warning -from sphinx.ext.autodoc import Documenter -from sphinx.ext.autodoc.importer import import_module -from sphinx.ext.autosummary import (ImportExceptionGroup, get_documenter, import_by_name, - import_ivar_by_name) -from sphinx.locale import __ -from sphinx.pycode import ModuleAnalyzer, PycodeError -from sphinx.registry import SphinxComponentRegistry -from sphinx.util import logging, rst, split_full_qualified_name, get_full_modname -from sphinx.util.inspect import getall, safe_getattr -from sphinx.util.osutil import ensuredir -from sphinx.util.template import SphinxTemplateLoader - -logger = logging.getLogger(__name__) - - -class DummyApplication: - """Dummy Application class for sphinx-autogen command.""" - - def __init__(self, translator: NullTranslations) -> None: - self.config = Config() - self.registry = SphinxComponentRegistry() - self.messagelog: List[str] = [] - self.srcdir = "/" - self.translator = translator - self.verbosity = 0 - self._warncount = 0 - self.warningiserror = False - - self.config.add('autosummary_context', {}, True, None) - self.config.add('autosummary_filename_map', {}, True, None) - self.config.add('autosummary_ignore_module_all', True, 'env', bool) - self.config.add('docs_branch', '', True, None) - self.config.add('branch', '', True, None) - self.config.add('cst_module_name', '', True, None) - self.config.add('copy_repo', '', True, None) - self.config.add('giturl', '', True, None) - self.config.add('repo_whl', '', True, None) - self.config.init_values() - - def emit_firstresult(self, *args: Any) -> None: - pass - - -class AutosummaryEntry(NamedTuple): - name: str - path: str - template: str - recursive: bool - - -def setup_documenters(app: Any) -> None: - from sphinx.ext.autodoc import (AttributeDocumenter, ClassDocumenter, DataDocumenter, - DecoratorDocumenter, ExceptionDocumenter, - FunctionDocumenter, MethodDocumenter, ModuleDocumenter, - NewTypeAttributeDocumenter, NewTypeDataDocumenter, - PropertyDocumenter) - documenters: List[Type[Documenter]] = [ - ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter, - FunctionDocumenter, MethodDocumenter, NewTypeAttributeDocumenter, - NewTypeDataDocumenter, AttributeDocumenter, DecoratorDocumenter, PropertyDocumenter, - ] - for documenter in documenters: - app.registry.add_documenter(documenter.objtype, documenter) - - -def _simple_info(msg: str) -> None: - warnings.warn('_simple_info() is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - print(msg) - - -def _simple_warn(msg: str) -> None: - warnings.warn('_simple_warn() is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - print('WARNING: ' + msg, file=sys.stderr) - - -def _underline(title: str, line: str = '=') -> str: - if '\n' in title: - raise ValueError('Can only underline single lines') - return title + '\n' + line * len(title) - - -class AutosummaryRenderer: - """A helper class for rendering.""" - - def __init__(self, app: Union[Builder, Sphinx], template_dir: str = None) -> None: - if isinstance(app, Builder): - warnings.warn('The first argument for AutosummaryRenderer has been ' - 'changed to Sphinx object', - RemovedInSphinx50Warning, stacklevel=2) - if template_dir: - warnings.warn('template_dir argument for AutosummaryRenderer is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - - system_templates_path = [os.path.join(package_dir, 'ext', 'autosummary', 'templates')] - loader = SphinxTemplateLoader(app.srcdir, app.config.templates_path, - system_templates_path) - - self.env = SandboxedEnvironment(loader=loader) - self.env.filters['escape'] = rst.escape - self.env.filters['e'] = rst.escape - self.env.filters['underline'] = _underline - - if isinstance(app, (Sphinx, DummyApplication)): - if app.translator: - self.env.add_extension("jinja2.ext.i18n") - self.env.install_gettext_translations(app.translator) - elif isinstance(app, Builder): - if app.app.translator: - self.env.add_extension("jinja2.ext.i18n") - self.env.install_gettext_translations(app.app.translator) - - def exists(self, template_name: str) -> bool: - """Check if template file exists.""" - warnings.warn('AutosummaryRenderer.exists() is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - try: - self.env.get_template(template_name) - return True - except TemplateNotFound: - return False - - def render(self, template_name: str, context: Dict) -> str: - """Render a template file.""" - try: - template = self.env.get_template(template_name) - except TemplateNotFound: - try: - # objtype is given as template_name - template = self.env.get_template('autosummary/%s.rst' % template_name) - except TemplateNotFound: - # fallback to base.rst - template = self.env.get_template('autosummary/base.rst') - - return template.render(context) - - -# -- Generating output --------------------------------------------------------- - - -class ModuleScanner: - def __init__(self, app: Any, obj: Any) -> None: - self.app = app - self.object = obj - - def get_object_type(self, name: str, value: Any) -> str: - return get_documenter(self.app, value, self.object).objtype - - def is_skipped(self, name: str, value: Any, objtype: str) -> bool: - try: - return self.app.emit_firstresult('autodoc-skip-member', objtype, - name, value, False, {}) - except Exception as exc: - logger.warning(__('autosummary: failed to determine %r to be documented, ' - 'the following exception was raised:\n%s'), - name, exc, type='autosummary') - return False - - def scan(self, imported_members: bool) -> List[str]: - members = [] - for name in members_of(self.object, self.app.config): - try: - value = safe_getattr(self.object, name) - except AttributeError: - value = None - - objtype = self.get_object_type(name, value) - if self.is_skipped(name, value, objtype): - continue - - try: - if inspect.ismodule(value): - imported = True - elif safe_getattr(value, '__module__') != self.object.__name__: - imported = True - else: - imported = False - except AttributeError: - imported = False - - respect_module_all = not self.app.config.autosummary_ignore_module_all - if imported_members: - # list all members up - members.append(name) - elif imported is False: - # list not-imported members - members.append(name) - elif '__all__' in dir(self.object) and respect_module_all: - # list members that have __all__ set - members.append(name) - - return members - - -def members_of(obj: Any, conf: Config) -> Sequence[str]: - """Get the members of ``obj``, possibly ignoring the ``__all__`` module attribute - - Follows the ``conf.autosummary_ignore_module_all`` setting.""" - - if conf.autosummary_ignore_module_all: - return dir(obj) - else: - return getall(obj) or dir(obj) - - -def generate_autosummary_content(name: str, obj: Any, parent: Any, - template: AutosummaryRenderer, template_name: str, - imported_members: bool, app: Any, - recursive: bool, context: Dict, - modname: str = None, qualname: str = None) -> str: - doc = get_documenter(app, obj, parent) - - def skip_member(obj: Any, name: str, objtype: str) -> bool: - try: - return app.emit_firstresult('autodoc-skip-member', objtype, name, - obj, False, {}) - except Exception as exc: - logger.warning(__('autosummary: failed to determine %r to be documented, ' - 'the following exception was raised:\n%s'), - name, exc, type='autosummary') - return False - - def get_class_members(obj: Any) -> Dict[str, Any]: - members = sphinx.ext.autodoc.get_class_members(obj, [qualname], safe_getattr) - return {name: member.object for name, member in members.items()} - - def get_module_members(obj: Any) -> Dict[str, Any]: - members = {} - for name in members_of(obj, app.config): - try: - members[name] = safe_getattr(obj, name) - except AttributeError: - continue - return members - - def get_all_members(obj: Any) -> Dict[str, Any]: - if doc.objtype == "module": - return get_module_members(obj) - elif doc.objtype == "class": - return get_class_members(obj) - return {} - - def get_members(obj: Any, types: Set[str], include_public: List[str] = [], - imported: bool = True) -> Tuple[List[str], List[str]]: - items: List[str] = [] - public: List[str] = [] - - all_members = get_all_members(obj) - for name, value in all_members.items(): - documenter = get_documenter(app, value, obj) - if documenter.objtype in types: - # skip imported members if expected - if imported or getattr(value, '__module__', None) == obj.__name__: - skipped = skip_member(value, name, documenter.objtype) - if skipped is True: - pass - elif skipped is False: - # show the member forcedly - items.append(name) - public.append(name) - else: - items.append(name) - if name in include_public or not name.startswith('_'): - # considers member as public - public.append(name) - return public, items - - def get_module_attrs(members: Any) -> Tuple[List[str], List[str]]: - """Find module attributes with docstrings.""" - attrs, public = [], [] - try: - analyzer = ModuleAnalyzer.for_module(name) - attr_docs = analyzer.find_attr_docs() - for namespace, attr_name in attr_docs: - if namespace == '' and attr_name in members: - attrs.append(attr_name) - if not attr_name.startswith('_'): - public.append(attr_name) - except PycodeError: - pass # give up if ModuleAnalyzer fails to parse code - return public, attrs - - def get_modules(obj: Any) -> Tuple[List[str], List[str]]: - items: List[str] = [] - for _, modname, _ispkg in pkgutil.iter_modules(obj.__path__): - fullname = name + '.' + modname - try: - module = import_module(fullname) - if module and hasattr(module, '__sphinx_mock__'): - continue - except ImportError: - pass - - items.append(fullname) - public = [x for x in items if not x.split('.')[-1].startswith('_')] - return public, items - - ns: Dict[str, Any] = {} - ns.update(context) - - if doc.objtype == 'module': - scanner = ModuleScanner(app, obj) - ns['members'] = scanner.scan(imported_members) - ns['functions'], ns['all_functions'] = \ - get_members(obj, {'function'}, imported=imported_members) - ns['classes'], ns['all_classes'] = \ - get_members(obj, {'class'}, imported=imported_members) - ns['exceptions'], ns['all_exceptions'] = \ - get_members(obj, {'exception'}, imported=imported_members) - ns['attributes'], ns['all_attributes'] = \ - get_module_attrs(ns['members']) - ispackage = hasattr(obj, '__path__') - if ispackage and recursive: - ns['modules'], ns['all_modules'] = get_modules(obj) - elif doc.objtype == 'class': - ns['members'] = dir(obj) - ns['inherited_members'] = \ - set(dir(obj)) - set(obj.__dict__.keys()) - ns['methods'], ns['all_methods'] = \ - get_members(obj, {'method'}, ['__init__']) - ns['attributes'], ns['all_attributes'] = \ - get_members(obj, {'attribute', 'property'}) - - if modname is None or qualname is None: - modname, qualname = split_full_qualified_name(name) - - if doc.objtype in ('method', 'attribute', 'property'): - ns['class'] = qualname.rsplit(".", 1)[0] - - if doc.objtype in ('class',): - shortname = qualname - else: - shortname = qualname.rsplit(".", 1)[-1] - - ns['fullname'] = name - ns['module'] = modname - ns['objname'] = qualname - ns['name'] = shortname - - ns['objtype'] = doc.objtype - ns['underline'] = len(name) * '=' - - if template_name: - return template.render(template_name, ns) - else: - return template.render(doc.objtype, ns) - - -def generate_autosummary_docs(sources: List[str], output_dir: str = None, - suffix: str = '.rst', base_path: str = None, - builder: Builder = None, template_dir: str = None, - imported_members: bool = False, app: Any = None, - overwrite: bool = True, encoding: str = 'utf-8') -> None: - - if builder: - warnings.warn('builder argument for generate_autosummary_docs() is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - - if template_dir: - warnings.warn('template_dir argument for generate_autosummary_docs() is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - - showed_sources = list(sorted(sources)) - if len(showed_sources) > 20: - showed_sources = showed_sources[:10] + ['...'] + showed_sources[-10:] - logger.info(__('[autosummary] generating autosummary for: %s') % - ', '.join(showed_sources)) - - if output_dir: - logger.info(__('[autosummary] writing to %s') % output_dir) - - if base_path is not None: - sources = [os.path.join(base_path, filename) for filename in sources] - - template = AutosummaryRenderer(app) - - # read - items = find_autosummary_in_files(sources) - - # keep track of new files - new_files = [] - - if app: - filename_map = app.config.autosummary_filename_map - else: - filename_map = {} - - # write - for entry in sorted(set(items), key=str): - if entry.path is None: - # The corresponding autosummary:: directive did not have - # a :toctree: option - continue - - path = output_dir or os.path.abspath(entry.path) - ensuredir(path) - - try: - name, obj, parent, modname = import_by_name(entry.name, grouped_exception=True) - qualname = name.replace(modname + ".", "") - except ImportExceptionGroup as exc: - try: - # try to import as an instance attribute - name, obj, parent, modname = import_ivar_by_name(entry.name) - qualname = name.replace(modname + ".", "") - except ImportError as exc2: - if exc2.__cause__: - exceptions: List[BaseException] = exc.exceptions + [exc2.__cause__] - else: - exceptions = exc.exceptions + [exc2] - - errors = list(set("* %s: %s" % (type(e).__name__, e) for e in exceptions)) - logger.warning(__('[autosummary] failed to import %s.\nPossible hints:\n%s'), - entry.name, '\n'.join(errors)) - continue - - context: Dict[str, Any] = {} - if app: - context.update(app.config.autosummary_context) - - content = generate_autosummary_content(name, obj, parent, template, entry.template, - imported_members, app, entry.recursive, context, - modname, qualname) - try: - py_source_rel = get_full_modname(modname, qualname).replace('.', '/') + '.py' - except: - logger.warning(name) - py_source_rel = '' - - re_view = f"\n.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/{app.config.docs_branch}/" + \ - f"resource/_static/logo_source_en.svg\n :target: " + app.config.giturl + \ - f"{app.config.copy_repo}/blob/{app.config.branch}/" + app.config.repo_whl + \ - py_source_rel.split(app.config.cst_module_name)[-1] + '\n :alt: View Source On Gitee\n\n' - - if re_view not in content and py_source_rel: - content = re.sub('([=]{5,})\n', r'\1\n' + re_view, content, 1) - filename = os.path.join(path, filename_map.get(name, name) + suffix) - if os.path.isfile(filename): - with open(filename, encoding=encoding) as f: - old_content = f.read() - - if content == old_content: - continue - elif overwrite: # content has changed - with open(filename, 'w', encoding=encoding) as f: - f.write(content) - new_files.append(filename) - else: - with open(filename, 'w', encoding=encoding) as f: - f.write(content) - new_files.append(filename) - - # descend recursively to new files - if new_files: - generate_autosummary_docs(new_files, output_dir=output_dir, - suffix=suffix, base_path=base_path, - builder=builder, template_dir=template_dir, - imported_members=imported_members, app=app, - overwrite=overwrite) - - -# -- Finding documented entries in files --------------------------------------- - -def find_autosummary_in_files(filenames: List[str]) -> List[AutosummaryEntry]: - """Find out what items are documented in source/*.rst. - - See `find_autosummary_in_lines`. - """ - documented: List[AutosummaryEntry] = [] - for filename in filenames: - with open(filename, encoding='utf-8', errors='ignore') as f: - lines = f.read().splitlines() - documented.extend(find_autosummary_in_lines(lines, filename=filename)) - return documented - - -def find_autosummary_in_docstring(name: str, module: str = None, filename: str = None - ) -> List[AutosummaryEntry]: - """Find out what items are documented in the given object's docstring. - - See `find_autosummary_in_lines`. - """ - if module: - warnings.warn('module argument for find_autosummary_in_docstring() is deprecated.', - RemovedInSphinx50Warning, stacklevel=2) - - try: - real_name, obj, parent, modname = import_by_name(name, grouped_exception=True) - lines = pydoc.getdoc(obj).splitlines() - return find_autosummary_in_lines(lines, module=name, filename=filename) - except AttributeError: - pass - except ImportExceptionGroup as exc: - errors = list(set("* %s: %s" % (type(e).__name__, e) for e in exc.exceptions)) - print('Failed to import %s.\nPossible hints:\n%s' % (name, '\n'.join(errors))) - except SystemExit: - print("Failed to import '%s'; the module executes module level " - "statement and it might call sys.exit()." % name) - return [] - - -def find_autosummary_in_lines(lines: List[str], module: str = None, filename: str = None - ) -> List[AutosummaryEntry]: - """Find out what items appear in autosummary:: directives in the - given lines. - - Returns a list of (name, toctree, template) where *name* is a name - of an object and *toctree* the :toctree: path of the corresponding - autosummary directive (relative to the root of the file name), and - *template* the value of the :template: option. *toctree* and - *template* ``None`` if the directive does not have the - corresponding options set. - """ - autosummary_re = re.compile(r'^(\s*)\.\.\s+(ms[a-z]*)?autosummary::\s*') - automodule_re = re.compile( - r'^\s*\.\.\s+automodule::\s*([A-Za-z0-9_.]+)\s*$') - module_re = re.compile( - r'^\s*\.\.\s+(current)?module::\s*([a-zA-Z0-9_.]+)\s*$') - autosummary_item_re = re.compile(r'^\s+(~?[_a-zA-Z][a-zA-Z0-9_.]*)\s*.*?') - recursive_arg_re = re.compile(r'^\s+:recursive:\s*$') - toctree_arg_re = re.compile(r'^\s+:toctree:\s*(.*?)\s*$') - template_arg_re = re.compile(r'^\s+:template:\s*(.*?)\s*$') - - documented: List[AutosummaryEntry] = [] - - recursive = False - toctree: str = None - template = None - current_module = module - in_autosummary = False - base_indent = "" - - for line in lines: - if in_autosummary: - m = recursive_arg_re.match(line) - if m: - recursive = True - continue - - m = toctree_arg_re.match(line) - if m: - toctree = m.group(1) - if filename: - toctree = os.path.join(os.path.dirname(filename), - toctree) - continue - - m = template_arg_re.match(line) - if m: - template = m.group(1).strip() - continue - - if line.strip().startswith(':'): - continue # skip options - - m = autosummary_item_re.match(line) - if m: - name = m.group(1).strip() - if name.startswith('~'): - name = name[1:] - if current_module and \ - not name.startswith(current_module + '.'): - name = "%s.%s" % (current_module, name) - documented.append(AutosummaryEntry(name, toctree, template, recursive)) - continue - - if not line.strip() or line.startswith(base_indent + " "): - continue - - in_autosummary = False - - m = autosummary_re.match(line) - if m: - in_autosummary = True - base_indent = m.group(1) - recursive = False - toctree = None - template = None - continue - - m = automodule_re.search(line) - if m: - current_module = m.group(1).strip() - # recurse into the automodule docstring - documented.extend(find_autosummary_in_docstring( - current_module, filename=filename)) - continue - - m = module_re.match(line) - if m: - current_module = m.group(2) - continue - - return documented - - -def get_parser() -> argparse.ArgumentParser: - parser = argparse.ArgumentParser( - usage='%(prog)s [OPTIONS] ...', - epilog=__('For more information, visit .'), - description=__(""" -Generate ReStructuredText using autosummary directives. - -sphinx-autogen is a frontend to sphinx.ext.autosummary.generate. It generates -the reStructuredText files from the autosummary directives contained in the -given input files. - -The format of the autosummary directive is documented in the -``sphinx.ext.autosummary`` Python module and can be read using:: - - pydoc sphinx.ext.autosummary -""")) - - parser.add_argument('--version', action='version', dest='show_version', - version='%%(prog)s %s' % __display_version__) - - parser.add_argument('source_file', nargs='+', - help=__('source files to generate rST files for')) - - parser.add_argument('-o', '--output-dir', action='store', - dest='output_dir', - help=__('directory to place all output in')) - parser.add_argument('-s', '--suffix', action='store', dest='suffix', - default='rst', - help=__('default suffix for files (default: ' - '%(default)s)')) - parser.add_argument('-t', '--templates', action='store', dest='templates', - default=None, - help=__('custom template directory (default: ' - '%(default)s)')) - parser.add_argument('-i', '--imported-members', action='store_true', - dest='imported_members', default=False, - help=__('document imported members (default: ' - '%(default)s)')) - parser.add_argument('-a', '--respect-module-all', action='store_true', - dest='respect_module_all', default=False, - help=__('document exactly the members in module __all__ attribute. ' - '(default: %(default)s)')) - - return parser - - -def main(argv: List[str] = sys.argv[1:]) -> None: - sphinx.locale.setlocale(locale.LC_ALL, '') - sphinx.locale.init_console(os.path.join(package_dir, 'locale'), 'sphinx') - translator, _ = sphinx.locale.init([], None) - - app = DummyApplication(translator) - logging.setup(app, sys.stdout, sys.stderr) # type: ignore - setup_documenters(app) - args = get_parser().parse_args(argv) - - if args.templates: - app.config.templates_path.append(path.abspath(args.templates)) - app.config.autosummary_ignore_module_all = not args.respect_module_all # type: ignore - - generate_autosummary_docs(args.source_file, args.output_dir, - '.' + args.suffix, - imported_members=args.imported_members, - app=app) - - -if __name__ == '__main__': - main() diff --git a/docs/federated/docs/_ext/overwriteobjectiondirective.txt b/docs/federated/docs/_ext/overwriteobjectiondirective.txt deleted file mode 100644 index e7ffdfe09a..0000000000 --- a/docs/federated/docs/_ext/overwriteobjectiondirective.txt +++ /dev/null @@ -1,374 +0,0 @@ -""" - sphinx.directives - ~~~~~~~~~~~~~~~~~ - - Handlers for additional ReST directives. - - :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -import re -import inspect -import importlib -from functools import reduce -from typing import TYPE_CHECKING, Any, Dict, Generic, List, Tuple, TypeVar, cast - -from docutils import nodes -from docutils.nodes import Node -from docutils.parsers.rst import directives, roles - -from sphinx import addnodes -from sphinx.addnodes import desc_signature -from sphinx.deprecation import RemovedInSphinx50Warning, deprecated_alias -from sphinx.util import docutils, logging -from sphinx.util.docfields import DocFieldTransformer, Field, TypedField -from sphinx.util.docutils import SphinxDirective -from sphinx.util.typing import OptionSpec - -if TYPE_CHECKING: - from sphinx.application import Sphinx - - -# RE to strip backslash escapes -nl_escape_re = re.compile(r'\\\n') -strip_backslash_re = re.compile(r'\\(.)') - -T = TypeVar('T') -logger = logging.getLogger(__name__) - -def optional_int(argument: str) -> int: - """ - Check for an integer argument or None value; raise ``ValueError`` if not. - """ - if argument is None: - return None - else: - value = int(argument) - if value < 0: - raise ValueError('negative value; must be positive or zero') - return value - -def get_api(fullname): - """ - 获取接口对象。 - - :param fullname: 接口名全称 - :return: 属性对象或None(如果不存在) - """ - main_module = fullname.split('.')[0] - main_import = importlib.import_module(main_module) - - try: - return reduce(getattr, fullname.split('.')[1:], main_import) - except AttributeError: - return None - -def get_example(name: str): - try: - api_doc = inspect.getdoc(get_api(name)) - example_str = re.findall(r'Examples:\n([\w\W]*?)(\n\n|$)', api_doc) - if not example_str: - return [] - example_str = re.sub(r'\n\s+', r'\n', example_str[0][0]) - example_str = example_str.strip() - example_list = example_str.split('\n') - return ["", "**样例:**", ""] + example_list + [""] - except: - return [] - -def get_platforms(name: str): - try: - api_doc = inspect.getdoc(get_api(name)) - example_str = re.findall(r'Supported Platforms:\n\s+(.*?)\n\n', api_doc) - if not example_str: - example_str_leak = re.findall(r'Supported Platforms:\n\s+(.*)', api_doc) - if example_str_leak: - example_str = example_str_leak[0].strip() - example_list = example_str.split('\n') - example_list = [' ' + example_list[0]] - return ["", "支持平台:"] + example_list + [""] - return [] - example_str = example_str[0].strip() - example_list = example_str.split('\n') - example_list = [' ' + example_list[0]] - return ["", "支持平台:"] + example_list + [""] - except: - return [] - -class ObjectDescription(SphinxDirective, Generic[T]): - """ - Directive to describe a class, function or similar object. Not used - directly, but subclassed (in domain-specific directives) to add custom - behavior. - """ - - has_content = True - required_arguments = 1 - optional_arguments = 0 - final_argument_whitespace = True - option_spec: OptionSpec = { - 'noindex': directives.flag, - } # type: Dict[str, DirectiveOption] - - # types of doc fields that this directive handles, see sphinx.util.docfields - doc_field_types: List[Field] = [] - domain: str = None - objtype: str = None - indexnode: addnodes.index = None - - # Warning: this might be removed in future version. Don't touch this from extensions. - _doc_field_type_map = {} # type: Dict[str, Tuple[Field, bool]] - - def get_field_type_map(self) -> Dict[str, Tuple[Field, bool]]: - if self._doc_field_type_map == {}: - self._doc_field_type_map = {} - for field in self.doc_field_types: - for name in field.names: - self._doc_field_type_map[name] = (field, False) - - if field.is_typed: - typed_field = cast(TypedField, field) - for name in typed_field.typenames: - self._doc_field_type_map[name] = (field, True) - - return self._doc_field_type_map - - def get_signatures(self) -> List[str]: - """ - Retrieve the signatures to document from the directive arguments. By - default, signatures are given as arguments, one per line. - - Backslash-escaping of newlines is supported. - """ - lines = nl_escape_re.sub('', self.arguments[0]).split('\n') - if self.config.strip_signature_backslash: - # remove backslashes to support (dummy) escapes; helps Vim highlighting - return [strip_backslash_re.sub(r'\1', line.strip()) for line in lines] - else: - return [line.strip() for line in lines] - - def handle_signature(self, sig: str, signode: desc_signature) -> Any: - """ - Parse the signature *sig* into individual nodes and append them to - *signode*. If ValueError is raised, parsing is aborted and the whole - *sig* is put into a single desc_name node. - - The return value should be a value that identifies the object. It is - passed to :meth:`add_target_and_index()` unchanged, and otherwise only - used to skip duplicates. - """ - raise ValueError - - def add_target_and_index(self, name: Any, sig: str, signode: desc_signature) -> None: - """ - Add cross-reference IDs and entries to self.indexnode, if applicable. - - *name* is whatever :meth:`handle_signature()` returned. - """ - return # do nothing by default - - def before_content(self) -> None: - """ - Called before parsing content. Used to set information about the current - directive context on the build environment. - """ - pass - - def transform_content(self, contentnode: addnodes.desc_content) -> None: - """ - Called after creating the content through nested parsing, - but before the ``object-description-transform`` event is emitted, - and before the info-fields are transformed. - Can be used to manipulate the content. - """ - pass - - def after_content(self) -> None: - """ - Called after parsing content. Used to reset information about the - current directive context on the build environment. - """ - pass - - def check_class_end(self, content): - for i in content: - if not i.startswith('.. include::') and i != "\n" and i != "": - return False - return True - - def extend_items(self, rst_file, start_num, num): - ls = [] - for i in range(1, num+1): - ls.append((rst_file, start_num+i)) - return ls - - def run(self) -> List[Node]: - """ - Main directive entry function, called by docutils upon encountering the - directive. - - This directive is meant to be quite easily subclassable, so it delegates - to several additional methods. What it does: - - * find out if called as a domain-specific directive, set self.domain - * create a `desc` node to fit all description inside - * parse standard options, currently `noindex` - * create an index node if needed as self.indexnode - * parse all given signatures (as returned by self.get_signatures()) - using self.handle_signature(), which should either return a name - or raise ValueError - * add index entries using self.add_target_and_index() - * parse the content and handle doc fields in it - """ - if ':' in self.name: - self.domain, self.objtype = self.name.split(':', 1) - else: - self.domain, self.objtype = '', self.name - self.indexnode = addnodes.index(entries=[]) - - node = addnodes.desc() - node.document = self.state.document - node['domain'] = self.domain - # 'desctype' is a backwards compatible attribute - node['objtype'] = node['desctype'] = self.objtype - node['noindex'] = noindex = ('noindex' in self.options) - if self.domain: - node['classes'].append(self.domain) - node['classes'].append(node['objtype']) - - self.names: List[T] = [] - signatures = self.get_signatures() - for sig in signatures: - # add a signature node for each signature in the current unit - # and add a reference target for it - signode = addnodes.desc_signature(sig, '') - self.set_source_info(signode) - node.append(signode) - try: - # name can also be a tuple, e.g. (classname, objname); - # this is strictly domain-specific (i.e. no assumptions may - # be made in this base class) - name = self.handle_signature(sig, signode) - except ValueError: - # signature parsing failed - signode.clear() - signode += addnodes.desc_name(sig, sig) - continue # we don't want an index entry here - if name not in self.names: - self.names.append(name) - if not noindex: - # only add target and index entry if this is the first - # description of the object with this name in this desc block - self.add_target_and_index(name, sig, signode) - - contentnode = addnodes.desc_content() - node.append(contentnode) - if self.names: - # needed for association of version{added,changed} directives - self.env.temp_data['object'] = self.names[0] - self.before_content() - try: - example = get_example(self.names[0][0]) - platforms = get_platforms(self.names[0][0]) - except Exception as e: - example = '' - platforms = '' - logger.warning(f'Error API names in {self.arguments[0]}.') - logger.warning(f'{e}') - extra = platforms + example - if extra: - if self.objtype == "method": - self.content.data.extend(extra) - else: - index_num = 0 - for num, i in enumerate(self.content.data): - if i.startswith('.. py:method::') or self.check_class_end(self.content.data[num:]): - index_num = num - break - if index_num: - count = len(self.content.data) - for i in extra: - self.content.data.insert(index_num-count, i) - else: - self.content.data.extend(extra) - try: - self.content.items.extend(self.extend_items(self.content.items[0][0], self.content.items[-1][1], len(extra))) - except Exception as e: - logger.warning(f'{e}') - self.state.nested_parse(self.content, self.content_offset, contentnode) - self.transform_content(contentnode) - self.env.app.emit('object-description-transform', - self.domain, self.objtype, contentnode) - DocFieldTransformer(self).transform_all(contentnode) - self.env.temp_data['object'] = None - self.after_content() - return [self.indexnode, node] - - -class DefaultRole(SphinxDirective): - """ - Set the default interpreted text role. Overridden from docutils. - """ - - optional_arguments = 1 - final_argument_whitespace = False - - def run(self) -> List[Node]: - if not self.arguments: - docutils.unregister_role('') - return [] - role_name = self.arguments[0] - role, messages = roles.role(role_name, self.state_machine.language, - self.lineno, self.state.reporter) - if role: - docutils.register_role('', role) - self.env.temp_data['default_role'] = role_name - else: - literal_block = nodes.literal_block(self.block_text, self.block_text) - reporter = self.state.reporter - error = reporter.error('Unknown interpreted text role "%s".' % role_name, - literal_block, line=self.lineno) - messages += [error] - - return cast(List[nodes.Node], messages) - - -class DefaultDomain(SphinxDirective): - """ - Directive to (re-)set the default domain for this source file. - """ - - has_content = False - required_arguments = 1 - optional_arguments = 0 - final_argument_whitespace = False - option_spec = {} # type: Dict - - def run(self) -> List[Node]: - domain_name = self.arguments[0].lower() - # if domain_name not in env.domains: - # # try searching by label - # for domain in env.domains.values(): - # if domain.label.lower() == domain_name: - # domain_name = domain.name - # break - self.env.temp_data['default_domain'] = self.env.domains.get(domain_name) - return [] - -def setup(app: "Sphinx") -> Dict[str, Any]: - app.add_config_value("strip_signature_backslash", False, 'env') - directives.register_directive('default-role', DefaultRole) - directives.register_directive('default-domain', DefaultDomain) - directives.register_directive('describe', ObjectDescription) - # new, more consistent, name - directives.register_directive('object', ObjectDescription) - - app.add_event('object-description-transform') - - return { - 'version': 'builtin', - 'parallel_read_safe': True, - 'parallel_write_safe': True, - } - diff --git a/docs/federated/docs/_ext/overwriteviewcode.txt b/docs/federated/docs/_ext/overwriteviewcode.txt deleted file mode 100644 index 172780ec56..0000000000 --- a/docs/federated/docs/_ext/overwriteviewcode.txt +++ /dev/null @@ -1,378 +0,0 @@ -""" - sphinx.ext.viewcode - ~~~~~~~~~~~~~~~~~~~ - - Add links to module code in Python object descriptions. - - :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -import posixpath -import traceback -import warnings -from os import path -from typing import Any, Dict, Generator, Iterable, Optional, Set, Tuple, cast - -from docutils import nodes -from docutils.nodes import Element, Node - -import sphinx -from sphinx import addnodes -from sphinx.application import Sphinx -from sphinx.builders import Builder -from sphinx.builders.html import StandaloneHTMLBuilder -from sphinx.deprecation import RemovedInSphinx50Warning -from sphinx.environment import BuildEnvironment -from sphinx.locale import _, __ -from sphinx.pycode import ModuleAnalyzer -from sphinx.transforms.post_transforms import SphinxPostTransform -from sphinx.util import get_full_modname, logging, status_iterator -from sphinx.util.nodes import make_refnode - - -logger = logging.getLogger(__name__) - - -OUTPUT_DIRNAME = '_modules' - - -class viewcode_anchor(Element): - """Node for viewcode anchors. - - This node will be processed in the resolving phase. - For viewcode supported builders, they will be all converted to the anchors. - For not supported builders, they will be removed. - """ - - -def _get_full_modname(app: Sphinx, modname: str, attribute: str) -> Optional[str]: - try: - return get_full_modname(modname, attribute) - except AttributeError: - # sphinx.ext.viewcode can't follow class instance attribute - # then AttributeError logging output only verbose mode. - logger.verbose('Didn\'t find %s in %s', attribute, modname) - return None - except Exception as e: - # sphinx.ext.viewcode follow python domain directives. - # because of that, if there are no real modules exists that specified - # by py:function or other directives, viewcode emits a lot of warnings. - # It should be displayed only verbose mode. - logger.verbose(traceback.format_exc().rstrip()) - logger.verbose('viewcode can\'t import %s, failed with error "%s"', modname, e) - return None - - -def is_supported_builder(builder: Builder) -> bool: - if builder.format != 'html': - return False - elif builder.name == 'singlehtml': - return False - elif builder.name.startswith('epub') and not builder.config.viewcode_enable_epub: - return False - else: - return True - - -def doctree_read(app: Sphinx, doctree: Node) -> None: - env = app.builder.env - if not hasattr(env, '_viewcode_modules'): - env._viewcode_modules = {} # type: ignore - - def has_tag(modname: str, fullname: str, docname: str, refname: str) -> bool: - entry = env._viewcode_modules.get(modname, None) # type: ignore - if entry is False: - return False - - code_tags = app.emit_firstresult('viewcode-find-source', modname) - if code_tags is None: - try: - analyzer = ModuleAnalyzer.for_module(modname) - analyzer.find_tags() - except Exception: - env._viewcode_modules[modname] = False # type: ignore - return False - - code = analyzer.code - tags = analyzer.tags - else: - code, tags = code_tags - - if entry is None or entry[0] != code: - entry = code, tags, {}, refname - env._viewcode_modules[modname] = entry # type: ignore - _, tags, used, _ = entry - if fullname in tags: - used[fullname] = docname - return True - - return False - - for objnode in list(doctree.findall(addnodes.desc)): - if objnode.get('domain') != 'py': - continue - names: Set[str] = set() - for signode in objnode: - if not isinstance(signode, addnodes.desc_signature): - continue - modname = signode.get('module') - fullname = signode.get('fullname') - try: - if fullname and modname==None: - if fullname.split('.')[-1].lower() == fullname.split('.')[-1] and fullname.split('.')[-2].lower() != fullname.split('.')[-2]: - modname = '.'.join(fullname.split('.')[:-2]) - fullname = '.'.join(fullname.split('.')[-2:]) - else: - modname = '.'.join(fullname.split('.')[:-1]) - fullname = fullname.split('.')[-1] - fullname_new = fullname - except Exception: - logger.warning(f'error_modename:{modname}') - logger.warning(f'error_fullname:{fullname}') - refname = modname - if env.config.viewcode_follow_imported_members: - new_modname = app.emit_firstresult( - 'viewcode-follow-imported', modname, fullname, - ) - if not new_modname: - new_modname = _get_full_modname(app, modname, fullname) - modname = new_modname - # logger.warning(f'new_modename:{modname}') - if not modname: - continue - # fullname = signode.get('fullname') - # if fullname and modname==None: - fullname = fullname_new - if not has_tag(modname, fullname, env.docname, refname): - continue - if fullname in names: - # only one link per name, please - continue - names.add(fullname) - pagename = posixpath.join(OUTPUT_DIRNAME, modname.replace('.', '/')) - signode += viewcode_anchor(reftarget=pagename, refid=fullname, refdoc=env.docname) - - -def env_merge_info(app: Sphinx, env: BuildEnvironment, docnames: Iterable[str], - other: BuildEnvironment) -> None: - if not hasattr(other, '_viewcode_modules'): - return - # create a _viewcode_modules dict on the main environment - if not hasattr(env, '_viewcode_modules'): - env._viewcode_modules = {} # type: ignore - # now merge in the information from the subprocess - for modname, entry in other._viewcode_modules.items(): # type: ignore - if modname not in env._viewcode_modules: # type: ignore - env._viewcode_modules[modname] = entry # type: ignore - else: - if env._viewcode_modules[modname]: # type: ignore - used = env._viewcode_modules[modname][2] # type: ignore - for fullname, docname in entry[2].items(): - if fullname not in used: - used[fullname] = docname - - -def env_purge_doc(app: Sphinx, env: BuildEnvironment, docname: str) -> None: - modules = getattr(env, '_viewcode_modules', {}) - - for modname, entry in list(modules.items()): - if entry is False: - continue - - code, tags, used, refname = entry - for fullname in list(used): - if used[fullname] == docname: - used.pop(fullname) - - if len(used) == 0: - modules.pop(modname) - - -class ViewcodeAnchorTransform(SphinxPostTransform): - """Convert or remove viewcode_anchor nodes depends on builder.""" - default_priority = 100 - - def run(self, **kwargs: Any) -> None: - if is_supported_builder(self.app.builder): - self.convert_viewcode_anchors() - else: - self.remove_viewcode_anchors() - - def convert_viewcode_anchors(self) -> None: - for node in self.document.findall(viewcode_anchor): - anchor = nodes.inline('', _('[源代码]'), classes=['viewcode-link']) - refnode = make_refnode(self.app.builder, node['refdoc'], node['reftarget'], - node['refid'], anchor) - node.replace_self(refnode) - - def remove_viewcode_anchors(self) -> None: - for node in list(self.document.findall(viewcode_anchor)): - node.parent.remove(node) - - -def missing_reference(app: Sphinx, env: BuildEnvironment, node: Element, contnode: Node - ) -> Optional[Node]: - # resolve our "viewcode" reference nodes -- they need special treatment - if node['reftype'] == 'viewcode': - warnings.warn('viewcode extension is no longer use pending_xref node. ' - 'Please update your extension.', RemovedInSphinx50Warning) - return make_refnode(app.builder, node['refdoc'], node['reftarget'], - node['refid'], contnode) - - return None - - -def get_module_filename(app: Sphinx, modname: str) -> Optional[str]: - """Get module filename for *modname*.""" - source_info = app.emit_firstresult('viewcode-find-source', modname) - if source_info: - return None - else: - try: - filename, source = ModuleAnalyzer.get_module_source(modname) - return filename - except Exception: - return None - - -def should_generate_module_page(app: Sphinx, modname: str) -> bool: - """Check generation of module page is needed.""" - module_filename = get_module_filename(app, modname) - if module_filename is None: - # Always (re-)generate module page when module filename is not found. - return True - - builder = cast(StandaloneHTMLBuilder, app.builder) - basename = modname.replace('.', '/') + builder.out_suffix - page_filename = path.join(app.outdir, '_modules/', basename) - - try: - if path.getmtime(module_filename) <= path.getmtime(page_filename): - # generation is not needed if the HTML page is newer than module file. - return False - except IOError: - pass - - return True - - -def collect_pages(app: Sphinx) -> Generator[Tuple[str, Dict[str, Any], str], None, None]: - env = app.builder.env - if not hasattr(env, '_viewcode_modules'): - return - if not is_supported_builder(app.builder): - return - highlighter = app.builder.highlighter # type: ignore - urito = app.builder.get_relative_uri - - modnames = set(env._viewcode_modules) # type: ignore - - for modname, entry in status_iterator( - sorted(env._viewcode_modules.items()), # type: ignore - __('highlighting module code... '), "blue", - len(env._viewcode_modules), # type: ignore - app.verbosity, lambda x: x[0]): - if not entry: - continue - if not should_generate_module_page(app, modname): - continue - - code, tags, used, refname = entry - # construct a page name for the highlighted source - pagename = posixpath.join(OUTPUT_DIRNAME, modname.replace('.', '/')) - # highlight the source using the builder's highlighter - if env.config.highlight_language in ('python3', 'default', 'none'): - lexer = env.config.highlight_language - else: - lexer = 'python' - highlighted = highlighter.highlight_block(code, lexer, linenos=False) - # split the code into lines - lines = highlighted.splitlines() - # split off wrap markup from the first line of the actual code - before, after = lines[0].split('
')
-        lines[0:1] = [before + '
', after]
-        # nothing to do for the last line; it always starts with 
anyway - # now that we have code lines (starting at index 1), insert anchors for - # the collected tags (HACK: this only works if the tag boundaries are - # properly nested!) - maxindex = len(lines) - 1 - for name, docname in used.items(): - type, start, end = tags[name] - backlink = urito(pagename, docname) + '#' + refname + '.' + name - lines[start] = ( - '
%s' % (name, backlink, _('[文档]')) + - lines[start]) - lines[min(end, maxindex)] += '
' - # try to find parents (for submodules) - parents = [] - parent = modname - while '.' in parent: - parent = parent.rsplit('.', 1)[0] - if parent in modnames: - parents.append({ - 'link': urito(pagename, - posixpath.join(OUTPUT_DIRNAME, parent.replace('.', '/'))), - 'title': parent}) - parents.append({'link': urito(pagename, posixpath.join(OUTPUT_DIRNAME, 'index')), - 'title': _('Module code')}) - parents.reverse() - # putting it all together - context = { - 'parents': parents, - 'title': modname, - 'body': (_('

Source code for %s

') % modname + - '\n'.join(lines)), - } - yield (pagename, context, 'page.html') - - if not modnames: - return - - html = ['\n'] - # the stack logic is needed for using nested lists for submodules - stack = [''] - for modname in sorted(modnames): - if modname.startswith(stack[-1]): - stack.append(modname + '.') - html.append('
    ') - else: - stack.pop() - while not modname.startswith(stack[-1]): - stack.pop() - html.append('
') - stack.append(modname + '.') - html.append('
  • %s
  • \n' % ( - urito(posixpath.join(OUTPUT_DIRNAME, 'index'), - posixpath.join(OUTPUT_DIRNAME, modname.replace('.', '/'))), - modname)) - html.append('' * (len(stack) - 1)) - context = { - 'title': _('Overview: module code'), - 'body': (_('

    All modules for which code is available

    ') + - ''.join(html)), - } - - yield (posixpath.join(OUTPUT_DIRNAME, 'index'), context, 'page.html') - - -def setup(app: Sphinx) -> Dict[str, Any]: - app.add_config_value('viewcode_import', None, False) - app.add_config_value('viewcode_enable_epub', False, False) - app.add_config_value('viewcode_follow_imported_members', True, False) - app.connect('doctree-read', doctree_read) - app.connect('env-merge-info', env_merge_info) - app.connect('env-purge-doc', env_purge_doc) - app.connect('html-collect-pages', collect_pages) - app.connect('missing-reference', missing_reference) - # app.add_config_value('viewcode_include_modules', [], 'env') - # app.add_config_value('viewcode_exclude_modules', [], 'env') - app.add_event('viewcode-find-source') - app.add_event('viewcode-follow-imported') - app.add_post_transform(ViewcodeAnchorTransform) - return { - 'version': sphinx.__display_version__, - 'env_version': 1, - 'parallel_read_safe': True - } diff --git a/docs/federated/docs/requirements.txt b/docs/federated/docs/requirements.txt deleted file mode 100644 index a1b6a69f6d..0000000000 --- a/docs/federated/docs/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -sphinx == 4.4.0 -docutils == 0.17.1 -myst-parser == 0.18.1 -sphinx_rtd_theme == 1.0.0 -numpy -IPython -jieba diff --git a/docs/federated/docs/source_en/Data_Join.rst b/docs/federated/docs/source_en/Data_Join.rst deleted file mode 100644 index 0b9712300b..0000000000 --- a/docs/federated/docs/source_en/Data_Join.rst +++ /dev/null @@ -1,12 +0,0 @@ -Data Join -===================== - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/Data_Join.rst - :alt: View Source On Gitee - -.. toctree:: - :maxdepth: 1 - - data_join/data_join - data_join/private_set_intersection \ No newline at end of file diff --git a/docs/federated/docs/source_en/communication_compression.md b/docs/federated/docs/source_en/communication_compression.md deleted file mode 100644 index c797eb4d9c..0000000000 --- a/docs/federated/docs/source_en/communication_compression.md +++ /dev/null @@ -1,139 +0,0 @@ -# Device-Cloud Federated Learning Communication Compression - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/communication_compression.md) - -During the horizontal device-side federated learning training process, the traffic volume affects the user experience of the device-side (user traffic, communication latency, number of FL-Client participants) and is limited by the cloud-side performance constraints (memory, bandwidth, CPU usage). To improve user experience and reduce performance bottlenecks, MindSpore federated learning framework provides traffic compression for upload and download in device-cloud federated scenarios. - -## Compression Method - -### Uploading Compression Method - -The upload compression method can be divided into three main parts: weight difference codec, sparse codec and quantization codec. The flowcharts on FL-Client and FL-Server are given below. - -![Upload compression client execution order](./images/upload_compression_client_en.png) - -Fig.1 Flowchart of the upload compression method on FL-Client - -![Upload compression server execution order](./images/upload_compress_server_en.png) - -Fig.2 Flowchart of the upload compression method on FL-Server - -### Weight Difference Codec - -The weight difference is the vector difference of the weight matrix before and after the device-side training. Compared with the original weights, the distribution of the weight difference is more in line with the Gaussian distribution and therefore more suitable to be compressed. FL-Client performs the encoding operation on the weight difference, while FL-Server performs the decoding operation. Note that in order to reduce the weight difference to weights before FL-Server aggregates the weights, FL-Client does not multiply the weights by the amount of data when uploading the weights. When FL-Server decodes, it needs to multiply the weights by the amount of data. - -![Weight difference encoding](./images/weight_diff_encode_en.png) - -Fig.3 Flow chart of weight difference encoding on FL-Client - -![Weight difference decoding](./images/weight_diff_decode_en.png) - -Fig.4 Flow chart of weight difference decoding on FL-Server - -### Sparse Codec - -The device-side and cloud-side follow the same random algorithm to generate a sparse mask matrix that has the same shape as the original weights that need to be uploaded. The mask matrix contains only two values, 0 or 1. Each FL-Client only uploads data with the same weight as the non-zero value position of the mask matrix to the FL-Server. - -Take the sparse method with a sparse rate of sparse_rate=0.08 as an example. The parameters that are required to be uploaded by FL-Client: - -| Parameters | Length | -| -------------------- | ----- | -| albert.pooler.weight | 97344 | -| albert.pooler.bias | 312 | -| classifier.weight | 1560 | -| classifier.bias | 5 | - -Concatenate all parameters as one-dimensional vectors: - -| Parameters | Length | -| ----------- | ---------------------- | -| merged_data | 97344+312+1560+5=99221 | - -Generate a mask vector with the same length as the concatenated parameter. There are 7937 values of 1, i.e., 7937 = int(sparse_rate*concatenated parameter length) and the rest have a value of 0, i.e., mask_vector = (1,1,1,... ,0,0,0,...): - -| Parameters | Length | -| ----------- | --------- | -| mask_vector | 99221 | - -Use a pseudo-random algorithm to randomize the mask_vector. The random seed is the current number of iteration. Take out the indexes in the mask_vector with value 1. Take out the value of merged_data[indexes], i.e. the compressed vector. - -| Parameters | Length | -| ----------- | --------- | -| compressed_vector | 7937 | - -After sparse compression, the parameter that FL-Client needs to upload is the compressed_vector. - -After receiving the compressed_vector, FL-Server first constructs the mask vector mask_vector with the same pseudo-random algorithm and random seeds as FL-Client. Then it takes out the indexes with the value of 1 in the mask_vector. Generate the all-zero matrix with the same shape as the model. The values in compressed_vector are put into weight_vector[indexes] in turn. weight_vector is the sparsely decoded vector. - -### Quantization Codec - -The quantization compression method is approximating communication data fixed-point of floating-point type to a finite number of discrete values. - -Taking the 8-bit quantization as an example: - -Quantify the number of bits num_bits = 8 - -The floating-point data before compression is - -data = [0.03356021, -0.01842778, -0.009684053, 0.025363436, -0.027571501, 0.0077043395, 0.016391572, -0.03598478, -0.0009508357] - -Compute the max and min values: - -min_val = -0.03598478 - -max_val = 0.03356021 - -Calculate scaling factor: - -scale = (max_val - min_val ) / (2 ^ num_bits - 1) = 0.000272725450980392 - -Convert the pre-compressed data to an integer between -128 and 127 with the conversion formula quant_data = round((data - min_val) / scale) - 2 ^ (num_bits - 1). And strongly convert the data type to int8: - -quant_data = [127, -64, -32, 97, -97, 32, 64, -128, 0] - -After the quantitative encoding, the parameters that FL-Client needs to upload are quant_data and the minimum and maximum values min_val and max_val. - -After receiving quant_data, min_val and max_val, FL-Server uses the inverse quantization formula (quant_data + 2 ^ (num_bits - 1)) * (max_val - min_val) / (2 ^ num_bits - 1) + min_val to reduce the weights. - -## Downloading Compression Method - -The download compression method is mainly a quantization codec operation, and the flow charts on FL-Server and FL-Client are given below. - -![Download compression server execution order](./images/download_compress_server_en.png) - -Fig.5 Flowchart of the download compression method on FL-Server - -![Download compression client execution order](./images/download_compress_client_en.png) - -Fig.6 Flowchart of the download compression method on FL-Client - -### Quantization Codec - -The quantization codec is the same as that in upload compression. - -## Code Implementation Preparation - -To use the upload and download compression methods, first successfully complete the training aggregation process for either device or cloud federated scenario, e.g. [Implementing a Sentiment Classification Application (Android)](https://www.mindspore.cn/federated/docs/en/master/sentiment_classification_application.html). The preparation work including datasets and network models and the simulation of the process to initiate multi-client participation in federated learning are described in detail in this document. - -## Algorithm Open Script - -The upload and download compression methods are currently only supported in the device-cloud federated learning scenario. The open method requires setting `upload_compress_type='DIFF_SPARSE_QUANT'` and `download_compress_type='QUANT'` in the corresponding yaml in the server startup script when starting the cloud-side service. The above two hyperparameters control the upload and download compression methods on and off, respectively. - -The relevant parameter configuration to start the algorithm is given in the cloud-side [full startup script](https://gitee.com/mindspore/federated/tree/master/tests/st/cross_device_cloud/). After determining the parameter configuration, the user needs to configure the corresponding parameters before executing the training, as follows: - -```yaml -compression: - upload_compress_type: NO_COMPRESS - upload_sparse_rate: 0.4 - download_compress_type: NO_COMPRESS -``` - -| Hyperparameter Names and Reference Values | Hyperparameter Description | -| ---------------------- | ------------------------------------------------------------ | -| upload_compress_type | Upload compression type, string type, including: "NO_COMPRESS", "DIFF_SPARSE_QUANT" | -| upload_sparse_rate | Sparse ratio, i.e., weight retention, float type, defined in the domain (0, 1] | -| download_compress_type | Download compression type, string type, including: "NO_COMPRESS", "QUANT" | - -## ALBERT Results - -The total number of federated learning iterations is 100. The number of client local training epochs is 1. The number of clients is 20. The batchSize is set to 16. The learning rate is 1e-5. Both upload and download compression methods are turned on. The upload sparse ratio is 0.4. The final accuracy on the validation set is 72.5%, and 72.3% for the common federated scenario without compression. diff --git a/docs/federated/docs/source_en/conf.py b/docs/federated/docs/source_en/conf.py deleted file mode 100644 index 882562b4e2..0000000000 --- a/docs/federated/docs/source_en/conf.py +++ /dev/null @@ -1,203 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import shutil -import sys -import IPython -import re -import sphinx.ext.autosummary.generate as g -from sphinx.ext import autodoc as sphinx_autodoc - -import mindspore - -# -- Project information ----------------------------------------------------- - -project = 'MindSpore Federated' -copyright = 'MindSpore' -author = 'MindSpore' - -# The full version, including alpha/beta/rc tags -release = 'master' - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -myst_enable_extensions = ["dollarmath", "amsmath"] - - -myst_heading_anchors = 5 -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'myst_parser', - 'sphinx.ext.mathjax', - 'IPython.sphinxext.ipython_console_highlighting' -] - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -mathjax_path = 'https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/mathjax/MathJax-3.2.2/es5/tex-mml-chtml.js' - -mathjax_options = { - 'async':'async' -} - -smartquotes_action = 'De' - -exclude_patterns = [] - -pygments_style = 'sphinx' - -autodoc_inherit_docstrings = False - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'sphinx_rtd_theme' - -import sphinx_rtd_theme -layout_target = os.path.join(os.path.dirname(sphinx_rtd_theme.__file__), 'layout.html') -layout_src = '../../../../resource/_static/layout.html' -if os.path.exists(layout_target): - os.remove(layout_target) -shutil.copy(layout_src, layout_target) - -html_search_language = 'en' - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = { - 'python': ('https://docs.python.org/3', '../../../../resource/python_objects.inv'), -} - -# overwriteautosummary_generate add view source for api and more autosummary class availably. -with open('../_ext/overwriteautosummary_generate.txt', 'r', encoding="utf8") as f: - exec(f.read(), g.__dict__) - -# Modify default signatures for autodoc. -autodoc_source_path = os.path.abspath(sphinx_autodoc.__file__) -autodoc_source_re = re.compile(r'stringify_signature\(.*?\)') -get_param_func_str = r"""\ -import re -import inspect as inspect_ - -def get_param_func(func): - try: - source_code = inspect_.getsource(func) - if func.__doc__: - source_code = source_code.replace(func.__doc__, '') - all_params_str = re.findall(r"def [\w_\d\-]+\(([\S\s]*?)(\):|\) ->.*?:)", source_code) - all_params = re.sub("(self|cls)(,|, )?", '', all_params_str[0][0].replace("\n", "").replace("'", "\"")) - return all_params - except: - return '' - -def get_obj(obj): - if isinstance(obj, type): - return obj.__init__ - - return obj -""" - -with open(autodoc_source_path, "r+", encoding="utf8") as f: - code_str = f.read() - code_str = autodoc_source_re.sub('"(" + get_param_func(get_obj(self.object)) + ")"', code_str, count=0) - exec(get_param_func_str, sphinx_autodoc.__dict__) - exec(code_str, sphinx_autodoc.__dict__) - -import mindspore_federated - -# Copy source files of en python api from mindspore repository. -src_dir_en = os.path.join(os.getenv("MF_PATH"), 'docs/api/api_python_en') -present_path = os.path.dirname(__file__) - -for i in os.listdir(src_dir_en): - if os.path.isfile(os.path.join(src_dir_en,i)): - if os.path.exists('./'+i): - os.remove('./'+i) - shutil.copy(os.path.join(src_dir_en,i),'./'+i) - else: - if os.path.exists('./'+i): - shutil.rmtree('./'+i) - shutil.copytree(os.path.join(src_dir_en,i),'./'+i) - -# get params for add view source -import json - -if os.path.exists('../../../../tools/generate_html/version.json'): - with open('../../../../tools/generate_html/version.json', 'r+', encoding='utf-8') as f: - version_inf = json.load(f) -elif os.path.exists('../../../../tools/generate_html/daily_dev.json'): - with open('../../../../tools/generate_html/daily_dev.json', 'r+', encoding='utf-8') as f: - version_inf = json.load(f) -elif os.path.exists('../../../../tools/generate_html/daily.json'): - with open('../../../../tools/generate_html/daily.json', 'r+', encoding='utf-8') as f: - version_inf = json.load(f) - -if os.getenv("MF_PATH").split('/')[-1]: - copy_repo = os.getenv("MF_PATH").split('/')[-1] -else: - copy_repo = os.getenv("MF_PATH").split('/')[-2] - -branch = [version_inf[i]['branch'] for i in range(len(version_inf)) if version_inf[i]['name'] == copy_repo][0] -docs_branch = [version_inf[i]['branch'] for i in range(len(version_inf)) if version_inf[i]['name'] == 'tutorials'][0] -cst_module_name = 'mindspore_federated' -repo_whl = 'mindspore_federated' -giturl = 'https://gitee.com/mindspore/' - -sys.path.append(os.path.abspath('../../../../resource/sphinx_ext')) -# import anchor_mod -import nbsphinx_mod - -sys.path.append(os.path.abspath('../../../../resource/search')) -import search_code - - -sys.path.append(os.path.abspath('../../../../resource/custom_directives')) -from custom_directives import IncludeCodeDirective - -def setup(app): - app.add_directive('includecode', IncludeCodeDirective) - app.add_config_value('docs_branch', '', True) - app.add_config_value('branch', '', True) - app.add_config_value('cst_module_name', '', True) - app.add_config_value('copy_repo', '', True) - app.add_config_value('giturl', '', True) - app.add_config_value('repo_whl', '', True) - -src_release = os.path.join(os.getenv("MF_PATH"), 'RELEASE.md') -des_release = "./RELEASE.md" -with open(src_release, "r", encoding="utf-8") as f: - data = f.read() -if len(re.findall("\n## (.*?)\n",data)) > 1: - content = re.findall("(## [\s\S\n]*?)\n## ", data) -else: - content = re.findall("(## [\s\S\n]*)", data) -#result = content[0].replace('# MindSpore', '#', 1) -with open(des_release, "w", encoding="utf-8") as p: - p.write("# Release Notes"+"\n\n") - p.write(content[0]) \ No newline at end of file diff --git a/docs/federated/docs/source_en/cross_device.rst b/docs/federated/docs/source_en/cross_device.rst deleted file mode 100644 index 9d20b10634..0000000000 --- a/docs/federated/docs/source_en/cross_device.rst +++ /dev/null @@ -1,17 +0,0 @@ -Device-side Client -====================== - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/cross_device.rst - :alt: View Source On Gitee - -.. toctree:: - :maxdepth: 1 - - java_api_callback - java_api_client - java_api_clientmanager - java_api_dataset - java_api_flparameter - java_api_syncfljob - interface_description_federated_client diff --git a/docs/federated/docs/source_en/data_join.md b/docs/federated/docs/source_en/data_join.md deleted file mode 100644 index c76aab8123..0000000000 --- a/docs/federated/docs/source_en/data_join.md +++ /dev/null @@ -1,241 +0,0 @@ -# Vertical Federated Learning Data Access - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/data_join.md) - -Unlike horizontal federated learning, two participants (leader and follower) have the same sample space for training or inference in vertical federated learning. Therefore, the data intersection must be done collaboratively before both parties in vertical federated learning initiate training or inference. Both parties must read their respective original data and extract the ID (unique identifier of each data, and none of them is the same) corresponding to each data for intersection (i.e., finding the intersection). Then, both parties obtain features or tags from the original data based on the intersected IDs. Finally, each side exports the persistence file and reads the data in the reordering manner before subsequent training or inference. - -## Overall Process - -Data access can be divided into two parts: data export and data read. - -### Exporting Data - -The MindSpore Federated vertical federated learning data export process framework is shown in Figure 1: - -![](./images/data_join_en.png) - -Fig. 1 Vertical Federated Learning Data Export Process Framework Diagram - -In the data export process, Leader Worker and Follower Worker are the two participants in the vertical federated learning. The Leader Worker is resident and keeps a listening ear on the Follower Worker, who can enter the data access process at any moment. - -After the Leader Worker receives a registration request from the Follower Worker, it checks the registration content. If the registration is successful, the task-related hyperparameters (PSI-related hyperparameters, bucketing rules, ID field names, etc.) are sent to the Follower Worker. - -The Leader Worker and Follower Worker read their respective raw data, extract the list of IDs from their raw data and implement bucketing. - -Each bucket of Leader Worker and Follower Worker initiates the privacy intersection method to obtain the ID intersections of the two parties. - -Finally, the two parties extract the corresponding data from the original data based on the ID intersections and export it to a file in MindRecord format. - -### Reading Data - -Vertical federated requires that both participants have the same value and order of data IDs for each batch of training or inference. MindSpore Federated ensures that the data is read in the same order by using the same random seed and by using dictionary sorting on the exported file sets when both parties read their respective data. - -## An Example for Quick Experience - -### Sample Data Preparation - -To use the data access method, the original data needs to be prepared first. The user can use [random data generation script](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/generate_random_data.py) to generate forged data for each participant as a sample. - -```shell -python generate_random_data.py \ - --seed=0 \ - --total_output_path=vfl/input/total_data.csv \ - --intersection_output_path=vfl/input/intersection_data.csv \ - --leader_output_path=vfl/input/leader_data_*.csv \ - --follower_output_path=vfl/input/follower_data_*.csv \ - --leader_file_num=4 \ - --follower_file_num=2 \ - --leader_data_num=300 \ - --follower_data_num=200 \ - --overlap_num=100 \ - --id_len=20 \ - --feature_num=30 -``` - -The user can set the hyperparameter according to the actual situation: - -| Hyperparameter names | Hyperparameter description | -| -------------------- | ------------------------------------------------------------ | -| seed | Random seed, int type. | -| total_output_path | The output path of all data, str type. | -| intersection_output_path | The output path of intersection data, str type. | -| leader_output_path | The export path of the leader data. If the configuration includes the `*`, the `*` will be replaced by the serial number of 0, 1, 2 ...... in order when exporting multiple files. str type. | -| follower_output_path | The export path of the follower data. If the configuration includes the `*`, the `*` will be replaced by the serial number of 0, 1, 2 ...... in order when exporting multiple files. str type. | -| leader_file_num | The number of output files for leader data. int type. | -| follower_file_num | The number of output files for follower data. int type. | -| leader_data_num | The total number of leader data. int type. | -| follower_data_num | The total number of follower data. int type. | -| overlap_num | The total amount of data that overlaps between leader and follower data. int type. | -| id_len | The data ID is a string type. The hyperparameter is the length of the string. int type. | -| feature_num | The number of columns of the exported data | - -Multiple csv files are generated after running the data preparation: - -```text -follower_data_0.csv -follower_data_1.csv -intersection_data.csv -leader_data_0.csv -leader_data_1.csv -leader_data_2.csv -leader_data_3.csv -``` - -### Sample of Data Export - -Users can use [script of finding data intersections](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/run_data_join.py) to implement data intersections between two parties and export it to MindRecord format file. The users need to start Leader and Follower processes separately. - -Start Leader: - -```shell -python run_data_join.py \ - --role="leader" \ - --main_table_files="vfl/input/leader/" \ - --output_dir="vfl/output/leader/" \ - --data_schema_path="vfl/leader_schema.yaml" \ - --server_name=leader_node \ - --http_server_address="127.0.0.1:1086" \ - --remote_server_name=follower_node \ - --remote_server_address="127.0.0.1:1087" \ - --primary_key="oaid" \ - --bucket_num=5 \ - --store_type="csv" \ - --shard_num=1 \ - --join_type="psi" \ - --thread_num=0 -``` - -Start Follower: - -```shell -python run_data_join.py \ - --role="follower" \ - --main_table_files="vfl/input/follower/" \ - --output_dir="vfl/output/follower/" \ - --data_schema_path="vfl/follower_schema.yaml" \ - --server_name=follower_node \ - --http_server_address="127.0.0.1:1087" \ - --remote_server_name=leader_node \ - --remote_server_address="127.0.0.1:1086" \ - --store_type="csv" \ - --thread_num=0 -``` - -The user can set the hyperparameter according to the actual situation. - -| Hyperparameter names | Hyperparameter description | -| ------------------- | ------------------------------------------------------- | -| role | Role types of the worker. str type. Including: "leader", "follower". | -| main_table_files | The path of raw data, configure either single or multiple file paths, data directory paths, list or str types | -| output_dir | The directory path of the exported MindRecord related files, str type. | -| data_schema_path | The path of the super reference file to be configured during export, str type. | -| server_name |Name of local http server that used for communication, str type. | -| http_server_address | Local IP and port address, str type. | -| remote_server_name | Name of remote http server that used for communication, str type. | -| remote_server_address | Peer IP and port address, str type. | -| primary_key (Follower does not need to be configured) | The name of data ID, str type. | -| bucket_num (Follower does not need to be configured) | Find the number of sub-buckets when intersecting and exporting, int type. | -| store_type | Raw data storage type, str type. Including: "csv". | -| shard_num (Follower does not need to be configured) | The number of files exported from a single bucket, int type. | -| join_type (Follower does not need to be configured) | Algorithm of intersection finding, str type. Including: "psi". | -| thread_num | Calculate the number of threads required when using the PSI intersection algorithm, int type. | - -In the above sample, the files corresponding data_schema_path can be referred to the corresponding files configuration of [leader_schema.yaml](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/vfl/leader_schema.yaml) and [follower_schema.yaml](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/vfl/follower_schema.yaml). The user needs to provide the column names and types of the data to be exported in this file. - -After running the data export, generate multiple MindRecord related files. - -```text -mindrecord_0 -mindrecord_0.db -mindrecord_1 -mindrecord_1.db -mindrecord_2 -mindrecord_2.db -mindrecord_3 -mindrecord_3.db -mindrecord_4 -mindrecord_4.db -``` - -### Sample of Data Reading - -The user can use the [script of reading data](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/load_joined_data.py) to implement data reading after intersection. - -```shell -python load_joined_data.py \ - --seed=0 \ - --input_dir=vfl/output/leader/ \ - --shuffle=True -``` - -The user can set the hyperparameter according to the actual situation. - -| Hyperparameter names | Hyperparameter description | -| --------- | ----------------------------------------- | -| seed | Random seed. int type. | -| input_dir | The directory of the input MindRecord related files, str type. | -| shuffle | Whether the data order needs to be changed, bool type. | - -If the intersection result is correct, when each of the two parties reads the data, the OAID order of each data of the two parties is the same, while the data of the other columns in each data can be different values. Print the intersection data after running the data read: - -```text -Leader data export results: -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'uMbgxIMMwWhMGrVMVtM7')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'IwoGP08kWVtT4WHL2PLu')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'MSRe6mURtxgyEgWzDn0b')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'y7X0WcMKnTLrhxVcWfGF')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'DicKRIVvbOYSiv63TvcL')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'TCHgtynOhH3z11QYemsH')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'OWmhgIfC3k8UTteGUhni')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'NTV3qEYXBHqKBWyHGc7s')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'wuinSeN1bzYgXy4XmSlR')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'SSsCU0Pb46XGzUIa3Erg')} -…… - -Follower data export results: -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'uMbgxIMMwWhMGrVMVtM7')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'IwoGP08kWVtT4WHL2PLu')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'MSRe6mURtxgyEgWzDn0b')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'y7X0WcMKnTLrhxVcWfGF')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'DicKRIVvbOYSiv63TvcL')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'TCHgtynOhH3z11QYemsH')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'OWmhgIfC3k8UTteGUhni')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'NTV3qEYXBHqKBWyHGc7s')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'wuinSeN1bzYgXy4XmSlR')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'SSsCU0Pb46XGzUIa3Erg')} -…… -``` - -## An Example for Deep Experience - -For detailed API documentation for the following code, see [Data Access Documentation](https://www.mindspore.cn/federated/docs/en/master/data_join/data_join.html). - -### Data Export - -The user can implement data join and MindRecord related files export by using the encapsulated interface and yaml file in the following way: - -```python -from mindspore_federated import FLDataWorker -from mindspore_federated.common.config import get_config - - -if __name__ == '__main__': - current_dir = os.path.dirname(os.path.abspath(__file__)) - args = get_config(os.path.join(current_dir, "vfl/vfl_data_join_config.yaml")) - dict_cfg = args.__dict__ - - worker = FLDataWorker(config=dict_cfg) - worker.do_worker() -``` - -### Data Reading - -The user can implement data in exported MindRecord related files reading by using the encapsulated interface in the following way: - -```python -from mindspore_federated.data_join import load_mindrecord - - -if __name__ == "__main__": - dataset = load_mindrecord(input_dir="vfl/output/leader/", shuffle=True, seed=0) -``` diff --git a/docs/federated/docs/source_en/deploy_federated_client.md b/docs/federated/docs/source_en/deploy_federated_client.md deleted file mode 100644 index 479340ad31..0000000000 --- a/docs/federated/docs/source_en/deploy_federated_client.md +++ /dev/null @@ -1,202 +0,0 @@ -# Horizontal Federated Device-side Deployment - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/deploy_federated_client.md) - -This document describes how to compile and deploy Federated-Client. - -## Linux Compilation Guidance - -### System Environment and Third-party Dependencies - -This section describes how to complete the device-side compilation of MindSpore federated learning. Currently, the federated learning device-side only provides compilation guidance on Linux, and other systems are not supported. The following table lists the system environment and third-party dependencies required for compilation. - -| Software Name | Version | Functions | -|-----------------------| ------------ | ------------ | -| Ubuntu | 18.04.02LTS | Compiling and running MindSpore operating system | -| [GCC](#installing-gcc) | Between 7.3.0 to 9.4.0 | C++ compiler for compiling MindSpore | -| [git](#installing-git) | - | Source code management tools used by MindSpore | -| [CMake](#installing-cmake) | 3.18.3 and above | Compiling and building MindSpore tools | -| [Gradle](#installing-gradle) | 6.6.1 | JVM-based building tools | -| [Maven](#installing-maven) | 3.3.1 and above | Tools for managing and building Java projects | -| [OpenJDK](#installing-openjdk) | Between 1.8 to 1.15 | Tools for managing and building Java projects | - -#### Installing GCC - -Install GCC with the following command. - -```bash -sudo apt-get install gcc-7 git -y -``` - -To install a higher version of GCC, use the following command to install GCC 8. - -```bash -sudo apt-get install gcc-8 -y -``` - -Or install GCC 9. - -```bash -sudo apt-get install software-properties-common -y -sudo add-apt-repository ppa:ubuntu-toolchain-r/test -sudo apt-get update -sudo apt-get install gcc-9 -y -``` - -#### Installing git - -Install git with the following command. - -```bash -sudo apt-get install git -y -``` - -#### Installing Cmake - -Install [CMake](https://cmake.org/) with the following command. - -```bash -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - -sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" -sudo apt-get install cmake -y -``` - -#### Installing Gradle - -Install [Gradle](https://gradle.org/releases/) with the following command. - -```bash -# Download the corresponding zip package and unzip it. -# Configure environment variables: - export GRADLE_HOME=GRADLE path - export GRADLE_USER_HOME=GRADLE path -# Add the bin directory to the PATH: - export PATH=${GRADLE_HOME}/bin:$PATH -``` - -#### Installing Maven - -Install [Maven](https://archive.apache.org/dist/maven/maven-3/) with the following command. - -```bash -# Download the corresponding zip package and unzip it. -# Configure environment variables: - export MAVEN_HOME=MAVEN path -# Add the bin directory to the PATH: - export PATH=${MAVEN_HOME}/bin:$PATH -``` - -#### Installing OpenJDK - -Install [OpenJDK](https://jdk.java.net/archive/) with the following command. - -```bash -# Download the corresponding zip package and unzip it. -# Configure environment variables: - export JAVA_HOME=JDK path -# Add the bin directory to the PATH: - export PATH=${JAVA_HOME}/bin:$PATH -``` - -### Verifying Installation - -Verify that the installation in [System environment and third-party dependencies](#system-environment-and-third-party-dependencies) is successful. - -```text -Open a command window and enter: gcc --version -The following output identifies a successful installation: - gcc version version number - -Open a command window and enter: git --version -The following output identifies a successful installation: - git version version number - -Open a command window and enter: cmake --version -The following output identifies a successful installation: - cmake version version number - -Open a command window and enter: gradle --version -The following output identifies a successful installation: - Gradle version number - -Open a command window and enter: mvn --version -The following output identifies a successful installation: - Apache Maven version number - -Open a command window and enter: java --version -The following output identifies a successful installation: - openjdk version version number - -``` - -### Compilation Options - -The `cli_build.sh` script in the federated learning device_client directory is used for compilation on the federated learning device-side. - -#### Instructions for Using cli_build.sh Parameters - -| Parameters | Parameter Description | Value Range | Default Values | -| ---- | ------------------------ | -------- | ------------ | -| -p | the download path of dependency external packages | string | third | -| -c | whether to reuse dependency packages previously downloaded | on and off | on | - -### Compilation Examples - -1. First, you need to download the source code from the gitee code repository before you can compile it. - - ```bash - git clone https://gitee.com/mindspore/federated.git ./ - ``` - -2. Go to the mindspore_federated/device_client directory and execute the following command: - - ```bash - bash cli_build.sh - ``` - -3. Since the end-side framework and the model are decoupled, the x86 architecture package we provide, mindspore-lite-{version}-linux-x64.tar.gz, does not contain model-related scripts, so the user needs to generate the jar package corresponding to the model scripts. The jar package corresponding to the model scripts we provide can be obtained in the following way: - - ```bash - cd federated/example/quick_start_flclient - bash build.sh -r mindspore-lite-java-flclient.jar # After -r, you need to give the absolute path to the latest x86 architecture package (generated in Step 2, federated/mindspore_federated/device_client/build/libs/jarX86/mindspore-lite-java-flclient.jar) - ``` - -After running the above command, the path of generated jar package is federated/example/quick_start_flclient/target/quick_start_flclient.jar. - -### Building Dependency Environment - -1. After extracting the file `federated/mindspore_federated/device_client/third/mindspore-lite-{version}-linux-x64.tar.gz`, the obtained directory structure is as follows(files that are not used in federated learning are not displayed here): - - ```sh - mindspore-lite-{version}-linux-x64 - ├── tools - └── runtime - ├── include # Header files of training framework - ├── lib # Training framework library - │ ├── libminddata-lite.a # Static library files for image processing - │ ├── libminddata-lite.so # Dynamic library files for image processing - │ ├── libmindspore-lite-jni.so # jni dynamic library relied by MindSpore Lite inference framework - │ ├── libmindspore-lite-train.a # Static library relied by MindSpore Lite training framework - │ ├── libmindspore-lite-train.so # Dynamic library relied by MindSpore Lite training framework - │ ├── libmindspore-lite-train-jni.so # jni dynamic library relied by MindSpore Lite training framework - │ ├── libmindspore-lite.a # Static library relied by MindSpore Lite inference framework - │ ├── libmindspore-lite.so # Dynamic library relied by MindSpore Lite inference framework - │ ├── mindspore-lite-java.jar # MindSpore Lite training framework jar package - └── third_party - ├── glog - │└── libmindspore_glog.so.0 # Dynamic library files of glog - └── libjpeg-turbo - └── lib - ├── libjpeg.so.62 # Dynamic library files for image processing - └── libturbojpeg.so.0 # Dynamic library files for image processing - ``` - -2. Put the so files relied by federated learning in paths `mindspore-lite-{version}-linux-x64/runtime/lib/`, `mindspore-lite-{version}-linux-x64/runtime/third_party/glog/` and `mindspore-lite-{version}-linux-x64/runtime/third_party/libjpeg-turbo/lib/` in a folder, e.g. `/resource/x86libs/`. Then set the environment variables in x86 (absolute paths need to be provided below): - - ```sh - export LD_LIBRARY_PATH=/resource/x86libs/:$LD_LIBRARY_PATH - ``` - -3. After setting up the dependency environment, you can simulate starting multiple clients in the x86 environment for federated learning by referring to the application practice tutorial [Implementing an end-cloud federation for image classification application (x86)](https://www.mindspore.cn/federated/docs/en/master/image_classification_application.html). - - diff --git a/docs/federated/docs/source_en/deploy_federated_server.md b/docs/federated/docs/source_en/deploy_federated_server.md deleted file mode 100644 index 12bccc355a..0000000000 --- a/docs/federated/docs/source_en/deploy_federated_server.md +++ /dev/null @@ -1,317 +0,0 @@ -# Horizontal Federated Cloud-based Deployment - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/deploy_federated_server.md) - -The following uses LeNet as an example to describe how to use MindSpore Federated to deploy a horizontal federated learning cluster. - -The following figure shows the physical architecture of the MindSpore Federated Learning (FL) Server cluster: - -![mindspore-federated-networking](./images/mindspore_federated_networking.png) - -As shown in the preceding figure, in the horizontal federated learning cloud cluster, there are three MindSpore process roles: `Federated Learning Scheduler`, `Federated Learning Server` and `Federated Learning Worker`: - -- Federated Learning Scheduler - - `Scheduler` provides the following functions: - - 1. Cluster networking assistance: During cluster initialization, the `Scheduler` collects server information and ensures cluster consistency. - 2. Open management plane: You can manage clusters through the `RESTful` APIs. - - In a federated learning task, there is only one `Scheduler`, which communicates with the `Server` using the TCP proprietary protocol. - -- Federated Learning Server - - `Server` executes federated learning tasks, receives and parses data from devices, and provides capabilities such as secure aggregation, time-limited communication, and model storage. In a federated learning task, users can configure multiple `Servers` which communicate with each other through the TCP proprietary protocol and open HTTP ports for device-side connection. - - In the MindSpore federated learning framework, `Server` also supports auto scaling and disaster recovery, and can dynamically schedule hardware resources without interrupting training tasks. - -- Federated Learning Worker - - `Worker` is an accessory module for executing the federated learning task, which is used for supervised retraining of the model in the Server, and then the trained model is distributed to the Server. In a federated learning task, there can be more than one (user configurable) of `Worker`, and the communication between `Worker` and `Server` is performed via TCP protocol. - -`Scheduler` and `Server` must be deployed on a server or container with a single NIC and in the same network segment. MindSpore automatically obtains the first available IP address as the `Server` IP address. - -> The servers will verify the timestamp carried by the clients. It is necessary to eunsure the servers are periodically time synchronized to avoid a large time offset. - -## Preparations - -> Recommend to create a virtual environment for the following operations with [Anaconda](https://www.anaconda.com/). - -### Installing MindSpore - -The MindSpore horizontal federated learning cloud cluster supports deployment on x86 CPU and GPU CUDA hardware platforms. Run commands provided by the [MindSpore Installation Guide](https://www.mindspore.cn/install) to install the latest MindSpore. - -### Installing MindSpore Federated - -Compile and install with [source code](https://gitee.com/mindspore/federated). - -```shell -git clone https://gitee.com/mindspore/federated.git -b master -cd federated -bash build.sh -``` - -For `bash build.sh`, compilation can be accelerated by the `-jn` option, e.g. `-j16`. The third-party dependencies can be downloaded from gitee instead of github by the `-S on` option. - -After compilation, find the whl installation package of Federated in the `build/package/` directory to install: - -```bash -pip install mindspore_federated-{version}-{python_version}-linux_{arch}.whl -``` - -### Verifying Installation - -Execute the following command to verify the installation result. The installation is successful if no error is reported when importing Python modules. - -```python -from mindspore_federated import FLServerJob -``` - -### Installing and Starting Redis Server - -Federated Learning relies on [Redis Server](https://gitee.com/link?target=https%3A%2F%2Fredis.io%2F) as the cached data middleware by default. To run the Federated Learning service, a Redis server needs to be installed and run. - -> User must check the security of the Redis to be used. Some versions may have security vulnerabilities. - -Install Redis server: - -```bash -sudo apt-get install redis -``` - -Run the Redis server and the number of configuration side is 23456: - -```bash -redis-server --port 23456 --save "" -``` - -## Starting a Cluster - -1. [examples](https://gitee.com/mindspore/federated/tree/master/example/cross_device_lenet_femnist/). - - ```bash - cd example/cross_device_lenet_femnist - ``` - -2. Modify the yaml configuration file according to the actual running: `default_yaml_config.yaml`. [sample configuration of Lenet](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/yamls/lenet/default_yaml_config.yaml) is as follows: - - ```yaml - fl_name: Lenet - fl_iteration_num: 25 - server_mode: FEDERATED_LEARNING - enable_ssl: False - - distributed_cache: - type: redis - address: 127.0.0.1:23456 # ip:port of redis actual machine - plugin_lib_path: "" - - round: - start_fl_job_threshold: 2 - start_fl_job_time_window: 30000 - update_model_ratio: 1.0 - update_model_time_window: 30000 - global_iteration_time_window: 60000 - - summary: - metrics_file: "metrics.json" - failure_event_file: "event.txt" - continuous_failure_times: 10 - data_rate_dir: ".." - participation_time_level: "5,15" - - unsupervised: - cluster_client_num: 1000 - eval_type: SILHOUETTE_SCORE - - encrypt: - encrypt_train_type: NOT_ENCRYPT - pw_encrypt: - share_secrets_ratio: 1.0 - cipher_time_window: 3000 - reconstruct_secrets_threshold: 1 - dp_encrypt: - dp_eps: 50.0 - dp_delta: 0.01 - dp_norm_clip: 1.0 - signds: - sign_k: 0.01 - sign_eps: 100 - sign_thr_ratio: 0.6 - sign_global_lr: 0.1 - sign_dim_out: 0 - - compression: - upload_compress_type: NO_COMPRESS - upload_sparse_rate: 0.4 - download_compress_type: NO_COMPRESS - - ssl: - # when ssl_config is set - # for tcp/http server - server_cert_path: "server.p12" - # for tcp client - client_cert_path: "client.p12" - # common - ca_cert_path: "ca.crt" - crl_path: "" - cipher_list: "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-PSK-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-CHACHA20-POLY1305" - cert_expire_warning_time_in_day: 90 - - client_verify: - pki_verify: false - root_first_ca_path: "" - root_second_ca_path: "" - equip_crl_path: "" - replay_attack_time_diff: 600000 - - client: - http_url_prefix: "" - client_epoch_num: 20 - client_batch_size: 32 - client_learning_rate: 0.01 - connection_num: 10000 - - ``` - -3. Prepare the model file and start it in the following way: weight-based start. You need to provide the corresponding model weights. - - Obtain lenet model weight: - - ```bash - wget https://ms-release.obs.cn-north-4.myhuaweicloud.com/ms-dependencies/Lenet.ckpt - ``` - -4. Run Scheduler, and the management side address is `127.0.0.1:11202` by default. - - ```python - python run_sched.py \ - --yaml_config="yamls/lenet.yaml" \ - --scheduler_manage_address="10.*.*.*:18019" - ``` - -5. Run Server, and start one Server and the HTTP server address is `127.0.0.1:6666` by default. - - ```python - python run_server.py \ - --yaml_config="yamls/lenet.yaml" \ - --tcp_server_ip="10.*.*.*" \ - --checkpoint_dir="fl_ckpt" \ - --local_server_num=1 \ - --http_server_address="10.*.*.*:8019" - ``` - -6. Stop federated learning. The current version of the federated learning cluster is a resident process, and the `finish_cloud.py` script can be executed to terminate the federated learning service. The example of executing the command is as follows, where `redis_port` is passed with the same parameters as when starting redis, representing stopping the cluster corresponding to this `Scheduler`. - - ```python - python finish_cloud.py --redis_port=23456 - ``` - - If console prints the following contents: - - ```text - killed $PID1 - killed $PID2 - killed $PID3 - killed $PID4 - killed $PID5 - killed $PID6 - killed $PID7 - killed $PID8 - ``` - - it indicates the termination service is successful. - -## Auto Scaling - -MindSpore federated learning framework supports `Server` auto scaling and provides `RESTful` services externally through the `Scheduler` management port, enabling users to dynamically schedule hardware resources without interrupting training tasks. - -The following example describes how to control scale-out and scale-in of cluster through APIs. - -### Scale-out - -After the cluster starts, enter the machine where the scheduler node is deployed and make a request to the `Scheduler` to query the status and node information. A `RESTful` request can be constructed with the `curl` command. - -```sh -curl -k 'http://10.*.*.*:18015/state' -``` - -`Scheduler` will return query results in `json` format. - -```json -{ - "message":"Get cluster state successful.", - "cluster_state":"CLUSTER_READY", - "code":0, - "nodes":[ - {"node_id","{ip}:{port}::{timestamp}::{random}", - "tcp_address":"{ip}:{port}", - "role":"SERVER"} - ] -} -``` - -You need to pull up 3 new `Server` processes and accumulate the `local_server_num` parameter to the number of scale-out, so as to ensure the correctness of the global networking information, i.e. after scale-out, the number of `local_server_num` should be 4. An example of executing the command is as follows: - -```sh -python run_server.py --yaml_config="yamls/lenet.yaml" --tcp_server_ip="10.*.*.*" --checkpoint_dir="fl_ckpt" --local_server_num=4 --http_server_address="10.*.*.*:18015" -``` - -This command indicates starting four `Server` nodes and the total number of `Server` is 4. - -### Scale-in - -Simulate the scale-in directly via kill -9 pid, construct a `RESTful` request with the `curl` command, and query the status, which finds that there is one node_id missing from the cluster to achieve the purpose of scale-in. - -```sh -curl -k \ -'http://10.*.*.*:18015/state' -``` - -`Scheduler` returns the query results in `json` format. - -```json -{ - "message":"Get cluster state successful.", - "cluster_state":"CLUSTER_READY", - "code":0, - "nodes":[ - {"node_id","{ip}:{port}::{timestamp}::{random}", - "tcp_address":"{ip}:{port}", - "role":"SERVER"}, - {"node_id","worker_fl_{timestamp}::{random}", - "tcp_address":"", - "role":"WORKER"}, - {"node_id","worker_fl_{timestamp}::{random}", - "tcp_address":"", - "role":"WORKER"} - ] -} -``` - -> - After scale-out/scale-in of the cluster is successful, the training tasks are automatically resumed without additional intervention. - -## Security - -MindSpore federated Learning Framework supports SSL security authentication of `Server`. To enable security authentication, you need to add `enable_ssl=True` to the startup command, and the config.json configuration file specified by config_file_path needs to add the following fields: - -```json -{ - "server_cert_path": "server.p12", - "crl_path": "", - "client_cert_path": "client.p12", - "ca_cert_path": "ca.crt", - "cert_expire_warning_time_in_day": 90, - "cipher_list": "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK", - "connection_num":10000 -} -``` - -- server_cert_path: The path to the p12 file containing the ciphertext of the certificate and key on the server-side. -- crl_path: Files of revocation list. -- client_cert_path: The path to the p12 file containing the ciphertext of the certificate and key on the client-side. -- ca_cert_path: Root certificate. -- cipher_list: Cipher suite. -- cert_expire_warning_time_in_day: Alarm time of certificate expiration. - -The key in the p12 file is stored in cipher text. diff --git a/docs/federated/docs/source_en/deploy_vfl.md b/docs/federated/docs/source_en/deploy_vfl.md deleted file mode 100644 index 9aeae5961b..0000000000 --- a/docs/federated/docs/source_en/deploy_vfl.md +++ /dev/null @@ -1,69 +0,0 @@ -# Vertical Federated Deployment - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/deploy_vfl.md) - -This document explains how to use and deploy the vertical federated learning framework. - -The MindSpore Vertical Federated Learning (VFL) physical architecture is shown in the figure: - -![](./images/deploy_VFL_en.png) - -As shown above, there are two participants in the vertical federated interaction: the Leader node and the Follower node, each of which has processes in two roles: `FLDataWorker` and `VFLTrainer`: - -- FLDataWorker - - The functions of `FLDataWorker` mainly includes: - - 1. Dataset intersection: obtains a common user intersection for both vertical federated participants, and supports a privacy dataset intersection protocol that prevents federated learning participants from obtaining ID information outside the intersection. - 2. Training data generation: After obtaining the intersection ID, the data features are expanded to generate the mindrecord file for training. - 3. Open management surface: `RESTful` interface is provided to users for cluster management. - - In a federated learning task, there is only one `Scheduler`, which communicates with the `Server` through TCP protocol. - -- VFLTrainer - - `VFLTrainer` is the main body that performs the vertical federated training tasks, and performs the forward and reverse computation after model slicing, Embedding tensor transfer, gradient tensor transfer, and reverse optimizer update. The current version supports single-computer single-card and single-computer multi-card training modes. - - In the MindSpore federated learning framework, `Server` also supports elastic scaling and disaster recovery, enabling dynamic provisioning of hardware resources without interruption of training tasks. - -`FLDataWorker` and `VFLTrainer` are generally deployed in the same server or container. - -## Preparation - -> It is recommended to use [Anaconda](https://www.anaconda.com/) to create a virtual environment for the following operations. - -### Installing MindSpore - -MindSpore vertical federated supports deployment on x86 CPU, GPU CUDA and Ascend hardware platforms. The latest version of MindSpore can be installed by referring to [MindSpore Installation Guide](https://www.mindspore.cn/install). - -### Installing MindSpore Federated - -Compile and install via [source code](https://gitee.com/mindspore/federated). - -```shell -git clone https://gitee.com/mindspore/federated.git -b master -cd federated -bash build.sh -``` - -For `bash build.sh`, accelerate compilation through the `-jn` option, e.g. `-j16`, and download third-party dependencies from gitee instead of github by the `-S on` option. - -Once compiled, find the Federated whl installation package in the `build/package/` directory to install. - -```shell -pip install mindspore_federated-{version}-{python_version}-linux_{arch}.whl -``` - -#### Verifying installation - -Execute the following command to verify the installation. The installation is successful if no error is reported when importing Python modules. - -```python -from mindspore_federated import FLServerJob -``` - -## Running the Example - -A running sample of FLDataWorker can be found in [Vertical federated learning data access](https://www.mindspore.cn/federated/docs/en/master/data_join.html). - -A running sample of VFLTrainer can be found in [Vertical federated learning model training - Wide&Deep Recommended Application](https://www.mindspore.cn/federated/docs/en/master/split_wnd_application.html). diff --git a/docs/federated/docs/source_en/faq.md b/docs/federated/docs/source_en/faq.md deleted file mode 100644 index 912e7d07d4..0000000000 --- a/docs/federated/docs/source_en/faq.md +++ /dev/null @@ -1,9 +0,0 @@ -# FAQ - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/faq.md) - -**Q: If the cluster networking is unsuccessful, how to locate the cause?** - -A: Please check the server's network conditions, for example, check whether the firewall prohibits port access, please set the firewall to allow port access. - -
    \ No newline at end of file diff --git a/docs/federated/docs/source_en/federated_install.md b/docs/federated/docs/source_en/federated_install.md deleted file mode 100644 index 4a93f9e229..0000000000 --- a/docs/federated/docs/source_en/federated_install.md +++ /dev/null @@ -1,25 +0,0 @@ -# Obtaining MindSpore Federated - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/federated_install.md) - -Currently, the [MindSpore Federated](https://gitee.com/mindspore/federated) framework code has been built independently, divided into device-side and cloud-side. Its cloud-side capability relies on MindSpore and MindSpore Federated, using MindSpore for cloud-side cluster aggregation training and communication with device-side, so it needs to get MindSpore whl package and MindSpore Federated whl package respectively. The device-side capability relies on MindSpore Lite and MindSpore Federated java packages, where MindSpore Federated java is mainly responsible for data pre-processing, model training and inference by calling MindSpore Lite for, as well as model-related uploads and downloads by using privacy protection mechanisms and the cloud side. - -## Obtaining the MindSpore WHL Package - -You can use the source code or download the release version to install MindSpore on hardware platforms such as the x86 CPU and GPU CUDA. For details about the installation process, see [Install](https://www.mindspore.cn/install/en) on the MindSpore website. - -## Obtaining the MindSpore Lite Java Package - -You can use the source code or download the release version. Currently, only the Linux and Android platforms are supported, and only the CPU hardware architecture is supported. For details about the installation process, see [Downloading MindSpore Lite](https://www.mindspore.cn/lite/docs/en/master/use/downloads.html) and [Building MindSpore Lite](https://www.mindspore.cn/lite/docs/en/master/build/build.html). - -## Obtaining MindSpore Federated WHL Package - -You can use the source code or download the release version to install MindSpore on hardware platforms such as the x86 CPU and GPU CUDA. For details about the installation process, see [Building MindSpore Federated whl](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_server.html). - -## Obtaining MindSpore Federated Java Package - -You can use the source code or download the release version. Currently, MindSpore Federated Learing supports the Linux and Android platforms. For details about the installation process, see [Building MindSpore Federated java](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html). - -## Requirements for Building the Linux Environment - -Currently, the source code build is supported only in the Linux environment. For details about the environment requirements, see [MindSpore Source Code Build](https://www.mindspore.cn/install/en) and [MindSpore Lite Source Code Build](https://www.mindspore.cn/lite/docs/en/master/build/build.html). diff --git a/docs/federated/docs/source_en/horizontal_server.rst b/docs/federated/docs/source_en/horizontal_server.rst deleted file mode 100644 index bae616982a..0000000000 --- a/docs/federated/docs/source_en/horizontal_server.rst +++ /dev/null @@ -1,12 +0,0 @@ -Federated Server -================ - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/horizontal_server.rst - :alt: View Source On Gitee - -.. toctree:: - :maxdepth: 1 - - horizontal/federated_server - horizontal/federated_server_yaml \ No newline at end of file diff --git a/docs/federated/docs/source_en/image_classfication_dataset_process.md b/docs/federated/docs/source_en/image_classfication_dataset_process.md deleted file mode 100644 index 6bae8149f1..0000000000 --- a/docs/federated/docs/source_en/image_classfication_dataset_process.md +++ /dev/null @@ -1,450 +0,0 @@ -# Federated Learning Image Classification Dataset Process - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/image_classfication_dataset_process.md) - -This tutorial uses the federated learning dataset `FEMNIST` in the `leaf` dataset, which contains 62 different categories of handwritten digits and letters (digits 0 to 9, 26 lowercase letters, and 26 uppercase letters) with an image size of `28 x 28` pixels. The dataset contains handwritten digits and letters from 3500 users (up to 3500 clients can be simulated to participate in federated learning). The total data volume is 805,263, the average data volume per user is 226.83, and the variance of the data volume for all users is 88.94. - -Refer to [leaf dataset instruction](https://github.com/TalwalkarLab/leaf) to download the dataset. - -1. Environmental requirements before downloading the dataset. - - ```sh - numpy==1.16.4 - scipy # conda install scipy - tensorflow==1.13.1 # pip install tensorflow - Pillow # pip install Pillow - matplotlib # pip install matplotlib - jupyter # conda install jupyter notebook==5.7.8 tornado==4.5.3 - pandas # pip install pandas - ``` - -2. Use git to download the official dataset generation script. - - ```sh - git clone https://github.com/TalwalkarLab/leaf.git - ``` - - After downloading the project, the directory structure is as follows: - - ```sh - leaf/data/femnist - ├── data # Used to store the dataset generated by the command - ├── preprocess # Store the code related to data pre-processing - ├── preprocess.sh # shell script generated by femnist dataset - └── README.md # Official dataset download guidance - ``` - -3. Taking `femnist` dataset as an example, run the following command to enter the specified path. - - ```sh - cd leaf/data/femnist - ``` - -4. Using the command `./preprocess.sh -s niid --sf 1.0 -k 0 -t sample` generates a dataset containing 3500 users, and the training sets and the test sets are divided in a ratio of 9:1 for each user's data. - - The meaning of the parameters in the command can be found in the `leaf/data/femnist/README.md` file. - - The directory structure after running is as follows: - - ```text - leaf/data/femnist/35_client_sf1_data/ - ├── all_data # All datasets are mixed together, without distinguishing the training sets and test sets, containing a total of 35 json files, and each json file contains the data of 100 users - ├── test # The test sets are divided into the training sets and the test sets in a ratio of 9:1 for each user's data, containing a total of 35 json files, and each json file contains the data of 100 users - ├── train # The training sets are divided into the training sets and the test sets in a ratio of 9:1 for each user's data, containing a total of 35 json files, and each json file contains the data of 100 users - └── ... # Other documents do not need to use, and details are not described herein - ``` - - Each json file contains the following three parts: - - - `users`: User list. - - `num_samples`: The sample number list of each user. - - `user_data`: A dictionary object with user names as key and their respective data as value. For each user, the data is represented as a list of images, with each image represented as a list of integers of size 784 (obtained by spreading the `28 x 28` image array). - - Before rerunning `preprocess.sh`, make sure to delete the `rem_user_data`, `sampled_data`, `test` and `train` subfolders from the data directory. - -5. Divide the 35 json files into 3500 json files (each json file represents a user). - - The code is as follows: - - ```python - import os - import json - - def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - def partition_json(root_path, new_root_path): - """ - partition 35 json files to 3500 json file - - Each raw .json file is an object with 3 keys: - 1. 'users', a list of users - 2. 'num_samples', a list of the number of samples for each user - 3. 'user_data', an object with user names as keys and their respective data as values; for each user, data is represented as a list of images, with each image represented as a size-784 integer list (flattened from 28 by 28) - - Each new .json file is an object with 3 keys: - 1. 'user_name', the name of user - 2. 'num_samples', the number of samples for the user - 3. 'user_data', an dict object with 'x' as keys and their respective data as values; with 'y' as keys and their respective label as values; - - Args: - root_path (str): raw root path of 35 json files - new_root_path (str): new root path of 3500 json files - """ - paths = os.listdir(root_path) - count = 0 - file_num = 0 - for i in paths: - file_num += 1 - file_path = os.path.join(root_path, i) - print('======== process ' + str(file_num) + ' file: ' + str(file_path) + '======================') - with open(file_path, 'r') as load_f: - load_dict = json.load(load_f) - users = load_dict['users'] - num_users = len(users) - num_samples = load_dict['num_samples'] - for j in range(num_users): - count += 1 - print('---processing user: ' + str(count) + '---') - cur_out = {'user_name': None, 'num_samples': None, 'user_data': {}} - cur_user_id = users[j] - cur_data_num = num_samples[j] - cur_user_path = os.path.join(new_root_path, cur_user_id + '.json') - cur_out['user_name'] = cur_user_id - cur_out['num_samples'] = cur_data_num - cur_out['user_data'].update(load_dict['user_data'][cur_user_id]) - with open(cur_user_path, 'w') as f: - json.dump(cur_out, f) - f = os.listdir(new_root_path) - print(len(f), ' users have been processed!') - # partition train json files - partition_json("leaf/data/femnist/35_client_sf1_data/train", "leaf/data/femnist/3500_client_json/train") - # partition test json files - partition_json("leaf/data/femnist/35_client_sf1_data/test", "leaf/data/femnist/3500_client_json/test") - ``` - - where `root_path` is `leaf/data/femnist/35_client_sf1_data/{train,test}`. `new_root_path` is set by itself to store the generated 3500 user json files, which need to be processed separately for the training and test folders. - - Each of the 3500 newly generated user json files contains the following three parts: - - - `user_name`: User name. - - `num_samples`: The number of user samples - - `user_data`: A dictionary object with 'x' as key and user data as value; with 'y' as key and the label corresponding to the user data as value. - - Print the result as following after running the script, which means a successful run: - - ```sh - ======== process 1 file: /leaf/data/femnist/35_client_sf1_data/train/all_data_16_niid_0_keep_0_train_9.json====================== - ---processing user: 1--- - ---processing user: 2--- - ---processing user: 3--- - ...... - ``` - -6. Convert a json file to an image file. - - Refer to the following code: - - ```python - import os - import json - import numpy as np - from PIL import Image - - name_list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', - 'v', 'w', 'x', 'y', 'z' - ] - - def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - def json_2_numpy(img_size, file_path): - """ - read json file to numpy - Args: - img_size (list): contain three elements: the height, width, channel of image - file_path (str): root path of 3500 json files - return: - image_numpy (numpy) - label_numpy (numpy) - """ - # open json file - with open(file_path, 'r') as load_f_train: - load_dict = json.load(load_f_train) - num_samples = load_dict['num_samples'] - x = load_dict['user_data']['x'] - y = load_dict['user_data']['y'] - size = (num_samples, img_size[0], img_size[1], img_size[2]) - image_numpy = np.array(x, dtype=np.float32).reshape(size) # mindspore doesn't support float64 and int64 - label_numpy = np.array(y, dtype=np.int32) - return image_numpy, label_numpy - - def json_2_img(json_path, save_path): - """ - transform single json file to images - - Args: - json_path (str): the path json file - save_path (str): the root path to save images - - """ - data, label = json_2_numpy([28, 28, 1], json_path) - for i in range(data.shape[0]): - img = data[i] * 255 # PIL don't support the 0/1 image ,need convert to 0~255 image - im = Image.fromarray(np.squeeze(img)) - im = im.convert('L') - img_name = str(label[i]) + '_' + name_list[label[i]] + '_' + str(i) + '.png' - path1 = os.path.join(save_path, str(label[i])) - mkdir(path1) - img_path = os.path.join(path1, img_name) - im.save(img_path) - print('-----', i, '-----') - - def all_json_2_img(root_path, save_root_path): - """ - transform json files to images - Args: - json_path (str): the root path of 3500 json files - save_path (str): the root path to save images - """ - usage = ['train', 'test'] - for i in range(2): - x = usage[i] - files_path = os.path.join(root_path, x) - files = os.listdir(files_path) - - for name in files: - user_name = name.split('.')[0] - json_path = os.path.join(files_path, name) - save_path1 = os.path.join(save_root_path, user_name) - mkdir(save_path1) - save_path = os.path.join(save_path1, x) - mkdir(save_path) - print('=============================' + name + '=======================') - json_2_img(json_path, save_path) - - all_json_2_img("leaf/data/femnist/3500_client_json/", "leaf/data/femnist/3500_client_img/") - ``` - - Print the result as following after running the script, which means a successful run: - - ```sh - =============================f0644_19.json======================= - ----- 0 ----- - ----- 1 ----- - ----- 2 ----- - ...... - ``` - -7. Since the dataset under some user folders is small, if the number is smaller than the batch size, random expansion is required. - - The entire dataset `"leaf/data/femnist/3500_client_img/"` can be checked and expanded by referring to the following code: - - ```python - import os - import shutil - from random import choice - - def count_dir(path): - num = 0 - for root, dirs, files in os.walk(path): - for file in files: - num += 1 - return num - - def get_img_list(path): - img_path_list = [] - label_list = os.listdir(path) - for i in range(len(label_list)): - label = label_list[i] - imgs_path = os.path.join(path, label) - imgs_name = os.listdir(imgs_path) - for j in range(len(imgs_name)): - img_name = imgs_name[j] - img_path = os.path.join(imgs_path, img_name) - img_path_list.append(img_path) - return img_path_list - - def data_aug(data_root_path, batch_size = 32): - users = os.listdir(data_root_path) - tags = ["train", "test"] - aug_users = [] - for i in range(len(users)): - user = users[i] - for tag in tags: - data_path = os.path.join(data_root_path, user, tag) - num_data = count_dir(data_path) - if num_data < batch_size: - aug_users.append(user + "_" + tag) - print("user: ", user, " ", tag, " data number: ", num_data, " < ", batch_size, " should be aug") - aug_num = batch_size - num_data - img_path_list = get_img_list(data_path) - for j in range(aug_num): - img_path = choice(img_path_list) - info = img_path.split(".") - aug_img_path = info[0] + "_aug_" + str(j) + ".png" - shutil.copy(img_path, aug_img_path) - print("[aug", j, "]", "============= copy file:", img_path, "to ->", aug_img_path) - print("the number of all aug users: " + str(len(aug_users))) - print("aug user name: ", end=" ") - for k in range(len(aug_users)): - print(aug_users[k], end = " ") - - if __name__ == "__main__": - data_root_path = "leaf/data/femnist/3500_client_img/" - batch_size = 32 - data_aug(data_root_path, batch_size) - ``` - -8. Convert the expanded image dataset into a bin file format usable in the Federated Learning Framework. - - Refer to the following code: - - ```python - import numpy as np - import os - import mindspore.dataset as ds - import mindspore.dataset.vision as vision - import mindspore.dataset.transforms as transforms - import mindspore - - def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - def count_id(path): - files = os.listdir(path) - ids = {} - for i in files: - ids[i] = int(i) - return ids - - def create_dataset_from_folder(data_path, img_size, batch_size=32, repeat_size=1, num_parallel_workers=1, shuffle=False): - """ create dataset for train or test - Args: - data_path: Data path - batch_size: The number of data records in each group - repeat_size: The number of replicated data records - num_parallel_workers: The number of parallel workers - """ - # define dataset - ids = count_id(data_path) - mnist_ds = ds.ImageFolderDataset(dataset_dir=data_path, decode=False, class_indexing=ids) - # define operation parameters - resize_height, resize_width = img_size[0], img_size[1] # 32 - - transform = [ - vision.Decode(True), - vision.Grayscale(1), - vision.Resize(size=(resize_height, resize_width)), - vision.Grayscale(3), - vision.ToTensor(), - ] - compose = transforms.Compose(transform) - - # apply map operations on images - mnist_ds = mnist_ds.map(input_columns="label", operations=transforms.TypeCast(mindspore.int32)) - mnist_ds = mnist_ds.map(input_columns="image", operations=compose) - - # apply DatasetOps - buffer_size = 10000 - if shuffle: - mnist_ds = mnist_ds.shuffle(buffer_size=buffer_size) # 10000 as in LeNet train script - mnist_ds = mnist_ds.batch(batch_size, drop_remainder=True) - mnist_ds = mnist_ds.repeat(repeat_size) - return mnist_ds - - def img2bin(root_path, root_save): - """ - transform images to bin files - - Args: - root_path: the root path of 3500 images files - root_save: the root path to save bin files - - """ - - use_list = [] - train_batch_num = [] - test_batch_num = [] - mkdir(root_save) - users = os.listdir(root_path) - for user in users: - use_list.append(user) - user_path = os.path.join(root_path, user) - train_test = os.listdir(user_path) - for tag in train_test: - data_path = os.path.join(user_path, tag) - dataset = create_dataset_from_folder(data_path, (32, 32, 1), 32) - batch_num = 0 - img_list = [] - label_list = [] - for data in dataset.create_dict_iterator(): - batch_x_tensor = data['image'] - batch_y_tensor = data['label'] - trans_img = np.transpose(batch_x_tensor.asnumpy(), [0, 2, 3, 1]) - img_list.append(trans_img) - label_list.append(batch_y_tensor.asnumpy()) - batch_num += 1 - - if tag == "train": - train_batch_num.append(batch_num) - elif tag == "test": - test_batch_num.append(batch_num) - - imgs = np.array(img_list) # (batch_num, 32,3,32,32) - labels = np.array(label_list) - path1 = os.path.join(root_save, user) - mkdir(path1) - image_path = os.path.join(path1, user + "_" + "bn_" + str(batch_num) + "_" + tag + "_data.bin") - label_path = os.path.join(path1, user + "_" + "bn_" + str(batch_num) + "_" + tag + "_label.bin") - - imgs.tofile(image_path) - labels.tofile(label_path) - print("user: " + user + " " + tag + "_batch_num: " + str(batch_num)) - print("total " + str(len(use_list)) + " users finished!") - - root_path = "leaf/data/femnist/3500_client_img/" - root_save = "leaf/data/femnist/3500_clients_bin" - img2bin(root_path, root_save) - ``` - - Print the result as following after running the script, which means a successful run: - - ```sh - user: f0141_43 test_batch_num: 1 - user: f0141_43 train_batch_num: 10 - user: f0137_14 test_batch_num: 1 - user: f0137_14 train_batch_num: 11 - ...... - total 3500 users finished! - ``` - -9. Generate `3500_clients_bin` folder containing a total of 3500 user folders with the following directory structure: - - ```sh - leaf/data/femnist/3500_clients_bin - ├── f0000_14 # User number - │ ├── f0000_14_bn_10_train_data.bin # The training data of user f0000_14 (The number 10 after bn_ represents the batch number) - │ ├── f0000_14_bn_10_train_label.bin # Training tag for user f0000_14 - │ ├── f0000_14_bn_1_test_data.bin # Test data of user f0000_14 (the number 1 after bn_ represents batch number) - │ └── f0000_14_bn_1_test_label.bin # Test tag for user f0000_14 - ├── f0001_41 # User number - │ ├── f0001_41_bn_11_train_data.bin # The training data of user f0001_41 (The number 11 after bn_ represents the batch number) - │ ├── f0001_41_bn_11_train_label.bin # Training tag for user f0001_41 - │ ├── f0001_41_bn_1_test_data.bin # Test data of user f0001_41 (the number 1 after bn_ represents batch number) - │ └── f0001_41_bn_1_test_label.bin # Test tag for user f0001_41 - │ ... - └── f4099_10 # User number - ├── f4099_10_bn_4_train_data.bin # The training data of user f4099_10 (the number 4 after bn_ represents the batch number) - ├── f4099_10_bn_4_train_label.bin # Training tag for user f4099_10 - ├── f4099_10_bn_1_test_data.bin # Test data of user f4099_10 (the number 1 after bn_ represents batch number) - └── f4099_10_bn_1_test_label.bin # Test tag for user f4099_10 - ``` - -The `3500_clients_bin` folder generated according to steps 1 to 9 above can be directly used as the input data for the device-cloud federated image classification task. diff --git a/docs/federated/docs/source_en/image_classification_application.md b/docs/federated/docs/source_en/image_classification_application.md deleted file mode 100644 index 04a7b00dc0..0000000000 --- a/docs/federated/docs/source_en/image_classification_application.md +++ /dev/null @@ -1,331 +0,0 @@ -# Implementing an Image Classification Application of Cross-device Federated Learning (x86) - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/image_classification_application.md) - -Federated learning can be divided into cross-silo federated learning and cross-device federated learning according to different participating clients. In the cross-silo federated learning scenario, the clients participating in federated learning are different organizations (for example, medical or financial) or data centers geographically distributed, that is, training models on multiple data islands. The clients participating in the cross-device federated learning scenario are a large number of mobiles or IoT devices. This framework will introduce how to use the network LeNet to implement an image classification application on the MindSpore cross-silo federated framework, and provides related tutorials for simulating to start multi-client participation in federated learning in the x86 environment. - -Before you start, check whether MindSpore has been correctly installed. If not, install MindSpore on your computer by referring to [Install](https://www.mindspore.cn/install/en) on the MindSpore website. - -## Preparation - -We provide [Federated Learning Image Classification Dataset FEMNIST](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/federated/3500_clients_bin.zip) and the [device-side model file](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/models/lenet_train.ms) of the `.ms` format for users to use directly. Users can also refer to the following tutorials to generate the datasets and models based on actual needs. - -### Generating a Device-side Model File - -1. Define the network and training process. - - For the definition of the specific network and training process, please refer to [Beginners Getting Started](https://www.mindspore.cn/tutorials/en/master/beginner/quick_start.html). - -2. Export a model as a MindIR file. - - The code snippet is as follows: - - ```python - import argparse - import numpy as np - import mindspore as ms - import mindspore.nn as nn - - def conv(in_channels, out_channels, kernel_size, stride=1, padding=0): - """weight initial for conv layer""" - weight = weight_variable() - return nn.Conv2d( - in_channels, - out_channels, - kernel_size=kernel_size, - stride=stride, - padding=padding, - weight_init=weight, - has_bias=False, - pad_mode="valid", - ) - - def fc_with_initialize(input_channels, out_channels): - """weight initial for fc layer""" - weight = weight_variable() - bias = weight_variable() - return nn.Dense(input_channels, out_channels, weight, bias) - - def weight_variable(): - """weight initial""" - return ms.common.initializer.TruncatedNormal(0.02) - - class LeNet5(nn.Cell): - def __init__(self, num_class=10, channel=3): - super(LeNet5, self).__init__() - self.num_class = num_class - self.conv1 = conv(channel, 6, 5) - self.conv2 = conv(6, 16, 5) - self.fc1 = fc_with_initialize(16 * 5 * 5, 120) - self.fc2 = fc_with_initialize(120, 84) - self.fc3 = fc_with_initialize(84, self.num_class) - self.relu = nn.ReLU() - self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2) - self.flatten = nn.Flatten() - - def construct(self, x): - x = self.conv1(x) - x = self.relu(x) - x = self.max_pool2d(x) - x = self.conv2(x) - x = self.relu(x) - x = self.max_pool2d(x) - x = self.flatten(x) - x = self.fc1(x) - x = self.relu(x) - x = self.fc2(x) - x = self.relu(x) - x = self.fc3(x) - return x - - parser = argparse.ArgumentParser(description="export mindir for lenet") - parser.add_argument("--device_target", type=str, default="CPU") - parser.add_argument("--mindir_path", type=str, - default="lenet_train.mindir") # the mindir file path of the model to be export - - args, _ = parser.parse_known_args() - device_target = args.device_target - mindir_path = args.mindir_path - - ms.set_context(mode=ms.GRAPH_MODE, device_target=device_target) - - if __name__ == "__main__": - np.random.seed(0) - network = LeNet5(62) - criterion = nn.SoftmaxCrossEntropyWithLogits(sparse=False, reduction="mean") - net_opt = nn.Momentum(network.trainable_params(), 0.01, 0.9) - net_with_criterion = nn.WithLossCell(network, criterion) - train_network = nn.TrainOneStepCell(net_with_criterion, net_opt) - train_network.set_train() - - data = ms.Tensor(np.random.rand(32, 3, 32, 32).astype(np.float32)) - label = ms.Tensor(np.random.randint(0, 1, (32, 62)).astype(np.float32)) - ms.export(train_network, data, label, file_name=mindir_path, - file_format='MINDIR') # Add the export statement to obtain the model file in MindIR format. - ``` - - The parameter `--mindir_path` is used to set the path of the generated file in MindIR format. - -3. Convert the MindIR file into an .ms file that can be used by the federated learning device-side framework. - - For details about model conversion, see [Training Model Conversion Tutorial](https://www.mindspore.cn/lite/docs/en/master/train/converter_train.html). - - The following is an example of model conversion: - - Assume that the model file to be converted is `lenet_train.mindir`. Run the following command: - - ```sh - ./converter_lite --fmk=MINDIR --trainModel=true --modelFile=lenet_train.mindir --outputFile=lenet_train - ``` - - If the conversion is successful, the following information is displayed: - - ```sh - CONVERT RESULT SUCCESS:0 - ``` - - This indicates that the MindSpore model is successfully converted to the MindSpore device-side model and the new file `lenet_train.ms` is generated. If the conversion fails, the following information is displayed: - - ```sh - CONVERT RESULT FAILED: - ``` - - The generated model file in `.ms` format is the model file required by subsequent clients. - -## Simulating Multi-client Participation in Federated Learning - -### Preparing a Model File for the Client - -This example uses lenet on the device-side to simulate the actual network used, where[device-side model file](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/models/lenet_train.ms) in `.ms` format of lenet. As the real scenario where a client contains only one model file in .ms format, in the simulation scenario, multiple copies of the .ms file need to be copied and named according to the `lenet_train{i}.ms` format, where i represents the client number, since the .ms file has been automatically copied for each client in `run_client_x86.py`. - -See the copy_ms function in [startup script](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/simulate_x86/run_client_x86.py) for details. - -### Starting the Cloud Side Service - -Users can first refer to [cloud-side deployment tutorial](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_server.html) to deploy the cloud-side environment and start the cloud-side service. - -### Starting the Client - -Before starting the client, please refer to the section [Device-side deployment tutotial](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html) for deployment of device environment. - -We provide a reference script [run_client_x86.py](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/simulate_x86/run_client_x86.py), users can set relevant parameters to start different federated learning interfaces. -After the cloud-side service is successfully started, the script providing run_client_x86.py is used to call the federated learning framework jar package `mindspore-lite-java-flclient.jar` and the corresponding jar package `quick_start_flclient.jar` of the model script, obtaining in [Compiling package Flow in device-side deployment](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html) to simulate starting multiple clients to participate in the federated learning task. - -Taking the LeNet network as an example, some of the input parameters in the `run_client_x86.py` script have the following meanings, and users can set them according to the actual situation: - -- `--fl_jar_path` - - For setting the federated learning jar package path and obtaining x86 environment federated learning jar package, refer to [Compile package process in device-side deployment](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html). - -- `--case_jar_path` - - For setting the path of jar package `quick_start_flclient.jar` generated by model script and obtaining the JAR package in the x86 environment, see [Compile package process in device-side deployment](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html). - -- `--lite_jar_path` - - For setting the path of jar package `mindspore-lite-java.jar` of mindspore lite, which is located in `mindspore-lite-{version}-linux-x64.tar.gz`. For x86 environment federated learning jar package acquisition, see [Compile package process in device-side deployment](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html). - -- `--train_data_dir` - - The root path of the training dataset in which the LeNet image classification task is stored is the training data.bin file and label.bin file for each client, e.g. `data/femnist/3500_clients_bin/`. - -- `--fl_name` - - Specifies the package path of model script used by federated learning. We provide two types of model scripts for your reference ([Supervised sentiment classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert), [Lenet image classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet)). For supervised sentiment classification tasks, this parameter can be set to the package path of the provided script file [AlBertClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert/AlbertClient.java), like as `com.mindspore.flclient.demo.albert.AlbertClient`. For Lenet image classification tasks, this parameter can be set to the package path of the provided script file [LenetClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet/LenetClient.java), like as `com.mindspore.flclient.demo.lenet.LenetClient`. At the same time, users can refer to these two types of model scripts, define the model script by themselves, and then set the parameter to the package path of the customized model file ModelClient.java (which needs to inherit from the class [Client.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/model/Client.java)). - -- `--train_model_dir` - - Specifies the training model path used for federated learning. The path is the directory where multiple .ms files copied in the preceding tutorial are stored, for example, `ms/lenet`. The path must be an absolute path. - -- `--domain_name` - - Used to set the url for device-cloud communication. Currently, https and http communication are supported, and the corresponding formats are like as: https://......, http://....... When `if_use_elb` is set to true, the format must be: or , where `127.0.0.1` corresponds to the ip of the machine ip providing cloud-side services (corresponding to the cloud-side parameter `--scheduler_ip`), and `6666` corresponds to the cloud-side parameter `--fl_server_port`. - - Note 1: When this parameter is set to `http://......`, it means that HTTP communication is used, and there may be communication security risks. - - Note 2: When this parameter is set to `https://......`, it means the use of HTTPS communication. At this time, SSL certificate authentication must be performed, and the certificate path needs to be set by the parameter `-cert_path`. - -- `--task` - - Specifies the type of the task to be started. `train` indicates that a training task is started. `inference` indicates that multiple data inference tasks are started. `getModel` indicates that the task for obtaining the cloud model is started. Other character strings indicate that the inference task of a single data record is started. The default value is `train`. The initial model file (.ms file) is not trained. Therefore, you are advised to start the training task first. After the training is complete, start the inference task. (Note that the values of client_num in the two startups must be the same to ensure that the model file used by `inference` is the same as that used by `train`.) - -- `--batch_size` - - Specifies the number of single-step training samples used in federated learning training and inference, that is, batch size. It needs to be consistent with the batch size of the input data of the model. - -- `--client_num` - - Specifies the number of clients. The value must be the same as that of `start_fl_job_cnt` when the server is started. This parameter is not required in actual scenarios. - -If you want to know more about the meaning of other parameters in the `run_client_x86.py` script, you can refer to the comments in the script. - -The basic startup instructions of the federated learning interface are as follows: - -```sh - rm -rf client_*\ - && rm -rf ms/* \ - && python3 run_client_x86.py \ - --fl_jar_path="federated/mindspore_federated/device_client/build/libs/jarX86/mindspore-lite-java-flclient.jar" \ - --case_jar_path="federated/example/quick_start_flclient/target/case_jar/quick_start_flclient.jar" \ - --lite_jar_path="federated/mindspore_federated/device_client/third/mindspore-lite-2.0.0-linux-x64/runtime/lib/mindspore-lite-java.jar" \ - --train_data_dir="federated/tests/st/simulate_x86/data/3500_clients_bin/" \ - --eval_data_dir="null" \ - --infer_data_dir="null" \ - --vocab_path="null" \ - --ids_path="null" \ - --path_regex="," \ - --fl_name="com.mindspore.flclient.demo.lenet.LenetClient" \ - --origin_train_model_path="federated/tests/st/simulate_x86/ms_files/lenet/lenet_train.ms" \ - --origin_infer_model_path="null" \ - --train_model_dir="ms" \ - --infer_model_dir="ms" \ - --ssl_protocol="TLSv1.2" \ - --deploy_env="x86" \ - --domain_name="http://10.*.*.*:8010" \ - --cert_path="CARoot.pem" --use_elb="false" \ - --server_num=1 \ - --task="train" \ - --thread_num=1 \ - --cpu_bind_mode="NOT_BINDING_CORE" \ - --train_weight_name="null" \ - --infer_weight_name="null" \ - --name_regex="::" \ - --server_mode="FEDERATED_LEARNING" \ - --batch_size=32 \ - --input_shape="null" \ - --client_num=8 -``` - -Note that the related path in the startup command must give an absolute path. - -The above commands indicate that eight clients are started to participate in federated learning. If the startup is successful, log files corresponding to the eight clients are generated in the current folder. You can view the log files to learn the running status of each client: - -```text -./ -├── client_0 -│ └── client.log # Log file of client 0. -│ ...... -└── client_7 - └── client.log # Log file of client 7. -``` - -For different interfaces and scenarios, you only need to modify specific parameter values according to the meaning of the parameters, such as: - -- Start federated learning and training tasks: SyncFLJob.flJobRun() - - When `--task` in `Basic Start Command` is set to `train`, it means to start the task. - - You can use the command `grep -r "average loss:" client_0/client.log` to view the average loss of each epoch of `client_0` during the training process. It will be printed as follows: - - ```sh - INFO: ----------epoch:0,average loss:4.1258564 ---------- - ...... - ``` - - You can also use the command `grep -r "evaluate acc:" client_0/client.log` to view the verification accuracy of the model after the aggregation in each federated learning iteration for `client_0` . It will be printed like the following: - - ```sh - INFO: [evaluate] evaluate acc: 0.125 - ...... - ``` - - On the cloud side, the number of client group ids and algorithm type for unsupervised cluster index statistics can be specified by setting the 'cluster_client_num' parameter and 'eval_type' parameter of yaml configuration file. The 'metrics.json' statistical file generated on the cloud side can query the unsupervised indicator information: - - ```text - "unsupervisedEval":0.640 - "unsupervisedEval":0.675 - "unsupervisedEval":0.677 - "unsupervisedEval":0.706 - ...... - ``` - -- Start the inference task: SyncFLJob.modelInference() - - When `--task` in `Basic Start Command` is set to `inference`, it means to start the task. - - You can view the inference result of `client_0` through the command `grep -r "the predicted labels:" client_0/client.log`: - - ```sh - INFO: [model inference] the predicted labels: [0, 0, 0, 1, 1, 1, 2, 2, 2] - ...... - ``` - -- Start the task of obtaining the latest model on the cloud side: SyncFLJob.getModel() - - When `--task` in `Basic Start Command` is set to `inference`, it means to start the task. - - If there is the following content in the log file, it means that the latest model on the cloud side is successfully obtained: - - ```sh - INFO: [getModel] get response from server ok! - ``` - -### Stopping the Client Process - -For details, see the [finish.py](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/simulate_x86/finish.py) script. The details are as follows: - -The command of stopping the client process: - -```sh -python finish.py --kill_tag=mindspore-lite-java-flclient -``` - -The parameter `--kill_tag` is used to search for the keyword to kill the client process. You only need to set the special keyword in `--jarPath`. The default value is `mindspore-lite-java-flclient`, that is, the name of the federated learning JAR package. The user can check whether the process still exists through the command `ps -ef |grep "mindspore-lite-java-flclient"`. - -Experimental results of 50 clients participating in federated learning and training tasks. - -Currently, the `3500_clients_bin` folder contains data of 3500 clients. This script can simulate a maximum of 3500 clients to participate in federated learning. - -The following figure shows the accuracy of the test dataset for federated learning on 50 clients (set `server_num` to 16). - -![lenet_50_clients_acc](images/lenet_50_clients_acc_en.png) - -The total number of federated learning iterations is 100, the number of epochs for local training on the client is 20, and the value of batchSize is 32. - -The test accuracy in the figure refers to the accuracy of each client test dataset on the aggregated model on the cloud for each federated learning iteration: - -AVG: average accuracy of 50 clients in the test dataset for each federated learning iteration. - -TOP5: average accuracy of the 5 clients with the highest accuracy in the test dataset for each federated learning iteration. - -LOW5: average accuracy of the 5 clients with the lowest accuracy in the test dataset for each federated learning iteration. diff --git a/docs/federated/docs/source_en/image_classification_application_in_cross_silo.md b/docs/federated/docs/source_en/image_classification_application_in_cross_silo.md deleted file mode 100644 index 86196f4866..0000000000 --- a/docs/federated/docs/source_en/image_classification_application_in_cross_silo.md +++ /dev/null @@ -1,313 +0,0 @@ -# Implementing a Cloud-Slio Federated Image Classification Application (x86) - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/image_classification_application_in_cross_silo.md) - -Based on the type of participating clients, federated learning can be classified into cross-silo federated learning and cross-device federated learning. In a cross-silo federated learning scenario, the clients involved in federated learning are different organizations (e.g., healthcare or finance) or geographically distributed data centers, i.e., training models on multiple data silos. In the cross-device federated learning scenario, the participating clients are a large number of mobile or IoT devices. This framework will describe how to implement an image classification application by using the network LeNet on the MindSpore Federated cross-silo federated framework. - -The full script to launch cross-silo federated image classification application can be found [here](https://gitee.com/mindspore/federated/tree/master/example/cross_silo_femnist). - -## Downloading the Dataset - -This example uses the federated learning dataset `FEMNIST` from [leaf dataset](https://github.com/TalwalkarLab/leaf), which contains 62 different categories of handwritten numbers and letters (numbers 0 to 9, 26 lowercase letters, 26 uppercase letters) with an image size of `28 x 28` pixels. The dataset contains handwritten digits and letters from 3500 users (up to 3500 clients can be simulated to participate in federated learning). The total data volume is 805263, the average amount of data contained per user is 226.83, and the variance of the data volume for all users is 88.94. - -You can refer to [Image classfication dataset process](https://www.mindspore.cn/federated/docs/en/master/image_classfication_dataset_process.html) in steps 1 to 7 to obtain the 3500 user datasets `3500_client_img` in the form of images. - -Due to the relatively small amount of data per user in the original 3500 user dataset, it will converge too fast in the cross-silo federated task to obviously reflect the convergence effect of the cross-silo federated framework. The following provides a reference script to merge the specified number of user data into one user to increase the amount of individual user data participating in the cross-silo federated task and better simulate the cross-silo federated framework experiment. - -```python -import os -import shutil - - -def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - -def combine_users(root_data_path, new_data_path, raw_user_num, new_user_num): - mkdir(new_data_path) - user_list = os.listdir(root_data_path) - num_per_user = int(raw_user_num / new_user_num) - for i in range(new_user_num): - print( - "========================== combine the raw {}~{} users to the new user: dataset_{} ==========================".format( - i * num_per_user, i * num_per_user + num_per_user - 1, i)) - new_user = "dataset_" + str(i) - new_user_path = os.path.join(new_data_path, new_user) - mkdir(new_user_path) - for j in range(num_per_user): - index = i * new_user_num + j - user = user_list[index] - user_path = os.path.join(root_data_path, user) - tags = os.listdir(user_path) - print("------------- process the raw user: {} -------------".format(user)) - for t in tags: - tag_path = os.path.join(user_path, t) - label_list = os.listdir(tag_path) - new_tag_path = os.path.join(new_user_path, t) - mkdir(new_tag_path) - for label in label_list: - label_path = os.path.join(tag_path, label) - img_list = os.listdir(label_path) - new_label_path = os.path.join(new_tag_path, label) - mkdir(new_label_path) - - for img in img_list: - img_path = os.path.join(label_path, img) - new_img_name = user + "_" + img - new_img_path = os.path.join(new_label_path, new_img_name) - shutil.copy(img_path, new_img_path) - -if __name__ == "__main__": - root_data_path = "cross_silo_femnist/femnist/3500_clients_img" - new_data_path = "cross_silo_femnist/femnist/35_7_client_img" - raw_user_num = 35 - new_user_num = 7 - combine_users(root_data_path, new_data_path, raw_user_num, new_user_num) -``` - -where `root_data_path` is the path to the original 3500 user datasets, `new_data_path` is the path to the merged dataset, `raw_user_num` specifies the total number of user datasets to be merged (needs to be <= 3500), and `new_user_num` is used to set the number of users merged by the original datasets. For example, the sample code will select the first 35 users from `cross_silo_femnist/femnist/3500_clients_img`, merge them into 7 user datasets and store them in the path `cross_silo_femnist/femnist/35_7_client_img` (the merged 7 users each contains the original 5 user dataset). - -The following print represents a successful merge of the datasets. - -```sh -========================== combine the raw 0~4 users to the new user: dataset_0 ========================== -------------- process the raw user: f1798_42 ------------- -------------- process the raw user: f2149_81 ------------- -------------- process the raw user: f4046_46 ------------- -------------- process the raw user: f1093_13 ------------- -------------- process the raw user: f1124_24 ------------- -========================== combine the raw 5~9 users to the new user: dataset_1 ========================== -------------- process the raw user: f0586_11 ------------- -------------- process the raw user: f0721_31 ------------- -------------- process the raw user: f3527_33 ------------- -------------- process the raw user: f0146_33 ------------- -------------- process the raw user: f1272_09 ------------- -========================== combine the raw 10~14 users to the new user: dataset_2 ========================== -------------- process the raw user: f0245_40 ------------- -------------- process the raw user: f2363_77 ------------- -------------- process the raw user: f3596_19 ------------- -------------- process the raw user: f2418_82 ------------- -------------- process the raw user: f2288_58 ------------- -========================== combine the raw 15~19 users to the new user: dataset_3 ========================== -------------- process the raw user: f2249_75 ------------- -------------- process the raw user: f3681_31 ------------- -------------- process the raw user: f3766_48 ------------- -------------- process the raw user: f0537_35 ------------- -------------- process the raw user: f0614_14 ------------- -========================== combine the raw 20~24 users to the new user: dataset_4 ========================== -------------- process the raw user: f2302_58 ------------- -------------- process the raw user: f3472_19 ------------- -------------- process the raw user: f3327_11 ------------- -------------- process the raw user: f1892_07 ------------- -------------- process the raw user: f3184_11 ------------- -========================== combine the raw 25~29 users to the new user: dataset_5 ========================== -------------- process the raw user: f1692_18 ------------- -------------- process the raw user: f1473_30 ------------- -------------- process the raw user: f0909_04 ------------- -------------- process the raw user: f1956_19 ------------- -------------- process the raw user: f1234_26 ------------- -========================== combine the raw 30~34 users to the new user: dataset_6 ========================== -------------- process the raw user: f0031_02 ------------- -------------- process the raw user: f0300_24 ------------- -------------- process the raw user: f4064_46 ------------- -------------- process the raw user: f2439_77 ------------- -------------- process the raw user: f1717_16 ------------- -``` - -The following directory structure of the folder `cross_silo_femnist/femnist/35_7_client_img` is as follows: - -```text -35_7_client_img # Merge the 35 users in the FeMnist dataset into 7 client data (each containing 5 pieces of user data) -├── dataset_0 # The dataset of Client 0 -│ ├── train # Training dataset -│ │ ├── 0 # Store image data corresponding to category 0 -│ │ ├── 1 # Store image data corresponding to category 1 -│ │ │ ...... -│ │ └── 61 # Store image data corresponding to category 61 -│ └── test # Test dataset, with the same directory structure as train -│ ...... -│ -└── dataset_6 # The dataset of Client 6 - ├── train # Training dataset - │ ├── 0 # Store image data corresponding to category 0 - │ ├── 1 # Store image data corresponding to category 1 - │ │ ...... - │ └── 61 # Store image data corresponding to category 61 - └── test # Test dataset, with the same directory structure as train -``` - -## Defining the Network - -We choose the relatively simple LeNet network, which has seven layers without the input layer: two convolutional layers, two downsampling layers (pooling layers), and three fully connected layers. Each layer contains a different number of training parameters, as shown in the following figure: - -![LeNet5](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/LeNet_5.jpg) - -> More information about LeNet network is not described herein. For more details, please refer to . - -The network used for this task can be found in the script [test_cross_silo_femnist.py](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_femnist/test_cross_silo_femnist.py). - -For a specific understanding of the network definition process in MindSpore, please refer to [quick start](https://www.mindspore.cn/tutorials/en/master/beginner/quick_start.html#building-network). - -## Launching the Cross-Silo Federated Task - -### Installing MindSpore and MindSpore Federated - -Both source code and downloadable distribution are included. Support CPU, GPU, Ascend hardware platforms, just choose to install according to the hardware platforms. The installation steps can be found in [MindSpore Installation Guide](https://www.mindspore.cn/install), [MindSpore Federated Installation Guide](https://www.mindspore.cn/federated/docs/en/master/federated_install.html). - -Currently the federated learning framework is only supported for deployment in Linux environments. Cross-silo federated learning framework requires MindSpore version number >= 1.5.0. - -### Launching the Task - -Refer to [Example](https://gitee.com/mindspore/federated/tree/master/example/cross_silo_femnist) to launch cluster. The reference example directory structure is as follows. - -```text -cross_silo_femnist/ -├── config.json # Configuration file -├── finish_cross_silo_femnist.py # Close the cross-silo federated task script -├── run_cross_silo_femnist_sched.py # Start cross-silo federated scheduler script -├── run_cross_silo_femnist_server.py # Start cross-silo federated server script -├── run_cross_silo_femnist_worker.py # Start cross-silo federated worker script -├── run_cross_silo_femnist_worker_distributed.py # Start the cloud Federation distributed training worker script -└── test_cross_silo_femnist.py # Training scripts used by the client -``` - -1. Start Scheduler - - `run_cross_silo_femnist_sched.py` is a Python script provided for the user to start the `Scheduler` and supports modifying the configuration via argument passing `argparse`. The following command is executed, representing the `Scheduler` that starts this federated learning task with TCP port `5554`. - - ```sh - python run_cross_silo_femnist_sched.py --scheduler_manage_address=127.0.0.1:5554 - ``` - - The following print represents a successful start-up: - - ```sh - [INFO] FEDERATED(35566,7f4275895740,python):2022-10-09-15:23:22.450.205 [mindspore_federated/fl_arch/ccsrc/scheduler/scheduler.cc:35] Run] Scheduler started successfully. - [INFO] FEDERATED(35566,7f41f259d700,python):2022-10-09-15:23:22.450.357 [mindspore_federated/fl_arch/ccsrc/common/communicator/http_request_handler.cc:90] Run] Start http server! - ``` - -2. Start Server - - `run_cross_silo_femnist_server.py` is a Python script for the user to start a number of `Server`, and supports modify the configuration via argument passing `argparse`. The following command is executed, representing the `Server` that starts this federated learning task, with an http start port of `5555` and a number of `servers` of `4`. - - ```sh - python run_cross_silo_femnist_server.py --local_server_num=4 --http_server_address=10.*.*.*:5555 - ``` - - The above command is equivalent to starting four `Server` processes, each with a federated learning service port of `5555`, `5556`, `5557` and `5558`. - -3. Start Worker - - `run_cross_silo_femnist_worker.py` is a Python script for the user to start a number of `worker`, and supports modify the configuration via argument passing `argparse`. The following command is executed, representing the `worker` that starts this federated learning task, with an http start port of `5555` and a number of `worker` of `4`. - - ```sh - python run_cross_silo_femnist_worker.py --dataset_path=/data_nfs/code/fed_user_doc/federated/tests/st/cross_silo_femnist/35_7_client_img/ --http_server_address=10.*.*.*:5555 - ``` - - At present, the `worker` node of the cloud federation supports the distributed training mode of single machine multi-card and multi-machine multi-card. `run_cross_silo_femnist_worker_distributed.py` is a Python script provided for users to start the distributed training of `worker` node. It also supports the configuration modification through parameter argparse. Execute the following instructions, representing the distributed `worker` that starts this federated learning task, where `device_num` represents the number of processes started by the `worker` cluster, `run_distribute` represents the distributed training started by the cluster, and its http start port is `5555`. The number of `orker` processes is `4`: - - ```sh - python run_cross_silo_femnist_worker_distributed.py --device_num=4 --run_distribute=True --dataset_path=/data_nfs/code/fed_user_doc/federated/tests/st/cross_silo_femnist/35_7_client_img/ --http_server_address=10.*.*.*:5555 - ``` - -After executing the above three commands, go to the `worker_0` folder in the current directory and check the `worker_0` log with the command `grep -rn "test acc" *` and you will see a print similar to the following: - -```sh -local epoch: 0, loss: 3.787421340711655, trian acc: 0.05342741935483871, test acc: 0.075 -``` - -Then it means that cross-silo federated learning is started successfully and `worker_0` is training, other workers can be viewed in a similar way. - -If worker has been started in distributed multi-card training mode, enter the folder `worker_distributed/log_output/` in the current directory, and run the command `grep -rn "test acc" *` to view the log of `worker` distributed cluster. You can see the following print: - -```text -local epoch: 0, loss: 2.3467453340711655, trian acc: 0.06532451988877687, test acc: 0.076 -``` - -Please refer to [yaml configuration notes](https://www.mindspore.cn/federated/docs/zh-CN/master/horizontal/federated_server_yaml.html) for the description of parameter configuration in the above script. - -### Viewing Log - -After successfully starting the task, the corresponding log file will be generated under the current directory `cross_silo_femnist` with the following log file directory structure: - -```text -cross_silo_femnist -├── scheduler -│ └── scheduler.log # Print the log during running scheduler -├── server_0 -│ └── server.log # Print the log during running server_0 -├── server_1 -│ └── server.log # Print the log during running server_1 -├── server_2 -│ └── server.log # Print the log during running server_2 -├── server_3 -│ └── server.log # Print the log during running server_3 -├── worker_0 -│ ├── ckpt # Store the aggregated model ckpt obtained by worker_0 at the end of each federation learning iteration -│ │ ├── 0-fl-ms-bs32-0epoch.ckpt -│ │ ├── 0-fl-ms-bs32-1epoch.ckpt -│ │ │ -│ │ │ ...... -│ │ │ -│ │ └── 0-fl-ms-bs32-19epoch.ckpt -│ └── worker.log # Record the output logs when worker_0 participates in the federated learning task -└── worker_1 - ├── ckpt # Store the aggregated model ckpt obtained by worker_1 at the end of each federation learning iteration - │ ├── 1-fl-ms-bs32-0epoch.ckpt - │ ├── 1-fl-ms-bs32-1epoch.ckpt - │ │ - │ │ ...... - │ │ - │ └── 1-fl-ms-bs32-19epoch.ckpt - └── worker.log # Record the output logs when worker_1 participates in the federated learning task -``` - -### Closing the Task - -If you want to exit in the middle, the following command is available: - -```sh -python finish_cross_silo_femnist.py --redis_port=2345 -``` - -Or wait until the training task is finished and then the cluster will exit automatically, no need to close it manually. - -### Results - -- Used data: - - The `35_7_client_img/` dataset generated in the `download dataset` section above - -- The number of client-side local training epochs: 20 - -- The total number of cross-silo federated learning iterations: 20 - -- Results (accuracy of the model on the client's test set after each iteration aggregation) - -`worker_0` result: - -```sh -worker_0/worker.log:7409:local epoch: 0, loss: 3.787421340711655, trian acc: 0.05342741935483871, test acc: 0.075 -worker_0/worker.log:14419:local epoch: 1, loss: 3.725699281115686, trian acc: 0.05342741935483871, test acc: 0.075 -worker_0/worker.log:21429:local epoch: 2, loss: 3.5285709657335795, trian acc: 0.19556451612903225, test acc: 0.16875 -worker_0/worker.log:28439:local epoch: 3, loss: 3.0393165519160608, trian acc: 0.4889112903225806, test acc: 0.4875 -worker_0/worker.log:35449:local epoch: 4, loss: 2.575952764115026, trian acc: 0.6854838709677419, test acc: 0.60625 -worker_0/worker.log:42459:local epoch: 5, loss: 2.2081101375296512, trian acc: 0.7782258064516129, test acc: 0.6875 -worker_0/worker.log:49470:local epoch: 6, loss: 1.9229739431736557, trian acc: 0.8054435483870968, test acc: 0.69375 -worker_0/worker.log:56480:local epoch: 7, loss: 1.7005576549999293, trian acc: 0.8296370967741935, test acc: 0.65625 -worker_0/worker.log:63490:local epoch: 8, loss: 1.5248727620766704, trian acc: 0.8407258064516129, test acc: 0.6375 -worker_0/worker.log:70500:local epoch: 9, loss: 1.3838803705352127, trian acc: 0.8568548387096774, test acc: 0.7 -worker_0/worker.log:77510:local epoch: 10, loss: 1.265225578921041, trian acc: 0.8679435483870968, test acc: 0.7125 -worker_0/worker.log:84520:local epoch: 11, loss: 1.167484122101638, trian acc: 0.8659274193548387, test acc: 0.70625 -worker_0/worker.log:91530:local epoch: 12, loss: 1.082880981700859, trian acc: 0.8770161290322581, test acc: 0.65625 -worker_0/worker.log:98540:local epoch: 13, loss: 1.0097520119572772, trian acc: 0.8840725806451613, test acc: 0.64375 -worker_0/worker.log:105550:local epoch: 14, loss: 0.9469810053708015, trian acc: 0.9022177419354839, test acc: 0.7 -worker_0/worker.log:112560:local epoch: 15, loss: 0.8907848935604703, trian acc: 0.9022177419354839, test acc: 0.6625 -worker_0/worker.log:119570:local epoch: 16, loss: 0.8416629644123349, trian acc: 0.9082661290322581, test acc: 0.70625 -worker_0/worker.log:126580:local epoch: 17, loss: 0.798475691030866, trian acc: 0.9122983870967742, test acc: 0.70625 -worker_0/worker.log:133591:local epoch: 18, loss: 0.7599438544427897, trian acc: 0.9243951612903226, test acc: 0.6875 -worker_0/worker.log:140599:local epoch: 19, loss: 0.7250227383907605, trian acc: 0.9294354838709677, test acc: 0.7125 -``` - -The test results of other clients are basically the same, so the details are not listed herein. diff --git a/docs/federated/docs/source_en/images/HFL_en.png b/docs/federated/docs/source_en/images/HFL_en.png deleted file mode 100644 index f7b5adac95b8dff2fc010fa49607c706b67daab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100803 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

    AnH%9aa5(w{d$)<4vsGMp9T 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

    Hk^`A@iO#Nmqx{cw&VY&cX2*-?>`{yC$=w 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

    oLRpWto0*1u41DB1gJ@X63a=NOm5DmW$h$y0o1 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 a+J(BAQD>YXnEB$`B2 diff --git a/docs/federated/docs/source_en/images/data_join_en.png b/docs/federated/docs/source_en/images/data_join_en.png deleted file mode 100644 index 9cd2b73335d611e9532867f08e675054244561aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64011 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 diff --git a/docs/federated/docs/source_en/images/deploy_VFL_en.png b/docs/federated/docs/source_en/images/deploy_VFL_en.png deleted file mode 100644 index 390edb1cd1be92e8234a79b36bd10571fba092f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116709 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%0DLB?*<1&DYEDG9gRaTR3P}qeZU{h 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

    0$4ddPo22&{eSP}J9m5_sA*?2bCVn|$zss`%87 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%0ABn-g+%3GsvZNE}_Fjl@R2z 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 F{{ZYkQGx&f diff --git a/docs/federated/docs/source_en/images/download_compress_client_en.png b/docs/federated/docs/source_en/images/download_compress_client_en.png deleted file mode 100644 index ab2b84783c1478091c2f9d600e5b051a2f4149dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6734 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 diff --git a/docs/federated/docs/source_en/images/download_compress_server_en.png b/docs/federated/docs/source_en/images/download_compress_server_en.png deleted file mode 100644 index 7917007287e2a7cf84adf3ecd559ee46b49b879b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8107 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 diff --git a/docs/federated/docs/source_en/images/label_dp_en.png b/docs/federated/docs/source_en/images/label_dp_en.png deleted file mode 100644 index 059f9bb61fdb129697d561cf476ef6e09adf4ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21352 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

    _AX-smm#^7Tm; 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 Am;e9( diff --git a/docs/federated/docs/source_en/images/start_android_project.png b/docs/federated/docs/source_en/images/start_android_project.png deleted file mode 100644 index 3a9336add10acbbef60dc429b8a3bad1ca198c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33377 zcmZ^KWl$W!+HQd07Th7g;_eQ?7IzOWi@UqKFYfN{?#|*G2=0MEg1g+D^PRuh9^creA#~N?B0~6^Rh()2C0UGSU*NpFTl@{@oWM!2LUiTTRsbyFj_9N{M}{nCInK}2 z7NlCv>OIHt3u|{SIkZlW76opFW~|B+g$Ss=jm7?RN~uNV=?>I7a}33n?=|0G0Nvi4|T)M3eTZx2~pl5exU36HA^LO``gG;WM9)Ng?P#lM1Az#SdZq&H&ccipdDEqSD}X!)whL~P)!Yk_ z{q)ZM^sN#F!P&?uUjAs*HUhEyVVtA92Uj*8RKO=7UzA1+8437{peDy_9A|X{z_)Xo zI6pJ3Y*;_Aq;vM?v10^=t2($cW%pJJ<6&*a6Tkd)Ufz^JBztK&Y0%u(z1SRe((-Ht zNw$<7(j+0p!%kLyP4}K{ue&Gb*gn#Hn%R&HqzlQkIk_5K!)!VtGQ~JDZx(q+yrRR2 zrcKwO);*GXXzdDe{7ak1yB+d;DDZgvpb{{tjm|xU${vo z73mBnV9wq`O&^v$QvX(Ht|1rij-0Brq<{?RrM1yE<~VOyCw8o&`l_N{Mig{y!4)Wm zbbz-rNR)n(LeaihNg=Vn*09hYO3vZfvZL&IJIy({nEov-^&FBL*9dU|cZS_7@)9eq z5yXA2S!9%}gT&z@=k$HWbP|b{i_zAG;(zAHxaHMOG#9Mx(Lo`PZ7HVaK1btFXu-k- zg_q_CvEpMgrs$MV!m&haXUGojp_4ECi6Fm<%r^JM1qWqS6}CufPUpw{KqcT@GK0kZ zkqJiCv3HNGp@rrD;uRfm6h9`$7Zs36mvT9MBoJPXASKS^QRS)r?htBR=yRBq(ea48 z-NPRtFM~^a>Qc;DingG{A>SPP=+RwCEi679GdoM06USL*v8r4r#&oobEHka31jgr@ zem-&>w&EFPJx}6>QQe&WRBXG=;jd<%#PV|zC4GdcpXYq$^`~~5J7g@FaDzGjN-0mr z8kRBMa6kZWjJ5r{IX=A+6`sZqjW?_h^PJkQ|C)!!Zq~lbeXIaaV`oGVa%xs=eCcp) z<5HOlrH%WZ_40Io*H+AZUkLs^9vhoG>J34w&$ugtA16-yw0eer>F|k&H}?wUJ>+oZ z4{C97HGHpnl0kZ9haejAH4bvog;1o^uAGkr#1!ish)qQsE&v7muoC0<;IKGVb#yHdP$_xMVBKL}J2kREuwr*8_w zq}KrVVu9NXh|k?kLHqn^Xa1N$pO9i)w5K$rhcYqgHHS$gq~<<#Wx~a5B(&YzyS9vj zBR?B4S!9$|Rl%rcv>)JaM95g$Wc^UUo|N>pE!{TW`O}7h*??B3WOXW+G-i5#p9n%vX^r><#)#$X2mOe0;t< zK>uctlRg5(mk~w9G`YiPl>f1JZ6ximtMTFH@g)^FJ7TQL`wR!~y;luNWLjhyu3?{6 zF2WPn_fP6}D~Z9T1lc$AQL8^|8y2fb_@RWjF%ld5v9OqW=Q&3Zf$t4&CATbDU-dHY zB0$C-i~3SL-uwcIk>N6V#g`jd?8Td5HNx7t|IrZhYbXreJJb?ZNwF&AyqgA}q5VI@ zKzZ`1)^p3G-S&$uEyu=Ri$P1V(`2XQHi@r)ExcOD-$C!6LnSyw9xT4`ivjjVt5$}p zrkolk=JfM({4EEvc#bF|4qNuvDi21Ylx`Sg*H49b5R~#8I zeF``bA|%aeLK8<9cmyN=WJEwXV$>UhlpjO|*%o60r;1XVMOMQ?C?nVwvjdS~Ys#Hj zq3!U61*7{Sk%7h0&Y4!`{Ghg`?{vk9lviJaR6*jVZk=BuL-%M;zy`Ua=c<@bgfdzb z2c0kOp@<3pNKV_$XA&I4h(7V`qJ?8P3Mgx5 zj#D5`nv6jQWJvsTS-?@^+BI-Jd+x-9LeUF@ik`JpW-``He`w)=!1*7zUttSTq=iWa z-BA*V#R8_OY@w_$sk23bX4?>YYLXApsu&^RiOHg|@uXr7(@{VwB?^6sREc%G-=kox z;a``8v=%NC<_woWZ^zyFFZ|M7wJA|}P3H)Mpp4H;j$!ixu8|V7C>E`ew)`Po z0zk|qIF_h4JE}2$ka1>RZK+CQ7#pv=m^_6;ItUa_$B`peX5ES;D~WkdsGGAam*&u? ze*70sF9`oRJba$O8Js8w2Vymg5LpZ>3_=Ud`Ig$$xc2soaQ|x+51dkn89SvD-2B3N zTt)W9cZG!J_dtJ{U*SF*U)*(93LqvAg~cDAfZ;z=ch0@hK%NU;MxTq{*wQ9ve9kq4Fc{ijh_(C$u zkpDp;e0BH*E_I2}f?s6Q=iuPfGsbczVV=#@rK!emsSM9%~c`Sr`4TSMH+|U4zS>k(oC%a)`ez zAQB(U5LDR5-BE*6Q_pA;FH!yNC|8Nu#Ke|Zty)LDN|ha#SKnVkrYU-zbF~>%VqqZ@ zD0}JVL4MZ6P(*%}A=5HoS54X57I_u*yTki}kXfmGFTtZwV6Pm;$;|~yR{zTp6HwY` zYST(bZiS>8t5Eujy$@nF1HqxDns%11C>60}5fhS9T#4#tG&x^t>0a0QRCeYdFX(bG z%*l)q>h{h(^YiL4kmhKW?2~4B-R|`oV60xr#M)hS#ud_Jfy_uc1Z_AUzPt}TR%bAN zYl5T^LFN~MR=7oL^8SpY2g)?)7anWU3C8#{Fs}^%nuJC@ZIarQa(gvr@>QN)U>;Wt z1itQqJhKW%+0>w`dem_HFf3*lnvc+H=k`Tcr!-P>M=mMl4lNA2d#)r^CbDwZPScy8 z;3hI^Dw_*wXAqB%Ok=JhyWKTKepfvbQTwToDW`7=eH5o8liy#A9-@DNJqxId)gNCw z1k@RjNhRG4I(D2E(%Bv5zK_%|BPZ1w`LI0GSy1vx>F5uxEq`Y2^T6S-V(3CAQj5gyZAFim%N>Gj36=WkG$QL5t7pm&QXU71r1%>`t50M_} zVU4Cs8W6M&hp~s4Go^|RMv`N=4;n|RewOWYV`O5X&?>_$^Pih#q134ux^Sz0GdLEe z1rG31eaDG-F7BOyHLQUlnMI0PW!IEdzYimjXRImyb0%RiJs6C46i_U&$nMhG74JM8 z4(trP8wEtOBcC~C?D51EaM@JFe|)_HzbU(C7sgIsOE=lWElJF+enTNyVAWffoGy!@ z)o9k%$r*L#4s7$pCUk#lcP`T(r)z>)k`d&@a2^vSO1t_(!&*6MWsifd(Ipmes*(ZVSJ}+@(pD8w zbGK+f8tlT9ZSL4Se_R&7b3jxlDh|PjwD*$|;`g_%E8U8gl=cbrnymN~qUJg_ zrf{MwiO+wY3CplElW*}W(wj0e4F?FLG8MS_kiI){{#LFf{l-WtI^Q+cGh%7C{j0^8+kC|GQKOPa4;V5Al@Uu7SpNKA064>-AT6{oaM#4>q9yf}NMuhpXodSQg)FLVEz;r-S`b3)5 z)>r&^c=AsVeyp(UG4#I^J+35>NX!@5R-WrhsNBo0OeilqL`nH`khmql8_)+tDJEHU z;qe^zvT}Jreci@|r{^+TvRcze8~Z(Q1|hTt71TDPGSlF+P-sDlqje+m$g|%GI>H__ zT01vk(^XfC+OjQ`2YtkNAE#-q9zM3yuWSt8L9g^P=?46w!Q!eaovCS2_h^!o2=IOr zHMPmUT)Q_u%5~TcZAn1RF$?h5GkFeEEiVjAbr@INAsy2>r!tW%oouvE<*A4W~+Fm}hv@598zsP!5s#%v^9JM^>iD6&(I&+pOW;YuxYz|B$*q1&MJ_ zf_)Gg@6lQZ+w~yB4daQC0=tgU8)ZtcD#S&DL8Fb;88fNM9(_poD2G9+NC;LXCILr2M3^Sn_5Yusq+MX@cF*VrRZR!?|PE)m%)>>MkqANM?I z|1%8YrXB_AIw7*lgpR{|ai)ipN_!6hf6*^LUZwgIK5jqm@((-|pBg!xFb)`~)Fm!KD+K+yRONA&Rj=G?~Jm;z&6Irz#)aX z_+R?{fdDQqpQWH#u;}B>l;?rNJL>xi*&D|D=*PR%qv88QKv=+)R6wxE({Zk<_8vjiTud91V+w0)vktg7l zrO^4KMq&+T6*=&GzjIA>U^6y33Q>CJ$ zOeO zYJiT|Go2>0dn_4r6zz+&u7`%}fDM%(SN2Y;n`RoelK&LfF(qARp+Y-_L97t)e>)dt z9UAZ*I!+b#Zl9jH@15r{|6^TbG~jOMwf(XFqdOq_<2e6AN&VPxxEe2MLMyjwZX1a} z`Cn?09!>|f^m)JEnkiCy8r`rskTF#$HS6e}-df~aN;cn(ahXae1tRywG*v!l+DS6) z#?Y?|JE^sqaSeK53w&@Oo8sTxpsN)gw~w4VND#JQr|&riweO zyqB&r?t+ILVW4!1;DG~MDq)o9Y~Hp+eR}igR>EWf#7ET?}_mu>G9A{)wK8p0<6e z@cy8M-;tm;n_tzx!R3T%btR@?T0Vs!?Y#18Y(Z|{SU-ark+#TLy!($_g^(Wm#=>-o zp4phhOt=op_KyaBf%wK#koE?gljki08X4(eBaC0va#qHe)beuLQoNrmoid1yRiK7bR00orCRGn6T`c*k(&9f9H zP*9fYt{r|>Q0$NcP^7+w(oUvPwT5$HqODh(V=}Wj^I8$uOak)P!Im-P(oNd65L?Wp zfr%MUDj3YKQ=wL=!zM>5Zc@=h=S{OKl zQ54P($qwp{I5PTNF*v*ghIwNtDd8>SjY@VB&VzgOyQA3;l5un@VJOho4Oa?cwW#Y% zOoY(`{)!S4kPPmDhtE19fovhZeG-V<{&n(;W-jpa>jHt|5rCN*7%8-ZY%}lEeaTqx zC1;MU96&Q>DQ05%?U#sP^g@vRh#(wNrDUwqOws=DA*j{i;$ryuDX7F!?QcPD^ME`q zKsgO7cPpI5OJJ2nQs1yRiQ}@1H1!QdVA-C?YUe5jo^zzVyA|QVk1}NxSL4G8l~_{2 zNHv-Wuw%`^{u3hO(KP66<4Ea0_T}K+$oJ|zIl$A&gw*TlHLf1j55_s8d|EH%tD#F< zd&0hYJJ!0bCJFocLI46hw4}U2fA~`?wCqBN=asgIi7-7fUps?gnOKy`?wXTe0B>ki z{s*>$zM+a7-ErCD8*EG>nv6zqu&+7EWDD`N?1}^kRGXTJK>=n;%9)gh38*h$0mCm( zpDp|A@`Z(^a+O#~Wd%Bu%dOW^>SA6mBbla#7FQquYxTZy=Zb?v#rMAi9~t3exiCy% zgVtkz<{vWUE09liTpvr3r|Kf(rzNJVD^516Fcm9La4?cP1MsQ%)LVo0y)k2u<>Zrd z_$_96D_QYVY~!j^AQi{W(x41Y%=GV-fh`pB(-z6)F_jt>JzB{V2%UQl9H;^zjGgPm z0OL6Nq?j9Rlb<$;A)dPAnZ}w7071zzk!;Ot&3tJ{X=7KKSl!(!3kig+vQr(iT86Hi z5F+oxtoE&xAT1GmyU2K)t_7YwY{)bBnrvz=$pwK8bd4WDnADK4qP7VSaY@`$XmR^l zT(BeP2QDiYSHhi1T&;w3gU-87+L3kHh_=~%%S6WwEf>$xl)SmWono(F=FBnJgr5VJ zuR;s*jY_#x{Omhil zJr?gq-bjMsoA5SSF(&@I;QPnNF6^V`&UhHWD#SNO|<~L_JYk5lyB@rnB|2q>vqEx8{A;tLQpIz?syNYG=BSmx(Zz z3GK@wKo7@mDwo$3F~c7}4M{38=V>HX*PhB=_z?Xjs!M~19v6qSFfWE|sa}xvW^$*t znjn__%pi<5(PH1hf)%vH>O#KPHndKh*nuG~u$~h@8E{s3Dz%jrrHa?66?7Tl$UN#j z?N}O%odu@VQs~Fz{J3gMh2yZlTKrDRJ)Gh>s^r2g{n|c+_Zzj}M8U_Yv?nPxCf7;< z@0eq$H)>VKjGkGh9Vz64>%f*NIjac^-IsBy{H)!X9DOtyNj!~9gLEYKSuJ5%>*c} zS*jSE6U{BO?ys95e1T8fd4}vbOiUQW)#ym(zJKB8FS?xYj`Q`dY=~r7s-}fVwOuHF z9&(b<$Em5SshD}IEM%co)%5>ce>o#3iI0Z&)-+sa#wtW}Lat$)42n0G>K7r00GVHv zQu3QHLDT`}T?!yOch%!&T=^q_l7hfe0!6{TVl1TlR8dF^O;<~l1LfUkv+4YzOC!AMZLZ*hhbBoSi@x^Wtpgc#l zO*BV^cx<<%*r|ed(;iy-8ks9-CAN+{^0oyj3OjCA5VajyN2)&Uw_3m5xuu*tq-pHT z+iXO!KbQ+WZNnKO87{}TE=e=V?!c(`?m2A_ZKT7!sIaReTw$#y}tz6SzN&obb+AZ5llX(8gZrPwm-Cs!XYGtIQUPvwt4(V0za zjq-pjIELFJDZQ3F*g^j__Wlvdw>ra7{rLuC0gZz34L#n~{7z2}Sd#&a#-j1h=Z3(p zE4)GXGrD!}#p%58G0Je2D)o2PRM|=$OalF>#VBHruNJgX7(OofabFnTCmoy^0JYyG z$l0Tngq%KU`;z@tqE@Ne*ln1qzTU66LLK|AbUXCU|9zhXat$E;(FT4PH}t)J23On+G$ttWDS^?yL{Kfcd4T=zy% zDYWNTX5P)8F&s>O;zXq3(3;*mCs%-Q-lLOd{2w*KS9%@*8kd2*n;i$oHpxH;Ga5TD z<=)2k?3Rs-v&T`{o3$wDZhkO4jw2s}PALYVH3n3HZ=J8+{j2wr~5}VieE@HcF^B-P@Zzy?6 zscmCX?f0?tC5AFdn2GOpk1@(bvE#1E{ojP+j!n#k^Aw7@DGZ-^zB(lPbFGF{`EsAL z>7}haUJm{`y;v%d|BuHY&UBv2h}*Ifn!=Qv0uEka7gxPM84RUhPGF!*cG&15a`P2z z2dZka%jlE_i^L<*9Vq=r3Q&v|hVP+uQU48SkUEby(m%#W;ECIkYnRV5Tsp2E!W9Q+ zeQtcf31qUGe3-@2AI|Ued9&O+&nL}~BUgATp*ZgUH;&=!KAx+>@_#Bo%FQNT!{J~( zq>rW1_UWT3Z;}{A7XOz=mj(ylkry_YWIgU01of)N4+D{ir6$g5>2>}-*W+g2<3N2f z^6Ex(BdB~6`MyIWK-T`huM_VVN!^Xv{)dK1pd7)-?p)zgZ07fUBiyED+WOdC*$0qZmAnBSdx4tGJq0c9)Af4g( zg=xa~^%oI4%);)u6s|L8%|7`mojpfh>21hHuZte)3^?jucHqg2Z*wVDf@qJ@ zvnj19o#PikPD0?A*feDsSbeAQDF&1BmG z_3MpXxF4R52c;-C~%u{ z2XfWcbw?q|=U){uohxHUQ*r1+b*H`|xB@UG zXz@oD7wMwP;t+tKd8kf+r`NiJGJ9{_ z9~>WWwB&Dy&~S0OZE?JJ>0oFB#+oH@4H7dUj|OMJ4<>fB4L|7=bVh}2;F zg0 z0+eXba_(T5j&$JeMksC%*hSBNKu1qPf2!s*vT+%38-pJY#99r7(w(m}pRHW5-iY#gaNTp!+esncIuyV=|W4~)MNCcAoHJ`kD>A!q0~~XZI-4|J76F-B6opg|L3bbw7n2le&(12gF&N> zkQO?Ei&@Wl0=sX~q6FnB$C4*J0oU865ShtgdML%-l*6fI>I#!T_xvq`6{nhu4dHY{ zJH{%vQCcdU7S0CAwR8Ci(mwD#<0}~P!)}-Qp|*khP)R`8Kk;^l1!8Mxw}RA{W03Tj z)$ZG>^{`>+&*jCV)m0h?L;iF3JMKf0C59v8Vibxd>LI~2f)+@znQG@6+nMc7Dw5mh zuvQYj$#f=t*Ox0>%&k-kj-gG~e8afA0&_N_BMzOWTTeZNXWuge>7ZLmrgNZI%h^mw z5zbiM3fMfm5nY8xcrOT}tx%<+Fb_aZiRhAZKj5_}PGVQkrYgxK*V~EQ7 zd@Pa22|O%>qO>1)D#5!)>#jn<{i$IAq3zTC=2s;lW{%|D9>x^rwNoO$$a0-7raC)X ztk+(UsWh4F-8bdsxk-*{#X*NPM78!EPF3?k4pOod-!^)+>|((t==_;vtGAs;U+CBQ z#rWAG#cCSfihor1Dy&AEYTdPoSTg>EgV^iVFSF^B*U^*fMDM`d=+soHsxa-ASBR2| zJ)8jGW)F49I0=Rz2cI?N#oTeG1%ZE@f+LrccAcMQIV z(3QdGek3vphjLF=dw)B&JTp?kO5JiyN~(;glZM-@GB5iDj_=)G_&6YTNxt~-1o+GY zU;C=cOhI{?ld7KjG2>hW`^JHn^m&y8Q8&1YuEcIIh3`$)pJ%@dBW)R0*x-j|p>&PcFOMEO}_UfL* zGhg3{YUSf*B=rTVnt`G64E-_tqGKC+GQ%kBTFu-RqedzXm0Dz- zqQK=>jR#u|wJgS5TESeKF*Jsc07YPvw%&JOpS9YdXuL@!A=GWGa8NVNPZjOFQFfd( zg){Ucb<^h@Flmneo|@;LGIr`TyZLIg`tEs#4UT((6S4nsvZwt-!r~cr+BHCPnWt#k zE{~hoXHPQc?54P@E!J#OojFBVZ-G3=>mC~|^j}<2^_AZjlcoO>fQF84V&sSbkB(w$ zR)Kc`#jrTVpbbPApY|vH;Vo@!2vXxywEQzfdaWj*g@8gTL#DHqEo%kSEws zEx&E?y4*{mbT(`2%8+Zd58{agS{V4ESpfNsur*oxHC1J8iVtBk4VB!oS|aQh%vuGn1wzmCz{gQDf$%;tOl5)^=U@vih^%!f-A6$O!egBq9w~D90(jU4V{Vjg7Fr4{?OxSBm;Xe zLXjO++KT4NbuGZ>b7DQw+s4;?0Y8)ow7A_7W%!&pMsrPe)oS&f#$3j8AkkKHCObLE zujitm`_tQcMmakS%T3kd)@^s3FOqvqiXYQ<4B=lp6mjYB+>&w0Q5F~g(chymz{2-M zCA+l0@n_4_()ipEdQ7yz@jiukObovk{R1a84>pBS%*h4j#HJaqq!({Rq?o4|6>4M5 zX4-nY^J+ovvtxG1U!3LhOg=GA(Mh}R%{H-pY#n%CVNj?m;*~ngkf!0BAmo$kOaWgm zzzPtR5_Ef2+GH!R4pOCNS8+C;OpY8P`Br>Q5F5h8*^a_N&S`a6NeUO>*X5kJrw% zWtA=Y6doB!FS;vC%@v1+p$ZsI>}~M`#Q*&mci4pwcyS}_^oOZm^!=-AIId*)#*FhC zT;;$H#>{U-(>B1?@ zEB175!2-JDrjJvz^6`aTP3lZD)fY<~X|;JRxLsoB5uOH*S8S`6f^@2u9Si*)dGqiu zBok#lo3nv&UhZLRzSo>+9#VUaiIyvs^WwR@p0}U#eD`@3iO<95e%6RE1tj4SYO%&I zs99WYx+ooJ2N2ss#%c^+l_H&IqP}gALr$%7yxvh1(Ez)qyj=X&VQvo6xuC9HsqtMp z!H-3P9IxlkXd}M6_&TMMVN`yZJkdcakb^Hrdx@UvpOCCO7p+Jo0Bn2Vl>mNVY2=%=~*X92u+C! zmrm)iFO?rHZL!HLjr#nC@aShvt=4)6pOP7BOgX6Bya)ie->Yq~L29QGGa zO1uiK-zC{w;}4(to1R|b2ylX_58bsUGrk>3vJZ1QvZ^ZG7P~*kROG!9TMy3_t$KaF z(Q8ECXy&BTVH3ep?-}!7)KW3&SlLlb#F!oeZw_tQ3JuvaHC3?&iO;C?dzgqOjU&!K z2@}2qIjfL_(@B)A%t?0+5&?Yzc+Rcp&oiOB(1^bo4n-mT&RVfANRl^sUZi5&*oari`m=jD)6$zJ1CGK7vbt(UmbPZG0(pGcGI5>nC7l0j z^N*`%7XSGC_kE@w4>vR`Od*{zhV<)+bb48jZADew)lTcmKrs%o_Q1PFK!kr2n(Uie zl8N7Jxh7kCR!F0?g18WwMu>y09N zy_E8ND;F6se7pFKUw;plPbip?YGQD!Ab7qoYU3!|u-D>XX}3w%jq6Azh>lnlE*+9q z=S-uIlkaW?=a4iO0E1T}FTpwPltZ>%8+H{kfvA^x&UY`H)?)_ocb8XZEjzv~5$dMd zGj*FCdb9fEP^u3vqu)Li(F6g7HSN+t;q#@)Rw9!q_-w`R>N(Y49PUnhT%X9x1D1dPt$ERkp+K8jaR*ArAL`1?{>A$6+FC!Cd7*}q0{ zeaQb#YmTF#h%38OV9l>4x)JNtVBr3I(97#Pk${3Y^n#b@8%QhePj5iI43qNSh{}6p2E}pWttvZit5?!WQD{ zO>P4_*lR0H!a@Z2!qoA;3LD#uIR5;SXyl_dWt%;mWV@Au7Zj=@)ly5Oude5!Rd3|J zf@C-WZ(|Mhqi(tYQ?a0&A>4aCSV9VqVwR%LFl)#<$c}qg!q1)fq@HnLVJl|VGtln& zj{}?>QL;|BBX2OJRQ%rIWOBPhzJg1ZnUj%`G&t@8+2Wy~3Z`3?%Vo?S(@(u`ymA`O z6Xa342*7bmPg*?-`Q9u~Q~<~5oJg)qc@4`ZiRL^*rBaCuLBwJR*@cc0t<+N$JOT>! ziAYa?(kiE)Q|JXa_RFW+c4T*8f>t1e+`CV{2zgq;j{WBmenwbV*eZxBxRka*neA&e z4GCSlPiCL`=HOTQ9KA4%c%GkhOX+b&&v^iznWtLGUs8flj7s&~b16Be`baM%{SINd zh^RSsaM7A-84el@d`Q}EcET@u9R|Js_^_7kj22MEDZwTqn3pxSb%k4ULi+xdxM5qH zZ-qEjsm~X<4*}#Z6{Wr__yj&rCQwJ{NY>UVx2kLonKCZ7a-#)1`)K^jz2SgJ62rGe z!pmkaZQyXj>#?ZzJK4C=)12bK^@lL*RDd^e+KvFql*RLWM^5ljEtL*YQNK@QR;WC; zsz9*1?6}hYX?gw-7LC&Glae2z;nVfF6RU|SjV5qqU(D=K$M;muaEvA3o>BPzoIud$ z8K6iK0A=_N-yf?aBov*IyOI*ycNTvzz)`>3?tgUS`IJ0&uwI@wvP7eJuzn&E$MOa# zzgl*Leiz2;QB_=BhnoR zz{LL(OTJqrrb&NsPq_L6k5yP-;wzz4utdSgy_t)I3?N54n{0fvlXJ6>_NR7&wMN+n zS@6z*gsC3}!zhJyEqj%g@`O2lUM%Ftie=wGP~>ItMTlL=cc3tXu`)HMRd{NeP5edf z)eg#fjMSeF&KNlkSl3(BuNY0)Az#2jd*2#_#`v z0D;8ERY3$tvkRWp#-2R!g)b&@AalCH0TuV?X-aG)N^KYLr*3K4WbN7Xm2K+kFQztd znTJU1z|V~ZWcE7GcH#a4(nQH^nr1q1;-YAa@pLZT+}`^mGAO9%bPrAS*Y7sJV8n_* zW!QYlJLJd4p^yh!1w1lDL+swKhv!i9s?klaG;+!A@C4yiXf5Si5W*=-uBcL+G^lzV zOwQ8gEWftI7QjZ!v})>X;w1)TK2?`8o)g% zntP~Gei{h@Df{UL1cxP+YdjX&7B{7L(lX|Ne<=`;QuI`d_-GETyK8ZWcUn0qkX)A~UO=^u>jFu2DRd=mSQ63}TOqS`~u+QF||7a>RL z#A)1Jh26mJlklDHpmiH<6khGf)}yJ%_xApHkq@4Lp!)X>2UCa-alZdCf(a>6Dk~9e zYKlnOK+r60w5h}X&c}-39?ScF{ngfk9RB+w&E=Jv{`vCy9=rVTu|&(mSH*Fnj@JW+ zeU^`l{$a!Sm%j(!8)4>rkG*n;5$H-+&pQ5mUcu+(@Alk-uG8zQp#N?|X+D+F&y6riz!lxCAWz2F-50YOxj7?ew)hP}Mm*F_A(zaope1c^|CXYL&3$u$yA2Q7 zmt-q4Y4gy0tbw%^C59%{b4W>54fKXM_`Ahq@0qcQZyjY0PG-^Y!F~UcBY%V?;2p>J zPjme)2a8BTaWAoui*)Z+UFodj`GTmR-#w1+)lHdvik|R?m+zmjmW`0Ftmfl!=li9_J5qKBk(;m!WPm@*< z6U^juho8WR`9BXsU#OODoh&$|wSQm24gVsIBo`8j<6}#{k>=U_B|IO};EQ7TT-2>$ z)fN{%14A~9$SFO`#|xgh*`KsdQDHtx41+Ofhq2Gz(POVR2d6S2E^6}fHvg0bXnP&b z`@Wo$o;tKP-rZqu`#q3M&&*X`z+`Wf<2NSjq@iyIko~APRO3KTXz`O>HjyZqE?_KO z*{H1`JJ66PBCDjDxmfMfEriSM={mX)YOmqvq{MDu)&PB)x&-AXeWy=%uZ0u_=@kaH zF7v-MK_?s0e{3bDhko5Lbf3@-wKjc0i+ya|XlESVrqRy*{hRCX-JYcM$4y18vogiC zd3Uve1<5NPJhn*jlMHTY`%OiClITrmkC#qvZNZ~BrUoBVke$ij-(a11ckyjKH~MP| zP}$k6{V0=LAX6;{Q3-+378YM}vV0$mxcL}+^{ZW8uDK}zF)7L5`pIm8(E0fCwBXoS zU2%Im9u42+DcQLcFL7VF{Z@2@7-Wq^S|kLbj#28NeR<9}g~fR3(PWtzB!|P4%TRDD zEJe%CUZhKDIpDR4`U4qY{zlB+I8Sy;H-y<5ds%sS`4D0JpWucJh^b`aLW|s}xOQd*aw?y7LKn}2Zjs@&EYz)G7=)(b_GR9#!VPP0Xc51Q6JC+wa4iNC zzf<~c&x;__&K?5w@ly04pJJT2oP*Ji?4hKeAh zQoaA-iRKppA=nEJ2sJ;)XN{JTJnvA*FqALU;!3pRyt2@i{xSXJLnlT-`1O+6n!9#6 z#9)*A*hPV8O_?j{GY*=s?>zx{!Z4mh$2xP`<4qK%2kmZk;UEFlF~v|p+xxL2iwusj z<<{9=gWtcy+}xTmxAZ#5BT|`K-eNeU4ZDCGLQ!5ABRfLRKRC>^-Y5{?PY6NAEa$2$ zJ{n558_+V9705&IPCkZj&Ag*8vHpV5jvBv)BD+9gU^??wfI}yo#`iph$0lScBe&8nazqn_IpMP8 zbTh0;1c1j&qZ$PQ9_=)B=41)TbH;I^R`FcQnNvQL3s_Ta0rE_>La(&X{_>3t}kvy$h81o=3XenCx*nsd61yb-XUS@;>fFYmX@D)@yn**ZS` zX?rwfm7ECA)ZSxZd}d9&B&9z}3)>9$T>#oZ2~oO94 zo$^_EU#7t2X4#dLssRsich&2UpPu^8{<6O$ufOo9Tt}G6k5mac#e@R*vMu&HqRE5< zGKX7W(dqOdAQbPh%ufg-pZFf=-G8p>@a2pnAQB^OUCk!XU- zP4E5F1~15sI{ZF)-tD4ghQMHgo%g$>$087DP6j4-6+kN94MCIg32pu1SL^vr&pko6 z#1((gmGW8;saU%}qIt25PZ4x&e|{3uNu2FyNjwR~DBU|(2dE8R?_BAX)rGM#eBcv} zXxB!>pg0U&aNe?+c^4HAXYY!zuv@in<19t9FGsT(RoD52Gze&fssx}?0gaehMde{OF5(5-_5Tp^?2c5Zg-Z4{N5b-_=2p(Xkfx#2YEa(7MT zU#$O?(nO|QC9m3!?ybvjvqh#->?BR(x%8=|HtogCnhlzxJq>6~Ux8O!msbi4U7PtQ zpWXC8(!XPrPwatzy#opV?*DnA4t!1?VdNl$9_y_Z5MhuBqB+|Uq_ck-6xtds-E(<4 zq*+!O{911z=C#0{cF@R)UTj1`m*#!6Pj(eVOs_vrrF|1aww)4(kK^LYJPkMbmpG;^ zm9O)Ye0DO7liJd`o~=gXp!L|Y_{CH)U0ZyZ%G5IHoOn}RO}fmeaZYt zMttmK0@o^D#B@(cyIQ92!;e^o#8u1n$i^Xsd_UH>N_5O!eZ1~P%C)RvDiUF?-*v5F z8emI&)6vUQWnK3@ca5{bvUS*=D|MJ;`D9nh@r)F$A4zZHUg^zL>Bl;_3|&FWd9#oc zFltSssE^o2)Su+Qw%k9xOR^v~#J>&3%RMtvS`z{*#$HZ!F^!l6Ew2ycS$(0>u?f8<M@zpkL$7RsNwIhq6(3U#81xq$BfFkc{TVKSr4mWp2 z!1(Vj=J{NlyVm%(AK9nAvr54~)!>svztzt-BRQWiZH^th^QGerD$6l;9P4__Y4{?31x>7T{z>kd~y`S*T)XD_iHW!XBT9jEENu38|rSSffHv z2_oxx6@>LUzYN!IxKESooTcA=mgU4k?eE+88gY@T0c7Q1*iiJKnOVln8;|TiWNpyK z33nh+j1%;s!5+l)?A^Obe#2&-GZ+%Xe-t}7)kLiGi#n}9X?mRH4q_Z;y9|uUit6J+ z^Kz(`;`qt(jFYzAb8t$}Nv>i~v9(ZZ+D$StGZ3~f;(`=lM(D=+MZPeSE@yOZa>|@;Ao|~P{vccv|5Gd+QPTb{#1B|E17qJ!*wVoUIRnQlBD;h> zIVNh>6TlIJa$)StR*U?Rk%V^iQsalucVX)f=uZ!|{@5I3u>-0w&s%coAh4stL%tP> z)7vX+y0=vteL9x(N=q3{&gvrQh|4*oq6w|;fDjq#rDhZo6-<$d?1?Q#Z(e5Ui)Aps z{&-p4iIeWj?Cs#h)Z}Iu=9*?Bv)ixPyE_5)+@4_n`d%UXmaXS^)Rqlm!0!e}B#3^5 z0*g<D_0iX7a)WT{PR;OBH0sBvv_Yji;C8oR+xm8Yq^Pk7Jn`4IAxEuvST zJkb%mWjT=0A&f_g=W<1EmOe0palkqvM+mmx#B?tj?Njtodj~|&lG7oQo>uhJLK`9v>?{YW}|-Rk&5YW4K(@#QVDMa6riwIsHhHIE!4}cjtBfhWA;t*8?c|6GF*hx7uyXv1N7WH9zO6 zRYN#wJF9bOY2iE{{FsuRItZ(JQ}W|%h5M8SK#?gah80>I22W4R&(E@XMc$OWU^$j& z=v$!aX*t|TUN>r(IjQ{eYYv&`TNTf2pF@OYScG#N+UB{uFzeOXCh6aozx^gbkDu=n z*8^}Db~VcsN*gx5<`C$&Ef1U{6R(cBB4{g;IhrBL9oSkHhstN&O&{F!ZMg7})^-Mr z$nGc59Dl1))ZgBhcU)XSC~|9_I6UNvS^V7Qe@`=&^EnUBG3&NOa?!+QY^8I}rfzcm zFo=#hl-a}C-CZ#@=2DC#`fSz~|wz!{>&Our3-7W1O_L;Y0f23S*5$ z{IupN90u9P=;)-8;~SZ6R2>24BfZQ|;_N>XG*!tYqDo_jGC?lA)zJ%9@&?LuUIWpy zE69Me5)|wFm6($1cj>pT&Ie z*B@UJ&y(Gg<*niXJ?b8mq9H!6WX^x@gnjHC;Nt*JSKP^M=cgR!16PVJvfn=}k(=(Z zz%M98ukf5{cbUss>AA~;bivF~i}V35{M#qCEv>I5v|^#Av|%?|B*e6Gvnf(zRQhR} z+Xu1ngG0^36p%4>v~+*?TSrv+zc3E-EL2_NfPf!O_at zT()ug7=$CXQ!_@O>`{e)g7=LdR>cN6NVAqWyfCAUitA1k zM;#JF<#lSHo+<43>US?fDC@>@FV4QtW*BaD!g3cCK~?O!>i*nOT&tNJZ&pmGW5f>L z#{v5BF%q2KjyqY1Q9c$=f{o(3uym-KLV{J<*qB?n-qu^R|42MXr3?5lk&eaPZlUK^ zcXIw4YiZN5ggkF-aB#3`U$l{IKD(YdkXYW4LedG-`;7X}JEa09PS3d}z&1l_*w;VW z?HZB?=IUJ+1y&Px)BXMig;l+mC)LJ$ILtH(y?75QJKdV{WDR|-3(ivz;MVQ3SwK4} zQG8hw%Qq(37fTyv%MReE@(5Ra)qBxX%BgqWS zYv^|pbQa3sOtwZP)Uoa1(vkInMY|e_LL^x9vgv0GkQJY$Oz|_w;$pCaNH$6X4J1fA zPAyR39noGNp4m&SX0WC zhk#=PYL0;)=V0V4R20O-A1AdvkL>J;?c8-MWc)ajnEEB~ypU2|MXccKTEBEfZmE%xRd*?s*-Qd!&2f!p>9y4ZcYPCKQ=NjZ`z z?d>Z`8y7471`IBiy#?I{!~s?$huIsHbO#{^n$P7#JBQuWYdhRP(mlV`f;hWkIm@kG zDxIgXba=p=SE`lYK8+j5Y|0*nf(+8g=ij)*;kWHQzXw zCB=onm`6^`gKX8HYTY3}88!5iGMEsIP2U2U=~SyYWCw$b1-{7kt&R=9#`8!sqWQE17)-i`62)@SAR%}Wye z8st==6#SADR_L>NM}0l=Tf|ls`O!lmR`)&d?%+fObVpv#n zw60L|@n-beK9aI0o`b_4x!fCcy~%@36}8!wzRF_%+eNEs9L4(?Kc~mAEy3ferVo zOhl|LcqbBZW6BI|=$Wxr*`mg#cjue0 z=A%)(lMTT>5T50D+fFHX)oRGk4L!~tJ=}ttXh^%N*u88S<|~hDj!_f~6L|{|^829F zu&}<681f=|?IFFP-stKf6=7_~=20%@oD*%JdA2d0qfThlL>tWC<_KhXl~O;^M))ef-(Oc9+QWpyzBEuX&Knv0 z9#?eCncyibfMrfv_{{_HRTz6P@>`tp;qmdq{Bnr&V&Y0a-Y~m~M0o&QsY*_7$l7~> zn{6Oj!nW(q6Ua!vT%$(E(yG?X!HW3wJ%j7zC^Z@y*+8asg2iZaF#meHBxDl%Aq_Th zB0d)DmbN1xXrXA?#etNmKcO(D|I4<92N_0oCV00d(yMJnNENGY?4V}7UM}uDZ>&zK z5Fy{Qbj)FyrX=6*M?c~R%&}l#()8Sk>_H5f_>QOO*5+|RKx`hwoG;8GmNw89|c6iZ`3mQmQ1( z>U8FHV3`C(=Qiacj+iv!X0yvLx5bO7pYw`aK3gE)4bjw^`_$I7a%bm0f89NyOL&8- z#4@l{QN7KuWs~BjRdM;;jkL79`~yY|XF09-J=o6dEn)4XS(l|uc+R7IIBS3{0h8go z=Z`u22dC0a0+G5wPY9`jI+IVMzKW{>h@6%a8_)X8=lgFW{g!5=KzVt-n6=%m*zV;h zsb690&cL57R4)eP&*VGar1BQHL7$%`E?szH3#6iczRmgg{3@9ijeaRmw#taj@JegI z7n=$qBozBA+F$~u`pgr?C9J&Hgj$njcv8RkW{$miY6FAjxSW<(EaCt^;oQdhlrXte zr`c8{7;V>bS0kQN-`d?iBU_;_$wtoF8&L>1Xa6vvKPz+Sv)BVXJG-^|-ahM^@D~gY zPWJ;xqfZlcc`2DdZgeg-j?c`o=;^*n3TcC3PR!q2ph|>C%>&xQ^AUes9leN)Bc%@7 z+=kwzkHiI6hSy*1xpqv8qucy=Ha4Sayx?n)GTma)#y@jEC!H@h+ z>LiqQQoX#q;dzAw&xPR-{VX?^!g|s8KkUk;nU{@!PfN!>>=U;n+oP$D5{*<{%MpKSNuj69MN)de=_YOJTFfX3~VMR9d>8#NjnbeOfZI+kn5&fpr) z8mVzED{GNPqsI7ymK#8w6oLa&h1<-fuyF^Ic7x*bvS(c`7M91V9wd{@xMB}P}m z<~5D+eRV#M6R`>t-fxD_f1)mJDEc~`z8Gk4cc3F$--LfDD3A#N2V`)m_Xc~@F*eG~v!-h_X{NN&ojvhuOG|-+{J|aPu z7Jw?cBRho(8U9WlyIZ$>uMj9}&0p;JMB*f=4e&QRSt05Ywk4pvCJRPyZf!U-B!F)}XCp5C@-2K}N% z97~GIsXtD_@l;RZE_XY=X2R9LAyR2w8fMHhhNOE<$~wx{9-`JGjC6NAZ;}2 zSCEZyR|DAid4=f})|8qAzXH@Q?`u(jNkFa1k#E;%zZ@A@wTD#&1-i1bmyo%d4dWm!j>x`goP#gj(3n72xuQg7k4#CGFpYIcN*451l5S7Mt-JsBna>7o2PRPmB2F<21>Wr(VI&vgFv_HTn;bWKK<=kVL4 z!#)@_TMotsnWTCVQl)y=0y8~|oLUjP!Um%0mr{(J5DU$IKP?L1otAdT^q-Alb>IIE z$lnUumz^#)W;Q0oZ7naCUrlL%L@JsWdO%CgC#NEI7!$MOFNZCdEMQx1v?A1U4QLh6 z65^WqxAi?SWDda_bMYu)JAs9)*?}-u1>$ViY*E1ErP5QzjpaBukmG2r#E98pzEWqg zGuef1x>bCLnu9Ysk2Jgro(?zDQ|E=aXIpBB?VfX0QPkivxfKC)y^2!0W3m>m(fH{P zM3eig;f@ElmOt}qiFrqRXI4HbotW`ZJYM?5WtO8S?!Nl1VQe5o&gvt$bCer6P`%+i zIPFpKWAIZWo0t|S`DaOJ5v8{p0`@M`w0)%hwzv$uSDx<*GE=e#f&Ma$7UN$ZGc@Z< zreWpcT;OJ_$vrxxfn=7&9w0=}%pkuMiY9H>iQ;+*q1pzb=p-L~sr5R$JADVNWjxC7 zT%?8Ox~?G8OyfMd-7`ntVfV~ZfNrPQtdW*Z^i-|E76vk3gq71FGWhN`Nb+wSs$oDo>@b!uI-J|op8+V2+lck_qOIlS$ z`L9D9xphLAUe@PHExMHghawt<5a=Z+p%4p}&vLmsF1bRX6j31L&nMofNw8xK ztnTfx50^`UL@gXdOlWOMVtjkQGBNs-ahiPK$E)UpS$z<3kHah>3@u&rRvhSKWt51b zQBH^MwqL;r`>ND47igbVRAqTTOYJ;WzXcn+EEZ3Ar%!j0o7t9dAe=dNq?c_p{GB&q zHi-tSL{8u9F_-)zj~I-JBo}9qj!$=_ z7tSbB#}x3lmiG`f0IOWFzSY{Gq~6Kzp&BOIrn0AG9 zK^q9N=mAT^+|xiLAm=Rc!%Y=x6L_@|#T5DQZCp;C8zXddK|CGNTCHvFnI2-}J!Zx{ zjspMYXusHpHU%+%dT#5g_Ntyg9LbYl|CUSUd8JDR#qe11OVtDlNGn@$d{Lv|4Ny2! zMl-Cj#N@;0m@c%SpyUSndD4t+(}pNCMeTXZtW>U~cU*>lrhd?X8ZsNpn7bxYP68xE z1u{hW^6jX@Qrm$>dB)NZT0(lGmsPmT`($b*rmj$ZSc*WlRv2+6(;{Y@1k}I(>-?Wx z0LXB>7XWG)=`R$bItYhfW@2%ry;wn=y(W*uozf?SE{yl;k>8%R{kX`%82p7(H_kOO z^(c%UKZ5i6BOT1zs4L|P5|bALIA&cON2g$OrEi(jh~_#baqSlA^!+_N6F2UszE2|l z$rY2~$CMBAmcOHe4af+?rkhspPT?+Cp0j|0EpLYxXpC@L?;wuI@Q@Y)YTOmwtbLj2 z%)3?2FB0@04=c6j2{X?Gp`eOy2^AIW4MBJkT!Onw9c|WBpMQucEYg%tVhIb%se8x? zF(^KL!v#oad`)zsYRq0-A5UkiGt!gMa(ANB!ESi0LTcD$akg$AqP5EthwQpCPap_G zVhwT|k~vrCRvmiX2BlKtRrtbBaYak0#(B7&*OH>k%lCHhVYp^|Rg>V!>OOJtfM{>Q z)P6rM&$#T>;BY3&9*$oELY{bLwZwK|J*x-eQhbc#m+6tiQDn0+memLe>27yR6YzX! zODp#G5W>uh?xV{cr%>01zHgF}H1B!!@fTI{sIKXxHEvY-(l}1UsiO!nKgPYgI{qE( z&23=T5*>2=rh4T>hO&u#C7}pOefi|tVURX6&2UU0J~lBZk>+nTPdWMvAiM!(mS*%b zb(mblNLUK87W1TfsQE7Dk6RFBw1bTbV3Sj?ZQLH1f&yRes!T}o8TmjHgd&84QQ6A8 zprbiz$z7rDcrss14Q1@CW}7l;DDcz{pphlnIF%&fFAp4ey{{8Z;;|Q*#^Gi^I`nu< zVG=u?V>lp8xAc{noi6J_s39wFm=Yk`K)!9pBpahi&XhD=`7xv6`ZLE$S_;0qK!*g> z=~R>Nk4*Msc6Gq~!0>>=_{qZ};?FKj6yV&iC$YoJMMn|QA_qe12xeT$h8Zq01|aWbk`r^Y$~XU4R!2pZo?b|B9)P_J$+I2+qKm)URWE#H za)r@43%Ky~B>cU2n!c+9LXW)}K(k&u)fZ784CzmdZ_@}YExbJ+KP#QdLSrSNO4hGX z3p`4o20fUVh#Jv2k5n{K*YQ-#`iG55%LsUK=2(v@ND!cI{3k7d+MDzu0|bB9DVmm! z=$28K)i(<&E~r0ZTs$TM)^6l=KavF1Z#agf#3X$LaT(H+Zi15RYxAd$m{aHZQgS9z zGK#7cG`z^I-2kA8(pL+QM|4Vk4SF?a`yZp$xY9FcH%O|5@R`pQmD7J50xfo(78g~i ztZkBh9{i6WopgJVkYcj*qL%)3x+8EXw7YLOYg=OEpd4630ns|@H!Ej-1b}vr1s~rZ z@Mn1~OT?T?H8a0lYzj7LLPM{}#F%GJ<)T1K&F)u?jQ7$*HFOfFjuGapx-o zJ#LuMliI=_xSY?l_WYMYVL>5?v*jTe71YJ^s|nznv?Do#cc~pWa`{XG?EC?A=cpGt zl(JeK*Y~eFW0Da9l_;@D#mk|OAIz0{e*6!{0!&ONh;`dD%DT1SRymIoDOd>@{6aW7 z_T&~&#S;b4pUkYtl<bc@{(#GM(Q& zRYk7f4brCj0+Fc3Q#`*II^H>-h$IB3J6HH;iu7&>qODt5W)=SBVgo0aI zysE0J`#HV%?DGpQ1SG5?14P9nH;~vrbq3$VnEoBdTSPo2QZiW)?2*Gm=o;(bdQY~mBOFPw~;$?*L2$!D(f6zku65#d=;$+Ufa zr|%enhv}6#@K0Mr{P8bEi{lU%#f;Xh zN$@&L_ro&G5&+h?Pa$rtW}D8^tnb6B2-ya0r+^t`a>;MKnZnAP{d>hItvG z3Int19;Ed3k$5c^S||arS{^^M(@4@Z8GyOMO;eo8Iqq8D-S2=>*u02hQ$(b}SlU%8 z;SYJe46^Ste2$zihQGjjks?DsN#|Q7kPry0N;G+UQlCIp~ zrR|k+cBM!uk9riodg{a?ykAxa^4c--8`+!@_nLYm5&SAQ$Z68(W`dQ~sj!+mIA9CP zw1jIdnRizReW4&2OG?Ckhx?Jp0doL^E2|^NBpCB&Bpo>MDre0a zrVl^Ae-?$4ay9Dqr$B9dSWf?kzC%gEqgMJZ-s`%60jWyqQ*XQbp6e;pv#R5}>uyB4 z>$i~zyYdn%fq5mJIS13^Pve1CXNK`^Zm5`pH9w~9k7g-?cLjH z=Zur@_9eO7u>c-$?~mVaHcy2r{9U}eoTtFBfDhN0m<6;p5`La!`9 zK=Hn5Tvi+(tRNHXF5D_*itIVD3Fj&Uk zk<@TLBj=GK*ZSG@1yqcj@+QOcLEPO_DV{^1jFAypVSfRe&GHXc8`WdNi=lP$0q>n zad!I){@3VgSQG&$_lhVlwl!+Md%MQK^!e|e*r00Q#oM&dLIKY<%ohdVWbV8@uU7fp zPe_T4ckwnz%m80ow2~jcXQG$M8yY~o!=+r@j%VlB0Z)MQ9?xx*fNNAcyoyI(joTkT zl886iV%RydnJF-fBrn^Er70O!Nl%<4_JG?8VNXq001Y_CI}M?0_BWmTvd3u&CTe)n z(s@V54kWl#;pR9x744O}1US6Y1OT?SaN9&bCMso0kIzEPi1C486S2H=HMcY6`_*51 zLg%mHJMV8h+C&sJq)X^nvM^M!-g@I#&gr`PI^ehilz35ro`z^Dk2rw%)nk*5 z_n$M!|62Mz$!2=Ir2Xn-(A&(C?qWL>`SKDt*p*UJRB*6kHV{2z9<%$4PuiCY6}u*e_Ch>F#6Rws7zS% zf7Pva;+3T|!AEX{E^7}x^s^FZ$}Ig{`D|-HHuv>+{npeWL)cwUZ(Hh$du7kR>m4jiP1lQPX) z9q%`yCP*_rWHA|(eAHeZdv3&Kx{8d+gXPbrN`_rlA>)*iy?a!yED*~v;}6^?u_>qp zN*?)>hH`F>@COa}7#-w%+3~L#Jze@@iJr_G-YWX5x(FiY(cYzPR>+PJYh=VteTb6hAxh7t%`Y<(vAY1-9?kx_8lWlyKCo7A6)Fz8wAy!@WdRl(0aa@ zp&Oiv8)oKPzOO#JxOa=x47($>X61(?Aq>XDes@;%Xs8Ij6~{XvNA|JvwbTGcYCCod znDtT}K!};6#AMA$Bc{zF<_M{fZz_n(x~+3L#g=Io@#MXSR=% zPuuq{tZ0(gXV|QHM_^@DCoaj_n1kO;rqIAjdK;0F8po)k$3;L$L!KiK$Eruoq{yT( z46eYKThkr5?5ELjuaawE0^dy7c~dQ|#w%D6$5jeOwsLdPEuw3*G!lIK$ItKLheU)S zGgY$j$RQMGmX|V8MI^qkfQ-G%8@tl8b?J+fTK#t*ih}|&R3tUy*9(JtVoJjYGP_&m z!-|bVL$TiVz`f5tC#$Y{xKS6^WABj!-oo0tL(9^N7GK<1%~%L^R2%8R{lbW<8#qSIUwI} z!LDlH;Nlx*b4KH;5WmGx8;H67a_W7av%p?RA{I)R`|*qP4=47&V-O}}gK8j!R@xaH zYJ^3(c>sundz>!(G4c0&3@yWv2Ba5`&_Wq3k*f6($=!)`p&L0lbW`h17 z`_xUoY>eF1Is*tDS=BVY)t0XacI5O@UG*}&IssRB!YPyfW_w*1PdADqz)VE5zLD>r zk46~=k|nH-mN@AtQQ*EvlxefZ`Y#h8gBzuf&c&4o1EeFp`?x;02c@o&y9b&hu5|+o zth%TJ;B*{Ii>}Lpr_A47SpM0#>`|x*vO`9>JGcr7rw2X8G#{*<9_<*YwAKCRXIlNG*7oz4u``$)H#^o+Dh6k@U;2j|xq;5FO%4$V2H zf2x{kjaE;-PTO=!wP|XVMIQooNUU@(kvsvvy@&wD*{MPW(TUB1jh1W6NqyHhm2DoL zDC3p(@~I!A!{0|EJln)Y{hY`LlOZ$p_>fcjyHG3;&M_vxsp3f7$XVc^IXe>9)kSNe zM=oE8)ywV-<`*Rza8tR3?$o(FlZm#~!C7~7@&a*a$imFVm#eG{CID;1yO&mUjj{EZ zYkiNpX=Y968{2c!zbDEE_Aj)-Y{=C~4iEw@1wF&BuYO4=#dgT|p0KtaG<$*2;AzA{ z1KzocTelg^In7Ei0Hxi+$^K`o-&Ko2aBgY1BYZ9dPZ{EY&EA=WC&C+A2c4nXcwt(d(M;eTD zOWdYGmrrKkl|@q~T{WEk-TfbN3n`vxY$Msg+@&Nrd4iKYH`4Le+Dq*wHh zB^5{VHSE-ms8qi_`si?A)XrcSkNRElF;_`VccMw>vuI7to9C#6jq8iT6l?sUih~*z zHWDYTT7Ny&R}Kvp|-d-lqtJsZ8-MH>H$m^!X#TC+o|5M%Qgu(v=BI;3$i^%|~EOR)ksVLNjh-Q+_gO z4#1ZdzEf;g8u^3djQQVy^+iT=!=MTPz~CqQg;K)a6XreaP9*U1F83pj_G70dweqNL zn4L0Hz=c+NfPvO;1pHQWJ?QNzmFss2(bG4wS`mmB1=wWq_%5fPgTi|5hP}@ZkDNEV zu9Eebw1}(~yA(*?Brc$)&lN<6bi(UZ!Zt34lg?AXUk*uzd_4vr6rQg!&)l$1GR$-)B|{qEPWYjS&5*Juq&ln!3N- zx69z+BbN=BH`30+;!eSsX%%hN1K20xs=9DDL&U7L*6K;bRpcP?(TulIkoG5e?SsXiHq;F6O_^~FKDUrZ%AUefEB5h`cpKxZe`v5 zRE-b}h7~|%!Vbnn=fgNFQ#=M(&T~~UPn$SQ}Vm141gqb0qDl& z>?rUY-7;cUlwQ{a(HxW)xGemyukRz#w;w=&1AskJ((Yen^{SsaO&xP+2wj$9S!}a(Ec1L*Y5%Ep=;ddtgAA^ghfHetEdxH_)&@u z^H_S_ltV~f9Or^)$~s#e+`$^ONJ(?a9EgI!NbeJA!1TUe-nurSCkPb3?MpG z$!9Z_Ieaj@J0;bXpePr}WLt?(S|h5mPj?k0ef`2>DwA%uu(Eeuad&z;;)5W3)TFJd z3nvBgcy=ig_&Tast~g0HjN$T(NS__allP`Am^HbrsmYz%9MHElS>!=+hw_*_RW5BG zT?Cos*;)U`J?!+N55!b{HTCP>P(EXBD`c*Ws<|`NL!!U&n=wl1W778(2>&rk+m$M!C}xQ@Xg9zGC2qhy1;i15C(2u;gRp zil2y&RP90v64+Fgul0a=`ycRIBBl=yafKo$k)xWYtli+k4vf==ENNTK$_us9+=r^_ zmgN;I+{&1q$4h)8O=@*Pec+&P6TsUn%ToHNJP6XtC;n_j*KdO-7#-!Kq;6hB$S8C6 z7I4ipF@?@pdCx0*u28SH>rZ_gE}r=3LY8yw{!ZoQfzGpaW$sY2fa%|g9691H7bAC9 zlt!|!P1CiEDFYdDY--n&6!2E)3O&3j--7zwhGgN%JlZSTQ81;kQlJ(VP>E%ka^i&U<8iBiK zxLimxlz@Mh_IGNMDVdBK)N~+bw_?3)6csk>7|H51HSjAoOM_1Oi)EQ)ha?58^XuU& zi1ZykY=ka0=VfQI2L-v1hEUm!st@YTu#@5=19w&~H%ZJQc-$m;sXe-<&Zsjl>#Kg* zpgU&dq|J`cRF7oKVwqI9?0@xJw*$;-MjZZ~lUfG{z$LWpF1XX82C=2X8GEF+e8=5| zS0cnwrNvxOHTBLy2*i|b%e%w2zV48FQ?hMNVioIa2Vol1JyH_DzeMNX$vzDQCkUvG6SGL2-BmCsek6Tt6?-%BX~%awd%-YbeB zD{^8a7V%SfO?UhQ5buuAI8-oO7uqsCCFQaXN*LVV3|(acwl%A|EMj)wNL(j4n@1tY4f-NcdBksi4%i6Lekp=0uG z$EQnBl(>C1ya$WW32L#ej3i6#6@|8EA!vjQ_bFn_szSbE-4Ti;bV&Akdj| zy@hI{{0>m{`JQ*RY1Z4_K*>R59V|7sijmw*_}?vR3l4Gf9oE{-+3B7z=a=huyBgX! z)ywvQnE@5G#zWIVcc1*va?05#cYfWK{dX%nzAN}=a97&M%Ajv&kSD=``6o8qwRdqc zOj`z4$O|<_y+a4Qqjo2!6A88=D*yXLs^SfF;c?qaj&7|hW(O*1QgYctiu zQ6&GyfHueY;VzCDC9C8v1FK!DcK!nYZ(j7T6|Mg~ncV!Pr&|y!h1@G2T5wlFYHI-H zzNTb-Pma;;@9Tc^|4t$lRR#4vQTZ}ASG;DhqDU^OJ!%)C)EGm@b=m)guh$2uRqJqa z`XGf33@~mtHvL0o{(|7Z_v$jAPzeCJH){Sjp2eK6(Dt~wHp>q}!e2YOQsWgpE^CA= z*z+o>Dx2E68e?<)yPTj9JiHNdh*S;`Dy!j*AC`L~*)ynRk3VncsaGwWP5$fO%bTVe ztePpiQkhP+_4lA^v=FAVeE07W{>dm@*C_rc)A0Y2YWTm-P5l23ucYb!lavpIVDMj3 Y-ny0tLsOdUH?IvSqas}+X&U;!0CTByLjV8( diff --git a/docs/federated/docs/source_en/images/upload_compress_server_en.png b/docs/federated/docs/source_en/images/upload_compress_server_en.png deleted file mode 100644 index 02e554d3c3977c7f041e6c68fc434a794c2e8a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10761 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 Y1baaGT2mO7+X+xn(on2Wu>A1<0Ns%|Pyhe` diff --git a/docs/federated/docs/source_en/images/upload_compression_client_en.png b/docs/federated/docs/source_en/images/upload_compression_client_en.png deleted file mode 100644 index 8690363d2c4e29dfbe19927c4e65d2e80bf82e79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8580 zcma*NcUV)+7B3tTL{UJcsR-c}1VN-1B?1D{AxKB53J9S^X`zKEDk{>XccfS8y#++z zMS2hd2~8=XCGzB_@z?#fVH<$nb0JFB%VEUa zk;6LlZ5`A#Zc_d0+>MFWJMgt!i#*oF#`^|qP1>RPUt{v^SOrJ;m!YN=57I~x}9?&=zIwIy*}i0l)f5-W~GjvJ6%?^!Pt)j zzAWZjW}wklsuTcr{Fea?003#X;p!oLb_W?e!*pCX*n>Q7NDIc+>Ov%fBJaFSbBqV=;7q=}TT;Fpp5 z_PP5MU zofX%TglGw^X*bI~xiJF_p>hp)WcHt_M96e$t$cPC{-Q;96onz)DJ=u6P5d9`GY6*U zNJjj3UO52qVYy|yNAF#>2B3Q1s;1+{-hmz?$v*H5tQ&BYl`#dq8-4 zxjkrhOzVxzMPHMZLEq53G`1_wpXzDw16>*q+b3^Lu#%kr!&w={Ge+7NrtQ~FBxOzB z#KAz-^*f^tkZqiYqX2afz+Z*tHVc`|uYzHMP#+jbXSZJu5v6xezVUIh52XIOHKJA` zYdQMDk75ou@?IIc>(uW6+Q1!+{|)qQ4l{uzdV_vcyXGUCsjn+mlwT|CSpcNZVM9-j z_IQl7XH4UK1&Z#vCp)G-Rz2fZxJ2-zbT~qRfC>{D)9p+WXTZHh1dmCVtr+D;BHD{~ z#m(Yole}7vLp%Jbh1&1xc5(|uf+jvUKa>k)u6qxpw~2m?ToE6a^Nmvg0IuO;9XF^v zwL7SrEIoqNQ6D*nE7U{5ivJ-t@hq zHUFZv+wMZ=>+IDcAfT8U+wB599wedhU!iIcYfMc6r zp^4cV>^_gvI&n#PtB1TR8I9Jux(1bEevC|S_Z>W4`^c;O5 zH&o+hpS9e}KwyfXx|)`kIi@&D3H@F3i;OANk^8Fe!H^QE8P|`J?b!Xd3?-Oqe3Uwg z`OccF{@byUmP%)%@UK=NM0sJhpW!uL+TV|Y(pdrRdNkh#2$+_t?wom@1ysxu498NSu1j<33R@^4*$wM(j_xa*DN{Ea?Ih%78G!6^_Q zhM)@L_~YEhAn|WqauW|;7la?)cHdETCdF}%s5Amvt^MHr0veNmqqTpV;YrK-dZS@$BW z&F+j_1;x$tN#lv&d5kHq0kW|aWB8JcBDA&eN9Nrmhy(06uF&=PH+#~i0(IpY9D1KmX6s(7{m`lbr_6&rUuqr3T)8G>u}q#??${*UZ50#=VA1gZY7HU6eb5C zV%=t!@Vlna`W&OhOhP0nY1`&TcPTDvC+hY1H~1AmI_3ilkax{xvia@g1ozq|zjp0- zOCe`B<7M|Zk{&wPT=dsKIXn67JILR~wslrFXTIZl^}w@B&RQY)_Q zbieDf@hu*=42KkrgSeS-ih`R)F7LxS+?Y#@q83zwgk(`*24Am05A_05bOs~B{Yrrr z%M*vYCf+^y0_QWmumvPfhXkaod#Ar`iIix+*WEr}cCVYD!M5;baBb$7Bh`MG8sEYq= z+us)vTFWQNeNYk@%(*dc?o=~u@AYTD4Tm_In#%fV>QY-C_(fdrN%N)rf9{d9D}FhP zY1bpaDLy0~Uh?uO{m4eHciesOWf|+FZrdX8{pcX|cSBn~$$GOMC1-rgAg1+Pe|+!$ z^$QA+`ybHz@y*uUV6}P?cOl>l!>08I{Ia@68%7v#V^sN#kpk>HXVbL~zQO~7rEi!n zquz@_Qo~fj%)_idb48|~S1463n)Yc8l&kX(wFTf|NBT`i*u9>hm)wd7u+aiW#0vUC zdYE%Z=;N7T*FD6uboZMNQ*N(+&O2|AytP>OEbslQqqI>c_uTq>4dWRJg8lIcwr@zQq%uXK{`>6bTLz@4bVWV?FJAI9@Xy4zn-}pbg)9@N& zP9IrZk_)Yi@558?O)=1vuy76mz*#wE5_BV(q_C&8_+2^ zO@+W3{X&_gknd;M1k6v%?474%2 z>B@31FCAR)FpVyVchzF5ty}+j6>v4Gr&zUHYf|xeDpe{t!fheGuUG{Vr1i{ zEh5nYxDEY)5tg%1!mRweJZwtp;Jqm01>%9(uEO0HFv27sBY|1U#7$ys`TSK|s9@uu z{)+|jEANvZIH%qFePOMK`u;L80QT@ zYw*)?#rjvnW0k?N4gXjzZ_XH}Yh);ojW)1NA&O=XJQu#x?=Wo31pHKhE94tmFK-gh z!YJnydG_D_o7`cyDIXK(-ZPOn*c2loT#%o{ZDyO-JARy$Ism?72cv|J{K}B~h-(xI zbM~4bh24IyxXp0Cv&TiGxoJ##Xh3U1bFi_H962_*VXZ!F!fFBLSwC%RQkJ)E=Y#xBd-*e7_o$T%!_AK5T zRK+L})J8MK6?|-yvol=@EMMl{tBX7wLfPW_bZU*=M5#xN+47m2Y<&$pnq)L@yTGdl%}h#dvOm=>HrRj#1eFfC4>k-+ zAK?VB*PJ#!CuAP*x*bgu`WE+=IMWD}K-j`ztc%io`aUqDBdM@|w} zhOa9B*r?~p$tBM&BL*7eTUYXfp7sAli8!MWp}ntR|wpRH>)yZ`5OV=`)ai0PBswD3I7kc*t6V zHad0G3Mcs5C+MN)lpOdKc{d{?BPGt%zKr{SD)Mk0!$2k)y!-=hFcWVpCO(~^xCKyt zVXk_V3`I$15kn zAjB%iUeocz%m%nuB=exe^;w=q&338vOgcuH@oC*?g0 zKKiDh8nQ)`xM?0xTsvC1|4n&sV0Uu!+Z`M)Y@^Hlm6Hi4`n9nQRmhtG3k@5}6cwTb ziw#UwxP-X-x3+l*vOyZnKtABDuXMqC-$CF|uANx(ahePG8rAzt7hJ!(wsg6bOF9j0 zF)f1k%|)Zhzqo;I<+h|YAUmvos}J|vUGrdTzURllzyPAxZGd31S-D;~A|&}ht-k-$ zV^-+ipYO}g1DKt;4Oo`a38krJbadV=)lfyQ9a2yaO-6sgcGz+iIrRf<=2C2 z1XiY#An|M(6CN7}nTdz~T0QqNfjh1R^HxXLgPWqpl5p@H1O0<5-qp&zt=&PJd*)w9 z3irQcx;}kDIgFd-QSt|kvnPy#3#1mcj%3!r*dBHAwlF%jFmvsarcWgErvZ#D4#h-` z91=9S8DUl?0*A4#=&kDH7v&`{+agm53i6*Bkzw5ZKHqw?KGp0WLWX7!BSB|%2?pl# zR;aeB+KDUQ0>xF;yz=-oRkrC=M{Z`n{CA__&$fm7iM6o4Ak4gI=tRGaP*28~X_8zF%+X>Vezl2G{tlSR_U_aEWj}}I+z34=O5{9YK zPqQ2fRt{-*p)x8$WmKgNyW(T3tc}8T{ai_tJ5=!a&5jcn#)+8JRE|h z2MBT~-*`@!_FcNjKEJs+Ct|%43F)S{z&np?cP;D$o0qo*o>0fZSJ%%1EuRAAxz}BTqsTw=+~_zwzC)h6t=Ioitau< zFE<3YXo+_zn6RK0_(DXnklhRv7^dIUlD+?J{|nhFtn~!xHy^p$zp5aHLpN$~kc=~t zLA)?A@~G^C#LsRPlp9W2>d`g{=}gA^NEEtqw8}p8SCg@_IE%3XHCK$Vs%Tsc8pD_E zRoyh9+tKfBQ3x*F*7A6JktfA=AgB+@p2|G{=5`BMV)QM}DyGUXwcH45i;*=AfE#nK zSq_pxD6?r~%RL8gVmCb#8@sZnqTC1ZHc%{#+`@A^z?ZXnNHEd4UJM^#RAF+FO=B=r zW1?xJzDq%>+S3?RZNF2LRCLbKmiOxyH3M~|Hes!#97xY`{7al49mn-irM6@8UeWBp zZu8mX63);g`+3vtk&U8$Opjx0hUA)=IcD3$6KXc#wKK&CXcw#=wJMK9NXL{B{tkcN zR1%p~Tz(}tYK#lmsY?ojEkerYr`874t#SGB#0+ITsc-Eyt|NPJQOX`%BaROF!q?b% zMo%bU^A5XpTlu#k+0l6@bkp5?@@da#rnh&T??K>{+_q!VoZM22;(Zir2AvV3rY35u zb9h^&Gtx46KJAj;H?T@HY9PICR>j}Ju%z34D*oG z$%M4Ok1tFDoa#%od|=w0U)5ido5hiZ1DcrcJqvNE|0_Ht`*a%R&9rX!A&)WIX*MAwb_&Q&~XCpv^tVVhH!NuZT+nu7lt zG8Sb6ReIQlddEm0kJ|Kf*+K{R6<`6hu$hiLNC zI#@zTdSPxa!XquFHBkJAzpC2CM$4FUCWV?&g97BbT4NC0{$9323i2~9eyou*tAZX$ zueXvFpy^)lO@&~RzPD8LIrkIS_&RCDwma4=ho=49tp_U~v9d+zPh}tvfA03Q0J2jd zU#$Ea7fnv>V?dEW{5zMLHjBLSTdy71WQY9sOg?0GY4@LCLni}Y&o7v;Jn;LTT9n_z zD6A7C9M57i>sMS-U_~(^PrD&O5<>C5!~6Zx2f~mgn(O_%fBgU<<6;}Rg(&?+=Z z?h;2RPBi#p$}XKl*$sn9Z8rRVwndVO)6beTAWb_}0Paa}rKfX&1%vA(7{6b=Z+PQU zK;KLU`?{=-eY~$iV9jV+PCCoEcN{JSCnmOi6bpfBDZEUcPsEU$2o}uskb(Dg*}L^> zGKZRsJbGX7#Jc#eW=S^x819KbFW`-OC4W4%!0Pqu=|#QIzDxjVsjm7@L!~@)-~3-4 z86lP9bB9b9&ekQ9^Q9;>G{4f838T<$D}k z$+fBgZ-|(;Guuzhs-Gq@{gxBZEJc6WqXbwl-5=j5`ZeUH;6YK$t_zQ5Jsq`@|4P>u z!;IiE>uHrtsU9(3?kZD0EcE?rZt0T{arkJZw0_=S3}4xRU2jUr|hzU?} zApk{4_|2@0-ez=2Y0d&Nsjbew4;xQv9}K?RWaT{m~)?Xl2~y8SYh!m#pi zQLvJ)X4JCAcq&Cx571b6rA7Oe=BflG@GypeQ}* zDI0vHpZ&^uBg8WdSM93?laGQTOCAlXaFYj>ULv)zM$^1SV4f@;wd%*5Zp3F zx9u*}1#jOWPZ1+`9t$OfTDs_IAx1Ce?{#xtnTpYATSRV_i&X*H1QZg&>pxEpgYCyv zKn!p6HBVtH3&tbXj@fkl-i)9bH=Z3(K~JlT1Kxa);{V&^lyytW-g~yEWiH(1Zps|^ zZhm&3KjyF01yTD{i^~{cfF1mlk0jFq5e_CJY4+RB1dYtI0@}1p-^d(;i8z;-V!D$y z;CRh^1Y@$)mQH7tAi|U|>#ndi6=8-P{3%uUx$9dx9blZ1R%X_d2G8> zE%C_R2LpiNQS=T?sD$c4a`Uifx!&>5glhaf>Eg0~##BFZA>HW_%|1@))^bTLa=zSr6Liu_AL0I1$}pdZ9GG_03BukS5V$0vvD-Yer$ zYMtLH{p<=Ujj7eIex;}`V(c-90Z{rjMBwOeB9ixzG~ZRV&)~XT-5f~n%RFw3?rL%_ zNaCX9V$bSEgN-r8jHX`lQV_SW#P3AkPSWC32sb}eFM)CB z|Mw`Li!Kdoc)twYKv9Amh|u)r_Ns|u=DSD}i7u#)fvR!d+uK>`bnP1av@*KcV*`vV zgRBRsn5ECeZZ=BE_C(Ocs+XQ`UvUv(Ns$~2zc}L3G2MjVvA?aDkmOF_%H4@erC;j3 zC+bBZ-PJC4v7coUy+pMPxl@?1!m6#ftIaTe4-P5dVduPYNwrJ#*@$6+58G2WR@FY% zT#dp8jU8^bH>KfX(#y;x*FS28bl+3f-jKC`~0_=sqNp&lhpA)rxu8L(y=?=ab^H9okT&t$*N9K z{B}lI$08eIaXvZf_PjgYj!EeQWr0g($cF3Vtp69g@xHsEyC`Xnt^d@e2iel?n*53+ zvtpp)*PdQa-Er>=r}IfX`GIWuH&`!v*+ObYkgAu8tWzXF4|Q_+aC*{a!=0uq*H5(S zxCQ^qg_rxHChN}O1WFQD+DM{0+k3Yz6JCW(HKjpEH#TZd3$;^p>4vb5flf>lYTQHS zJf<`S=QcRd@M|q!Y7=j=S7l;Y(PH_nsFC|SD&zBihbf;9^CT6wb5Y%?_cAyNlXu~! zZ{9tp^gUSCq78FNYm{4HU-+?`R_&9JVJKCs9@9^q%tZ!@_zc(OVEH9VG(^{pk5*&1 zJ4(BBc;*Muv2fYYu<7PONs)ZOh^k&!ii~sM_=D(-p(4Jou+)s=Qv~_Ne=%|HVvE>w z87>=T+uA|xPz?HqOQKQ8w8UNJ;@_Hnb&J?z6AE|r0P9PcwYvInMe4f%@2*ha1-RX> z@)iI%BSQNxz}*5iy;k%87&Y|~=@hWzD_0nEJ|p0h8zPJ{3AmbqqA}Y3ktWec8I26l zZkxupS4{slQfRlkPqFG~^F=ml_Ml`7(S4_@fuO12LeMR37$Jx}?*!X#vmy@K9Zfav ztVAJ5#=dLW=`VO`k@jhwacNR+SN8a&BjKeF8}L(r{miM?jsB>DQK4ngaq(c%T1Td` zjcA~JMW|A9a{=;jC9|=O`s`7e1OqSiP1M$oIc0-J+PVJ+XrPi6b*H95yK7;28eeE+ z>34&K*0a=(m4qqMZqE>b0B>ABY9}{(;YNWc+XaprG@Rmpjr;G(SqN_$cGc^)B<-HI MI{0y!s$Izc0eBzk+yDRo diff --git a/docs/federated/docs/source_en/images/vfl_1_en.png b/docs/federated/docs/source_en/images/vfl_1_en.png deleted file mode 100644 index 2cefd4c529b4df0dc5f6a36c667f02fcaa608fdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23255 zcmbrm1yok+_AdUB0t%>rA{_$Kpwf*<2vSN&hk%rHNT+}jB2rQ+E!{|mgd!ka5)#tg zedpTyoclZH+;i{vkMSR4?=cX*Z>@K|@2uyU&s-tOiZb|kWOyhP3SUlEN)?4dOM?G< zaIoPwMfabUp-?m^IVp+9u8Aw-?wXH>YWX(SHEne0F43!C`rr1CeB>7!`YPL1&WP4r z&r)HVK;SKr_QNRJ*7rmS7hB&yA}0#XB#XjH{`#5cnrqbOGPP7jTKt<=?~#OxkQyq} z>BSpjeqkOwJu4c=Xx54IH6;AuA=Z6|uyB9Wol|0(mvy#U{MSoK&6ZbI^4}uHtE<|4_4@Vpo>;2Jt%FJn zI{R43k0=|;@tJ~kT5Z9)3(FzERo)FzZ2|rznM<08wtuvi+^?8 zeZ3atQ&4w=#}bX_zPD0@8I_shMK;qGA)~1o_t4%4xf^Uzd*;IgUi`AMGFUt3j+;oo z1rOXB*#-5SBAdxNj_CA!Fsx6aGv#B?F;JOLo~C&2-9SwxyRQ|Eo=y1^8qKtZWo2cF z%gNz73R0pB=DtVs&f8|PeF*}4ItsO$X?;>vzvAQ)ufRwlV2|m;FAYz7F-+PY?mLn= zKkhP#g(AI#jk3*QbD{)8+-2sh-MNYq&+Hp1byd&RL@OD&RI5iA{U8vY9X?od_$Pta zMC@pR9@P-xePaCA7n39}$8kRJdd1wQo1uJbDqFklJ&)za^lMJZ?8jQSyH}nR8lb5@ zdW04n#h-3>ElDxx&6~?7-RCESm#{Hln?=tKjOB}cYm3dg5+&5tuf2P~u(iF-{rney zMTc`N(`2(~OLbpBa2Ds*Y~H>1D%$0q~#5v6H<=RTmDI-P^hU)76@>#6sGwn}Z00B)^}fa@-L0sI17DB2l0&4!baGu=P_#vlRc89{zw;{v z1$#)sajUATvWeM@SCL%2##T5g=I}?s=5g34d?VQ7Z4NtWx#Mih|M|@S7OCExtKJ&@ zvvfI|L1KfEcFp+FR=FYsdP=Brn) za?7p9s|L1e)pPE9c+~tF*doW1n0kt}^+=U9$QxZ$?xS+U#Of++5UGgUT`eswtG(Uz zNot5EKcC&Tf84`a z-o(UU`{Ypw6s6yr_5U>BGJX90(L_G>ixEn0V`Y#R7mpq$=2ZVle;=6%sYaz>bEOL}!CF2;W;!p3 zhhM`5-&mb`Q!=kTia+D8q=cA5>)XXhO@0P+TzWqgDx+2X9eKiLQ}P4i$AeFz-IopV z_Y%22?s#B$iN4^6TcDxBQ*6F2DSdw9lH1B!?_XdHMi@)8@kCH`cJ&2W&2Ay~`;Tb1 zK7VdYCSvU89Tzv+x$JTB7~PSm$vQlqlq8fyEL_@Q`QeIyp`?nM$W>{~--Ox5t1+2t zaG~I%8iqdlB7Wwp4~J}~uYY06(_*&i?lZ7cy*c4|b1-A~Dv2P@eYM@VsQfZG5N0^!~^=r&CUJvQ6Qr*ZivQ-Ya9Hcl>+XnW?eD|NDNO`uZr;iP3|A z&Xe~Q^X8YysZfuMS-ncmLkH@zeo73BdgneogdgDWO}{%5P6<=eEp799*bx-n!zhI9 z^OmK2oqp$&?V$zh^h+!{USSlnq48p|V14YwN(%8p7APD-^RdZg2ewZL3@t*Arxya(q;hz4SB znQ#uoehp6I?MiZTn4$+vACzzTq^G!7lhwwQ?rFVvSYlJ4Q|ra(HpZT8{4W(pn`688 zZt?RAblwdRh^W7EQ=%h3&~4fLx4Hz`T*kMQk1|4JuQgTOh*^Jheo(J?y)RUqpf!F{ zq39&nb!}ZlD>FY?Uu(pm8<)td>M(#Q=T8X|h(<)>Nq;-mr^*m3PqsmfD<-GDvEq2{ z=#(|rXf>-1;Z0V(t(#AhCFMMyGr60KZ&Ri#3S<9>ogC*b0;k=~rhKmk|@HFB3 zT4i{DS^3%eK>KNgcZqvAVz0IjFu{(|E>jySKeuYV=+2^|{KV|h8MwobTFYDi@JkBO zM?uFW;X=8oj$UATm;@^q;7IF)bt4#rSP$C$pBsVwKP}^}Cqr>PBC>FS<=s*U%OfDd zpGeMZ)F!n2aD&X}(`Prtajg6BZ%Pw3wka_Tmwq7NO!8@wi^RD|;iIG!Z+D2V~Z?*(zmMOe7l0=>_CHeN4 zi1W7{SvJL2QhmD#2lvL2-Jc$pF=8K!Rfv!RkB%eLw%hlnE-O`q%c@j9 zt?4|BGLl3r4^_Bi5Ir!HSJ6%V`tB;%$`j%UJDY1R=V2R(P8bUi_Q_+{P%yI2NiG*mj?X152K@mc{iO=;$1x*>f=Ugf38^x*!TQ7VU0>f zLqQ}^N4tQcnzXwLaZA214Jn4`Mg*3O60+?k$}(<{88~^!n8dzEp=P9mN9>9ezq?#w zLD{zD<(J%>9I-KvP9%yV7sQsgr>q_dmUZ5%8it*?Od{BBI7Eh=keR?lvQkH998rNJ zxID^-<(W_47ILc_s9^l-{{1UL(J>7J$;9toUiy<)l5@~?B~nB7iB)|fnXljXD#hwS zH%W(_(=Xy7J@=mG_}3$=E6_~P4};^1;VAE_8bo~n4}u#7J)1MA&Wk-ZibjoAjikjW zv;|*KB( z-l3icYyJB2LPP(sh1^wFL#6cbt)B0V2fMkEyz?%P^#uQ{e3!aw$~c0rIZKA*upwDp ztIr?MlAQC<8eVdC(K!MYRw&@zw$*#+kGgxWyjS`?_Ar4JQtT>Gc_L-G*ibt9oN0N9j19I7d>v` zJend#OGoP4V-%$P;^7^F#N3t=A=avG)?<-C8e3{WGHz~$*cR<4= z>x$ezYZwc2^TvgqRJ+aT`vEUsPVX%CDQXMh1%4W0f3?_w1iF;B@b%Z%TkJyrf0U4w zQ%qM51Kz&9nwFNP=`~U1#CnZQ)1b`z&yV zUqf8?$6cyVssUnts;nfn9L!zZ5)d3nr455RAhqXK7J!57$5kE*rluM4?6ewlv$Hs; zfRz=i*a*Aby}|J@18M1(YOm8uH00z$njNCwLB;XQBJU;>)5Qnry^Al#KMpMm<(aua z%@z5m7hjB?zBzr%eSeJvg#!SUDldrmAXGY4er^s=P}Rq2@0cu18t&(OMD>90q}F}E z%F&v6iiDWBQq9cl61G1|TvkzWZ&+Z=7~(}{saBpgpQMYwe@<~p$+*R8JEdb{nd0r+ zw=v7KR(C|W$--g=->|OhDq&wR7tUtV5<)^m5P(<}9i2-kQX%JD`8j-S3_y>MS)yf@ zZ@ceVp&Alw>K1#porgsBe_@Cx5bEG9UmqVW zvqVG5$FMCvC`)=T0p;rr!HN9)1^s7_T-stw6z*z>(aMj@hUKngk)|vbESd``)lX_e+ zRhYVR`!TI%I&yUjY(M2F!V2VO9J|6}(QBC6USs->TT0D-jn((UMUnD7*U2=wc<~|{ z>f5((iXDJ@0j$rQ?oU=E4n4h1%fNuu($doY?OS81dEW|^kVXG3R6|dyjP4nw+xs0M zz_&T8j8V9p^(VJ)-?@{NAtawxYHwz~@D@SxDBJbgeL?p9xmbP4%)Z}&*YygmIyyUB z5P~C5{WYbKGrzEUY7Yu^cG&IhtVQi&dmo+7UbgBABO{~RN+L`2chiyhJ+!tF;h2L1 zS5$bLl3NrBt2zxE+og-wIaW$@iG!mbq|2jCs1?-iy&vd4-diofOpFja8(tjl0iYg+ zae?4NetwtnE*j#&0<;WQT(_i$RovVJfe=CrG>Ko}Y5Nk_)iC=l%011?C+;VLa?({p_9wmT``iKp0(N9Y5H5m4qq?Jt9$fFqlP5s03|HD2 zN9bl|%IT`~y6^pR=$3$|ZoEM4xaf*}@N;P?F}Nf;YIc5pe<3Kis}SJX%F-gaA#g;% zV7viauy4pNC|HlIa_!A{m;f>3O>FG^7B@m+_>}KhD&3A(&@6p+1sD%JJUkr&{^T|F zD1gLL&T{^{z5K6o6c`_6n&?peSX=lSLWG*y+3cIJ1wY5Q>_6SXSsxm!=k_gq7VTRk zy$q@{M(U@YnQ!9&CcgXGW`s9t!S^|D#GfWW>~GYgoXwofD&O2@PbWplg7|%lvQhKz zg?957xd_O#9NzyA|VhSpTU9yrLdEA?dtHZ#aQtW;1ReenTV)ja0rz!jwN-Z`~{OkPZ z$9r&eSP%dTwULd+_D6#?=V1Kalhu6#!8VVBP5h)5wSNaQU7_CdcyDASsB>dP$rr&1LU|Q? zZuX5z<|a5U)QR(W2vhO$F7sopr+t*8*-kZ}Rp%wG^=Cua1)qD)aIf;mjA3Z-(Oq-lOrewy;sthWBQ0IM{no4;F$u{N>#-`QoH_SA_2oU5 zOS6LI0CtMfXZk403^?>^f+41)rl+@<>YtyTs;H}*K52*&jsT=FtAWrGKn0Gj)s>ds z#ZIIGiuI7Q+|lEGNfDWQ9%Z@xY$L)*B>ip&~K-d<=AkO*p*e_TN*W8KMMqv4+=-_#V; z=y>>PtPKc?7a_nN$9S!+T3mMOJc`%V`sVvj47a6^cYjQWlI|_mKLPN6Er$N)jy&vd zUHQVMB|uv5ZcCgYMJQqA>SN;mKlPZfeOPCWeK7 zY)T-kLz~&FaDTh*M`{ANhbr|IV4WVqgB);*c*c_${UQ3|Y6wM5FuE+^@CJ z8%kZ?JL#Kk9DQWd2)Hk)_aROjwQ3ukt$`R)ie}s=%A*MV#WekfR0K0nzSVfvo5bl* z3k_pU}T{RM{54j z$<1GYLp)woQOP^2YdQ&W#8ZV-Pz@r;7ugX{<98?@5hew7rwtx})3fjP!pBf3hIukU z_GPwPUyKldeAf-^+lW3`A54Q;#Js_o^f8F-F=U_XA3jIP@pJfgQr9j4XzYaG!t z^2M-G{9Yf?0L*N3WMAQxU}9#(RQc$ytk-8X!jwerlYVB`jLyxZ7Z{?_=-gJlR!?Fj zDq|%&nP!@KkYV>H*HHJ8;U!^TjAPo}h;vJ|>-w$Sh$)$jGN@XV78MP2@GRDSRjK$` zo{b<0UcN)X#a#os7^ssS4iXd%+}|XTg_-f|=MxM&!)H}qM3&n*Xeb1F2D2ybpEwpPu$?4LSG%6@T(UC#qVf_)^*sSnldo zaqjtJyH>MM^?22(xXI1Hx&2 z$w%O6dEIJ^uEkQTP2c`sMe1aNHjqj_?$Y>+rMZsxIQe+Bv1i<)(&8?6c%%Z$KylO+ z>aAy0TI!XynYM?=vaIYm_dfk~-iKm>8G3(1pw)!_ydxbyJf7`FYJ=>8u6_Vs4?-hK zPj@DI>Xj(4)qbLYisZQ0`K#i#!01)m6|DO*M32M@D*b>KII*|Dln%HQ!14^WmsqIB zErF+y>UHc?q5gEksjf#wUP|N--*LBQRZ@93^>U$3seK{Csmu1z_1wKO{meYi7w%*3 zZ~I%+PEOSlJXP^ZMG97kh%ihoBsbTIg3wTde^Sa=9(l6j8jj@NiWnHW4qK>_>E&LC zhkBDiY09@D#d;yt_M0o>*)#Lxc~waY6~z330Y?O9cbQQdOS`i(vZgTeDr)03csJP4wgP|S0X;&s^qvW=mm;Q6O7Hj`8@7mL)*+*BMYNAR|G zxPVvPm5x2q4cPmUU$e0*xeZx`jWOgW`+u&*`h}C>>$bATk=!gkKYi5|sdHb8S-j`bQv{m-AQcebBacrjL86-5B$tRG~P%lw7ZgXiO3tU)@>P!rHy z01CQj$+riG^d}*NE!z{1RDJd*eMG~(AD@p@*ib{qL|IE~X|E_dI~zKcLEpYINmb2N zcl*q^``nR1^_hPt8yVx-GLNM72Z{)xp?T%5&WeUFD#xa0W~LSwUlnp*@p+JLuLWg3 zAmrg4G@H@VztF<3~y8*cN&oJO5r9$Puy6TYF}0O>&nk>}S2V_s5!=n!YXV za;qyqBhcLIlx>P3_+q{Nr&Bp+Adc5sE7PQ}uP-t_-h5Gzm6f$bd+l&OrH$OC=68?V z(fd!I=!ExwIRpm>`@pJ3hv0fvlXc_i-b5Mz!l#Dn&v>N6DMA1zO$CXa(0=deC=wg! zSNx|I0IKJ-^mJPO%I&h@*%;tPUcJKmRcVJ|Q@a~ek#os~?CYgHE`M2~Ly`T4y`Nr?cq$9S9InRAc>Qc({P=q5NyKcQci(nY7Y%RKPhzW zQ9i3<6*FdH$4@HqV__50(rzlezl#e<77%Ol!0wSBFdaEGebCbU@k4=gFnHy+Fs1$L zcVwR3BK!R8`^S^#RKQ8K`V)#iD?0_O#XE-c?Af!1wejjA<2C{)cYl8jqH6jc&1whF zA*4X&Ivv8qW!!oRis~xQ+L)MYD-*TkfDjH&w!1ff-Xk8WE$w##a1t9Fxmo~orqeQXlhm#4zgzGqJQXl z1}0MYe7uT^oD(**vD|uWqeq6CmW2gRFp0pX?$ES=D#dOnT|TzZpb;H4y?zk|z5EL_ z*vYW$op09?Ij8Hn4hzH=S1+I#6~Y2qK14JPY6)!P8|SF^{!uGVa}l7sj09;X$3pqB|B#uv^H zC)s7lzlrI3SHXdtdZ~DVWJR_Ddt_LW+}6@1V2MatuV(0>;cS|n`3eaUukLS zRBD8%JuB^p>Y?rQ0MwS}iT+~dpYD{1>1m_c*;&ov6p&cFdH?>EZng8rPoL1W@~*)i zlnOY5k80Ms@!(y&$Sy$#9^n_Y#$tAin(E}6{3_2`+aEUB?w*ErWIa~y#7z4kXK1?x zx%wqRuV=6k{I*l5w^32nz1A{eWP!Q4Y@peo5O)2!w#m)S4O)}04&5R_aHbh!yCbln zDDJpj1~@F_On_D6w&>5IQo<>85z&{&p@DYNOwidun;5ze!&qA~q3A)wZNt9g>w2ze zh^1LruuORFk1Jk3bxb>D>C+VnN@QVSd6SUv8kUB3SvwR93rmDok8XcA*p19Toce96 zv1xa*b;){3x2V5Xp0hdnd}|mvC_O}fq=-#gc=BkZXJpU;BQ!TRH-XFFOYupu>MT^6 z9+9lX#s-0t(y_DSk5$;nz{W*9&N+FJ!JHH6@{q^e?2PM-5W?C9fPQt*zKoL=Kn{_v!lD~pa#9tN{4LnaceOJ2{ zUuHSv_K~qRC^f(*F)@+qALk|(uNLXLln1p!w^Jhaf@Y<$nICV!6FBk9?F8R+RT;4EVjK5}AFr1k{6OuV=Nd`O(2(`OTR zrToh@y5QePWE2n(xW&oY##&I*+qAbj78pe3CJU+%lHT6lfYamsi+Oo@B3qS9IT{6{I_tpQOz)m3 z1Cb0dB>)blB7%o3OxG>+5HfQByLP#2O)ek8Fax13zi#Xf5z0R%Lt zVg8m(aZt`!O0+$@i}xU16%k2|pQ2XkfOH)<2F4j7nYNA>&7nJy0*rF#e6l+M#Eh@6 zNLUfFEw!eG;&^{uMoa6xHTHXA=PEdG97r1!baZq`ZZrJ;jv3iV{qrLYSnr_|ww9qG zZEs(n-Nuwe!l5=;Sqzq`P#x%h*k9M9L;2JM7XMK_XYRd)IX=rIR^%pzHkF;34Eyu-PiF$O_6fKalvC7IRD35-*IbZP4eaYn zNY%u|#E4W!v&u2M?M@Ro#RddoI$qvuz@PFzW+5S<77g|DLub>giM#Qvf=#m!1v;m< z<7(_cOuhtd8fqH-Fl>yGnH2%^LwN4J0fZeQgVJeyy=R_sAd zMC30+?Mdu&@H;DYKE<2Lre^cyJj)U`Hsz9oAR}g+LI#!hQ=gq+Kgh%V0|VT&4Ix0$ zH5zbDAt^f3q%EA%^3ZFv)I3i3#qA%aC7qcL(GRd{^&-Gn+h%rGJK^jx8_t$!-vSYR z6~*;p>uJs^AA;6=@f z=Sgj`Y37i_FHn2 zwLZNK0entds$qY?cd(o_H&uU=1o zyq8l@wC=~ca-dh|{;+b~7pF0&0fFe@4U@AHQ6^LGh zhvjv)opLW-^*0pqhLS!PfU?azu0NQ*hyn>-h}u=(MuP?r70zWD#Zrp6_5ZG$JU`pV zxp=YJ`)uCZZN&{rX~li{b(7;Y6XuWxE8f)H+#kkHo5aoqkwc_m(jBQubFNPtT3%mg zkGPbTpWoVz^1w0h;5=zw=@49gCFr{Gp|djVofOcnzR&f~5v`P{higT5-vrX=X|U@^ z1+o~zP%Ai-$WdH)2ocjX=q(*9Cnwx-QIN6FewGg!*+7NZJo^bA5q?ZnWW49_P`1Gl1 zwTQ?a>fER6S3RN5Lpne^+|=-WL<_2^NeXROzzGcUO7E-hn)lw!F#JSJ$Yd)&2o6%JkSSV48J~Yga6R+vi>;>5(@#BH2wPG z5D4}*MuP5UaDzhsk*X@)!mb-wEC3gE(p$G~75?zBQG(D1eEHfTbaAjylFrWM13Zp` zNu7J)NWjy0{^X8X7cpQq-NW4gppFfpkW7kUWo9lqISXGh;UcA=N{Naxeo>HSf8)jt zBsgPATt?#MoH=y)Pz|Ps_H zMn<2YrWE{`k&)4suc53=1K~##ut63VQ*~p*%9Wbp<(k5 z8jEG_L@`}Mo9WOrO;Tin=*FKHp_obJD5#sc>&&!J`AGeXXi#ZaB)E*q;wr~>lJS~PqQP0sbe<57KwOq;!^_*2NymkDGY|i&xY~Cf;Wy=k% zvT@=1)kw%#3d>pW#9MlywgBEJ@jF7f_r|yKFdzeH}RbEDhG=$Ep5Mvnut3F1e zv+cpgZ>s8vz>C)doR$Z1AwdPddUZ91Lzjg@$oa=9kpQkB)J(AFj-w`YkyW7-PN%NN z5jCt;?x~LRrw)NRc@z>0Uq1A0`UeunC1GKhjobUt46i0TI#QKsjjuNJk&9w-FDS>} z<>R{uIUcbWYw8<6G16qPe|evuNE(N*x(qw0|s5{a9!5 z_6|d0=Dj4A{|YuD9)4hBW0TU;qe2Q&=M_z;4yl(1^P;SqGFUBx(59PWpw5PZRVFiP zW0bS-*8WwFwYR-VV+C4lhkYq$m?#c0YX<E))wM1E>>$?FQ6Vw4S*>(+ z@xUuOCdT>Db8#7Dr7MCCe=d3LS5MMH06;J;AXLD#lg6x=iNY_gLYi)Xrpe}Pl#W&N%R-(|*Uv1>*$gO&=_Dh42#-_CSLoGbB zZ*LhO96Btjto6P^9~c;jv4&zSf!DfN%e^ZFpmAW&Gbv|h-nVbxazVI=Q(&|jDNb*r zx}mJA8@9VVWZV>h8z2YdSZtFA!;jIRtz zDvIqfjfM-Flh8xh|a;Vk(j z?2a_;B*mfm-lghS5^aPp=xGgx@^vLa_@Ir8rux&4SAIPD5}k_^?}$>)z$oR@wmddo znWG0kuLRV2rc&@&yz6i%`-Lkwdqd&o2K|IA4uWDtL7p8-DRfOqcoTEN>)1NBzy*i^ z1jxlO(Ktivo00U=%Y3n6dAGA*8cpk%L4uMYvwG7`GNf4!+()_l19!`(yZ50FO{V9* z%9F4Pz$q&)Z&xy`UBgzPt?k7fTJeG*`rEg!LM?MoLIUj?yVh*cGPK)cZwEtx90WmC zzF6YeYnul}i~^a)b0-Dp7eZNP)upDX8O%4~iUG07G^NyM8uIlDHdO&fp=|$azzH-q zOqc*1kxe+*8?)K`&RS5Js5cgQ_a_T`-^9e7Zs9(2Y^3MywH1|u^v>#mB@54rjwwa4GZuA&}g{7Hm(cS_W26E^stro-_6V- zw_S^%HcCN999Tajir+W8p=K3cn56)(YewqnzQqls;dvOp55CldbjMFlJR(F@-ewgT z{amE~oRd@Jw5$$O5J=g$J>Mox|+g^1<(eUt)*xA{+0#|`hk_aQD zb`HlM5Eux=U?N)3!nHse$M);#dd<)78o|R2ms^u7CJTo^`x9;#A=dju6eEW*(Nqw=%9-csZv0|P@+41~i*h&Y=I zsS!rA?UBf^N3z=zbANyTRPFvmGgQ@+#94R)DeEj&`o4B}Jx!M(qS=rf( zTZh2;224#E1S$2f-MV!dob)D=hJloQzcJyy?zHS?|0brXC^qCz@J`}Y=KEhhd}w&P z%9zv*;S6e!-Gi%wv!4DJ2%X=nEM}FJK)k(SxmZu?_|$oC<%!|IXEjOC@dI}j5Y4KA z2aLtIXaTV;3I~a%R_EZnff{-*?jz}adS(V0x4|{*PF~&Hou$h|`(t%l77oP}L#1OP zH9h<2u-!xMEy{e47)5wGJbozIV?UbS#PMs8Lcg)&C@Bu9hRSsc?e5*XsLLt-TRHlt zpEVdTFMqrLQTap3m=?@KfY{F9@UX!9G-upOW=j}5i3-rUU;XK-4H6Q8Ns4^?*6(n8 zeg^TA7apx7KocN9k6}s{4r>FL%l*%rH|PW^!KkOeN?PH-xM8XS%t57ec5^v{M^{4mb96bA}a*Md3x4RZ3jODv`+~+25 zG6h}zm+`g#QAWay!dcFBg5s-(pmg|qw(Woa@!=$OpNbg%&0M>hb2oNn7YhEPOFtdU z-G}ffa1}hRR~8a-J=I?Co6wriJ@~e!>z@@N6wQ4D`dtM3)MAst^@&{5&{7=j=YhU^?zm~MThROBiqeJhhsXlFQ4zzxz!-d=YwJjh|-GpYg zRXOM1eRvuW*`GTcphM%U%JIyw0^hMR0xffY>(o0wqog7G{8~L>$o_NPU>u}N2rWo7 z6ljKj&yBwM<&l#$Jy86p$Kp+9V;aaR(5hZ_+PuvHkF-rU&0tAqyE1Nt=L!Foy3jg_< z15=j2(JucjXqaFY4g$4-W*0+l0vbwLc;BU?{9lFe)o2}Iors87El1uWaupQoi-*`J z9$U8ZN&hoFg6;i;Gy+7x=+G%fMi83KmI}G{-=*h2?G*D<{AIss*~XpH5ZSQfFD{ZSwVF9~szZZs14q86Nb$?*nUt?p~?h1YQpY7={*nt>^QD0H6bNmKJ-?!H(RS4rq8ASUx`s_;v_L}9H zkbwu#cO2}zy8)fpX_?d@1H~FVqEtU_>wCDLf3P2v{t6wlAva(?o?CSDuzB8Cw1f?c z{9?>BL~Swe?VgPNI*P8x@s#n^=Ow#;j9f1#^KoY>~ltfg}1OjD5T_9xb^oPr#Q)(#PA4D_6Lc7*TDLy7XMmued?YZp5$CHp zp=8TZDsB}zXIy`RT{k&yT1{Tdo5*xRO~wtdL$i_n*uYKMP%1x|mSJnWPlrXnXv#qu z3)+~nhkUuM;b6>cpnE`O07@|v!yE78Nw14uwIp(cYy3{~b8vMw3p5#nJ~*O|2?#dG zakvl7^B*=Du&KdJ6C5eC+Qx!}Lt}NVb+;xCluWf;B<_pQVZT}~E6)qdC^3p9K}nsY zSvoCt9dfRebrrL^=dB*wTywnT&T7oD5uQH~l@$a-ClZ=`%}cv2B{PWB1crTnbO}CJ zJ3HfkfNH3>;VfBv|6pAGWyUgJBrLq=d%g(1%Wq=4lLbP3{X$$eWV8hoIiNV%7`q_- zWc3bDxfT`$3XTGWLL@IsI-oL<=S_Mp=^DGVxa`5YaF^6d|GX+%@kX_jm746!%wYZH z@Ui3z&n_yXMe63ryL3$|8&*G@zBM$K|8oH4R=g;uXNy7 zeHqw%SOb$jM$H(u`nkQIwY$_*$;wjE&i-erp`!a?{&rqWIK4?h8UC7#$kKR~@;WU} zV(JVQvK2#GR<0%RX`K3{;KeQq}QA{#|b0;(^O*I&PNf`lgKtFMw`2z#8E2$fkM**8x*0?-S6%=%o{5yiph?TPl6 z!h<*71jf*4K!5{!p9nUo2jPe6bd6R*QAOA+V^#eY^+jvnkL(r4JmTNoo_b(DHrq*! z89X=E{qf6D(lEodV^;3qXq(IPt^FPxiW4=SG5ltke;hUi*OF7(gHE39Tu%HRXH}xB z`fLv9HS8N}OW!}J=s<(sO!AF5u>*Qb{-5JiYoichip z!1DuHPv> zj?2yOSkuUtgjIK7H+Gxn3gN3U@=M~oGK1U3sHua3mP0Pu%?kA!S=YKP+pk4Ls}qnC zb3Aw0KamoZBDsr#84%tv7*c6=iA~thzwp_rH#IX~%=8KNe4X~T^Jn-2%mG%%+pZHQ zHX9S!w1F~>l=_Aht|04PO6#bAMaQc_h(x!ta*5_=NE2X`D!>Fi^Pi&~rb1%D!b-F_ z<4TiIi(GcLPdD+-h;t#KIw-iwNv&(5^-&omFShT@(>^xXy%Oymb;ga%HP)j4Ly~xl z^L;A{MfMVTFTj7F)%aVUSjQvquAQ>hmH;CXnP&tc<4m z4Te9j+T>Xu6YXAs%w_Z9sncRXSyIfoREh!fIYdsFK3hxFhv2k!WIr3Xj-9k8E%Mu= zzI6J|mEFpKD-r}L=JYp^!85U4-Lor>6e4}npQ>bZNZ$oN{k;&+i~5jonE+B@$GxHU ziUY5o*+R6UqYWz8wWnn51{MUzNUTEIOCWn(Q-nkP^ z`WRvpq587ylGYt7%%<{Tv7jS!nj^8V+oLSz-!f)7Ft4*b1&Fv|2X z0v#xZR0O>XwLH4IcC{KF-xPiDaWU7up7TqWj7I!gCsHHaeoAxq9tK4WtUVM;6-a71 zjwXdzmAX1ywRN-^MP=`jCoW9sDcBO*M&5RXy?G z8jElqDgR*Vf%o-9)k=53g9AJ94d#@dP-FJ#VftW<<5}>9mJ1D7;VYx-5Bue#L1YCt zKUl>`wc3-@wS-Z#VG&*ki-^7xQh8?{U(tL3E{wX--+p=-8Clxs#pRtx>OEwn?u+2& z7hy%(8d3BS$Xrt(z3n|(*v0kDjoo9AE=d@mVqtC~# zvgk587vW#Rn2vcp_KAw5UfuiYIQyXEwXCCty%Rgm5Pi$~BF|UPHlvI--uf{_Mzjm5 zW59IdRXVFX{a5L}=JU8KZS+6Hk%3$S)fFK~52^W<2AeZ^#kaQry!`b+?6XqKY((g$`f)u98KpLYE%ypHd;^LZ9Ghk7?Dbx##f z$m})d=T=4D3r?vIjm&kgq|~of9+Vju-dvhlaVk39^HqWL+if^Bdha}=n8GsR?gU*} z^U37qZ^aJkyz+^&zUr^r8v0*Mw@IzVtvt~R$=SX+)lJr753d_N8mA}N5n9s1_$uMK z=<04Edc95WdG(`{7Y1?LTSJy(-%-{QOMC8P=o;>-%1hlczEL(sLoK`@zVsw3N8`CJU=|ApnCsx46HN`cUa7 zv$s4&X>8T7;4-Y1X44*CX&Y${Qu3cs}jmMHI4~ysTwPlT+?71zVTA?*wF*uj{XC$VqLQiY^ z#r%9`G6Pap++QcrMbS9tI1QFzqr8vxiBN6wvuyDkURhCBG0*fv;ta1X8z?FxGuA1D zo@UN&UR#&WaRtS-myK8Qa*JSU^7Gj(uQ0D)&Z1qFWz%s#c1O!^`Vz6O#1c}Nixu*- za8gF8V*mK^6-)FRQ(3o>L%Jn9Y~6Ru_aE`d4DL`ff%VrXGlcuDoekokAoJW)QL7!_ zf&{Orb^of_T)MH2Zs9wM?UXg14|%Vx4K(LaWLb z(z`37`8=^6pDAe{swkoO-lNovv{fbDDLdrn*AcLCB_jJ&I`={(;oGWV6#uGL6jH3l zM>sf}(1ok>(L6H{Q=laA1BExpux-j%B$mo=%OCzN;KZ$%Y@F4VR~M^P+}!x4%fTX4L3_dZay1S1!%F z`%tRb0A}6(UoVV+(aTo)sC)D;vu!u+^O%FNHQWAv`wdhX5$`z0FEagf3R>Fx zot5`x79ltS0}1^>C~2e7{8Gj*yxtNxwg6lr=r0+k~&f)DPqLWZ-&2C(GYHQax5x^?Ub@xT9OU z;&}^*L2~!H69xLn)#$f`kk1VFZe9+Q>|ssml~F8ApD8)mA9lA>_DM|NFa&q@iG29}Xuc z3X7VXbpIsUFB2A4i(!)a8OSE|%XxJ~lN!muNVRvY1>f*zX?B^&e~BM~NeQYo!+GoE zEW%xtS1&Yv`<_3TMFU<+^XN-Oj>JT{mubOC!qa`Sf4n*5|MNm?g%+|>u&MH|>(?gj ziEPfjdUt!%rD~sbelBD6N=K)tX|3lTx4|#1W$TbHMkC>4Xa=pB(_Y1lI6CH|4>NBw z-qYm6fO>Cz^)r7oF_9lQr!LEJh$tGog@Eg9jS8gXLTvkhB>|RVgvHCL&q0Myq_fO< zafUWG!Ejr!#?eo0JizHr)j`6pCoE=%WOUyrQt(6l>zvz(u2=^ecP?Kg{K{UT&j=`A z^byv&_jA^+RA4lSX`nwe8{2C+xyoPER0TNAz<|_t z=f-AE?Ud^2mCM`j+;?v-rJ`S`^0EY6YcN8EfkG0>38Y+Jld~OH3iJzm2m*kyo`(=$Hp+r9=p8AO6pjXejrz5vgMC5n64f?X0*Om zG2}r&T0B-Bq0LHVy!4a(`ZlqxVM=9fBT7od!o9ZFM7(g6x8ceasA4qz+P3e=XgQ^L zeo_(#D(kWSmzT&Gjgt<%vLLrp>~$AXE%omXj?d~R=eGeI*%x0uj;TAG{rOdgW?EwE z;G)s>cPuI=0fZVmz{aLyO2|;{jWyOI~=a<-Q$Dc zkYWfT`jMzPh>6}EHF^l5ixQ)^8HOCqE2+8Mw`3k zxqtlbbMJHS{d=#y-goc4*1OiT*XR3%_fVYS+Q2EseR@<(e0h^s+WS?Xf{kyEv_Caf zdBKR0ps09K7$|LStsQN+J`m40X0REr$^Vtn1?{rP>=(oE)*%nyWB3Q_)s)-g|J-{H zE|Zv-dI=sl?3|xg3fi6-^7cOxXg(zmZ8S_OA-Cyfn+d4l;H~~I7{_;|MbyxeQ6Kxd zaG$@IP~itbyKXqYuaW-D11}BKLjip_O0j37C5)<#?P~ z=*39q0?FqP?b$a-jqA(ph+-Z6L$L`Vasdkx4y--+?mI!P*zi4sdD$5Rk|)@7Syzy| zA8hjgt5{N{vgesL?d&fs5sNxbR|a{7b?tuBwz94{im49O<7hkHq)cUTUZ6Vi9Q^hT zO$vi>>A5cDlRvwZPX&(eAgLT1^v%rQxXHVkT0$O81p1u1+1ih3`n$@z;F#?9Z=Ef? zx`?#Dk{bMesOrb9ZN}{*Zty0>?k|31>|896@i}E)7_7IU!-xDZ7iC(^6JU33Xpz&# z!&7CJE|cz_h!FB|&Us%WcTHrZUaP8>nkVWGdaNaX7ZGA9K|>?%WMR! zeovaK8seeSe4oST>tI)FKx|NE*i^8Z%yey8g<#>lxSQ7^=?4yW+l3nQtuCZc`t@Ef zgAse=z~^ckY!Cxm-BalzfT)QOm6BmUp^tM&HB46c5kEk6Ls>`wZ|xqzu!7bntqqQ3 z>L5Hrs^ ztFlENWb`(3b&qYd#kMeqIZx>GnkG*u(0Xh`Xo@taxWfWW%wH)-O$gUyY?kmX(!?~ zXuxVaKdyd48M1;~WYoyA)nfi?YR5aANtz)iG`oGnPE8YAwW_Zx_ScOo& zJC^%5{t+){TiChjSSdg@XH*?3T`$;KYt&i(s!`w;>cIN5rb?59dG+qoCzjZp%-56A zlZb;x3!pW=2t7L$v7)Q*z1NjtAFeB*qWTDJ ztO*Q*kkDtqaCw|gV(_qUJ)c|mmNdBKv`!AmXCaRtXV}E7l=risC#Q9XIXzAw>p_mk z>)}+6mYgMfGsbd3yXQThw>ypE^o6qBoB1v9O^YR^cXa>Z5Ol$`DR1L#dJom@*X?qo zCcn*=Gb3e1^aK`MuNHwovx+-!r3s(?P838rEFUYj!@_sP+<*$fh%3)T*CymxkL)d_ z*r^pQkxo1X*J*N(m3M8-TPgDBt0IX9IXQdzefnCuwkw4m>7OX8K599uJS$@Xi%I$)3Pf3Q4xHz!wJ!k7YXbF{P_tK^a5M)tcSyUef%cIN?v^ zwAu0Q_%0h;OZ@PITeU3L3l6s^E=%rC%AQ}#QFC#Cs6Xa?cAMH`+|${u;g~zJzc%=Q zN)9b!8QCeYDBQznhmPKw=5E>}KX~oeh#3y*HYjo>YD8fCZ`~KOz)F>|?%`Oiq8;$I zD;_xyfxdu3I?$R#JUF|D75b6dtnrrP5xv_s_rLa#@^8}N*GmWX9-VaRV_}({1~?UH zALYu~{7o;H=W9Phry(f5DIAw-cOluqVW;{j(FjN8zg$o@Iy`|9rrok`FBU)rV!#o- zg_w=|HPx2gsU;N?9ekJ4kvC$g+OzyBv7UmB%2P@3%n2QEFM98v@5X#rWjSwrpO6si zmZV=gfo{%F4YDzBNkfAp$^>{b?D zdQ;_Xnv7<$!^07brS$bg7Qymw%={(mg1bfn@hoGy&%Sr*)icbzF|o31UmD$t6xJ)9 zh)ZUAz{N-OGXyr;p1(K4b(c0ie8k_IVXw>ohkeqkemOUiZktyyP9|RFG5OoA^M7nD zgp%XTJD7;;W4&~_a{g`c`JV~@`%Uvx9;t2Fs6Z@IH8t>OeP126)JT^1aR3fjftuZx`Re2p& zmDxEsV$TePMMY~p!&ik$q7456^dC15qixO1qJeX1L1$t@LPArHefasoi;Y;JB!J9f zI^>`E_U(_NG0Yn;?ZuEyXz)3!SpANe-gOr5UX3Ir$)x2bXy;)|kb zz_VnOx*DK-W=_q_%wjISOiXxe(^5V!#_92bM<_Fhn_uk!K?pLGETkdrC!ZCwM_4~_ z-`<|X*-rra`*GikXj*~E!qQTD0I#-c{!(VK4#|v(q3NvaAV|Q4l)ol1n4;_uUF7WKB%SJ&6d>~0VUo$S12lfw|4+b`5}S1m3_M#*R2UF;ilnEj zn}3J|7^$f}0Do|6ugS~%bBz?&lbn&kE-G70Qg?GJSxpb}@~Uvt0$`8=g+ssx2il}^ zKxv>93(BpnHAA-fFXP$5qka?`<#_i8em1=S^4IwVZv<~dZttQ*%eH?b_6Vg6{K-fk z_*lCa(rTqpH32|nQEE8^;Jlpo$I&UAc!*Gp@zP!+7@xXVSQXy)B z>~PQ9Bk93C5N8%6c2R~9c$`;*x`%rNS{kM;nbv3{HWQs9ug&gOY|Ua6ozcV-EXMB$ zt*EO@tCzTDil^nm%~dIY%SuaOx8D#*Q3TSfrUbXK!tNFvK-xeF*4EZ=3rh&E=7%&b zg)GCd?`+C;29oB%irik0DZmukLlM*7G62&z{x2qj?}FcO!h+&@`{>zGHRxfqTC?(ol3R z@$T1T=xmL8{~Ca^fZ`|hT0ZuTLRb$LyaDoODge&xco#7$194-40jNtYY3)VJ7a2?m zZL1>2u@RrF4o#|L|MFDzvI89&4!AdjQN|K4XB>Rdt$?Lr+s36ZG#UUy<49U~C^Aug z|I7HebBO5=03Uap0@M~shc?`q?xkGWlh>rMg|j)}l8(as{J%L)SCkY|IW?d^GMgki3PwlQSP z>h2l^XGMqBbsckY(Z5rnQc_Ye?j}_eWv#4)k=<-1Bus@zCCsKiXXo6ifBVQ zQ>~UW>aP#xtB6*+0frDhv|*xSgN>LiHCI9ZJC?hu*c)AN3{Ir6Ipz_1$hP}5MO@^6R8{{VPqCGh|N diff --git a/docs/federated/docs/source_en/images/vfl_backward_en.png b/docs/federated/docs/source_en/images/vfl_backward_en.png deleted file mode 100644 index 867a4698dac1cac5a4233f20635074669747e96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7041 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 diff --git a/docs/federated/docs/source_en/images/vfl_feature_reconstruction_defense_en.png b/docs/federated/docs/source_en/images/vfl_feature_reconstruction_defense_en.png deleted file mode 100644 index 608017209c42d910796a461337271855eebaad80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60594 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

    0Ern9gFfhcwo<`?=7 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 diff --git a/docs/federated/docs/source_en/images/lenet_signds_loss_auc.png b/docs/federated/docs/source_en/images/lenet_signds_loss_auc.png deleted file mode 100644 index 7304b69c4d0abf039549dce758b906d688213e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73257 zcmaI71z42b^FNHDfFK~!4JsksxqyTqNJ*D8EM2>FskEdl9gBc~bazQNOLy1OwRFCV z&-4BM{{Q!SfA3yg+;wK|IcGj+X3m_sLzER|urbLnQBY8@Wj{!%prD{bQBY93Fi??q zx}FhQAP=PA_gY|8dvma>k&_vUxT(Fd8I7#15ztJ<%*fQ;vBwO6qwu(2K>>)lIT)E(n}KPJ&48A6BCihWn_tmbnu@&A9cR zWTxt&sAl3}Z6av;N=%dn;3kA*U~2|8qH(jeu>%RYiM;yDR|t9jaGU)V&EFVLQ5fI|$qWSmt z3i&oCQ*$8|Dd~UTg}f4ZWdQ~|2(h!fy1KHtav3EA0aoY#oqqmNIj)bTKoPcCxpn`P*k9%l};#ssEMVzqF?Rt1Mja|5sXeq%iCc zn*BdC{hwP%_&l8c7q`fZ|03Va4heTBB(6j1Tb)r*9(_@kS9{;l(KT;tad~;YzP?*o zS-lz)ot5=_X9sa|a+t)UbY6tcX$?&9JmEiJ>(FR-4I0|Z(eAD?e+ZEI*~ ztyR{{%*@ZvuWYStkBp38Zo(NE87C%Y?(XiEzX!p`X0EPokTY<-qvz)4_H1&3h=_P| zcKP)5w7-7{(cQTTKe#zT9334kxPoSl^%lQ)H#Yv+7#JxmEIvFu-QGGpJG+EJe@+z_ z-CbT5YO6;?M6EaeIjF7j_VTr}bGW;?*;?9|?C3f=Lexb4*n%c)Zy%X6G3e_X?iJ@B zwKNw=i?0@yC@Lx)?;M;A4eo92d#R}+5Qq>#UQto86T~S$5y8dM;{N{reBa=~!7)2K z$MwPf!oyWrHV@m|2b(9muKM0K!Wv&1k_$Vo2u%4j!7Exu#@WHcGO$KiWVi)-=mv!`rqq+k4IrhV&wDx*KvjPfhi-wzsGiN z%z(Nue+{AWIlZ6wGm2TW>p(XXWk%$E=lF4^;LQEr$EnJK28h|m3nYJ;(L(WH|FHe% z?19l=$sSGsuaPo7@RWEE>Vb*wQA1sG?Wq+I2=ufD`Hnm$vOD;rqSYW5Pgy9EgKc1I zFCwgGAksKGe%l7rowZR4l7WmT3k&OB%Y1|x4xCMl4ELj%(pLCXfx$S?$T+@fDg#>) z1Km`cs>bq0p85Oy)WRNveCyqcp0`x{#Vg^`=`Uc6W8obLBf;1`VzdA~e)YsZAlVPj zpn#U2LkDImkFkC%&c%?=@cwctU51>4lB;vlgAw_OjFRreLW{yyn$A`ji^z`6WdfYuIZ`#W7(!%?N8S* z{C8~Ya@`cG>H-=_o_rPC2ELr#0WZ67k5ad^zB>u6CE}Skurxz=uVN9~q=%+0Y$-DE zcVB~*I`n`NqjrUH)|KU`TC2pKxd}TTd&X)u+Xla{su_zy@mE{BgRpz>%8%l7e>sYl z5>{_rR7!;2Ro3atI%AzwEEkNT0pd_Cq08p7?nP+CUX%K= zLAk{n`hL>myqqOob-!2l_~Y^n9(Ay)$A=k!gqs~BG>y)~m^ICsAt?kL5#{#0xobQN zEZTiOT4>HaY~|{?hp9E)=*98Mg^lH7WPNVos4$^Z?Q`Avt?QPb<=idhVr1(hYZ!Ye z27TvGtTd>zFpZZYd%o(XwpbAKcYr*j0w6TH<}w+JAN9iEsfywS;U2aEL2BkHpIgYo zAJF%kJOrL;>Y|45ER4+>=cRrBJL$ltxOu^#2dz>x)k%L*FSlyjzvBATn8qBx_{^ZV z$o^S~)a~JkVzo-)@!8A%x0*8|!|Y@6#sK{7oF`8Hu>|g@j4G(!vNUIx7AabS9tuhL zs6K4a{JrcF_Y)6i->k&9(V$sC9SRJV^i+(|1)q7Xf1+w9glOaN9|R7xBaC9-RWE+O z)cHN`bUH8@w64$EEw7iA%a@GOQT=AY9HiFA4T)QES2kd8vYX9ZC)A>#Deb*a2m zG-sJ7ZQ~@c0JU8yRst!`S$|wXF~(mjthvj=xUi2B|PdzNptQU^b9d3iHRSvsa%Z)v68ry=cTaJIukFY3j4ntr*Xz zXEltY;4mhXYlQf z2<4)x5kavRCe%fzK;~GF^4Pa8UcmiT*^Hm0b=Y}_2AF)snhJ2s2Ehj0W`Q6$G@wao zv!T2P&^>yI0UHunObRo0ZFk!j|_K}ufy@r9x{E%Z@iz{HdGJ$LAAtT9K3iRes!`$-nwRPH8A zB=jpp5HUyf^mRW$;9n)`egV?%!G7YraGSYI++gZ~hJ8g#QmpzOn|L&|V2PJ)5DbrH z`D!WTglS;w0$(OY`;)n}HTf}Cf0wLEBUKxRRP7Z2f7E~_=KN?sLpc~ou${ensSP3s z{={ajbMnnYyLev-y{KBpJ1Jw$BHPQ!i46+O_Msi=m$`#0v}IeI0^xh@@1A3(UY(H%b^#@vos^NW z!GjSdf`$;z;#y_eNKDCAb^3&_FD_VxqtB~(n*o7Y)1*(uOBGhLuP7gHrc%;!4x$^U zmw8yFc^}T%7453&h!{sV8|}M0r)u>VcnhkNTp|t|qTfz@^T{hKQ#p9<<+yTLnM#F{ zx5Lc54u0g-m-$`&m$x#r3w~?9rUY;5-U@){Kd#{1btZu3P{yy-a1Grjy;9<6F6id9 zpM;TeKY9y>bXb6ket%opBc3;70Ls=k70X|#G7pA(?&G~q zp@5{kZ!!o*&9|t`f7d^{o@qmSHs|B5)e|;V`NuudN$cRB$;eLtD>jIq_0Qtr)@+)x zE-p}IGe`SW$0kwllP$k_#q@)DBa=Y?(zr+=RA%7&pC9Jf__sGSknQGYu%RZ{OeE&k zM8luF(?Wt2op7GF8!Ge0Ves)vDLx%h5{5E}2Q2@3Tv4o!h|{3k@S75WmC<2?PfcZc zS=q6bHU0B96WcQz6MO~p(>^}Nr^BY1(*lFH3Kk9Jw>H=ZFSgH?1!Z24Mc&#?jCxDx zx6Xk@@@P&AX7Urqbq+z-ePJmulZ7q-t zK^J6Yh`X=nlg{)bOM`BD7baB47$M!k6?YL;k``HTUUKf&#Ym6~6=tfaw&->abI{h0 zH0zG+8}stEqO2%|SllD&Oy$sTa8qVol69E?yOl$pG|jX&)SLtuBuE)J0W|dv1-#yr z9+(b8lgQ)m9_?yvSi47tP!le-+Jq|=(=xC%r^;y?jXq|WHqhX+Z`G?IvjMBmQyF4k z$14j>vj*d0A;~+%@P>NqgnG?W$Jmp^cL4|o0jH1wi0zWwB_UO_`))uzwVi9yY>)* zB3;_S@61^FySoRCx={@{e+V)U}_%g#?aoidMe^W z1AEx}y8M~Wef`pqBhr7u>*h=soy+iWafV?Vvzzcn%cegVFl|PISt~yL+?1MnyvyhY zecMRBGilRIDOWHDZD|w{?%CCr6!$nbpOpw$U-ECfeMvdKYipwnhqXCPE*3ghEA>aH ztIUHzp47)IZ=5PWJIc>1$N4XG+BHGue7)6R!RVFpiF|g1d}rUI2)49&i7A3pxw)tR zibM-tl+L%jH+(!lw}0E(lOi6ZJKD3Uc4TNGCEgIrw6I80?$s)h?xO793&`I|Bs1a* z@13$C+CSLP81g26SO5gWU5AE^TvmO4WXTB#J!yinu<|E!)(9?45n9rw#1^12FN0|kfVtMKJ$Ygd@zhY=#6qR++AuMUIV+U3 z0bLJpU&8c@!A24uP9C-4jVog>id~E=tB)2QbcT84mHwyH+Uhut`)K!=l(Nw(a{qt} zRtyiBxz(|X7HIBE>5DcwqFIa}mS~s=qg|K}jb$%h8TeP>uL@0XNCBEcp67m-ZVPe* z=Qzh(z$jju{HJa{yd4O(4iLKliNXagx2V0Hr{hfH}?X>NPeSE~--7IWBWx=cdD6bTTUt6C`v zDsMHyXQP=eGBDbbJRi5-7xu`h<-JS+xZk^AI$15=F}T@-gzB`rDN--K@;0JAU?#E2=q!H zQYIl)M70v@)<9}1tMp=)X;oFdCP3TVDW7*rq?<0iL#0ySZRGGXmyUvW{qRg%j$BWM zk21ahK;#S91$k$Fr(#4k`H@%Kq29qh< A=Zf%e^EBnp%DeWAOJ|=5yESv2AuU-* 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 XIjSACvd;_u?vayHmaG#068QfB>1-1Y diff --git a/docs/federated/docs/source_en/images/mindspore_federated_networking.png b/docs/federated/docs/source_en/images/mindspore_federated_networking.png deleted file mode 100644 index 4340cb66b638e072ffdb11167743cc45c36a9536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26359 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 diff --git a/docs/federated/docs/source_en/images/splitnn_pangu_alpha_en.png b/docs/federated/docs/source_en/images/splitnn_pangu_alpha_en.png deleted file mode 100644 index 6a423ab3dbe0d43e858d48bd3f6de7ad92c3f040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74481 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

    nx>G~n7X(|O-vR9t&9LF8Li}4Htj2Ac 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 z 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 M07*qoM6N<$g73NE0{{R3 diff --git a/docs/federated/docs/source_en/images/vfl_forward_en.png b/docs/federated/docs/source_en/images/vfl_forward_en.png deleted file mode 100644 index 37e6fbec1ff5b7f0c85bdc4fb86e0a7957b6ca54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4800 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 diff --git a/docs/federated/docs/source_en/images/vfl_normal_communication_compress_en.png b/docs/federated/docs/source_en/images/vfl_normal_communication_compress_en.png deleted file mode 100644 index 38bd38616ff55da6ae4439fd8f0ca1951990eb78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19824 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 diff --git a/docs/federated/docs/source_en/images/vfl_pangu_communication_compress_en.png b/docs/federated/docs/source_en/images/vfl_pangu_communication_compress_en.png deleted file mode 100644 index a9c10552966f3f8d1247665347bbc11f72287588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30395 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 diff --git a/docs/federated/docs/source_en/images/vfl_with_tee_en.png b/docs/federated/docs/source_en/images/vfl_with_tee_en.png deleted file mode 100644 index 78732f01117e0e5e6e1f358e94563ae3f2ce44b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28548 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 - -Advantages of the MindSpore Federated Horizontal Framework ------------------------------------------------------------ - -Horizontal Federated Architecture: - -.. raw:: html - - - -1. Privacy Protection - - It supports accuracy-lossless security aggregation solution based on secure multi-party computation (MPC) to prevent model theft. - - It supports performance-lossless encryption based on local differential privacy to prevent private data leakage from models. - - It supports a gradient protection scheme based on Symbolic Dimensional Selection (SignDS), which prevents model privacy data leakage while reducing communication overhead by 99%. - -2. Distributed Federated Aggregation - - The loosely coupled cluster processing mode on the cloud and distributed gradient quadratic aggregation paradigms support the deployment of tens of millions of heterogeneous devices, implements high-performance and high-availability federated aggregation computing, and can cope with network instability and sudden load changes. - -3. Federated Learning Efficiency Improvement - - The adaptive frequency modulation strategy and gradient compression algorithm are supported to improve the federated learning efficiency and saving bandwidth resources. - - Multiple federated aggregation policies are supported to improve the smoothness of federated learning convergence and optimize both global and local accuracies. - -4. Easy to Use - - Only one line of code is required to switch between the standalone training and federated learning modes. - - The network models, aggregation algorithms, and security algorithms are programmable, and the security level can be customized. - - It supports the effectiveness evaluation of federated training models and provides monitoring capabilities for federated tasks. - -Advantages of the MindSpore Federated Vertical Framework ------------------------------------------------------------ - -Vertical Federated Architecture: - -.. raw:: html - - - -1. Privacy Protection - - Support high-performance Privacy Set Intersection Protocol (PSI), which prevents federated participants from obtaining ID information outside the intersection and can cope with data imbalance scenarios. - - Support feature protection software solution that combines quantization and differential privacy, to prevent attackers from reconstructing original privacy data from intermediate features. - - Support feature protection hardware solution which is based on trusted execution environment, to provide high-strength and efficient feature protection capabilities. - - Support label protection solution which is based on differential privacy, to prevent the leakage of user label data. - -2. Federated training - - Support multiple types of split learning network structures. - - Cross-domain training for large models with pipelined parallel optimization. - -MindSpore Federated Working Process ------------------------------------- - -1. `Scenario Identification and Data Accumulation `_ - - Identify scenarios where federated learning is used and accumulate local data for federated tasks on the client. - -2. `Model Selection and Framework Deployment `_ - - Select or develop a model prototype and use a tool to generate a federated learning model that is easy to deploy. - -3. `Application Deployment `_ - - Deploy the corresponding components to the business application and set up federated configuration tasks and deployment scripts on the server. - -Common Application Scenarios ----------------------------- - -1. `Image Classification `_ - - Use the federated learning to implement image classification applications. - -2. `Text Classification `_ - - Use the federated learning to implement text classification applications. - -.. toctree:: - :maxdepth: 1 - :caption: Deployment - - federated_install - deploy_federated_server - deploy_federated_client - deploy_vfl - -.. toctree:: - :maxdepth: 1 - :caption: Horizontal Application - - image_classfication_dataset_process - image_classification_application - sentiment_classification_application - image_classification_application_in_cross_silo - object_detection_application_in_cross_silo - -.. toctree:: - :maxdepth: 1 - :caption: Vertical Application - - data_join - split_wnd_application - split_pangu_alpha_application - -.. toctree:: - :maxdepth: 1 - :caption: Security and Privacy - - local_differential_privacy_training_noise - local_differential_privacy_training_signds - local_differential_privacy_eval_laplace - pairwise_encryption_training - private_set_intersection - secure_vertical_federated_learning_with_EmbeddingDP - secure_vertical_federated_learning_with_TEE - secure_vertical_federated_learning_with_DP - -.. toctree:: - :maxdepth: 1 - :caption: Communication Compression - - communication_compression - vfl_communication_compress - -.. toctree:: - :maxdepth: 1 - :caption: Horizontal Federated API Reference - - horizontal_server - cross_device - horizontal/cross_silo - -.. toctree:: - :maxdepth: 1 - :caption: Vertical Federated API Reference - - Data_Join - vertical/vertical_communicator - vertical_federated_trainer - -.. toctree:: - :maxdepth: 1 - :caption: References - - faq - -.. toctree:: - :glob: - :maxdepth: 1 - :caption: RELEASE NOTES - - RELEASE diff --git a/docs/federated/docs/source_en/interface_description_federated_client.md b/docs/federated/docs/source_en/interface_description_federated_client.md deleted file mode 100644 index abc50a417e..0000000000 --- a/docs/federated/docs/source_en/interface_description_federated_client.md +++ /dev/null @@ -1,350 +0,0 @@ -# Examples - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/interface_description_federated_client.md) - -Note that before using the following interfaces, you can first refer to the document [on-device deployment](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html) to deploy related environments. - -## flJobRun() for Starting Federated Learning - -Before calling the flJobRun() API, instantiate the parameter class FLParameter and set related parameters as follows: - -| Parameter | Type | Mandatory | Description | Remarks | -| -------------------- | ---------------------------- | --------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| dataMap | Map/> | Y | The path of Federated learning dataset. | The dataset of Map/> type, the key in the map is the RunType enumeration type, the value is the corresponding dataset list, when the key is RunType.TRAINMODE, the corresponding value is the training-related dataset list, when the key is RunType.EVALMODE, it means that the corresponding value is a list of verification-related datasets, and when the key is RunType.INFERMODE, it means that the corresponding value is a list of inference-related datasets. | -| flName | String | Y | The package path of model script used by federated learning. | We provide two types of model scripts for your reference ([Supervised sentiment classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert)), ([LeNet image classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet)). For supervised sentiment classification tasks, this parameter can be set to the package path of the provided script file [AlBertClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert/AlbertClient.java), like as `com.mindspore.flclient.demo.albert.AlbertClient`; for LeNet image classification tasks, this parameter can be set to the package path of the provided script file [LenetClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet/LenetClient.java), like as `com.mindspore.flclient.demo.lenet.LenetClient`. At the same time, users can refer to these two types of model scripts, define the model script by themselves, and then set the parameter to the package path of the customized model file ModelClient.java (which needs to inherit from the class [Client.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/model/Client.java)). | -| trainModelPath | String | Y | Path of a training model used for federated learning, which is an absolute path of the .ms file. | It is recommended to set the path to the training App's own directory to protect the data access security of the model itself. | -| inferModelPath | String | Y | Path of an inference model used for federated learning, which is an absolute path of the .ms file. | For the normal federated learning mode (training and inference use the same model), the value of this parameter needs to be the same as that of `trainModelPath`; for the hybrid learning mode (training and inference use different models, and the server side also includes training process), this parameter is set to the path of actual inference model. It is recommended to set the path to the training App's own directory to protect the data access security of the model itself. | -| sslProtocol | String | N | The TLS protocol version used by the device-cloud HTTPS communication. | A whitelist is set, and currently only "TLSv1.3" or "TLSv1.2" is supported. Only need to set it up in the HTTPS communication scenario. | -| deployEnv | String | Y | The deployment environment for federated learning. | A whitelist is set, currently only "x86", "android" are supported. | -| certPath | String | N | The self-signed root certificate path used for device-cloud HTTPS communication. | When the deployment environment is "x86" and the device-cloud uses a self-signed certificate for HTTPS communication authentication, this parameter needs to be set. The certificate must be consistent with the CA root certificate used to generate the cloud-side self-signed certificate to pass the verification. This parameter is used for non-Android scenarios. | -| domainName | String | Y | The url for device-cloud communication. | Currently, https and http communication are supported, the corresponding formats are like: https://......, http://......, and when `useElb` is set to true, the format must be: https://127.0.0.0 : 6666 or http://127.0.0.0 : 6666 , where `127.0.0.0` corresponds to the ip of the machine providing cloud-side services (corresponding to the cloud-side parameter `--scheduler_ip`), and `6666` corresponds to the cloud-side parameter `--fl_server_port`. | -| ifUseElb | boolean | N | Used for multi-server scenarios to set whether to randomly send client requests to different servers within a certain range. | Setting to true means that the client will randomly send requests to a certain range of server addresses, and false means that the client's requests will be sent to a fixed server address. This parameter is used in non-Android scenarios, and the default value is false. | -| serverNum | int | N | The number of servers that the client can choose to connect to. | When `ifUseElb` is set to true, it can be set to be consistent with the `server_num` parameter when the server is started on the cloud side. It is used to randomly select different servers to send information. This parameter is used in non-Android scenarios. The default value is 1. | -| ifPkiVerify | boolean | N | The switch of device-cloud identity authentication. | Set to true to enable device-cloud security authentication, set to false to disable, and the default value is false. Identity authentication requires HUKS to provide a certificate. This parameter is only used in the Android environment (currently only supports HUAWEI phones). | -| threadNum | int | N | The number of threads used in federated learning training and inference. | The default value is 1. | -| cpuBindMode | BindMode | N | The cpu core that threads need to bind during federated learning training and inference. | It is the enumeration type `BindMode`, where BindMode.NOT_BINDING_CORE represents the unbound core, which is automatically assigned by the system, BindMode.BIND_LARGE_CORE represents the bound large core, and BindMode.BIND_MIDDLE_CORE represents the bound middle core. The default value is BindMode.NOT_BINDING_CORE. | -| batchSize | int | Y | The number of single-step training samples used in federated learning training and inference, that is, batch size. | It needs to be consistent with the batch size of the input data of the model. | -| iflJobResultCallback | IFLJobResultCallback | N | The federated learning callback function object `iflJobResultCallback`. | The user can implement the specific method of the interface class [IFLJobResultCallback.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/IFLJobResultCallback.java) in the project according to the needs of the actual scene, and set it as a callback function object in the federated learning task. We provide a simple implementation use case [FLJobResultCallback.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/IFLJobResultCallback.java) as the default value of this parameter. | - -Note 1: When using HTTP communication, there may exist communication security risks, please be aware. - -Note 2: In the Android environment, the following parameters need to be set when using HTTPS communication. The setting examples are as follows: - -```java -FLParameter flParameter = FLParameter.getInstance(); -SecureSSLSocketFactory sslSocketFactory = SecureSSLSocketFactory.getInstance(applicationContext) -SecureX509TrustManager x509TrustManager = new SecureX509TrustManager(applicationContext); -flParameter.setSslSocketFactory(sslSocketFactory); -flParameter.setX509TrustManager(x509TrustManager); -``` - -Among them, the two objects `SecureSSLSocketFactory` and `SecureX509TrustManager` need to be implemented in the Android project, and users need to design by themselves according to the type of certificate in the mobile phone. - -Note 3: In the x86 environment, currently only self-signed certificate authentication is supported when using HTTPS communication, and the following parameters need to be set. The setting examples are as follows: - -```java -FLParameter flParameter = FLParameter.getInstance(); -String certPath = "CARoot.pem"; // the self-signed root certificate path used for device-cloud HTTPS communication. -flParameter.setCertPath(certPath); -``` - -Note 4: In the Android environment, when `pkiVerify` is set to true and encrypt_train_type is set to PW_ENCRYPT on the cloud side, the following parameters need to be set. The setting examples are as follows: - -```java -FLParameter flParameter = FLParameter.getInstance(); -String equipCrlPath = certPath; -long validIterInterval = 3600000; -flParameter.setEquipCrlPath(equipCrlPath); -flParameter.setValidInterval(validIterInterval); -``` - -Among them, `equipCrlPath` is the CRL certificate required for certificate verification among devices, that is, the certificate revocation list. Generally, the device certificate CRL in "Huawei CBG Certificate Revocation Lists" can be preset; `validIterInterval` which is used to help prevent replay attacks in PW_ENCRYPT mode can generally be set to the time required for each round of device-cloud aggregation (unit: milliseconds, the default value is 3600000). - -Note 5: Before each federated learning task is started, the FLParameter class will be instantiated for related parameter settings. When FLParameter is instantiated, a clientID is automatically generated randomly, which is used to uniquely identify the client during the interaction with the cloud side. If the user needs to set the clientID by himself, after instantiating the FLParameter class, call its setClientID method to set it, and then after starting the federated learning task, the clientID set by the user will be used. - -Create a SyncFLJob object and use the flJobRun() method of the SyncFLJob class to start a federated learning task. - -The sample code (basic http communication) is as follows: - -1. Sample code of a supervised sentiment classification task - - ```java - // create dataMap - String trainTxtPath = "data/albert/supervise/client/1.txt"; - String evalTxtPath = "data/albert/supervise/eval/eval.txt"; // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - String vocabFile = "data/albert/supervise/vocab.txt"; // Path of the dictionary file for data preprocessing. - String idsFile = "data/albert/supervise/vocab_map_ids.txt" // Path of the mapping ID file of a dictionary. - Map> dataMap = new HashMap<>(); - List trainPath = new ArrayList<>(); - trainPath.add(trainTxtPath); - trainPath.add(vocabFile); - trainPath.add(idsFile); - List evalPath = new ArrayList<>(); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(evalTxtPath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(vocabFile); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(idsFile); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - dataMap.put(RunType.TRAINMODE, trainPath); - dataMap.put(RunType.EVALMODE, evalPath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - - String flName = "com.mindspore.flclient.demo.albert.AlbertClient"; // The package path of AlBertClient.java - String trainModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path - String inferModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - String sslProtocol = "TLSv1.2"; - String deployEnv = "android"; - String domainName = "http://10.*.*.*:6668"; - boolean ifUseElb = true; - int serverNum = 4; - int threadNum = 4; - BindMode cpuBindMode = BindMode.NOT_BINDING_CORE; - int batchSize = 32; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setDataMap(dataMap); - flParameter.setTrainModelPath(trainModelPath); - flParameter.setInferModelPath(inferModelPath); - flParameter.setSslProtocol(sslProtocol); - flParameter.setDeployEnv(deployEnv); - flParameter.setDomainName(domainName); - flParameter.setUseElb(useElb); - flParameter.setServerNum(serverNum); - flParameter.setThreadNum(threadNum); - flParameter.setCpuBindMode(BindMode.valueOf(cpuBindMode)); - - // start FLJob - SyncFLJob syncFLJob = new SyncFLJob(); - syncFLJob.flJobRun(); - ``` - -2. Sample code of a LeNet image classification task - - ```java - // create dataMap - String trainImagePath = "SyncFLClient/data/3500_clients_bin/f0178_39/f0178_39_bn_9_train_data.bin"; - String trainLabelPath = "SyncFLClient/data/3500_clients_bin/f0178_39/f0178_39_bn_9_train_label.bin"; - String evalImagePath = "SyncFLClient/data/3500_clients_bin/f0178_39/f0178_39_bn_1_test_data.bin"; // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - String evalLabelPath = "SyncFLClient/data/3500_clients_bin/f0178_39/f0178_39_bn_1_test_label.bin"; // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - Map> dataMap = new HashMap<>(); - List trainPath = new ArrayList<>(); - trainPath.add(trainImagePath); - trainPath.add(trainLabelPath); - List evalPath = new ArrayList<>(); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(evalImagePath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(evalLabelPath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - dataMap.put(RunType.TRAINMODE, trainPath); - dataMap.put(RunType.EVALMODE, evalPath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - - String flName = "com.mindspore.flclient.demo.lenet.LenetClient"; // The package path of LenetClient.java - String trainModelPath = "SyncFLClient/lenet_train.mindir0.ms"; // Absolute path - String inferModelPath = "SyncFLClient/lenet_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - String sslProtocol = "TLSv1.2"; - String deployEnv = "android"; - String domainName = "http://10.*.*.*:6668"; - boolean ifUseElb = true; - int serverNum = 4; - int threadNum = 4; - BindMode cpuBindMode = BindMode.NOT_BINDING_CORE; - int batchSize = 32; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setDataMap(dataMap); - flParameter.setTrainModelPath(trainModelPath); - flParameter.setInferModelPath(inferModelPath); - flParameter.setSslProtocol(sslProtocol); - flParameter.setDeployEnv(deployEnv); - flParameter.setDomainName(domainName); - flParameter.setUseElb(useElb); - flParameter.setServerNum(serverNum); - flParameter.setThreadNum(threadNum); - flParameter.setCpuBindMode(BindMode.valueOf(cpuBindMode)); - flParameter.setBatchSize(batchSize); - - // start FLJob - SyncFLJob syncFLJob = new SyncFLJob(); - syncFLJob.flJobRun(); - ``` - -## modelInference() for Inferring Multiple Input Data Records - -Before calling the modelInference() API, instantiate the parameter class FLParameter and set related parameters as follows: - -| Parameter | Type | Mandatory | Description | Remarks | -| -------------- | ---------------------------- | --------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| flName | String | Y | The package path of model script used by federated learning. | We provide two types of model scripts for your reference ([Supervised sentiment classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert), [LeNet image classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet)). For supervised sentiment classification tasks, this parameter can be set to the package path of the provided script file [AlBertClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert/AlbertClient.java), like as `com.mindspore.flclient.demo.albert.AlbertClient`; for LeNet image classification tasks, this parameter can be set to the package path of the provided script file [LenetClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet/LenetClient.java), like as `com.mindspore.flclient.demo.lenet.LenetClient`. At the same time, users can refer to these two types of model scripts, define the model script by themselves, and then set the parameter to the package path of the customized model file ModelClient.java (which needs to inherit from the class [Client.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/model/Client.java)). | -| dataMap | Map/> | Y | The path of Federated learning dataset. | The dataset of Map/> type, the key in the map is the RunType enumeration type, the value is the corresponding dataset list, when the key is RunType.TRAINMODE, the corresponding value is the training-related dataset list, when the key is RunType.EVALMODE, it means that the corresponding value is a list of verification-related datasets, and when the key is RunType.INFERMODE, it means that the corresponding value is a list of inference-related datasets. | -| inferModelPath | String | Y | Path of an inference model used for federated learning, which is an absolute path of the .ms file. | For the normal federated learning mode (training and inference use the same model), the value of this parameter needs to be the same as that of `trainModelPath`; for the hybrid learning mode (training and inference use different models, and the server side also includes training process), this parameter is set to the path of actual inference model. It is recommended to set the path to the training App's own directory to protect the data access security of the model itself. | -| threadNum | int | N | The number of threads used in federated learning training and inference. | The default value is 1. | -| cpuBindMode | BindMode | N | The cpu core that threads need to bind during federated learning training and inference. | It is the enumeration type `BindMode`, where BindMode.NOT_BINDING_CORE represents the unbound core, which is automatically assigned by the system, BindMode.BIND_LARGE_CORE represents the bound large core, and BindMode.BIND_MIDDLE_CORE represents the bound middle core. The default value is BindMode.NOT_BINDING_CORE. | -| batchSize | int | Y | The number of single-step training samples used in federated learning training and inference, that is, batch size. | It needs to be consistent with the batch size of the input data of the model. | - -Create a SyncFLJob object and use the modelInference() method of the SyncFLJob class to start an inference task on the device. The inferred label array is returned. - -The sample code is as follows: - -1. Sample code of a supervised sentiment classification task - - ```java - // create dataMap - String inferTxtPath = "data/albert/supervise/eval/eval.txt"; - String vocabFile = "data/albert/supervise/vocab.txt"; - String idsFile = "data/albert/supervise/vocab_map_ids.txt" - Map> dataMap = new HashMap<>(); - List inferPath = new ArrayList<>(); - inferPath.add(inferTxtPath); - inferPath.add(vocabFile); - inferPath.add(idsFile); - dataMap.put(RunType.INFERMODE, inferPath); - - String flName = "com.mindspore.flclient.demo.albert.AlbertClient"; // The package path of AlBertClient.java - String inferModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - int threadNum = 4; - BindMode cpuBindMode = BindMode.NOT_BINDING_CORE; - int batchSize = 32; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setDataMap(dataMap); - flParameter.setInferModelPath(inferModelPath); - flParameter.setThreadNum(threadNum); - flParameter.setCpuBindMode(BindMode.valueOf(cpuBindMode)); - flParameter.setBatchSize(batchSize); - - // inference - SyncFLJob syncFLJob = new SyncFLJob(); - int[] labels = syncFLJob.modelInference(); - ``` - -2. Sample code of a LeNet image classification - - ```java - // create dataMap - String inferImagePath = "SyncFLClient/data/3500_clients_bin/f0178_39/f0178_39_bn_1_test_data.bin"; - String inferLabelPath = "SyncFLClient/data/3500_clients_bin/f0178_39/f0178_39_bn_1_test_label.bin"; - Map> dataMap = new HashMap<>(); - List inferPath = new ArrayList<>(); - inferPath.add(inferImagePath); - inferPath.add(inferLabelPath); - dataMap.put(RunType.INFERMODE, inferPath); - - String flName = "com.mindspore.flclient.demo.lenet.LenetClient"; // The package path of LenetClient.java package - String inferModelPath = "SyncFLClient/lenet_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - int threadNum = 4; - BindMode cpuBindMode = BindMode.NOT_BINDING_CORE; - int batchSize = 32; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setDataMap(dataMap); - flParameter.setInferModelPath(inferModelPath); - flParameter.setThreadNum(threadNum); - flParameter.setCpuBindMode(BindMode.valueOf(cpuBindMode)); - flParameter.setBatchSize(batchSize); - - // inference - SyncFLJob syncFLJob = new SyncFLJob(); - int[] labels = syncFLJob.modelInference(); - ``` - -## getModel() for Obtaining the Latest Model on the Cloud - -Before calling the getModel() API, instantiate the parameter class FLParameter and set related parameters as follows: - -| Parameter | Type | Mandatory | Description | Remarks | -| -------------- | --------- | --------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| flName | String | Y | The package path of model script used by federated learning. | We provide two types of model scripts for your reference ([Supervised sentiment classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert), [LeNet image classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet)). For supervised sentiment classification tasks, this parameter can be set to the package path of the provided script file [AlBertClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert/AlbertClient.java), like as `com.mindspore.flclient.demo.albert.AlbertClient`; for LeNet image classification tasks, this parameter can be set to the package path of the provided script file [LenetClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet/LenetClient.java), like as `com.mindspore.flclient.demo.lenet.LenetClient`. At the same time, users can refer to these two types of model scripts, define the model script by themselves, and then set the parameter to the package path of the customized model file ModelClient.java (which needs to inherit from the class [Client.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/model/Client.java)). | -| trainModelPath | String | Y | Path of a training model used for federated learning, which is an absolute path of the .ms file. | It is recommended to set the path to the training App's own directory to protect the data access security of the model itself. | -| inferModelPath | String | Y | Path of an inference model used for federated learning, which is an absolute path of the .ms file. | For the normal federated learning mode (training and inference use the same model), the value of this parameter needs to be the same as that of `trainModelPath`; for the hybrid learning mode (training and inference use different models, and the server side also includes training process), this parameter is set to the path of actual inference model. It is recommended to set the path to the training App's own directory to protect the data access security of the model itself. | -| sslProtocol | String | N | The TLS protocol version used by the device-cloud HTTPS communication. | A whitelist is set, and currently only "TLSv1.3" or "TLSv1.2" is supported. Only need to set it up in the HTTPS communication scenario. | -| deployEnv | String | Y | The deployment environment for federated learning. | A whitelist is set, currently only "x86", "android" are supported. | -| certPath | String | N | The self-signed root certificate path used for device-cloud HTTPS communication. | When the deployment environment is "x86" and the device-cloud uses a self-signed certificate for HTTPS communication authentication, this parameter needs to be set. The certificate must be consistent with the CA root certificate used to generate the cloud-side self-signed certificate to pass the verification. This parameter is used for non-Android scenarios. | -| domainName | String | Y | The url for device-cloud communication. | Currently, https and http communication are supported, the corresponding formats are like: https://......, http://......, and when `useElb` is set to true, the format must be: https://127.0.0.0 : 6666 or http://127.0.0.0 : 6666 , where `127.0.0.0` corresponds to the ip of the machine providing cloud-side services (corresponding to the cloud-side parameter `--scheduler_ip`), and `6666` corresponds to the cloud-side parameter `--fl_server_port`. | -| ifUseElb | boolean | N | Used for multi-server scenarios to set whether to randomly send client requests to different servers within a certain range. | Setting to true means that the client will randomly send requests to a certain range of server addresses, and false means that the client's requests will be sent to a fixed server address. This parameter is used in non-Android scenarios, and the default value is false. | -| serverNum | int | N | The number of servers that the client can choose to connect to. | When `ifUseElb` is set to true, it can be set to be consistent with the `server_num` parameter when the server is started on the cloud side. It is used to randomly select different servers to send information. This parameter is used in non-Android scenarios. The default value is 1. | -| serverMod | ServerMod | Y | The federated learning training mode. | The federated learning training mode of ServerMod enumeration type, where ServerMod.FEDERATED_LEARNING represents the normal federated learning mode (training and inference use the same model) ServerMod.HYBRID_TRAINING represents the hybrid learning mode (training and inference use different models, and the server side also includes training process). | - -Note 1: When using HTTP communication, there may exist communication security risks, please be aware. - -Note 2: In the Android environment, the following parameters need to be set when using HTTPS communication. The setting examples are as follows: - -```java -FLParameter flParameter = FLParameter.getInstance(); -SecureSSLSocketFactory sslSocketFactory = SecureSSLSocketFactory.getInstance(applicationContext) -SecureX509TrustManager x509TrustManager = new SecureX509TrustManager(applicationContext); -flParameter.setSslSocketFactory(sslSocketFactory); -flParameter.setX509TrustManager(x509TrustManager); -``` - -Among them, the two objects `SecureSSLSocketFactory` and `SecureX509TrustManager` need to be implemented in the Android project, and users need to design themselves according to the type of certificate in the mobile phone. - -Note 3: In the x86 environment, currently only self-signed certificate authentication is supported when using HTTPS communication, and the following parameters need to be set. The setting examples are as follows: - -```java -FLParameter flParameter = FLParameter.getInstance(); -String certPath = "CARoot.pem"; // the self-signed root certificate path used for device-cloud HTTPS communication. -flParameter.setCertPath(certPath); -``` - -Note 4: Before calling the getModel method, the FLParameter class will be instantiated for related parameter settings. When FLParameter is instantiated, a clientID is automatically generated randomly, which is used to uniquely identify the client during the interaction with the cloud side. If the user needs to set the clientID by himself, after instantiating the FLParameter class, call its setCertPath method to set it, and then after starting the getModel task, the clientID set by the user will be used. - -Create a SyncFLJob object and use the getModel() method of the SyncFLJob class to start an asynchronous inference task. The status code of the getModel request is returned. - -The sample code is as follows: - -1. Supervised sentiment classification task - - ```java - String flName = "com.mindspore.flclient.demo.albert.AlbertClient"; // The package path of AlBertClient.java package - String trainModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path - String inferModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - String sslProtocol = "TLSv1.2"; - String deployEnv = "android"; - String domainName = "http://10.*.*.*:6668"; - boolean ifUseElb = true; - int serverNum = 4; - ServerMod serverMod = ServerMod.FEDERATED_LEARNING; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setTrainModelPath(trainModelPath); - flParameter.setInferModelPath(inferModelPath); - flParameter.setSslProtocol(sslProtocol); - flParameter.setDeployEnv(deployEnv); - flParameter.setDomainName(domainName); - flParameter.setUseElb(useElb); - flParameter.setServerNum(serverNum); - flParameter.setServerMod(ServerMod.valueOf(serverMod)); - - // getModel - SyncFLJob syncFLJob = new SyncFLJob(); - syncFLJob.getModel(); - ``` - -2. LeNet image classification task - - ```java - String flName = "com.mindspore.flclient.demo.lenet.LenetClient"; // The package path of LenetClient.java package - String trainModelPath = "SyncFLClient/lenet_train.mindir0.ms"; // Absolute path - String inferModelPath = "SyncFLClient/lenet_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - String sslProtocol = "TLSv1.2"; - String deployEnv = "android"; - String domainName = "http://10.*.*.*:6668"; - boolean ifUseElb = true; - int serverNum = 4 - ServerMod serverMod = ServerMod.FEDERATED_LEARNING; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setTrainModelPath(trainModelPath); - flParameter.setInferModelPath(inferModelPath); - flParameter.setSslProtocol(sslProtocol); - flParameter.setDeployEnv(deployEnv); - flParameter.setDomainName(domainName); - flParameter.setUseElb(useElb); - flParameter.setServerNum(serverNum); - flParameter.setServerMod(ServerMod.valueOf(serverMod)); - - // getModel - SyncFLJob syncFLJob = new SyncFLJob(); - syncFLJob.getModel(); - ``` diff --git a/docs/federated/docs/source_en/java_api_callback.md b/docs/federated/docs/source_en/java_api_callback.md deleted file mode 100644 index b1fc6d1a83..0000000000 --- a/docs/federated/docs/source_en/java_api_callback.md +++ /dev/null @@ -1,66 +0,0 @@ -# Callback - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/java_api_callback.md) - -```java -import com.mindspore.flclient.model.Callback -``` - -Callback defines the hook function used to record training, evaluate and predict the results of different stages in end-to-side federated learning. - -## Public Member Functions - -| function | -| -------------------------------- | -| [abstract Status stepBegin()](#stepbegin) | -| [abstract Status stepEnd()](#stepend) | -| [abstract Status epochBegin()](#epochbegin) | -| [abstract Status epochEnd()](#epochend) | - -## stepBegin - -```java - public abstract Status stepBegin() -``` - -Execute step begin function. - -- Returns - - Whether the execution is successful. - -## stepEnd - -```java -public abstract Status stepEnd() -``` - -Execute step end function. - -- Returns - - Whether the execution is successful. - -## epochBegin - -```java -public abstract Status epochBegin() -``` - -Execute epoch begin function. - -- Returns - - Whether the execution is successful. - -## epochEnd - -```java -public abstract Status epochEnd() -``` - -Execute epoch end function. - -- Returns - - Whether the execution is successful. diff --git a/docs/federated/docs/source_en/java_api_client.md b/docs/federated/docs/source_en/java_api_client.md deleted file mode 100644 index 92816018ea..0000000000 --- a/docs/federated/docs/source_en/java_api_client.md +++ /dev/null @@ -1,173 +0,0 @@ -# Client - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/java_api_client.md) - -```java -import com.mindspore.flclient.model.Client -``` - -Client defines the execution process object of the end-side federated learning algorithm. - -## Public Member Functions - -| function | -| -------------------------------- | -| [abstract List initCallbacks(RunType runType, DataSet dataSet)](#initcallbacks) | -| [abstract Map initDataSets(Map\> files)](#initdatasets) | -| [abstract float getEvalAccuracy(List evalCallbacks)](#getevalaccuracy) | -| [abstract List getInferResult(List inferCallbacks)](#getinferresult) | -| [Status trainModel(int epochs)](#trainmodel) | -| [float evalModel()](#evalmodel) | -| [Map genUnsupervisedEvalData(List evalCallbacks)](#genunsupervisedevaldata) | -| [List inferModel()](#infermodel) | -| [Status setLearningRate(float lr)](#setlearningrate) | -| [void setBatchSize(int batchSize)](#setbatchsize) | - -## initCallbacks - -```java -public abstract List initCallbacks(RunType runType, DataSet dataSet) -``` - -Initialize the callback list. - -- Parameters - - - `runType`: RunType class, identify whether the training, evaluation or prediction phase. - - `dataSet`: DataSet class, identify whether the training, evaluation or prediction phase datasets. - -- Returns - - The initialized callback list. - -## initDataSets - -```java -public abstract Map initDataSets(Map> files) -``` - -Initialize dataset list. - -- Parameters - - - `files`: Data files used in the training, evaluation or prediction phase. - -- Returns - - Data counts in different run type. - -## getEvalAccuracy - -```java -public abstract float getEvalAccuracy(List evalCallbacks) -``` - -Get eval model accuracy. - -- Parameters - - - `evalCallbacks`: Callback used in eval phase. - -- Returns - - The accuracy in eval phase. - -## getInferResult - -```java -public abstract List getInferResult(List inferCallbacks) -``` - -Get infer phase result. - -- Parameters - - - `inferCallbacks`: Callback used in prediction phase. - -- Returns - - predict results. - -## trainModel - -```java -public Status trainModel(int epochs) -``` - -Execute train model process. - -- Parameters - - - `epochs`: Epoch num used in train process. - -- Returns - - Whether the train model is successful. - -## evalModel - -```java -public float evalModel() -``` - -Execute eval model process. - -- Returns - - The accuracy in eval process. - -## genUnsupervisedEvalData - -```java -public Map genUnsupervisedEvalData(List evalCallbacks) -``` - -Generate unsupervised training evaluation data, and the subclass needs to rewrite this function. - -- Parameters - - - `evalCallbacks`: the eval Callback that generates data. - -- Returns - - unsupervised training evaluation data - -## inferModel - -```java -public List inferModel() -``` - -Execute model prediction process. - -- Returns - - The prediction result. - -## setLearningRate - -```java -public Status setLearningRate(float lr) -``` - -Set learning rate. - -- Parameters - - - `lr`: Learning rate. - -- Returns - - Whether the set is successful. - -## setBatchSize - -```java -public void setBatchSize(int batchSize) -``` - -Set batch size. - -- Parameters - - - `batchSize`: batch size. diff --git a/docs/federated/docs/source_en/java_api_clientmanager.md b/docs/federated/docs/source_en/java_api_clientmanager.md deleted file mode 100644 index 03d7ae2f51..0000000000 --- a/docs/federated/docs/source_en/java_api_clientmanager.md +++ /dev/null @@ -1,44 +0,0 @@ -# ClientManager - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/java_api_clientmanager.md) - -```java -import com.mindspore.flclient.model.ClientManager -``` - -ClientManager defines end-side federated learning custom algorithm model management objects. - -## Public Member Functions - -| function | -| -------------------------------- | -| [static void registerClient(Client client)](#registerclient) | -| [static Client getClient(String name)](#getclient) | - -## registerClient - -```java -public static void registerClient(Client client) -``` - -Register client object. - -- Parameters - - - `client`: Need register client object. - -## getClient - -```java -public static Client getClient(String name) -``` - -Get client object. - -- Parameters - - - `name`: Client object name. - -- Returns - - Client object. diff --git a/docs/federated/docs/source_en/java_api_dataset.md b/docs/federated/docs/source_en/java_api_dataset.md deleted file mode 100644 index 990bcbfff1..0000000000 --- a/docs/federated/docs/source_en/java_api_dataset.md +++ /dev/null @@ -1,63 +0,0 @@ -# DataSet - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/java_api_dataset.md) - -```java -import com.mindspore.flclient.model.DataSet -``` - -DataSet defines end-side federated learning dataset object. - -## Public Member Functions - -| function | -| -------------------------------- | -| [abstract void fillInputBuffer(List var1, int var2)](#fillinputbuffer) | -| [abstract void shuffle()](#shuffle) | -| [abstract void padding()](#padding) | -| [abstract Status dataPreprocess(List var1)](#datapreprocess) | - -## fillInputBuffer - -```java -public abstract void fillInputBuffer(List var1, int var2) -``` - -Fill input buffer data. - -- Parameters - - - `var1`: Need fill buffer. - - `var2`: Need fill batch index. - -## shuffle - -```java - public abstract void shuffle() -``` - -Shuffle data. - -## padding - -```java - public abstract void padding() -``` - -Pad data. - -## dataPreprocess - -```java -public abstract Status dataPreprocess(List var1) -``` - -Data preprocess. - -- Parameters - - - `var1`: Data files. - -- Returns - - Whether the execution is successful. diff --git a/docs/federated/docs/source_en/java_api_flparameter.md b/docs/federated/docs/source_en/java_api_flparameter.md deleted file mode 100644 index fd98074127..0000000000 --- a/docs/federated/docs/source_en/java_api_flparameter.md +++ /dev/null @@ -1,636 +0,0 @@ -# FLParameter - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/java_api_flparameter.md) - -```java -import com.mindspore.flclient.FLParameter -``` - -FLParameter is used to define parameters related to federated learning. - -## Public Member Functions - -| **function** | -| ------------------------------------------------------------ | -| public static synchronized FLParameter getInstance() | -| public String getDeployEnv() | -| public void setDeployEnv(String env) | -| public String getDomainName() | -| public void setDomainName(String domainName) | -| public String getClientID() | -| public void setClientID(String clientID) | -| public String getCertPath() | -| public void setCertPath(String certPath) | -| public SSLSocketFactory getSslSocketFactory() | -| public void setSslSocketFactory(SSLSocketFactory sslSocketFactory) | -| public X509TrustManager getX509TrustManager() | -| public void setX509TrustManager(X509TrustManager x509TrustManager) | -| public IFLJobResultCallback getIflJobResultCallback() | -| public void setIflJobResultCallback(IFLJobResultCallback iflJobResultCallback) | -| public String getFlName() | -| public void setFlName(String flName) | -| public String getTrainModelPath() | -| public void setTrainModelPath(String trainModelPath) | -| public String getInferModelPath() | -| public void setInferModelPath(String inferModelPath) | -| public String getSslProtocol() | -| public void setSslProtocol(String sslProtocol) | -| public int getTimeOut() | -| public void setTimeOut(int timeOut) | -| public int getSleepTime() | -| public void setSleepTime(int sleepTime) | -| public boolean isUseElb() | -| public void setUseElb(boolean useElb) | -| public int getServerNum() | -| public void setServerNum(int serverNum) | -| public boolean isPkiVerify() | -| public void setPkiVerify(boolean ifPkiVerify) | -| public String getEquipCrlPath() | -| public void setEquipCrlPath(String certPath) | -| public long getValidInterval() | -| public void setValidInterval(long validInterval) | -| public int getThreadNum() | -| public void setThreadNum(int threadNum) | -| public int getCpuBindMode() | -| public void setCpuBindMode(BindMode cpuBindMode) | -| public List getHybridWeightName(RunType runType) | -| public void setHybridWeightName(List hybridWeightName, RunType runType) | -| public Map> getDataMap() | -| public void setDataMap(Map/> dataMap) | -| public ServerMod getServerMod() | -| public void setServerMod(ServerMod serverMod) | -| public int getBatchSize() | -| public void setBatchSize(int batchSize) | - -## getInstance - -```java -public static synchronized FLParameter getInstance() -``` - -Obtains a single FLParameter instance. - -- Return value - - Single object of the FLParameter type. - -## getDeployEnv - -```java -public String getDeployEnv() -``` - -Obtains the deployment environment for federated learning set by users. - -- Return value - - The deployment environment for federated learning of the string type. - -## setDeployEnv - -```java -public void setDeployEnv(String env) -``` - -Used to set the deployment environment for federated learning, a whitelist is set, currently only "x86", "android" are supported. - -- Parameter - - - `env`: the deployment environment for federated learning. - -## getDomainName - -```java -public String getDomainName() -``` - -Obtains the domain name set by a user. - -- Return value - - Domain name of the string type. - -## setDomainName - -```java -public void setDomainName(String domainName) -``` - -Used to set the url for device-cloud communication. Currently, https and http communication are supported, the corresponding formats are like: https://......, http://......, and when `useElb` is set to true, the format must be: https://127.0.0.0 : 6666 or http://127.0.0.0 : 6666 , where `127.0.0.0` corresponds to the ip of the machine providing cloud-side services (corresponding to the cloud-side parameter `--scheduler_ip`), and `6666` corresponds to the cloud-side parameter `--fl_server_port`. - -- Parameter - - - `domainName`: domain name. - -## getClientID - -```java -public String getClientID() -``` - -A clientID that uniquely identifies the client is automatically generated before each federated learning task is started (if the user needs to set the clientID, setClientID is used to set before the federated learning training task is started), and this method is used to obtain the ID, which can be used to generate the relevant certificates in the device-cloud security authentication scenarios. - -- Return value - - Unique ID of the client, which is of the string type. - -## setClientID - -```java -public void setClientID(String clientID) -``` - -Used to set the clientID that uniquely identifies the client. - -- Parameter - - - `clientID`: unique ID of the client. - -## getCertPath - -```java -public String getCertPath() -``` - -Obtains the self-signed root certificate path used for device-cloud HTTPS communication. - -- Return value - - The self-signed root certificate path of the string type. - -## setCertPath - -```java -public void setCertPath(String certPath) -``` - -Sets the self-signed root certificate path used for device-cloud HTTPS communication. When the deployment environment is "x86" and the device-cloud uses a self-signed certificate for HTTPS communication authentication, this parameter needs to be set. The certificate must be consistent with the CA root certificate used to generate the cloud-side self-signed certificate to pass the verification. This parameter is used for non-Android scenarios. - -- Parameter - - `certPath`: the self-signed root certificate path used for device-cloud HTTPS communication. - -## getSslSocketFactory - -```java -public SSLSocketFactory getSslSocketFactory() -``` - -Obtains the ssl certificate authentication library `sslSocketFactory` set by the user. - -- Return value - - The ssl certificate authentication library `sslSocketFactory` , which is of the SSLSocketFactory type. - -## setSslSocketFactory - -```java -public void setSslSocketFactory(SSLSocketFactory sslSocketFactory) -``` - -Used to set the ssl certificate authentication library `sslSocketFactory`. - -- Parameter - - `sslSocketFactory`: the ssl certificate authentication library. - -## getX509TrustManager - -```java -public X509TrustManager getX509TrustManager() -``` - -Obtains the ssl certificate authentication manager `x509TrustManager` set by the user. - -- Return value - - the ssl certificate authentication manager `x509TrustManager`, which is of the X509TrustManager type. - -## setX509TrustManager - -```java -public void setX509TrustManager(X509TrustManager x509TrustManager) -``` - -Used to set the ssl certificate authentication manager `x509TrustManager`. - -- Parameter - - `x509TrustManager`: the ssl certificate authentication manager. - -## getIflJobResultCallback - -```java -public IFLJobResultCallback getIflJobResultCallback() -``` - -Obtains the federated learning callback function object `iflJobResultCallback` set by the user. - -- Return value - - The federated learning callback function object `iflJobResultCallback`, which is of the IFLJobResultCallback type. - -## setIflJobResultCallback - -```java -public void setIflJobResultCallback(IFLJobResultCallback iflJobResultCallback) -``` - -Used to set the federated learning callback function object `iflJobResultCallback`, the user can implement the specific method of the interface class [IFLJobResultCallback.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/IFLJobResultCallback.java) in the project according to the needs of the actual scene, and set it as a callback function object in the federated learning task. - -- Parameter - - `iflJobResultCallback`: the federated learning callback function object. - -## getFlName - -```java -public String getFlName() -``` - -Obtains the package path of model script set by a user. - -- Return value - - Name of the package path of model script of the string type. - -## setFlName - -```java -public void setFlName(String flName) -``` - -Sets the package path of model script . We provide two types of model scripts for your reference ([Supervised sentiment classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert), [Lenet image classification task](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet)). For supervised sentiment classification tasks, this parameter can be set to the package path of the provided script file [AlBertClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert/AlbertClient.java), like as `com.mindspore.flclient.demo.albert.AlbertClient`; for Lenet image classification tasks, this parameter can be set to the package path of the provided script file [LenetClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet/LenetClient.java), like as `com.mindspore.flclient.demo.lenet.LenetClient`. At the same time, users can refer to these two types of model scripts, define the model script by themselves, and then set the parameter to the package path of the customized model file ModelClient.java (which needs to inherit from the class [Client.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/model/Client.java)). - -- Parameter - - `flName`: package path of model script. - -## getTrainModelPath - -```java -public String getTrainModelPath() -``` - -Obtains the path of the training model set by a user. - -- Return value - - Path of the training model of the string type. - -## setTrainModelPath - -```java -public void setTrainModelPath(String trainModelPath) -``` - -Sets the path of the training model. - -- Parameter - - `trainModelPath`: training model path. - -## getInferModelPath - -```java -public String getInferModelPath() -``` - -Obtains the path of the inference model set by a user. - -- Return value - - Path of the inference model of the string type. - -## setInferModelPath - -```java -public void setInferModelPath(String inferModelPath) -``` - -Sets the path of the inference model. - -- Parameter - - `inferModelPath`: path of the inference model. - -## getSslProtocol - -```java -public String getSslProtocol() -``` - -Obtains the TLS protocol version used by the device-cloud HTTPS communication. - -- Return value - - The TLS protocol version used by the device-cloud HTTPS communication of the string type. - -## setSslProtocol - -```java -public void setSslProtocol(String sslProtocol) -``` - -Used to set the TLS protocol version used by the device-cloud HTTPS communication, a whitelist is set, and currently only "TLSv1.3" or "TLSv1.2" is supported. Only need to set it up in the HTTPS communication scenario. - -- Parameter - - `sslProtocol`: the TLS protocol version used by the device-cloud HTTPS communication. - -## getTimeOut - -```java -public int getTimeOut() -``` - -Obtains the timeout interval set by a user for device-side communication. - -- Return value - - Timeout interval for communication on the device, which is an integer. - -## setTimeOut - -```java -public void setTimeOut(int timeOut) -``` - -Sets the timeout interval for communication on the device. - -- Parameter - - `timeOut`: timeout interval for communication on the device. - -## getSleepTime - -```java -public int getSleepTime() -``` - -Obtains the waiting time of repeated requests set by a user. - -- Return value - - Waiting time of repeated requests, which is an integer. - -## setSleepTime - -```java -public void setSleepTime(int sleepTime) -``` - -Sets the waiting time of repeated requests. - -- Parameter - - `sleepTime`: waiting time for repeated requests. - -## isUseElb - -```java -public boolean isUseElb() -``` - -Determines whether the elastic load balancing is simulated, that is, whether a client randomly sends requests to a server address within a specified range. - -- Return value - - The value is of the boolean type. The value true indicates that the client sends requests to a random server address within a specified range. The value false indicates that the client sends a request to a fixed server address. - -## setUseElb - -```java -public void setUseElb(boolean useElb) -``` - -Determines whether to simulate the elastic load balancing, that is, whether a client randomly sends a request to a server address within a specified range. - -- Parameter - - `useElb`: determines whether to simulate the elastic load balancing. The default value is false. - -## getServerNum - -```java -public int getServerNum() -``` - -Obtains the number of servers that can send requests when simulating the elastic load balancing. - -- Return value - - Number of servers that can send requests during elastic load balancing simulation, which is an integer. - -## setServerNum - -```java -public void setServerNum(int serverNum) -``` - -Sets the number of servers that can send requests during elastic load balancing simulation. - -- Parameter - - `serverNum`: number of servers that can send requests during elastic load balancing simulation. The default value is 1. - -## isPkiVerify - -```java -public boolean isPkiVerify() -``` - -Whether to perform device-cloud security authentication. - -- Return value - - The value is of the boolean type. The value true indicates that device-cloud security authentication is performed, and the value false indicates that device-cloud security authentication is not performed. - -## setPkiVerify - -```java -public void setPkiVerify(boolean pkiVerify) -``` - -Determines whether to perform device-cloud security authentication. - -- Parameter - - - `pkiVerify`: whether to perform device-cloud security authentication. - -## getEquipCrlPath - -```java -public String getEquipCrlPath() -``` - -Obtains the CRL certification path `equipCrlPath` of the device certificate set by the user. This parameter is used in the Android environment. - -- Return value - - The certification path of the string type. - -## setEquipCrlPath - -```java -public void setEquipCrlPath(String certPath) -``` - -Used to set the CRL certification path of the device certificate. It is used to verify whether the digital certificate is revoked. This parameter is used in the Android environment. - -- Parameter - - `certPath`: the certification path. - -## getValidInterval - -```java -public long getValidInterval() -``` - -Obtains the valid iteration interval validIterInterval set by the user. This parameter is used in the Android environment. - -- Return value - - The valid iteration interval validIterInterval of the long type. - -## setValidInterval - -```java -public void setValidInterval(long validInterval) -``` - -Used to set the valid iteration interval validIterInterval. The recommended duration is the duration of one training epoch between the device-cloud(unit: milliseconds). It is used to prevent replay attacks. This parameter is used in the Android environment. - -- Parameter - - `validInterval`: the valid iteration interval validIterInterval. - -## getThreadNum - -```java -public int getThreadNum() -``` - -Obtains the number of threads used in federated learning training and inference. The default value is 1. - -- Return value - - The number of threads used in federated learning training and inference, which is of the int type. - -## setThreadNum - -```java -public void setThreadNum(int threadNum) -``` - -Used to set the number of threads used in federated learning training and inference. - -- Parameter - - `threadNum`: the number of threads used in federated learning training and inference. - -## getCpuBindMode - -```java -public int getCpuBindMode() -``` - -Obtains the cpu core that threads need to bind during federated learning training and inference. - -- Return value - - Convert the enumerated type of cpu core to int type and return. - -## setCpuBindMode - -```java -public void setCpuBindMode(BindMode cpuBindMode) -``` - -Used to set the cpu core that threads need to bind during federated learning training and inference. - -- Parameter - - `cpuBindMode`: it is the enumeration type `BindMode`, where BindMode.NOT_BINDING_CORE represents the unbound core, which is automatically assigned by the system, BindMode.BIND_LARGE_CORE represents the bound large core, and BindMode.BIND_MIDDLE_CORE represents the bound middle core. - -## getHybridWeightName - -```java -public List getHybridWeightName(RunType runType) -``` - -Used in hybrid training mode. Get the training weight name and inference weight name set by the user. - -- Parameter - -- `runType`: RunType enumeration type, only supports to be set to RunType.TRAINMODE (representing the training weight name) , RunType.INFERMODE (representing the inference weight name). - -- Return value - - A list of corresponding weight names according to the parameter runType, which is of the List type. - -## setHybridWeightName - -```java -public void setHybridWeightName(List hybridWeightName, RunType runType) -``` - -Due to the hybrid training mode, part of the weights delivered by the server is imported into the training model, and part is imported into the inference model, but the framework itself cannot judge it, so the user needs to set the relevant training weight name and inference weight name by himself. This method is provided for the user to set. - -- Parameter - - `hybridWeightName`: a list of weight names of the List type. - - `runType`: RunType enumeration type, only supports setting to RunType.TRAINMODE (representing setting training weight name), RunType.INFERMODE (representing setting reasoning weight name). - -## getDataMap - -```java -public Map> getDataMap() -``` - -Obtains the federated learning dataset set by the user. - -- Return value - - the federated learning dataset set of the Map> type. - -## setDataMap - -```java -public void setDataMap(Map> dataMap) -``` - -Used to set the federated learning dataset set by the user. - -- Parameter - - `dataMap`: the dataset of Map> type, the key in the map is the RunType enumeration type, the value is the corresponding dataset list, when the key is RunType.TRAINMODE, the corresponding value is the training-related dataset list, when the key is RunType.EVALMODE, it means that the corresponding value is a list of verification-related datasets, and when the key is RunType.INFERMODE, it means that the corresponding value is a list of inference-related datasets. - -## getServerMod - -```java -public ServerMod getServerMod() -``` - - Obtains the federated learning training mode. - -- Return value - - The federated learning training mode of ServerMod enumeration type. - -## setServerMod - -```java -public void setServerMod(ServerMod serverMod) -``` - -Used to set the federated learning training mode. - -- Parameter - - `serverMod`: the federated learning training mode of ServerMod enumeration type, where ServerMod.FEDERATED_LEARNING represents the normal federated learning mode (training and inference use the same model) ServerMod.HYBRID_TRAINING represents the hybrid learning mode (training and inference use different models, and the server side also includes training process). - -## getBatchSize - -```java -public int getBatchSize() -``` - -Obtains the number of single-step training samples used in federated learning training and inference, that is, batch size. - -- Return value - - BatchSize, the number of single-step training samples of int type. - -## setBatchSize - -```java -public void setBatchSize(int batchSize) -``` - -Used to set the number of single-step training samples used in federated learning training and inference, that is, batch size. It needs to be consistent with the batch size of the input data of the model. - -- Parameter - - `batchSize`: the number of single-step training samples of int type. \ No newline at end of file diff --git a/docs/federated/docs/source_en/java_api_syncfljob.md b/docs/federated/docs/source_en/java_api_syncfljob.md deleted file mode 100644 index 67d7939655..0000000000 --- a/docs/federated/docs/source_en/java_api_syncfljob.md +++ /dev/null @@ -1,64 +0,0 @@ -# SyncFLJob - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/java_api_syncfljob.md) - -```java -import com.mindspore.flclient.SyncFLJob -``` - -SyncFLJob defines the API flJobRun() for starting federated learning on the device, the API modelInference() for inference on the device, the API getModel() for obtaining the latest model on the cloud, and the API stopFLJob() for stopping federated learning training tasks. - -## Public Member Functions - -| **Function** | -| -------------------------------- | -| public FLClientStatus flJobRun() | -| public int[] modelInference() | -| public FLClientStatus getModel() | -| public void stopFLJob() | - -## flJobRun - -```java -public FLClientStatus flJobRun() -``` - -Starts a federated learning task on the device, for specific usage, please refer to the [interface introduction document](https://www.mindspore.cn/federated/docs/en/master/interface_description_federated_client.html). - -- Return value - - The status code of the flJobRun request. - -## modelInference - -```java -public int[] modelInference() -``` - -Starts an inference task on the device, for specific usage, please refer to the [interface introduction document](https://www.mindspore.cn/federated/docs/en/master/interface_description_federated_client.html). - -- Return value - - int[] composed of the labels inferred from the input. - -## getModel - -```java -public FLClientStatus getModel() -``` - -Obtains the latest model on the cloud, for specific usage, please refer to the [interface introduction document](https://www.mindspore.cn/federated/docs/en/master/interface_description_federated_client.html). - -- Return value - - The status code of the getModel request. - -## stopFLJob - -```java -public void stopFLJob() -``` - -The training task can be stopped by calling this interface during the federated learning training process. - -When a thread calls SyncFLJob.flJobRun(), it can use another thread to call SyncFLJob.stopFLJob() to stop the federated learning training task during the federated learning training process. \ No newline at end of file diff --git a/docs/federated/docs/source_en/local_differential_privacy_eval_laplace.md b/docs/federated/docs/source_en/local_differential_privacy_eval_laplace.md deleted file mode 100644 index 878f3bf693..0000000000 --- a/docs/federated/docs/source_en/local_differential_privacy_eval_laplace.md +++ /dev/null @@ -1,236 +0,0 @@ -# Horizontal Federated-Local Differential Privacy Inference Result Protection - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/local_differential_privacy_eval_laplace.md) - -## Privacy Protection Background - -Evaluating the federated unsupervised model training can be judged by the $loss$ of end-side feedback, or the end-side inference results combined with cloud-side clustering and clustering evaluation metrics can be used to further monitor the federated unsupervised model training progress. The latter involves end-side inference data on the cloud, and in order to meet privacy protection requirements, privacy protection processing of end-side inference data is required, while the cloud side can still be evaluated for clustering. This task is a secondary task compared to the training task, so we use lightweight algorithms and cannot introduce privacy protection algorithms with higher computational or communication overhead than the training phase. This paper presents a lightweight scheme for protecting inference results by using the local differential privacy Laplace noise mechanism. - -The effective integration of privacy protection technology into the product services will, on the one hand, help enhance the trust of users and the industry in the products and technology, and on the other hand, help to better carry out the federated tasks under the current privacy compliance requirements and create a full lifecycle (training-inference-evaluation) of privacy protection. - -## Algorithm Analysis - -### $L1$ and $L2$ Paradigm - -The $L1$-norm of a vector $V$ with length $k$ is $||V|||_1=\sum^{k}_{i=1}{|V_i|}$, then the $L1$-norm of the difference between two vectors in two-dimensional space is the Manhattan distance. - -$L2$-norm is $||V||_2=\sqrt{\sum^{k}_{i=1}{V^2_i}}$. - -The inference result is generally a $softmax$ result with a sum of $1$, and each dimension value of the vector indicates the probability of belonging to the corresponding category of that dimension. - -### $L1$ and $L2$ Sensitivity - -Local differential privacy introduces uncertainty on the data to be uploaded, and the sensitivity describes an upper bound on the uncertainty. Gaussian noise with $L2$ sensitivity can be added to the gradient in the optimizer and federated training, since a cropping operation is performed on the gradient vector before addition. Here the $softmax$ inference result satisfies the sum as $1$, so the Laplace noise of $L1$ is added. For applications where the $L2$ sensitivity is much lower than the $L1$ sensitivity, the Gaussian mechanism allows to add less noise, but the scenario has no $L2$-related constraint limits and uses only the $L1$ sensitivity. - -The $L1$-sensitivity is expressed as the maximum distance for any input in the defined domain in local differential privacy: - -$\Delta f=max||X-Y||_1$ - -In this scenario, $X=, Y=, \sum X = 1, \sum Y = 1, |x_1-y_1|+|x_2-y_2|+...+|x_k-y_k|\leq1=\Delta f$. - -### Laplace Distribution - -The Laplace distribution is continuous, and the probability density function of the Laplace with mean value 0 is: - -$Lap(x|b)=\frac{1}{2b}exp(-\frac{|x|}{b})$ - -### Laplace Mechanism - -$M(x,\epsilon)=X+Lap(\Delta f/\epsilon)$ - -where $Lap(\Delta f/\epsilon)$ is a vector of random variables with the same shape as $X$, independently and identically distributed. - -In this scenario, $b$ (also called $scale$, $lambda$, $beta$) is $1/\epsilon$. - -### Proving that the Laplace Mechanism is Satisfied with the $\epsilon-LDP$ - -Any two different clients, after being processed by the Laplace mechanism, both output the same result to achieve the confusion indistinguishable and the purpose probability ratio of outputting the same result has upper exact bound. Substituting $b=\Delta f/\epsilon$ yields: - -$Lap(\Delta f/\epsilon)=\frac{\epsilon}{2\Delta f}exp(-\frac{\epsilon|x|}{\Delta f})$ - -$\frac{P(Z|X)}{P(Z|Y)}$ - -$=\prod^k_{i=1}(\frac{exp(-\frac{\epsilon|x_i-z_i|}{\Delta f})}{exp(-\frac{\epsilon |y_i-z_i|}{\Delta f})})$ - -$=\prod^k_{i=1}exp(\epsilon\frac{|x_i-z_i|-|y_i-z_i|}{\Delta f})$ - -$\leq\prod^k_{i=1}(\epsilon\frac{|x_i-y_i|}{\Delta f})$ - -$=exp(\epsilon\frac{X-Y}{\Delta f})$ - -$\leq exp(\epsilon)$ - -#### The Determination of $\epsilon$ with the Corresponding Probability Density Plot - -The privacy budget with high availability is calculated by combining the data characteristics, such as the requirement to output noise of the order of $1e-5$ with high probability, otherwise it will directly affect the clustering results. The privacy budget calculation method corresponding to generating the specified amount of noise is given below. - -There is the $90\%$ probability to output the magnitude of $1e-5$, and the value of $\epsilon$ is obtained by integrating the probability density curve. - -$x>=0, Lap(x|b)=\frac{1}{2b}exp(-\frac{x}{b})$ - -$\int^ {E^{-5}}_0 {Lap(x|b)dx}$ - -$=1-\frac{1}{2}exp(-\frac{x}{b})|^{E^{-5}}_{0}$ - -$=\frac{1}{2}(exp(0)-exp(-\frac{E^{-5}}{b}))$ - -$=0.5(1-exp(-\frac{E^{-5}}{b})) = 0.45$ - -i.e. - -$exp(-\frac{E^{-5}}{b})=0.1$ - -$b=-E^{-5}/ln(0.1)=E^{-5}/2.3026=1/\epsilon$ - -$\epsilon=2.3026E^5$ - -When the privacy budget takes this value, the Laplace probability density function is as follows: - -![laplace](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/laplace_pdf.png) - -### Impact Analysis of Clustering Evaluation Indicators - -Using the **Calinski-Harabasz Index** assessment method as an example, the evaluation indicator is calculated in two steps: - -1. Each class calculates the sum of the squares of the distances from all `points` in the class to the `center of the class`; - -2. Calculate the sum of squares of distances from each `class` to the `center of the class`; - -Source code implementation and impact analysis after noise addition: - -```python -# 1.The cloud-side clustering algorithm gets the class ordinal number to which it belongs, with impact -n_labels = argmax(X) - -extra_disp, intra_disp = 0.0, 0.0 -# 2.Calculate the class center of all points, without impact -mean = np.mean(X, axis=0) -for k in range(n_labels): - # 3.Get all points in class k, based on the effect of 1 - cluster_k = X[labels == k] - # 4.Get the class center, based on the impact of 1 - mean_k = np.mean(cluster_k, axis=0) - # 5.The distance between the class and the center of all classes, based on the impact of 1 - extra_disp += len(cluster_k) * np.sum((mean_k - mean) ** 2) - # 6.The distance from the point to the center of the class, with impact - intra_disp += np.sum((cluster_k - mean_k) ** 2) - -return ( - 1.0 - if intra_disp == 0.0 - else extra_disp * (n_samples - n_labels) / (intra_disp * (n_labels - 1.0)) -) -``` - -In a comprehensive analysis, the main impact is on the clustering algorithm after noise addition, and the error on the distance calculation. When calculating the class center, the error introduced is small because the noise sum is expected to be $0$. - -Taking **SILHOUETTE SCORE** as an example, the process of calculating this evaluation indicator is divided into two steps: - -1. Calculate the average distance of a sample point $i$ from all other sample points in the same cluster, which is denoted as $a_i$. The smaller the value is, the more the sample $i$ should be assigned to this cluster. - -2. Calculate the average distance $b_{ij}$ of sample $i$ to all samples of some other cluster $C_j$, which is called the dissimilarity of sample $i$ to cluster $C_j$. The inter-cluster dissimilarity of sample $i$ is defined as: $b_i = min(b_{i1}, b_{i2}, ..., b_{ik})$. The larger the value is, the less the sample $i$ should belong to this cluster. - -![flow](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/two_cluster.png) - -$s_i=(b_i-a_i) / max(a_i, b_i)$. - -The smaller $a_i$ is, the larger $b_i$ is, and the result is $1-a_i / b_i$. The closer to $1$, the better the clustering effect. - -Pseudocode implementation and impact analysis after noise addition: - -```c++ -// Calculate distance matrix, space for time, upper triangle storage, which has an impact on noise addition -euclidean_distance_matrix(&distance_matrix, group_ids); - -// Perform the same calculation for each point, and finally calculate the mean value -for (size_t i = 0; i < n_samples; ++i) { - std::unordered_map> b_i_map; - for (size_t j = 0; j < n_samples; ++j) { - size_t label_j = labels[j]; - float distance = distance_matrix[i][j]; - // Same cluster calculates ai - if (label_j == label_i) { - a_distances.push_back(distance); - } else { - // Different clusters calculate bi - b_i_map[label_j].push_back(distance); - } - } - if (a_distances.size() > 0) { - // Calculate the average distance of the point from other points in the same cluster - a_i = std::accumulate(a_distances.begin(), a_distances.end(), 0.0) / a_distances.size(); - } - for (auto &item : b_i_map) { - auto &b_i_distances = item.second; - float b_i_distance = std::accumulate(b_i_distances.begin(), b_i_distances.end(), 0.0) / b_i_distances.size(); - b_i = std::min(b_i, b_i_distance); - } - if (a_i == 0) { - s_i[i] = 0; - } else { - s_i[i] = (b_i - a_i) / std::max(a_i, b_i); - } -} -return std::accumulate(s_i.begin(), s_i.end(), 0.0) / n_samples; -``` - -As above, the main impact is the main impact is on the clustering algorithm after noise addition, and the error on the distance calculation. - -### End-side Java Implementation - -There is no function in the Java basic library to generate Laplace distributed random numbers. The following combination strategy of random numbers is used to generate. - -The source code is as follows: - -```java -float genLaplaceNoise(SecureRandom secureRandom, float beta) { - float u1 = secureRandom.nextFloat(); - float u2 = secureRandom.nextFloat(); - if (u1 <= 0.5f) { - return (float) (-beta * log(1. - u2)); - } else { - return (float) (beta * log(u2)); - } -} -``` - -After obtaining a new round of model on the end-side, the inference calculation is executed immediately. After the training, the inference results after privacy protection are uploaded to the cloud side together with the new model, and the cloud side finally performs operations such as clustering and score calculation. The flow is shown in the following figure, where the red part is the output result of privacy protection processing: - -![flow](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/eval_flow.png) - -## Quick Start - -### Preparation - -To use this feature, one first needs to successfully complete the training aggregation process for either end-cloud federated scenario. [Implementing an Image Classification Application of Cross-device Federated Learning (x86)](https://www.mindspore.cn/federated/docs/en/master/image_classification_application.html) details the preparation of datasets and network models, as well as simulates the process of initiating multi-client participation in federated learning. - -### Configuration Items - -The [cloud-side yaml configuration file](https://gitee.com/mindspore/federated/blob/master/tests/st/cross_device_cloud/default_yaml_config.yaml) gives the complete configuration items for opening the end-cloud federated, and the program involves the following additional configuration file items: - -```c -encrypt: - privacy_eval_type: LAPLACE - laplace_eval: - laplace_eval_eps: 230260 -``` - -where `privacy_eval_type` currently supports only `NOT_ENCRYPT` and `LAPLACE`, indicating that the inference results are processed without privacy protection methods and with the `LAPLACE` mechanism, respectively. - -`laplace_eval_eps` indicates how much of the privacy budget is used if `LAPLACE` processing is used. - -## Experimental Results - -The basic configuration associated with the inference result evaluation function is used as follows: - -```c -unsupervised: - cluster_client_num: 1000 - eval_type: SILHOUETTE_SCORE -``` - -We can see that the relationship between $loss$ and the score under the `LAPLACE` mechanism by using `NOT_ENCRYPT` and using `laplace_eval_eps=230260` is shown in the figure: - -![flow](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/SILHOUETTE.png) - -The red dashed line shows the SILHOUETTE scores after the Laplace mechanism is used to protect the inference results. Since the model contains $dropout$ and Gaussian input, the $loss$ of the two trainings are slightly different and the scores obtained based on different models are slightly different. However, the overall trend remains consistent and can assist $loss$ together to detect the model training progress. diff --git a/docs/federated/docs/source_en/local_differential_privacy_training_noise.md b/docs/federated/docs/source_en/local_differential_privacy_training_noise.md deleted file mode 100644 index 457d3624c4..0000000000 --- a/docs/federated/docs/source_en/local_differential_privacy_training_noise.md +++ /dev/null @@ -1,45 +0,0 @@ -# Horizontal FL-Local Differential Privacy Perturbation Training - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/local_differential_privacy_training_noise.md) - -During federated learning, user data is used only for local device training and does not need to be uploaded to the central server. This prevents personal data leakage. -However, in the conventional federated learning framework, models are migrated to the cloud in plaintext. There is still a risk of indirect disclosure of user privacy. -After obtaining the plaintext model uploaded by a user, the attacker can restore the user's personal training data through attacks such as reconstruction and model inversion. As a result, user privacy is disclosed. - -As a federated learning framework, MindSpore Federated provides secure aggregation algorithms based on local differential privacy (LDP). Noise addition is performed on local models before they are migrated to the cloud. On the premise of ensuring the model availability, the problem of privacy leakage in horizontal federated learning is solved. - -## Principles - -Differential privacy is a mechanism for protecting user data privacy. Differential privacy is defined as follows: - -$$ -Pr[\mathcal{K}(D)\in S] \le e^{\epsilon} Pr[\mathcal{K}(D') \in S]+\delta​ -$$ - -For datasets $D, D'$ that have only one record difference, the random algorithm $\mathcal{K}$ is used to compute the probability of the $S$ subset, which meets the preceding formula. $\epsilon$ is the differential privacy budget, and $\delta$ is the perturbation. The smaller the values of $\epsilon$ and $\delta$, the closer the data distribution of $\mathcal{K}$ on $D$ and $D'$. - -In horizontal federated learning, if the model weight matrix after local training on the client is $W$, the attacker can use $W$ to restore the training dataset[1] of the user because the model "remembers" the features of the training set during the training process. - -MindSpore Federated provides a LDP-based secure aggregation algorithm to prevent privacy data leakage when local models are migrated to the cloud. - -The MindSpore Federated client generates a differential noise matrix $G$ that has the same dimension as the local model $W$, and then adds the two to obtain a weight $W_p$ that meets the differential privacy definition: - -$$ -W_p=W+G -$$ - -The MindSpore Federated client uploads the noise-added model $W_p$ to the cloud server for federated aggregation. The noise matrix $G$ is equivalent to adding a layer of mask to the original model, which reduces the risk of sensitive data leakage from models and affects the convergence of model training. How to achieve a better balance between model privacy and usability is still a question worth studying. Experiments show that when the number of participants $n$ is large enough (generally more than 1000), most of the noises can cancel each other, and the LDP mechanism has no obvious impact on the accuracy and convergence of the aggregation model. - -## Usage - -Local differential privacy training currently only supports cross device scenarios. Enabling differential privacy training is simple. You only need to set the `encrypt_train_type` field to `DP_ENCRYPT` via [yaml](https://www.mindspore.cn/federated/docs/en/master/horizontal/federated_server_yaml.html#) when starting the cloud-side service. - -In addition, to control the effect of privacy protection, three parameters are provided: `dp_eps`, `dp_delta`, and `dp_norm_clip`. They are also set through the yaml file. - -The valid value range of `dp_eps` and `dp_norm_clip` is greater than 0. The legal range of `dp_delta` is 0<`dp_delta`<1. In general, the smaller `dp_eps` and `dp_delta` are, the better the privacy protection will be, but the greater the impact on the convergence of the model. It is recommended that `dp_delta` be taken as the inverse of the number of clients and `dp_eps` be greater than 50. - -`dp_norm_clip` is the adjustment coefficient of the model weight before noise is added to the model weight by the LDP mechanism. It affects the convergence of the model. The recommended value ranges from 0.5 to 2. - -## References - -[1] Ligeng Zhu, Zhijian Liu, and Song Han. [Deep Leakage from Gradients](http://arxiv.org/pdf/1906.08935.pdf). NeurIPS, 2019. diff --git a/docs/federated/docs/source_en/local_differential_privacy_training_signds.md b/docs/federated/docs/source_en/local_differential_privacy_training_signds.md deleted file mode 100644 index 5d47104608..0000000000 --- a/docs/federated/docs/source_en/local_differential_privacy_training_signds.md +++ /dev/null @@ -1,178 +0,0 @@ -# Horizontal FL-Local Differential Privacy SignDS training - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/local_differential_privacy_training_signds.md) - -## Privacy Protection Background - -Federated learning enables the client user to participate in global model training without uploading the original dataset by allowing the participant to upload only the new model after local training or update the update information of the model, breaking through the data silos. This common scenario of federated learning corresponds to the default scheme in the MindSpore federated learning framework, where the `encrypt_train_type` switch defaults to `not_encrypt` when starting the `server`. The `installation and deployment` and `application practices` in the federated learning tutorial both use this approach by default, which is a common federated seeking averaging scheme without any privacy-protecting treatment such as cryptographic perturbation. For the convenience of description, `not_encrypt' is used below to refer specifically to this default scheme. - -This federated learning scheme is not free from privacy leakage, using the above `not_encrypt` scheme for training. The Server receives the local training model uploaded by the Client, which can still reconstruct the user training data through some attack methods [1], thus leaking user privacy, so the `not_encrypt` scheme needs to further increase the user privacy protection mechanism. - -The global model `oldModel` received by the Client in each round of federated learning is issued by the Server, which does not involve user privacy issues. However, the local model `newModel` obtained by each Client after several epochs of local training fits its local privacy data, so the privacy protection focuses on the weight difference between the two `newModel`-`oldModel`=`update`. - -The `DP_ENCRYPT` differential noise scheme already implemented in the MindSpore Federated framework achieves privacy preservation by iteratively perturbing Gaussian random noise to `update`. However, as the dimensionality of the model increases, the increase in the `update` paradigm will increase the noise, thus requiring more Clients to participate in the same round of aggregation to neutralize the noise impact, otherwise the convergence and accuracy of the model will be reduced. If the noise is set too small, although the convergence and accuracy are close to the performance of the `not_encrypt` scheme, the privacy protection is not strong enough. Also each Client needs to send the perturbed model, and as the model increases, the communication overhead increases. We expect the Client represented by the cell phone to achieve convergence of the global model with as little communication overhead as possible. - -## Algorithm Flow Introduction - -SignDS [2] is the abbreviation of Sign Dimension Select, and the processing object is the `update` of Client. Preparation: each layer of Tensor of `update` is flattened and expanded into a one-dimensional vector, connected together, and the number of splicing vector dimensions is noted as $d$. - -One sentence summarizes the algorithm: Each participant only uploads information about the important dimensions, including their gradient directions and privacy-preserving steps, which corresponds to the SignDS and MagRR (Magnitude Random Response) modules in the figure below, respectively. - -![img](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/signds_framework.png) - -Here is an example: there are 3 clients Client1, 2, 3, whose `update` is a $d=8$-dimensional vector after flattening and expanding, and the Server calculates the `avg` of these 3 clients Client and updates the global model with the value, that is, completes a round of federated learning. - -| Client | d_1 | d_2 | d_3 | d_4 | d_5 | d_6 | d_7 | d_8 | -| :----: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :---: | -| 1 | 0.4 | 0.1 | -0.2 | 0.3 | 0.5 | 0.1 | -0.2 | -0.3 | -| 2 | 0.5 | 0.2 | 0 | 0.1 | 0.3 | 0.2 | -0.1 | -0.2 | -| 3 | 0.3 | 0.1 | -0.1 | 0.5 | 0.2 | 0.3 | 0 | 0.1 | -| avg | 0.4 | 0.13 | -0.1 | 0.3 | 0.33 | 0.2 | -0.1 | -0.13 | - -### SignDS - -The dimension with higher importance should be selected, and the importance measure is the size of the **fetching value**, and the update needs to be sorted. update takes positive and negative values to represent different update directions, so in each round of federated learning, the sign values of Client each have **0.5 probability** of taking `1` or `-1`. If sign=1, the largest $k$ number of `update` dimensions are noted as the `topk` set and the remaining ones are noted as the `non-topk` set. If sign=-1, the smallest $k$ number of ones are noted as the `topk` set. - -If the Server specifies `h`, the total number of selected dimensions, the Client will directly use this value, otherwise each Client will locally calculate the optimal output dimension `h`. - -The SignDS algorithm outputs the number of dimensions (denoted as $v$) that should be selected from the `topk` set and the `non-topk` set, as in the example in the table below, where the two sets pick a total of dimensions h=3. - -Client selects dimensions uniformly and randomly according to the number of dimensions output by the SignDS algorithm, sends the dimension number and sign value to the Server. If the dimension number is output in the order of picking from `topk` first and then from `non-topk`, the dimension number list `index` needs to be shuffled and disordered. The following table shows the part of information finally transferred from each Client of this algorithm to the Server. - -| Client | index | sign | -| :----: | :---: | :--: | -| 1 | 1,5,8 | 1 | -| 2 | 2,3,4 | -1 | -| 3 | 3,6,7 | 1 | - -### MagRR - -The Server receives the dimension direction from the client, but it is not clear what the step size to update in that direction is. Generally speaking, the step length tends to be large at the beginning of training, and shrinks as the training gradually converges. The general trend of step length change is shown in the following figure: - -![img](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/signds_step_length.png) - -The Server wants to estimate a dynamic range $[0,2∗r_{est}]$ for the actual step $r$, and thus compute the global learning rate $lr_{global}=2∗r_{est}*num_{clients}$. - -The $r$ adjustment uses a similar dichotomous idea. The specific process is as follows: - -1. The server initializes a smaller $r_{est}$ before the start of training (which does not affect the direction of model convergence too much); -2. After each round of local training, the participant calculates the true magnitude $r$ (mean of topk dimensions) and converts $r$ to $b$ with certain rules based on the current $r_{est}$ issued from the cloud side; -3. The participant performs local differential Binary Randomized Response (BRR) perturbation on $b$ and upload the results. - -The whole training process is divided into two phases, namely the **fast growth** phase and the **contraction** phase. The rules for $r \rightarrow b$ conversions and server-side updates of $r_{est}$ are slightly different for the participant in the two phases: - -- In the fast growth phase, a smaller $r_{est}$ is chosen, such as $e^{-5}$. At this point, $r_{est}$ is expanded by a certain multiple. - Therefore, we can define: - - $$ - b = \begin{cases} - 0 & r \in [2*r_{est}, \infty] \\ - 1 & r \in [0,2*r_{est})] - \end{cases} - $$ - - The server aggregates all device-side random response results for frequency statistics and calculates the plurality $B$. - If $B=0$, it is considered that $r_{est}$ has not reached the range of 𝑟 at present and needs to continue increasing $r_{est}$; - If $B=1$, $r_{est}$ is considered to have reached the range of 𝑟, and keep $r_{est}$ unchanged. -- In the contraction phase, it is necessary to fine-tune $r_{est}$ according to the changes in $r$. Therefore we can define: - - $$ - b = \begin{cases} - 0 & r \in [r_{est}, \infty] \\ - 1 & r \in [0,r_{est})] - \end{cases} - $$ - - Calculate $B$, and if $B=0$ , consider that $r_{est}$ and $r$ are currently closer and keep $r_{est}$ unchanged; - If $B=1$, $r$ is considered to be generally smaller than $r_{est}$, and $r_{est}$ is halved. - -The Server constructs `update` with privacy protection based on the dimension serial number, sign value and $r_{est}$ uploaded by each Client, and aggregates and averages all `update` and updates the current `oldModel` to complete one round of federated learning. The following table shows the aggregation when $2∗r_{est}*num_{clients}=1$. - -| Client | d_1 | d_2 | d_3 | d_4 | d_5 | d_6 | d_7 | d_8 | -| :----: | :---: | :----: | :----: | :----: | :---: | :---: | :---: | :---: | -| 1 | **1** | 0 | 0 | 0 | **1** | 0 | 0 | **1** | -| 2 | 0 | **-1** | **-1** | **-1** | 0 | 0 | 0 | 0 | -| 3 | 0 | 0 | **1** | 0 | 0 | **1** | **1** | 0 | -| avg | 1/3 | -1/3 | 0 | -1/3 | 1/3 | 1/3 | 1/3 | 1/3 | - -The SignDS scheme enables the device-side client to upload only a list of dimensional ordinal numbers of type int output by the algorithm, a random Sign value of type boolean and feedback results on the estimated value to the cloud side, which significantly reduces the communication overhead compared to uploading tens of thousands of float-level complete model weights or gradients in a common scenario. From the perspective of the actual reconstruction attack, the cloud side only obtains the dimension serial number, a Sign value representing the direction of gradient update and the step estimation feedback value for privacy protection, and the attack is more difficult to achieve. The data flow fields of the overall scheme are shown in the following figure: - -![img](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/signds_flow.png) - -## Privacy Protection Certificate - -The differential privacy noise scheme achieves privacy protection by adding noise so that the attacker cannot determine the original information, while the differential privacy SignDS scheme activates partial dimensions and replaces the original value with the sign value, which largely protects user privacy. Further, using the differential privacy index mechanism makes it impossible for an attacker to confirm whether the activated dimensions are significant (from the `topk` set) and whether the number of dimensions from `topk` in the output dimensions exceeds a given threshold. - -### Dimensional Selection Mechanism Based on Index Mechanism - -For any two updates $\Delta$ and $\Delta'$ of each Client, the set of `topk` dimensions is $S_{topk}$ , ${S'}_{topk}$ , respectively. The set of any possible output dimensions of the algorithm is ${J}\in {\mathcal{J}}$ . Note that $\nu=|{S}_ {topk}\cap {J}|$ , $\nu'=|{S'}_{topk}\cap {J}|$ is the number of intersections of ${J}$ and `topk` sets, and the algorithm such that the following inequality holds: - -$$ -\frac{{Pr}[{J}|\Delta]}{{Pr}[{J}|\Delta']}=\frac{{Pr}[{J}|{S}_{topk}]}{{Pr}[{J}|{S'}_{topk}]}=\frac{\frac{{exp}(\frac{\epsilon}{\phi_u}\cdot u({S}_{topk},{J}))}{\sum_{{J'}\in {\mathcal{J}}}{exp}(\frac{\epsilon}{\phi_u}\cdot u({S}_{topk}, {J'}))}}{\frac{{exp}(\frac{\epsilon}{\phi_u}\cdot u({S'}_{topk}, {J}))}{\sum_{ {J'}\in {\mathcal{J}}}{exp}(\frac{\epsilon}{\phi_u}\cdot u( {S'}_{topk},{J'}))}}=\frac{\frac{{exp}(\epsilon\cdot \unicode{x1D7D9}(\nu \geq \nu_{th}))}{\sum_{\tau=0}^{\tau=\nu_{th}-1}\omega_{\tau} + \sum_{\tau=\nu_{th}}^{\tau=h}\omega_{\tau}\cdot {exp}(\epsilon)}}{\frac{ {exp}(\epsilon\cdot \unicode{x1D7D9}(\nu' \geq\nu_{th}))}{\sum_{\tau=0}^{\tau=\nu_{th}-1}\omega_{\tau}+\sum_{\tau=\nu_{th}}^{\tau=h}\omega_{\tau}\cdot {exp}(\epsilon)}}\\= \frac{{exp}(\epsilon\cdot \unicode{x1D7D9} (\nu \geq \nu_{th}))}{ {exp}(\epsilon\cdot \unicode{x1D7D9} (\nu' \geq \nu_{th}))} \leq \frac{{exp}(\epsilon\cdot 1)}{{exp}(\epsilon\cdot 0)} = {exp}(\epsilon), -$$ - -It is proved that the algorithm satisfies local differential privacy. - -### Local Differential Privacy-Random Response Mechanism - -The participant receives the estimate sent from the server, and after the local training is completed, the topk dimensional weight mean of the real update is calculated, and 0 or 1 is output according to the magRR strategy. We consider that 0 or 1 still carries the weight mean range information, and it needs further protection. - -The input of the random response mechanism is the data to be protected ($\b\in \{0,1\}$) and the privacy parameter $\epsilon$, which flips the data according to a certain probability and outputs $\hat{b} \in \{0,1\}$ with the following rules: - -$$ -\hat{b} = \begin{cases} -b & with \quad probability \quad P \\ -1-b & with \quad probability \quad 1-P -\end{cases} -$$ - -where $P=\frac{e^\epsilon}{1+e^\epsilon}$. - -#### Frequency Statistics Based on Random Response Mechanism - -It is difficult for adversaries to distinguish real data from scrambled data by random responses, but it also affects the availability of cloud-side statistical tasks. The server side can approximate the true statistical frequency values by noise reduction, but it is difficult to infer the true input of the user in reverse. Let $N$ be the total number of participants in a round, $N^T$ be the total number of 1 originally, and $N^C$ be the total number of 1 collected by the server, then we have: - -$$ -N^T*P+(N-N^T)*(1-P)=N^C \\ -N^T=\frac{N^C-N+NP}{2P-1} -$$ - -## Preparation - -To use the algorithm, one first needs to successfully complete the training aggregation process for either cross-device federated scenario. [Implementing an Image Classification Application of Cross-device Federated Learning (x86)](https://www.mindspore.cn/federated/docs/en/master/image_classification_application.html) describes the preparation work such as datasets, network models, and simulations to initiate the process of multi-client participation in federated learning in detail. - -## Algorithm Opening Script - -Local differential privacy SignDS training currently only supports cross-device federated learning scenarios. The opening method needs to change the following parameter configuration in the yaml file when opening the cloud-side service. The complete cloud-side opening script can be referred to the cloud-side deployment, and the relevant parameter configuration for opening this algorithm is given here. Taking LeNet task as an example, the yaml related configuration is as follows: - -```python -encrypt: - encrypt_train_type: SIGNDS - ... - signds: - sign_k: 0.2 - sign_eps: 100 - sign_thr_ratio: 0.6 - sign_global_lr: 0.1 - sign_dim_out: 0 -``` - -For the detailed example, refer to [Implementing an Image Classification Application of Cross-device Federated Learning (x86)](https://www.mindspore.cn/federated/docs/en/master/image_classification_application.html). The cloud-side code implementation gives the definition domain of each parameter. If it is not in the definition domain, Server will report an error prompting the definition domain. The following parameter changes are subject to keeping the remaining 4 parameters unchanged. - -- `sign_k`: (0,0.25], k*inputDim>50. default=0.01. `inputDim` is the pulling length of the model or update. If not satisfied, there is a device-side warning. Sort update, and the `topk` set is composed of the first k (%) of it. Decreasing k means to pick from more important dimensions with greater probability. The output will have fewer dimensions, but the dimensions are more important and the change in convergence cannot be determined. The user needs to observe the sparsity of model update to determine the value. When it is quite sparse (update has many zeros), it should be taken smaller. -- `sign_eps`: (0,100], default=100. Privacy-preserving budget. The number sequence symbol is $\epsilon$, abbreviated as eps. When eps decreases, the probability of picking unimportant dimensions increases. When privacy protection is enhanced, output dimensions decrease, the percentage remains the same, and precision decreases. -- `sign_thr_ratio`: [0.5,1], default=0.6. The dimension from `topk` in the activation dimension is occupied threshold lower bound. Increasing will reduce the output dimension, but the proportion of output dimensions from `topk` will increase. When the value is increased excessively, more from `topk` is required in the output, and the total output dimension can only be reduced to meet the requirement, and the accuracy decreases when the number of clients is not large enough. -- `sign_global_lr`: (0,), default=1. This value is multiplied by sign instead of update, which directly affects the convergence speed and accuracy. Moderately increasing this value will improve the convergence speed, but it may make the model oscillate and the gradient explode. If more epochs are run locally per client and the learning rate used for local training is increased, the value needs to be increased accordingly. If the number of clients involved in the aggregation increases, the value also needs to be increased, because the value needs to be aggregated and then divided by the number of users when reconstruction. The result will remain the same only if the value is increased. If the percentage of participants in the new version (r0.2) involved in aggregation is less than 5%, the $lr_{global}$ of the MagRR algorithm is directly adjusted to this parameter. -- `sign_dim_out`: [0,50], default=0. If a non-zero value is given, the client side uses the value directly, increasing the value to output more dimensions, but the proportion of dimensions from `topk` will decrease. If it is 0, the client user has to calculate the optimal output parameters. If eps is not large enough, and the value is increased, many `non-topk` insignificant dimensions will be output leading to affect the mode convergence and accuracy decrease. When eps is large enough, increasing the value will allow important dimension information of more users to leave the local area and improve the accuracy. - -## LeNet Experiment Results - -Use 100 client datasets of `3500_clients_bin`, 600 iterations of federated aggregation. 20 epochs run locally per client, and using learning rate of device-side local training is 0.01. The related parameter of SignDS is `k=0.2, eps=100, ratio=0.6, lr=4, out=0`, and the variation curves of Loss and Auc are shown in the following figure. In the unencrypted scenario, the length of the data uploaded to the cloud side at the end of training on the device side is 266,084, but the length of the data uploaded by SignDS is only 656. - -![loss](./images/lenet_signds_loss_auc.png) - -## References - -[1] Ligeng Zhu, Zhijian Liu, and Song Han. [Deep Leakage from Gradients](http://arxiv.org/pdf/1906.08935.pdf). NeurIPS, 2019. - -[2] Xue Jiang, Xuebing Zhou, and Jens Grossklags. "SignDS-FL: Local Differentially-Private Federated Learning with Sign-based Dimension Selection." ACM Transactions on Intelligent Systems and Technology, 2022. \ No newline at end of file diff --git a/docs/federated/docs/source_en/object_detection_application_in_cross_silo.md b/docs/federated/docs/source_en/object_detection_application_in_cross_silo.md deleted file mode 100644 index 6655d58eb1..0000000000 --- a/docs/federated/docs/source_en/object_detection_application_in_cross_silo.md +++ /dev/null @@ -1,264 +0,0 @@ -# Implementing a Cross-Silo Federated Target Detection Application (x86) - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/object_detection_application_in_cross_silo.md) - -Based on the type of participating clients, federated learning can be classified into cross-silo federated learning and cross-device federated learning. In a cross-silo federated learning scenario, the clients involved in federated learning are different organizations (e.g., healthcare or finance) or geographically distributed data centers, i.e., training models on multiple data silos. In the cross-device federated learning scenario, the participating clients are a large number of mobile or IoT devices. This framework will describe how to implement a target detection application by using network Fast R-CNN on MindSpore Federated cross-silo federated framework. - -The full script to launch cross-silo federated target detection application can be found [here](https://gitee.com/mindspore/federated/tree/master/example/cross_silo_faster_rcnn). - -## Preparation - -This tutorial deploy the cross-silo federated target detection task based on the faster_rcnn network provided in MindSpore model_zoo. Please first follow the official [faster_rcnn tutorial and code](https://gitee.com/mindspore/models/tree/master/official/cv/FasterRCNN) to understand the COCO dataset, faster_rcnn network structure, training process and evaluation process first. Since the COCO dataset is open source, please refer to its [official website](https://cocodataset.org/#home) guidelines to download a dataset by yourself and perform dataset slicing (for example, suppose there are 100 clients, the dataset can be sliced into 100 copies, each representing the data held by one client). - -Since the original COCO dataset is in json file format, the target detection script provided by cross-silo federated learning framework only supports input data in MindRecord format. You can convert the json file to MindRecord format file according to the following steps. - -- Configure the following parameters in the configuration file[default_config.yaml](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_faster_rcnn/default_config.yaml): - - - `mindrecord_dir` - - Used to set the generated MindRecord format file save path. The folder name must be mindrecord_{num} format, and the number num represents the client label number 0, 1, 2, 3, ...... - - ```sh - mindrecord_dir:"./datasets/coco_split/split_100/mindrecord_0" - ``` - - - `instance_set` - - Used to set original json file path. - - ```sh - instance_set: "./datasets/coco_split/split_100/train_0.json" - ``` - -- Run the script [generate_mindrecord.py](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_faster_rcnn/generate_mindrecord.py) to generate MindRecord file according to `train_0.json`, saved in the `mindrecord_dir` path. - -## Starting the Cross-Silo Federated Mission - -### Installing MindSpore and MindSpore Federated - -Including both downloading source code and downloading release version, supporting CPU, GPU, Ascend hardware platforms, just choose to install according to the hardware platforms. For the installing step, refer to [MindSpore installation](https://www.mindspore.cn/install) and [MindSpore Federated installation](https://www.mindspore.cn/federated/docs/en/master/index.html). - -Currently the federated learning framework is only supported for deployment in Linux environments, and cross-silo federated learning framework requires MindSpore version number >= 1.5.0. - -### Starting Mission - -Refer to [example](https://gitee.com/mindspore/federated/tree/master/example/cross_silo_faster_rcnn) to start the cluster. The reference example directory structure is as follows: - -```text -cross_silo_faster_rcnn -├── src -│ ├── FasterRcnn -│ │ ├── __init__.py // init file -│ │ ├── anchor_generator.py // Anchor generator -│ │ ├── bbox_assign_sample.py // Phase I Sampler -│ │ ├── bbox_assign_sample_stage2.py // Phase II Sampler -│ │ ├── faster_rcnn_resnet.py // Faster R-CNN network -│ │ ├── faster_rcnn_resnet50v1.py // Faster R-CNN network taking Resnet50v1.0 as backbone -│ │ ├── fpn_neck.py // Feature Pyramid Network -│ │ ├── proposal_generator.py // Candidate generator -│ │ ├── rcnn.py // R-CNN network -│ │ ├── resnet.py // Backbone network -│ │ ├── resnet50v1.py // Resnet50v1.0 backbone network -│ │ ├── roi_align.py // ROI aligning network -│ │ └── rpn.py // Regional candidate network -│ ├── dataset.py // Create and process datasets -│ ├── lr_schedule.py // Learning rate generator -│ ├── network_define.py // Faster R-CNN network definition -│ ├── util.py // Routine operation -│ └── model_utils -│ ├── __init__.py // init file -│ ├── config.py // Obtain .yaml configuration parameter -│ ├── device_adapter.py // Obtain on-cloud id -│ ├── local_adapter.py // Get local id -│ └── moxing_adapter.py // On-cloud data preparation -├── requirements.txt -├── mindspore_hub_conf.py -├── generate_mindrecord.py // Convert annotations files in .json format to MindRecord format for reading datasets -├── default_yaml_config.yaml // Required configuration files for Federated training -├── default_config.yaml // Required configuration file of network structure, dataset address, and fl_plan -├── run_cross_silo_fasterrcnn_worker.py // Start Cloud Federated worker script -├── run_cross_silo_fasterrcnn_worker_distribute.py // Start the Cloud Federated distributed worker training script -└── test_fl_fasterrcnn.py // Training scripts used by the client -└── run_cross_silo_fasterrcnn_sched.py // Start Cloud federated scheduler script -└── run_cross_silo_fasterrcnn_server.py // Start Cloud federated server script -``` - -1. Note that you can choose whether to record the loss value for each step by setting the parameter `dataset_sink_mode` in the `test_fl_fasterrcnn.py` file. - - ```python - model.train(config.client_epoch_num, dataset, callbacks=cb, dataset_sink_mode=True) # Not setting dataset_sink_mode means that only the loss value of the last step in each epoch is recorded. - model.train(config.client_epoch_num, dataset, callbacks=cb, dataset_sink_mode=False) # Set dataset_sink_mode=False to record the loss value of each step, which is the default mode in the code. - ``` - -2. Set the following parameters in configuration file [default_config.yaml](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_faster_rcnn/default_config.yaml): - - - `pre_trained` - - Used to set the pre-trained model path (.ckpt format). - - The pre-trained model experimented in this tutorial is a ResNet-50 checkpoint trained on ImageNet 2012. You can use the [resnet50](https://gitee.com/mindspore/models/tree/master/official/cv/ResNet) script in ModelZoo to train, and then use src/convert_checkpoint.py to convert the trained resnet50 weight file into a loadable weight file. - -3. Start redis - - ```sh - redis-server --port 2345 --save "" - ``` - -4. Start Scheduler - - `run_cross_silo_fasterrcnn_sched.py` is the Python script used to start `Scheduler` and supports modifying the configuration by passing argument `argparse`. Execute the following command, which represents the `Scheduler` that starts this federated learning task. `--yaml_config` is used to set the yaml file path, and its management ip:port is `127.0.0.1:18019`. - - ```sh - python run_cross_silo_fasterrcnn_sched.py --yaml_config="default_yaml_config.yaml" --scheduler_manage_address="127.0.0.1:18019" - ``` - - For the detailed implementation, see [run_cross_silo_fasterrcnn_sched.py](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_faster_rcnn/run_cross_silo_fasterrcnn_sched.py). - - The following print represents a successful starting: - - ```sh - [INFO] FEDERATED(3944,2b280497ed00,python):2022-10-10-17:11:08.154.878 [mindspore_federated/fl_arch/ccsrc/scheduler/scheduler.cc:35] Run] Scheduler started successfully. - [INFO] FEDERATED(3944,2b28c5ada700,python):2022-10-10-17:11:08.155.056 [mindspore_federated/fl_arch/ccsrc/common/communicator/http_request_handler.cc:90] Run] Start http server! - ``` - -5. Start Server - - `run_cross_silo_fasterrcnn_server.py` is a Python script for starting a number of `Server`s, and supports modifying the configuration by passing argument `argparse`. Execute the following command, representing the `Server` that starts this Federated Learning task with a TCP address of `127.0.0.1`. The starting port for the Federated Learning HTTP service is `6668` and the number of `Server`s is `4`. - - ```sh - python run_cross_silo_fasterrcnn_server.py --yaml_config="default_yaml_config.yaml" --tcp_server_ip="127.0.0.1" --checkpoint_dir="/path/to/fl_ckpt" --local_server_num=4 --http_server_address="127.0.0.1:6668" - ``` - - The above command is equivalent to starting four `Server` processes, each with a federated learning service port of `6668`, `6669`, `6670` and `6671`, as detailed in [run_cross_silo_fasterrcnn_server.py](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_faster_rcnn/run_cross_silo_fasterrcnn_server.py), and checkpoint_dir needs to enter the directory path where the checkpoint is located. The server will read the checkpoint initialization weight from this path. The prefix format of the checkpoint needs to be `{fl_name}_ recovery_ iteration_`. - - The following print represents a successful starting: - - ```sh - [INFO] FEDERATED(3944,2b280497ed00,python):2022-10-10-17:11:08.154.645 [mindspore_federated/fl_arch/ccsrc/common/communicator/http_server.cc:122] Start] Start http server! - [INFO] FEDERATED(3944,2b280497ed00,python):2022-10-10-17:11:08.154.725 [mindspore_federated/fl_arch/ccsrc/common/communicator/http_request_handler.cc:85] Initialize] Ev http register handle of: [/d isableFLS, /enableFLS, /state, /queryInstance, /newInstance] success. - [INFO] FEDERATED(3944,2b280497ed00,python):2022-10-10-17:11:08.154.878 [mindspore_federated/fl_arch/ccsrc/scheduler/scheduler.cc:35] Run] Scheduler started successfully. - [INFO] FEDERATED(3944,2b28c5ada700,python):2022-10-10-17:11:08.155.056 [mindspore_federated/fl_arch/ccsrc/common/communicator/http_request_handler.cc:90] Run] Start http server! - ``` - -6. Start Worker - - `run_cross_silo_femnist_worker.py` is a Python script for starting a number of `worker`s, and supports modifying the configuration by the passing argument `argparse`. The following instruction is executed, representing the `worker` that starts this federated learning task, and the number of `workers` needed for the federated learning task to proceed properly is at least `2`. - - ```sh - python run_cross_silo_fasterrcnn_worker.py --local_worker_num=2 --yaml_config="default_yaml_config.yaml" --pre_trained="/path/to/pre_trained" --dataset_path=/path/to/datasets/coco_split/split_100 --http_server_address=127.0.0.1:6668 - ``` - - For the detailed implementation, see [run_cross_silo_femnist_worker.py](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_faster_rcnn/run_cross_silo_fasterrcnn_worker.py). Note that in dataset sink mode, the unit of the synchronization frequency of Cloud Federated is in epoch, otherwise the synchronization frequency is in step. - - As the above command, `--local_worker_num=2` means starting two clients, and the datasets used by the two clients are `datasets/coco_split/split_100/mindrecord_0` and `datasets/coco_split/split_100/mindrecord_1`. Please prepare the required datasets for the corresponding clients according to the `pre-task preparation` tutorial. - - After executing the above three commands and waiting for a while, go to the `worker_0` folder in the current directory and check the `worker_0` log with the command `grep -rn "\epoch:" *` and you will see a log message similar to the following: - - ```sh - epoch: 1 step: 1 total_loss: 0.6060338 - ``` - - Then it means that cross-silo federated is started successfully and `worker_0` is training. Other workers can be viewed in a similar way. - - At present, the `worker` node of Cloud Federated supports the distributed training mode of single machine multi-card and multi-machine multi-card. `run_cross_silo_fasterrcnn_worker_distributed.py` is a python script for users to start distributed training of the worker node, and supports configuration modification via argparse. Execute the following instructions, representing the distributed `worker` that starts this federated learning task, where `device_num` represents the number of processes started by the `worker` cluster, `run_distribute` represents the distributed training started by the cluster, and its http start port is `6668`. Number of `worker` processes is `4`: - - ```sh - python run_cross_silo_fasterrcnn_worker_distributed.py --device_num=4 --run_distribute=True --dataset_path=/path/to/datasets/coco_split/split_100 --http_server_address=127.0.0.1:6668 - ``` - - Enter the `worker_distributed/log_output/` folder in the current directory and run the `grep -rn "epoch" *` command to view the logs of the `worker` distributed cluster. You can see the following information: - - ```sh - epoch: 1 step: 1 total_loss: 0.613467 - ``` - - Please refer to [yaml configuration notes](https://www.mindspore.cn/federated/docs/en/master/horizontal/federated_server_yaml.html) for the description of parameter configuration in the above script. - -### Viewing the Log - -After successfully starting the task, the corresponding log file will be generated under the current directory `cross_silo_faster_rcnn`. The log file directory structure is as follows: - -```text -cross_silo_faster_rcnn -├── scheduler -│ └── scheduler.log # Print logs during running scheduler -├── server_0 -│ └── server.log # Print logs during running server_0 -├── server_1 -│ └── server.log # Print logs during running server_1 -├── server_2 -│ └── server.log # Print logs during running server_2 -├── server_3 -│ └── server.log # Print logs during running server_3 -├── worker_0 -│ ├── ckpt # Store the aggregated model ckpt obtained by worker_0 at the end of each federated learning iteration -│ │ └── mindrecord_0 -│ │ ├── mindrecord_0-fast-rcnn-0epoch.ckpt -│ │ ├── mindrecord_0-fast-rcnn-1epoch.ckpt -│ │ │ -│ │ │ ...... -│ │ │ -│ │ └── mindrecord_0-fast-rcnn-29epoch.ckpt -│ ├──loss_0.log # Record the loss value of each step in the training process of worker_0 -│ └── worker.log # Record the output logs during worker_0 participation in the federal learning task -└── worker_1 - ├── ckpt # Store the aggregated model ckpt obtained by worker_1 at the end of each federated learning iteration - │ └── mindrecord_1 - │ ├── mindrecord_1-fast-rcnn-0epoch.ckpt - │ ├── mindrecord_1-fast-rcnn-1epoch.ckpt - │ │ - │ │ ...... - │ │ - │ └── mindrecord_1-fast-rcnn-29epoch.ckpt - ├──loss_0.log # Record the loss value of each step in the training process of worker_1 - └── worker.log # Record the output logs during worker_1 participation in the federal learning task -``` - -### Closing the Mission - -If you want to exit in the middle, the following command is available: - -```sh -python finish_cross_silo_fasterrcnn.py --redis_port=2345 -``` - -For the detailed implementation, see [finish_cloud.py](https://gitee.com/mindspore/federated/blob/master/tests/st/cross_device_cloud/finish_cloud.py). - -Or when the training task is finished, the cluster exits automatically, no need to close it manually. - -### Results - -- Use data: - - COCO dataset is split into 100 copies, and the first two copies are taken as two worker datasets respectively - -- The number of client-side local training epochs: 1 - -- Total number of cross-silo federated learning iterations: 30 - -- Results (recording the loss values during the client-side local training): - - Go to the `worker_0` folder in the current directory, and check the `worker_0` log with the command `grep -rn "\]epoch:" *` to see the loss values output in each step: - - ```sh - epoch: 1 step: 1 total_loss: 5.249325 - epoch: 1 step: 2 total_loss: 4.0856013 - epoch: 1 step: 3 total_loss: 2.6916502 - epoch: 1 step: 4 total_loss: 1.3917351 - epoch: 1 step: 5 total_loss: 0.8109232 - epoch: 1 step: 6 total_loss: 0.99101084 - epoch: 1 step: 7 total_loss: 1.7741735 - epoch: 1 step: 8 total_loss: 0.9517553 - epoch: 1 step: 9 total_loss: 1.7988946 - epoch: 1 step: 10 total_loss: 1.0213892 - epoch: 1 step: 11 total_loss: 1.1700443 - . - . - . - ``` - -The histograms of the training loss transformations in each step of worker_1 and worker_2 during the 30 iterations training are as follows, [1] and [2]: - -The polygrams of the average loss (the sum of the losses of all the steps in an epoch divided by the number of steps) in each step of worker_1 and worker_2 during the 30 iterations training are as follows, [3] and [4]: - -![cross-silo_fastrcnn-2workers-loss.png](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/cross-silo_fastrcnn-2workers-loss.png) diff --git a/docs/federated/docs/source_en/pairwise_encryption_training.md b/docs/federated/docs/source_en/pairwise_encryption_training.md deleted file mode 100644 index 830d531997..0000000000 --- a/docs/federated/docs/source_en/pairwise_encryption_training.md +++ /dev/null @@ -1,67 +0,0 @@ -# Horizontal FL-Pairwise Encryption Training - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/pairwise_encryption_training.md) - -During federated learning, user data is used only for local device training and does not need to be uploaded to the central server. This prevents personal data leakage. -However, in the conventional federated learning framework, models are migrated to the cloud in plaintext. There is still a risk of indirect disclosure of user privacy. -After obtaining the plaintext model uploaded by a user, the attacker can restore the user's personal training data through attacks such as reconstruction and model inversion. As a result, user privacy is disclosed. - -As a federated learning framework, MindSpore Federated provides secure aggregation algorithms based on local secure multi-party computation (MPC). -Secret noise addition is performed on local models before they are migrated to the cloud. On the premise of ensuring the model availability, the problem of privacy leakage and model theft in horizontal federated learning are solved. - -## Principles - -Although the LDP technology can properly protect user data privacy, when there are a relatively small quantity of participating clients or a Gaussian noise amplitude is relatively large, the model accuracy is greatly affected. -To meet both model protection and model convergence requirements, we provide the MPC-based secure aggregation solution. - -In this training mode, assuming that the participating client set is $U$, for any client $u$ and $v$, they negotiate a pair of random perturbations $p_{uv}$ and $p_{vu}$, which meet the following condition: - -$$ -p_{uv}=\begin{cases} -p_{vu}, &u{\neq}v\\\\ 0, &u=v \end{cases} -$$ - -Therefore, each client $u$ adds the perturbation negotiated with other users to the original model weight $x_u$ before uploading the model to the server: - -$$ -x_{encrypt}=x_u+\sum\limits_{v{\in}U}p_{uv} -$$ - -Therefore, the Server aggregation result $\overline{x}$ is as follows: - -$$ -\begin{align} -\overline{x}&=\sum\limits_{u{\in}U}(x_{u}+\sum\limits_{v{\in}U}p_{uv})\\\\ -&=\sum\limits_{u{\in}U}x_{u}+\sum\limits_{u{\in}U}\sum\limits_{v{\in}U}p_{uv}\\\\ -&=\sum\limits_{u{\in}U}x_{u} -\end{align} -$$ - -The preceding process describes only the main idea of the aggregation algorithm. The MPC-based aggregation solution is accuracy-lossless but increases the number of communication rounds. -If you are interested in the specific steps of the algorithm, refer to the paper[1]. - -## Usage - -### Cross Device Scenario - -Enabling pairwise encryption training is simple. Just set the `encrypt_train_type` field to `PW_ENCRYPT` through yaml file when starting the cloud-side service. - -In addition, most of the workers participating in the training are unstable edge computing nodes such as mobile phones, so the problems of dropping the line and secret key reconstruction should be considered. Related parameters are `share_secrets_ratio`, `reconstruct_secrets_threshold`, and `cipher_time_window`. - -`share_client_ratio` indicates the client threshold decrease ratio of public key broadcast round, secret sharing round and secret reconstruction round. The value must be less than or equal to 1. - -`reconstruct_secrets_threshold` indicates the number of secret shares required to reconstruct a secret. The value must be less than the number of clients that participate in updateModel (start_fl_job_threshold*update_model_ratio). - -To ensure system security, the value of `reconstruct_secrets_threshold` must be greater than half of the number of federated learning clients when the server and client are not colluded. -When the server and client are colluded, the value of `reconstruct_secrets_threshold` must be greater than two thirds of the number of federated learning clients. - -`cipher_time_window` indicates the duration limit of each communication round for secure aggregation. It is used to ensure that the server can start a new round of iteration when some clients are offline. - -### Cross Silo Scenario - -In cross silo scenario, you only need to set the `encrypt_train_type` field to `PW_ENCRYPT` through yaml file in the cloud-side startup script. - -Different from cross silo scenario, all of the workers are stable computing nodes in cross silo scenario. You only need to set the parameter `cipher_time_window`. - -## References - -[1] Keith Bonawitz, Vladimir Ivanov, Ben Kreuter, et al. [Practical Secure Aggregationfor Privacy-Preserving Machine Learning](https://dl.acm.org/doi/pdf/10.1145/3133956.3133982). Proceedings of the 2017 ACM SIGSAC Conference on Computer and communications Security. 2017. diff --git a/docs/federated/docs/source_en/private_set_intersection.md b/docs/federated/docs/source_en/private_set_intersection.md deleted file mode 100644 index fcb7bef84f..0000000000 --- a/docs/federated/docs/source_en/private_set_intersection.md +++ /dev/null @@ -1,129 +0,0 @@ -# Vertical Federated-Privacy Set Intersection - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/private_set_intersection.md) - -## Privacy Protection Background - -With the rise in demand for digital transformation and the circulation of data elements, as well as the implementation of the Data Security Law, the Personal Information Protection Law and the EU General Data Protection Regulation (GDPR), privacy of data is increasingly becoming a necessary requirement in many scenarios. For example, when the dataset is sensitive information of users (medical diagnosis information, transaction records, identification codes, device unique identifier OAID, etc.) or secret information of the company, cryptography or desensitization must be used to ensure the confidentiality of the data before using it in the open state to achieve the goal of "usable but invisible" of the data in order to prevent information leakage. Considering two participants who jointly train a machine learning model (e.g., vertical federated learning) by using their respective data, the first step of this task is to align the sample sets of both parties, a process known as Entity Resolution. Traditional plaintext intersection inevitably reveals the OAID of the entire database and damages the data privacy of both parties, so the Privacy Set Intersection (PSI) technique is needed to accomplish this task. - -PSI is a type of secure multi-party computing (MPC) protocol that takes data collection from two parties as input, after a series of hashing, encryption and data exchange steps, eventually outputs the intersection of the collection to an agreed output party, while ensuring that the participating parties cannot obtain any information about the data outside the intersection. The use of the PSI protocol in vertical federated learning tasks, in compliance with the GDPR requirement of Data Minimisation, i.e. there is no non-essential exposure of data, except for the parts necessary for the training process (intersections). From the data controller's perspective, the service has to share data appropriately, but wants to share only necessary data based on the service and not expose additional data to the public. It should be noted that while PSI can directly apply existing MPC protocols to its calculations, this often results in a large computational and communication overhead, which is not conducive to business. In this paper, we introduce a technique combining Bloom filter and eliminable inverse scalar multiplication on the elliptic curve to implement ECDH-PSI (Elliptic Curve Diffie-Hellman key Exchange-PSI) to better support cloud services and carry out privacy preserving set intersection computing services. - -## Algorithm Process Introduction - -The core idea of ECDH-PSI is that a piece of data is first encrypted by Alice and then encrypted by Bob, with the same result as exchanging the encryption order. One party sends the data encrypted with its own private key without revealing its privacy, and the other party re-encrypts it with its own private key based on the received encrypted data. If the encryption result is the same, the original data is the same. - -The core optimization point of the inverse ECDH-PSI is to minimize the encryption computation based on the set of large amount of data when facing the scenario of intersection between two parties with unbalanced amount of data (Bob is the party with less data, $a$ and $b$ are the private keys of Alice and Bob respectively, the original data of both parties are mapped to the elliptic curve as $P_1$ and $P_2$ respectively, the point multiplication encryption of the elliptic curve with the private key $k$ is $P^k$ or $kP$, and the inverse of the private key $k$ is $k^{-1}$). Then after Alice executes $p_1^a$ and sends it to Bob, Bob no longer performs the encryption calculation based on it, but sends $p_2^b$ to Alice. After Alice sends $P_2^{ba}$, Bob completes the offset operation by point multiplying the inverse of its private key, i.e., calculating $P_2^{bab^{-1}}$ and comparing it with the $P_1^a$ sent by Alice. If the encryption result is the same, it means $P_1=P_2$. The flowchart of the inverse ECDH-PSI is shown in the figure, and the red letters indicate the received data from the other side. - -![inverse_ecdh_psi_flow](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/inverse_ecdh_psi_flow.png) - -The $bf$ in the figure stands for Bloom filter (bf). If you want to query whether an element exists in a collection, the basic method is to iterate through the collection to query, or sort the collection and use dichotomous lookup to query, but when the amount of data is too large, sorting does not support parallelism, which is very time-consuming. If a bloom filter is used, the elements of the set are mapped to a number of bits in an initial all-0 bit string by a number of hash functions, and all the elements of the sets share a single bit string. When querying, simply use the same number of hash functions to process the data to be queried, and directly access all the corresponding bits to see if they are activated to 1. If all of them are 1, it means that the data exists. Otherwise, it does not exist. The probability of collision can be achieved by controlling the number of hash functions. The communication overhead of the latter is lower compared to sending the entire set and sending a single bit string from the output of the Bloom filter. The computation can also be accelerated by parallelism during the creation of the bloom filter and the use of the filter for large-scale data queries. - -## Quick Experience - -### Front-end Needs - -Finish installing the `mindspore-federated` library in the Python environment. - -### Starting the Script - -You can get the PSI start script for both sides from [MindSpore federated ST](https://gitee.com/mindspore/federated/blob/master/tests/st/psi/run_psi.py) and open two processes to simulate both sides. The start command of local device and local communication: - -```python -python run_psi.py --comm_role="server" --http_server_address="127.0.0.1:8004" --remote_server_address="127.0.0.1:8005" --input_begin=1 --input_end=100 - -python run_psi.py --comm_role="client" --http_server_address="127.0.0.1:8005" --remote_server_address="127.0.0.1:8004" --input_begin=50 --input_end=150 -``` - -- `input_begin` is used in conjunction with `input_end` to generate the dataset for intersection. -- `peer_input_begin` and `peer_input_end` indicate the start and end ranges of each other's data, taking `--need_check` as `True`, which can be intersected by the Python set1.intersection(set2) function to get the true result, and is used to check the correctness of the PSI. -- `---bucket_size` (optional) indicates the number of for loops that serially perform multiple bucket intersections. -- `--thread_num` (optional) indicates the number of parallel threads used for the calculation. -- To run plaintext intersection, add the parameter `--plain_intersection=True` to the command. - -At present, psi supports the intersection of hundreds of millions of large data. You can specify the size of the input data set by setting 'input_begin', 'input_end', 'peer_input_begin', and 'peer_input_end' parameters. The theory proves that the memory resources of the machine and the system are sufficient, and there is no upper limit to the number of data computations psi can support. The startup command is as follows: - -```python -python run_psi.py --comm_role="server" --http_server_address="127.0.0.1:8004" --remote_server_address="127.0.0.1:8005" --input_begin=1 --input_end=100000000 - -python run_psi.py --comm_role="client" --http_server_address="127.0.0.1:8005" --remote_server_address="127.0.0.1:8004" --input_begin=1 --input_end=100000000 -``` - -### Output Results - -Before running the script, you can set the environment variable `export GLOG_v=1` to display the `INFO` level log, and also observe the operation of each phase within the protocol. After running the script, the intersection results will be printed out. As the amount of intersection data may be too large, the output here is limited to the first 20 intersection results. - -```bash -PSI result: ['50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69'] (display limit: 20) -``` - -## Deep Experience - -### Import Module - -To run the privacy set intersection, you need to rely on the communication module and the intersection module of the Federated Library, which are imported as follows: - -```python -from mindspore_federated.startup.vertical_federated_local import VerticalFederatedCommunicator, ServerConfig -from mindspore_federated._mindspore_federated import RunPSI -from mindspore_federated._mindspore_federated import PlainIntersection -``` - -### Data Preparation - -Both `RunPSI` and `PlainIntersection` require input data in `List(String)` format, and methods for generating datasets via file reading and for loops are given here: - -```python -def generate_input_data(input_begin_, input_end_, read_file_, file_name_): - input_data_ = [] - if read_file_: - with open(file_name_, 'r') as f: - for line in f.readlines(): - input_data_.append(line.strip()) - else: - input_data_ = [str(i) for i in range(input_begin_, input_end_)] - return input_data_ -``` - -The input parameters `input_begin_` and `input_end_` limit the data range of the for loop. `read_file_` and `file_name_` indicate whether to read the file and the path where the file is located. The file can be constructed by itself, each line representing one piece of data. - -### Constructing Communication - -Before calling this interface, a vertical federated communication instance needs to be initialized, as follows: - -```python -http_server_config = ServerConfig(server_name=comm_role, server_address=http_server_address) -remote_server_config = ServerConfig(server_name=peer_comm_role, server_address=remote_server_address) -vertical_communicator = VerticalFederatedCommunicator(http_server_config=http_server_config, - remote_server_config=remote_server_config) -vertical_communicator.launch() -``` - -- `server_name` is determined by whether the process belongs to `server` or `client`. `comm_role` is assigned to the corresponding `server` or `client`, and `peer_comm_role_` indicates the role of the other party. -- The format of `server_address` is "IP:port". `http_server_address` is assigned to the `IP` and `port` information of the process, such as "127.0.0.1:8004". `remote_server_address` is assigned to the `IP` and `port` information of the other party. - -### Starting Intersection - -The external interfaces for secure set intersection are `RunPSI` and `PlainIntersection`, which are ciphertext and plaintext intersections respectively, with the same type and meaning of input and return results. Only ciphertext intersection `RunPSI` is described here: - -```python -result = RunPSI(input_data, comm_role, peer_comm_role, bucket_id, thread_num) -``` - -- `input_data`: (list[string]), psi, the input data of one party. -- `comm_role`: (string), communication-related parameter, "server" or "client". -- `peer_comm_role`: (string), communication-related parameter, "server" or "client", different with comm_role. -- `bucket_id`: (int), outer part of the barrel, serial number of the pass-in barrel. `TypeError` error for passing in negative numbers, decimals or other types. If the value is different between two processes, the server will exit with an error and the client will block and wait. -- `thread_num`: (int), number of threads, natural number. 0 is the default value, which means use the maximum number of threads available on the machine minus 5, and other values will be limited to 1 to the maximum available on the machine. `TypeError` error for passing in negative numbers, decimals or other types. - -### Output Results - -The `result` is in `list[string]` format, which represents the intersection result and can be printed out by itself. Here's the method of the Python set intersection: - -```python -def compute_right_result(self_input, peer_input): - self_input_set = set(self_input) - peer_input_set = set(peer_input) - return self_input_set.intersection(peer_input_set) -``` - -The results of the above methods can be compared with `result` to check if they are consistent, and the correctness of the interface can be verified. diff --git a/docs/federated/docs/source_en/secure_vertical_federated_learning_with_DP.md b/docs/federated/docs/source_en/secure_vertical_federated_learning_with_DP.md deleted file mode 100644 index 6a30234678..0000000000 --- a/docs/federated/docs/source_en/secure_vertical_federated_learning_with_DP.md +++ /dev/null @@ -1,158 +0,0 @@ -# Vertical Federated - Label Protection Based on Differential Privacy - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/secure_vertical_federated_learning_with_DP.md) - -## Background - -Vertical federated learning (vFL) is a major branch of federated learning (FL). When different participants have data from the same batch of users but with different attributes, they can use vFL for collaborative training. In vFL, the participants with user features (follower for short, participant A as shown in the figure below) hold a bottom network (Bottom Model). They input the features into the bottom network, compute the intermediate results (embedding), and send them to the participants with labels (leader for short, participant B as shown in the figure below). The leader uses these embeddings and its own labels to train the upper network (upper network), and then passes the computed gradients back to each participant to train the bottom network. It can be seen that vFL does not require any participant to upload their own raw data to collaboratively train the model. - -![image.png](./images/vfl_1_en.png) - -The vFL framework avoids the direct upload of raw data, protecting data privacy at a certain level. However, there exists possibility for a semi-honest or a malicious party to infer the label information from the gradients passing back from the leader party, causing privacy disclosure. Given the large number of vFL scenarios where labels are the most valuable and most important piece of information to protect, in this context, we need to provide stronger privacy guarantees for vFL training to avoid the privacy disclosure. - -Differential privacy (DP) is a definition of privacy based strictly on statistics/information theory, which currently the golden standard of privacy-preserving data analysis. The core idea behind DP is to induce randomness to overwhelm each individual data's influence on the algorithm's result, making sure that it is hard for the algorithm's results to be inverted to the individual data. The protection of DP can hold under an extreme threat model, which holds even when: - -- the adversary knows all the details of the DP algorithm -- the adversary has infinite computing power -- the adversary has arbitrary auxiliary information about the raw data - -Regarding the backgrounds, theories and implementation of DP, please refer to [1] for an excellent survey. - -Our scheme is based on label differential privacy (label dp) [2], which provides differential privacy guarantees for the labels of the leader participants during vertical federated learning training, so that an attacker cannot invert the label information of the data from the returned gradients. Under the protection of this scheme, even if the follower party is semi-honest or malicious, the label information of the leader party is guaranteed to be protected, mitigating vFL participants' concerns on the data privacy risk. - -## Algorithm Implementation - -MindSpore Federated adopt a lightweight implementation of label dp. During training, a certain percentage of the labels are randomly flipped before using the label data from the leader participants. Due to the introduction of randomness, an attacker who wants to invert the labels can at most invert the labels after the random flip or perturbation, increasing the difficulty of inverting the original labels and satisfying the differential privacy guarantee. In practical applications, we can adjust the privacy parameter `eps` (which can be interpreted as the ratio of randomly flipped labels) to meet the needs of different scenarios: - -- smaller `eps` (<1.0) corresponds to high privacy, low performance -- larger `eps` (>5.0) corresponds to high performance, low privacy - -![image.png](./images/label_dp_en.png) - -The implementation of this scheme is divided into the binary case and the onehot case. Whether the input labels are binary or onehot is automatically recognized, and the same type of labels will then be output. The detailed algorithm is shown as follows: - -### Binary Labels Protection - -1. Calculate the flip probability $p = \frac{1}{1 + e^{eps}}$ according to the preset privacy parameter eps. -2. Flip each label with probability $p$. - -### Onehot Labels Protection - -1. For n classes of labels, calculate $p_1 = \frac{e^{eps}}{n - 1 + e^{eps}}$, $p_2 = \frac{1}{n - 1 + e^{eps}}$. -2. Randomly scramble the labels according to the following probabilities: the probability of keeping the current label unchanged is $p_1$ and the probability of changing to any of the other n - 1 classes is $p_2$. - -## Quick Experience - -We use the local case in [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo) as an example of how to add label dp to a vertical federated model protection. - -### Front-End Needs - -1. Install MindSpore 1.8.1 or its higher version, please refer to [MindSpore official website installation guide](https://www.mindspore.cn/install). -2. Install MindSpore Federated and the Python libraries which the MindSpore Federated depends on. - - ```shell - cd federated - python -m pip install -r requirements_test.txt - ``` - -3. Prepare the criteo dataset, please refer to [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo). - -### Starting the Script - -1. Download federated - - ```bash - git clone https://gitee.com/mindspore/federated.git - ``` - -2. Go to the folder where the script is located - - ```bash - cd federated/example/splitnn_criteo - ``` - -3. Run the script - - ```bash - sh run_vfl_train_local_label_dp.sh - ``` - -### Viewing Results - -Check loss changes of the model training in the training log `log_local_gpu.txt`. - -```sh -INFO:root:epoch 0 step 100/2582 loss: 0.588637 -INFO:root:epoch 0 step 200/2582 loss: 0.561055 -INFO:root:epoch 0 step 300/2582 loss: 0.556246 -INFO:root:epoch 0 step 400/2582 loss: 0.557931 -INFO:root:epoch 0 step 500/2582 loss: 0.553283 -INFO:root:epoch 0 step 600/2582 loss: 0.549618 -INFO:root:epoch 0 step 700/2582 loss: 0.550243 -INFO:root:epoch 0 step 800/2582 loss: 0.549496 -INFO:root:epoch 0 step 900/2582 loss: 0.549224 -INFO:root:epoch 0 step 1000/2582 loss: 0.547547 -INFO:root:epoch 0 step 1100/2582 loss: 0.546989 -INFO:root:epoch 0 step 1200/2582 loss: 0.552165 -INFO:root:epoch 0 step 1300/2582 loss: 0.546926 -INFO:root:epoch 0 step 1400/2582 loss: 0.558071 -INFO:root:epoch 0 step 1500/2582 loss: 0.548258 -INFO:root:epoch 0 step 1600/2582 loss: 0.546442 -INFO:root:epoch 0 step 1700/2582 loss: 0.549062 -INFO:root:epoch 0 step 1800/2582 loss: 0.546558 -INFO:root:epoch 0 step 1900/2582 loss: 0.542755 -INFO:root:epoch 0 step 2000/2582 loss: 0.543118 -INFO:root:epoch 0 step 2100/2582 loss: 0.542587 -INFO:root:epoch 0 step 2200/2582 loss: 0.545770 -INFO:root:epoch 0 step 2300/2582 loss: 0.554520 -INFO:root:epoch 0 step 2400/2582 loss: 0.551129 -INFO:root:epoch 0 step 2500/2582 loss: 0.545622 -... -``` - -## Deep Experience - -We take the local case in [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo) as an example to introduce the specific operation method of adding label dp protection in the vertical federated model. - -### Front-End Needs - -Same as [Quick Experience](#quick-experience): Install MindSpore, Install MindSpore Federated, and Prepare dataset. - -### Option 1: Call the integrated label dp function in the FLModel class - -MindSpore Federated uses `FLModel` (see [Vertical Federated Learning Model Training Interface](https://www.mindspore.cn/federated/docs/en/master/vertical/vertical_federated_FLModel.html)) and yaml files (see [detailed configuration items of Vertical Federated Learning yaml](https://www.mindspore.cn/federated/docs/en/master/vertical/vertical_federated_yaml.html)) to model the training process of vertical federated learning. - -We have integrated the label dp function in the `FLModel` class. After the normal completion of modeling the entire vertical federated learning training process (for detailed vFl training, see [Vertical Federated Learning Model Training - Pangu Alpha Large Model Cross-Domain Training](https://www.mindspore.cn/federated/docs/en/master/split_pangu_alpha_application.html)), users can simply add the `label_dp` submodule under the `privacy` module in the yaml file of the label side (or add it by user if there is no `privacy` module), and set the `eps` parameter in the `label_dp` module (differential privacy parameter $\epsilon$, the user can set the value of this parameter according to the actual needs). Let the model enjoy label dp protection: - -```yaml -privacy: - label_dp: - eps: 1.0 -``` - -### Option 2: Directly call the LabelDP class - -Users can also call the `LabelDP` class directly to use the label dp function more flexibly. The `LabelDP` class is integrated in the `mindspore_federated.privacy` module. The user can define a `LabelDP` object by specifying the value of `eps`, and then pass the label group as an argument to this object. The `_call_` functio of objext will automatically recognize whether the current input is one-hot or binary label and outputs a label group processed by label dp. Refer to the following example: - -```python -# make private a batch of binary labels -import numpy as np -import mindspore -from mindspore import Tensor -from mindspore_federated.privacy import LabelDP -label_dp = LabelDP(eps=0.0) -label = Tensor(np.zero(5, 1), dtype=mindspore.float32) -dp_label = label_dp(label) - -# make private a batch of one-hot labels -label = Tensor(np.hstack((np.ones((5, 1)), np.zeros((5, 2)))), dtype=mindspore.float32) -dp_label = label_dp(label) -print(dp_label) -``` - -## References - -[1] Dwork C, Roth A. The algorithmic foundations of differential privacy[J]. Foundations and Trends® in Theoretical Computer Science, 2014, 9(3–4): 211-407. - -[2] Ghazi B, Golowich N, Kumar R, et al. Deep learning with label differential privacy[J]. Advances in Neural Information Processing Systems, 2021, 34: 27131-27145. - diff --git a/docs/federated/docs/source_en/secure_vertical_federated_learning_with_EmbeddingDP.md b/docs/federated/docs/source_en/secure_vertical_federated_learning_with_EmbeddingDP.md deleted file mode 100644 index 6b1e2523ff..0000000000 --- a/docs/federated/docs/source_en/secure_vertical_federated_learning_with_EmbeddingDP.md +++ /dev/null @@ -1,135 +0,0 @@ -# Vertical Federated-Feature Protection Based on Information Obfuscation - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/secure_vertical_federated_learning_with_EmbeddingDP.md) - -## Background - -Vertical Federated Learning (vFL) is a mainstream and important joint learning paradigm. In vFL, n (n ≥ 2) participants have a large number of identical users, but the overlap of user characteristics is small. MindSpore Federated uses Split Learning (SL) technology to implement vFL. Taking the two-party split learning shown in the figure below as an example, each participant does not share the original data directly, but shares the intermediate features extracted by the local model for training and inference, satisfying the privacy requirement that the original data will not be leaked. - -However, it has been shown [1] that an attacker (e.g., participant 2) can reduce the corresponding original data (feature) by intermediate features (E), resulting in privacy leakage. For such feature reconstruction attacks, this tutorial provides a lightweight feature protection scheme based on information obfuscation [2]. - -![image.png](./images/vfl_feature_reconstruction_en.png) - -## Scheme Details - -The protection scheme is named EmbeddingDP, and the overall picture is shown below. For the generated intermediate features E, the obfuscation operations such as Quantization and Differential Privacy (DP) are applied sequentially to generate P and send P to the participant 2 as an intermediate feature. The obfuscation operation greatly reduces the correlation between the intermediate features and the original input, which makes the attack more difficult. - -![image.png](./images/vfl_feature_reconstruction_defense_en.png) - -Currently, this tutorial supports single-bit quantization and differential privacy protection based on random responses, and the details of the scheme are shown in the figure below. - -1. **Single-bit quantization**: For the input vector E, single-bit quantization will set the number greater than 0 to 1 and the number less than or equal to 0 to 0, generating the binary vector B. - -2. **Differential privacy based on random responses (DP)**: Differential privacy requires the configuration of the key parameter `eps`. If `eps` is not configured, no differential privacy is performed and the binary vector B is directly used as the intermediate feature to be transmitted. If `eps` is correctly configured (i.e., `eps` is a non-negative real number), the larger `eps` is, the lower the probability of confusion and the smaller the impact on the data, and at the same time, the privacy protection is relatively weak. For any dimension i in the binary vector B, if B[i] = 1, the value is kept constant with probability p. If B[i] = 0, B[i] is flipped with probability q, i.e., so that B[i] = 1. Probabilities p and q are calculated based on the following equations, where e denotes the natural base number. - -$$p = \frac{e^{(eps / 2)}}{e^{(eps / 2)} + 1},\quad q = \frac{1}{e^{(eps / 2)} + 1}$$ - -![image.png](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/vfl_mnist_detail.png) - -## Feature Experience - -This feature can work with one-dimensional or two-dimensional tensor arrays. One-dimensional arrays can only consist of the numbers 0 and 1, and two-dimensional arrays need to consist of one-dimensional vectors in the one-hot encoded format. After [installing MindSpore and Federated](https://mindspore.cn/federated/docs/en/master/federated_install.html#obtaining-mindspore-federated), this feature can be applied to process a tensor array that meets the requirements, as shown in the following sample program: - -```python -import mindspore as ms -from mindspore import Tensor -from mindspore.common.initializer import Normal -from mindspore_federated.privacy import EmbeddingDP - -ori_tensor = Tensor(shape=(2,3), dtype=ms.float32, init=Normal()) -print(ori_tensor) -dp_tensor = EmbeddingDP(eps=1)(ori_tensor) -print(dp_tensor) -``` - -## Application Examples - -### Protecting the Pangu Alpha Large Model Cross-Domain Training - -#### Preparation - -Download the federated code repository and follow the tutorial [Longitudinal Federated Learning Model Training - Pangu Alpha Large Model Cross-Domain Training](https://mindspore.cn/federated/docs/en/master/split_pangu_alpha_application.html#environment-preparation), configure the runtime environment and experimental dataset, and then run the single-process or multi-process example program as needed. - -```bash -git clone https://gitee.com/mindspore/federated.git -``` - -#### Single-process Sample - -1. Go to the directory where the sample is located and execute [running single-process sample](https://mindspore.cn/federated/docs/en/master/split_pangu_alpha_application.html#running-a-single-process-example) in steps 2 to 4: - - ```bash - cd federated/example/splitnn_pangu_alpha - ``` - -2. Start the training script with EmbeddingDP configured: - - ```bash - sh run_pangu_train_local_embedding_dp.sh - ``` - -3. View the training loss in the training log `splitnn_pangu_local.txt`: - - ```text - 2023-02-07 01:34:00 INFO: The embedding is protected by EmbeddingDP with eps 5.000000. - 2023-02-07 01:35:40 INFO: epoch 0 step 10/43391 loss: 10.653997 - 2023-02-07 01:36:25 INFO: epoch 0 step 20/43391 loss: 10.570406 - 2023-02-07 01:37:11 INFO: epoch 0 step 30/43391 loss: 10.470503 - 2023-02-07 01:37:58 INFO: epoch 0 step 40/43391 loss: 10.242296 - 2023-02-07 01:38:45 INFO: epoch 0 step 50/43391 loss: 9.970814 - 2023-02-07 01:39:31 INFO: epoch 0 step 60/43391 loss: 9.735226 - 2023-02-07 01:40:16 INFO: epoch 0 step 70/43391 loss: 9.594692 - 2023-02-07 01:41:01 INFO: epoch 0 step 80/43391 loss: 9.340107 - 2023-02-07 01:41:47 INFO: epoch 0 step 90/43391 loss: 9.356388 - 2023-02-07 01:42:34 INFO: epoch 0 step 100/43391 loss: 8.797981 - ... - ``` - -#### Multi-process Sample - -1. Go to the directory where the sample is located, install the dependency packages, and configure the dataset: - - ```bash - cd federated/example/splitnn_pangu_alpha - python -m pip install -r requirements.txt - cp -r {dataset_dir}/wiki ./ - ``` - -2. Start the training script on Server 1 with EmbeddingDP configured: - - ```bash - sh run_pangu_train_leader_embedding_dp.sh {ip1:port1} {ip2:port2} ./wiki/train ./wiki/train - ``` - - `ip1` and `port1` denote the IP address and port number of the participating local server (server 1). `ip2` and `port2` denote the IP address and port number of the peer server (server 2). `./wiki/train` is the training dataset file path, and `./wiki/test` is the evaluation dataset file path. - -3. Start training script of another participant on Server 2: - - ```bash - sh run_pangu_train_follower.sh {ip2:port2} {ip1:port1} - ``` - -4. View the training loss in the training log `leader_process.log`: - - ```text - 2023-02-07 01:39:15 INFO: config is: - 2023-02-07 01:39:15 INFO: Namespace(ckpt_name_prefix='pangu', ...) - 2023-02-07 01:39:21 INFO: The embedding is protected by EmbeddingDP with eps 5.000000. - 2023-02-07 01:41:05 INFO: epoch 0 step 10/43391 loss: 10.669225 - 2023-02-07 01:41:38 INFO: epoch 0 step 20/43391 loss: 10.571924 - 2023-02-07 01:42:11 INFO: epoch 0 step 30/43391 loss: 10.440327 - 2023-02-07 01:42:44 INFO: epoch 0 step 40/43391 loss: 10.253876 - 2023-02-07 01:43:16 INFO: epoch 0 step 50/43391 loss: 9.958257 - 2023-02-07 01:43:49 INFO: epoch 0 step 60/43391 loss: 9.704673 - 2023-02-07 01:44:21 INFO: epoch 0 step 70/43391 loss: 9.543740 - 2023-02-07 01:44:54 INFO: epoch 0 step 80/43391 loss: 9.376131 - 2023-02-07 01:45:26 INFO: epoch 0 step 90/43391 loss: 9.376905 - 2023-02-07 01:45:58 INFO: epoch 0 step 100/43391 loss: 8.766671 - ... - ``` - -## Works Cited - -[1] Erdogan, Ege, Alptekin Kupcu, and A. Ercument Cicek. "Unsplit: Data-oblivious model inversion, model stealing, and label inference attacks against split learning." arXiv preprint arXiv:2108.09033 (2021). - -[2] Anonymous Author(s). "MistNet: Towards Private Neural Network Training with Local Differential Privacy". (https://github.com/TL-System/plato/blob/2e5290c1f3acf4f604dad223b62e801bbefea211/docs/papers/MistNet.pdf) diff --git a/docs/federated/docs/source_en/secure_vertical_federated_learning_with_TEE.md b/docs/federated/docs/source_en/secure_vertical_federated_learning_with_TEE.md deleted file mode 100644 index a2ba1b5df7..0000000000 --- a/docs/federated/docs/source_en/secure_vertical_federated_learning_with_TEE.md +++ /dev/null @@ -1,281 +0,0 @@ -# Vertical Federated - Feature Protection Based on Trusted Execution Environment - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/secure_vertical_federated_learning_with_TEE.md) - -Note: This is an experimental feature and may be modified or removed in the future. - -## Background - -Vertical federated learning (vFL) is a major branch of federated learning (FL). When different participants have data from the same batch of users but with different attributes, they can use vFL for collaborative training. In vFL, each participant with attributes holds a bottom model, and they input the attributes into the bottom model to get the intermediate result (embedding), which is sent to the participant with labels (referred to as leader paraticipant, participant B as shown in the figure below, as shown in the figure below, and the participant without labels, called follower, as shown in the figure below, as participant A). The leader side uses the embedding and labels to train the upper layer network, and then passes the calculated gradients back to each participant to train the lower layer network. It can be seen that vFL does not require any participant to upload their own raw data to collaboratively train the model. - -![image.png](./images/vfl_1_en.png) - -By avoiding direct uploading of raw data, vFL protects privacy security to a certain extent, which is one of the core goals of vFL. However, it is still possible for an attacker to reverse user information from the uploaded embedding, causing privacy security risks. In such a context, we need to provide stronger privacy guarantees for the embedding and gradients transmitted during vFL training to circumvent privacy security risks. - -Trusted execution environment (TEE) is a hardware-based trusted computing solution that provides data security of the computing process by making the whole computing process in hardware black-boxed relative to the outside world. By shielding the key layer in the vFL network through TEE, it can make the computation of that layer difficult to be reversed, thus ensuring the data security of the vFL training and inference process. - -## Algorithm Introduction - -![image.png](./images/vfl_with_tee_en.png) - -As shown in the figure, if participant A sends the intermediate result $\alpha^{(A)}$ directly to participant B, it is easy for participant B to use the intermediate result to reverse the original data $X^{(A)}$ of participant A. To reduce such risk, participant A encrypts the intermediate result $\alpha^{(A)}$ computed by Bottom Model to get $E(\alpha^{(A)})$ first, and passes $E(\alpha^{(A)})$ to participant B. Participant B inputs $E(\alpha^{(A)})$ into the TEE-based Cut Layer, and then decrypts it into $\alpha^{(A)}$ for forward propagation inside the TEE, and the whole process is black-boxed for B. - -The gradient is passed backward similarly, Cut Layer computes the gradient $\nabla\alpha^{(A)}$, encrypts it into $E(\nabla\alpha^{(A)})$ and then passes it back from participant B to participant A. Then participant A decrypts it into $\nabla\alpha^{(A)}$ and continues to do backward propagation. - -## Quick Experience - -We use the local case in [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo) as an example of configuring TEE protection. - -### Front-End Needs and Environment Configuration - -1. Environmental requirements. - - - Processor: Intel SGX (Intel Sofrware Guard Extensions) support required - - OS: openEuler 20.03, openEuler 21.03 LTS SP2 or higher - -2. Install SGX and SecGear (you can refer to [secGear official website](https://gitee.com/openeuler/secGear)). - - ```sh - sudo yum install -y cmake ocaml-dune linux-sgx-driver sgxsdk libsgx-launch libsgx-urts sgxssl - git clone https://gitee.com/openeuler/secGear.git - cd secGear - source /opt/intel/sgxsdk/environment && source environment - mkdir debug && cd debug && cmake .. && make && sudo make install - ``` - -3. Install MindSpore 1.8.1 or its higher version, please refer to the [MindSpore Official Site Installation Guide](https://www.mindspore.cn/install). - -4. Download federated - - ```sh - git clone https://gitee.com/mindspore/federated.git - ``` - -5. Download four lib files as TEE dependencies: [libsgx_0.so](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/tutorials-develop/federated/libsgx_0.so), [libsecgear.so](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/tutorials-develop/federated/libsecgear.so), [enclave.signed.so](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/tutorials-develop/federated/enclave.signed.so) and [libcsecure_channel_static.a](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/tutorials-develop/federated/libcsecure_channel_static.a). Put them into `mindspore_federated/fl_arch/ccsrc/armour/lib` (make new directory required). - -6. For installing MindSpore Federated relies on Python libraries, see [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo). - -7. Install MindSpore Federated for TEE compilation (need to additionally set compiler options to indicate whether to use SGX or not). - - ```sh - sh federated/build.sh -s on - pip install federated/build/packages/mindspore_federated-XXXXX.whl - ``` - -8. To prepare the criteo dataset, please refer to [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo). - -### Starting the Script - -1. Go to the folder where the script is located - - ```sh - cd federated/example/splitnn_criteo - ``` - -2. Run the script - - ```sh - sh run_vfl_train_local_tee.sh - ``` - -### Viewing Results - -Check loss changes of the model training in the training log `log_local_cpu_tee.txt`. - -```sh -INFO:root:epoch 0 step 100/41322 wide_loss: 0.661822 deep_loss: 0.662018 -INFO:root:epoch 0 step 100/41322 wide_loss: 0.685003 deep_loss: 0.685198 -INFO:root:epoch 0 step 200/41322 wide_loss: 0.649380 deep_loss: 0.649381 -INFO:root:epoch 0 step 300/41322 wide_loss: 0.612189 deep_loss: 0.612189 -INFO:root:epoch 0 step 400/41322 wide_loss: 0.630079 deep_loss: 0.630079 -INFO:root:epoch 0 step 500/41322 wide_loss: 0.602897 deep_loss: 0.602897 -INFO:root:epoch 0 step 600/41322 wide_loss: 0.621647 deep_loss: 0.621647 -INFO:root:epoch 0 step 700/41322 wide_loss: 0.624762 deep_loss: 0.624762 -INFO:root:epoch 0 step 800/41322 wide_loss: 0.622042 deep_loss: 0.622042 -INFO:root:epoch 0 step 900/41322 wide_loss: 0.585274 deep_loss: 0.585274 -INFO:root:epoch 0 step 1000/41322 wide_loss: 0.590947 deep_loss: 0.590947 -INFO:root:epoch 0 step 1100/41322 wide_loss: 0.586775 deep_loss: 0.586775 -INFO:root:epoch 0 step 1200/41322 wide_loss: 0.597362 deep_loss: 0.597362 -INFO:root:epoch 0 step 1300/41322 wide_loss: 0.607390 deep_loss: 0.607390 -INFO:root:epoch 0 step 1400/41322 wide_loss: 0.584204 deep_loss: 0.584204 -INFO:root:epoch 0 step 1500/41322 wide_loss: 0.583618 deep_loss: 0.583618 -INFO:root:epoch 0 step 1600/41322 wide_loss: 0.573294 deep_loss: 0.573294 -INFO:root:epoch 0 step 1700/41322 wide_loss: 0.600686 deep_loss: 0.600686 -INFO:root:epoch 0 step 1800/41322 wide_loss: 0.585533 deep_loss: 0.585533 -INFO:root:epoch 0 step 1900/41322 wide_loss: 0.583466 deep_loss: 0.583466 -INFO:root:epoch 0 step 2000/41322 wide_loss: 0.560188 deep_loss: 0.560188 -INFO:root:epoch 0 step 2100/41322 wide_loss: 0.569232 deep_loss: 0.569232 -INFO:root:epoch 0 step 2200/41322 wide_loss: 0.591643 deep_loss: 0.591643 -INFO:root:epoch 0 step 2300/41322 wide_loss: 0.572473 deep_loss: 0.572473 -INFO:root:epoch 0 step 2400/41322 wide_loss: 0.582825 deep_loss: 0.582825 -INFO:root:epoch 0 step 2500/41322 wide_loss: 0.567196 deep_loss: 0.567196 -INFO:root:epoch 0 step 2600/41322 wide_loss: 0.602022 deep_loss: 0.602022 -``` - -## Deep Experience - -The forward and backward propagation of the TEE layer requires calling its own functions rather than MindSpore, so there are differences in implementation from the usual vFL model. - -Usually, the Top Model and Cut Layer are put together for the backpropagation of the vFL model during training, and are derived and updated in one step by Participant B through MindSpore. When the network containing TEE is back propagated, the Top Model is updated by Participant B based on MindSpore, while the Cut Layer (TEE) is updated within itself after receiving the gradients back from the Top Model. The gradients that need to be passed back to Participant A are encrypted and passed out to Participant B. The whole process is done within the TEE. - -Currently in MindSpore Federated, the above function is used to implement a custom backward propagation process by passing `grad_network` into the `mindspore_federated.vfl_model.FLModel()` definition. Therefore, to implement a network containing TEE, the user can define the backward propagation process for Top Model and Cut Layer in `grad_network` and just pass in `FLModel`, and `FLModel` will go through the user-defined training process during backward propagation. - -We use the local case in [Wide&Deep Vertical Federated Learning Case](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo) as an example of how to configure TEE protection in a vertical federated model. The presentation focuses on the differences between the configuration and the usual case when using TEE, and the same points will be skipped (a detailed description of vFL training can be found in [Vertical Federated Learning Model Training - Pangu Alpha Large Model Cross-Domain Training](https://mindspore.cn/federated/docs/en/master/split_pangu_alpha_application.html)). - -### Front-End Needs and Environment Configuration - -Refer to [Quick Experience](#quick-experience). - -### Defining the Network Model - -#### Forward Propagation - -As usual vFL training, users need to define a network model containing TEE based on the `nn.Cell` provided by MindSpore (see [mindspore.nn.Cell](https://mindspore.cn/docs/en/master/api_python/nn/mindspore.nn.Cell.html#mindspore-nn-cell)) to develop the training network. The difference is that at the layer where the TEE is located, the user needs to call the TEE forward propagation function in the `construct` function of the class: - -```python -from mindspore_federated._mindspore_federated import init_tee_cut_layer, backward_tee_cut_layer, \ - encrypt_client_data, secure_forward_tee_cut_layer - -class TeeLayer(nn.Cell): - """ - TEE layer of the leader net. - Args: - config (class): default config info. - """ - def __init__(self, config): - super(TeeLayer, self).__init__() - init_tee_cut_layer(config.batch_size, 2, 2, 1, 3.5e-4, 1024.0) - self.concat = ops.Concat(axis=1) - self.reshape = ops.Reshape() - - def construct(self, wide_out0, deep_out0, wide_embedding, deep_embedding): - """Convert and encrypt the intermediate data""" - local_emb = self.concat((wide_out0, deep_out0)) - remote_emb = self.concat((wide_embedding, deep_embedding)) - aa = remote_emb.flatten().asnumpy().tolist() - bb = local_emb.flatten().asnumpy().tolist() - enc_aa, enc_aa_len = encrypt_client_data(aa, len(aa)) - enc_bb, enc_bb_len = encrypt_client_data(bb, len(bb)) - tee_output = secure_forward_tee_cut_layer(remote_emb.shape[0], remote_emb.shape[1], - local_emb.shape[1], enc_aa, enc_aa_len, enc_bb, enc_bb_len, 2) - tee_output = self.reshape(Tensor(tee_output), (remote_emb.shape[0], 2)) - return tee_output -``` - -#### Backward Propagation - -In the usual vfl model, backward propagation is automatically configured by the `FLModel` class, but in models containing TEE, the user needs to develop a `grad_network` to define the backward propagation process. `grad_network` is also based on `nn.Cell` and includes a `__init__` function and a `construct` function. When initializing, you need to pass in the network used for training and define in the `__init__` function: the derivative operator, the parameters for the network outside Cut Layer, the loss function, the Optimizer for the network outside the Cut Layer. The example is as follows: - -```python -class LeaderGradNet(nn.Cell): - """ - grad_network of the leader party. - Args: - net (class): LeaderNet, which is the net of leader party. - config (class): default config info. - """ - - def __init__(self, net: LeaderNet): - super().__init__() - self.net = net - self.sens = 1024.0 - - self.grad_op_param_sens = ops.GradOperation(get_by_list=True, sens_param=True) - self.grad_op_input_sens = ops.GradOperation(get_all=True, sens_param=True) - - self.params_head = ParameterTuple(net.head_layer.trainable_params()) - self.params_bottom_deep = vfl_utils.get_params_by_name(self.net.bottom_net, ['deep', 'dense']) - self.params_bottom_wide = vfl_utils.get_params_by_name(self.net.bottom_net, ['wide']) - - self.loss_net = HeadLossNet(net.head_layer) - self.loss_net_l2 = L2LossNet(net.bottom_net, config) - - self.optimizer_head = Adam(self.params_head, learning_rate=3.5e-4, eps=1e-8, loss_scale=self.sens) - self.optimizer_bottom_deep = Adam(self.params_bottom_deep, learning_rate=3.5e-4, eps=1e-8, loss_scale=self.sens) - self.optimizer_bottom_wide = FTRL(self.params_bottom_wide, learning_rate=5e-2, l1=1e-8, l2=1e-8, - initial_accum=1.0, loss_scale=self.sens) -``` - -The input to the `construct` function of `grad_network` is two dictionaries `local_data_batch` and `remote_data_batch`. In the `construct` function, you first need to extract the corresponding data from the dictionaries. Next, the layers other than TEE need to call the MindSpore derivative operators on the parameters and the input for the derivative operation and update with the optimizer respectively. The TEE layer needs to call the built-in functions of TEE for the derivative and update. The examples are as follows: - -```python -def construct(self, local_data_batch, remote_data_batch): - """ - The backward propagation of the leader net. - """ - # data processing - id_hldr = local_data_batch['id_hldr'] - wt_hldr = local_data_batch['wt_hldr'] - label = local_data_batch['label'] - wide_embedding = remote_data_batch['wide_embedding'] - deep_embedding = remote_data_batch['deep_embedding'] - - # forward - wide_out0, deep_out0 = self.net.bottom_net(id_hldr, wt_hldr) - local_emb = self.concat((wide_out0, deep_out0)) - remote_emb = self.concat((wide_embedding, deep_embedding)) - head_input = self.net.cut_layer(wide_out0, deep_out0, wide_embedding, deep_embedding) - loss = self.loss_net(head_input, label) - - # update of head net - sens = ops.Fill()(ops.DType()(loss), ops.Shape()(loss), 1024.0) - grad_head_input, _ = self.grad_op_input_sens(self.loss_net)(head_input, label, sens) - grad_head_param = self.grad_op_param_sens(self.loss_net, self.params_head)(head_input, label, sens) - self.optimizer_head(grad_head_param) - - # update of cut layer - - tmp = grad_head_input.flatten().asnumpy().tolist() - grad_input = backward_tee_cut_layer(remote_emb.shape[0], remote_emb.shape[1], local_emb.shape[1], 1, tmp) - grad_inputa = self.reshape(Tensor(grad_input[0]), remote_emb.shape) - grad_inputb = self.reshape(Tensor(grad_input[1]), local_emb.shape) - grad_cutlayer_input = (grad_inputb[:, :1], grad_inputb[:, 1:2], grad_inputa[:, :1], grad_inputa[:, 1:2]) - - # update of bottom net - grad_bottom_wide = self.grad_op_param_sens(self.net.bottom_net, - self.params_bottom_wide)(id_hldr, wt_hldr, - grad_cutlayer_input[0:2]) - self.optimizer_bottom_wide(grad_bottom_wide) - grad_bottom_deep = self.grad_op_param_sens(self.net.bottom_net, - self.params_bottom_deep)(id_hldr, wt_hldr, - grad_cutlayer_input[0:2]) - grad_bottom_l2 = self.grad_op_param_sens(self.loss_net_l2, self.params_bottom_deep)(sens) - zipped = zip(grad_bottom_deep, grad_bottom_l2) - grad_bottom_deep = tuple(map(sum, zipped)) - self.optimizer_bottom_deep(grad_bottom_deep) - - # output the gradients for follower party - scales = {} - scales['wide_loss'] = OrderedDict(zip(['wide_embedding', 'deep_embedding'], grad_cutlayer_input[2:4])) - scales['deep_loss'] = scales['wide_loss'] - return scales -``` - -#### Definig the Optimizer - -When defining the optimizer, there is no need to define the backward propagation part covered by `grad_network` in the yaml file, otherwise there is no difference with the usual vfl model to define the optimizer. - -### Constructing the Training Script - -#### Constructing the Network - -As the usual vFL training, users need to use the classes provided by MindSpore Federated to wrap their constructed networks into a vertical federated network. Detailed API documentation can be found in [Vertical Federated Training Interface](https://gitee.com/mindspore/federated/blob/master/docs/api/api_python_en/vertical/vertical_federated_FLModel.rst). The difference is that when constructing the leader network, you need to add `grad_network`. - -```python -from mindspore_federated import FLModel, FLYamlData -from network_config import config -from wide_and_deep import LeaderNet, LeaderLossNet, LeaderGradNet - - -leader_base_net = LeaderNet(config) -leader_train_net = LeaderLossNet(leader_base_net, config) -leader_grad_net = LeaderGradNet(leader_base_net, config) - -leader_yaml_data = FLYamlData(config.leader_yaml_path) -leader_fl_model = FLModel(yaml_data=leader_yaml_data, - network=leader_base_net, - grad_network=Leader_grad_net, - train_network=leader_train_net) -``` - -Except for the above, the rest of TEE training is identical to the usual vFL training, and the user can enjoy the security of TEE once the configuration is completed. diff --git a/docs/federated/docs/source_en/sentiment_classification_application.md b/docs/federated/docs/source_en/sentiment_classification_application.md deleted file mode 100644 index 30ae58fe1f..0000000000 --- a/docs/federated/docs/source_en/sentiment_classification_application.md +++ /dev/null @@ -1,563 +0,0 @@ -# Implementing a Sentiment Classification Application (Android) - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/sentiment_classification_application.md) - -Through the federated learning modeling approach of cross-device collaboration, the advantages of device-side data can be fully utilized to avoid uploading sensitive user data directly to the cloud side. Since users attach great importance to the privacy of the text they input when using input methods, and the intelligent functions of input methods are important to improve user experience. Therefore, federated learning is naturally applicable to the input method application scenarios. - -MindSpore Federated has applied the Federated Language Model to the emoji image prediction feature of the input method. The Federated Language Model recommends emoji images that are appropriate for the current context based on chat text data. When modeling with federated learning, each emoji image is defined as a sentiment label category, and each chat phrase corresponds to an emoji image. MindSpore Federated defines the emoji image prediction task as a federated sentiment classification task. - -## Preparations - -### Environment - -For details, see [Server Environment Configuration](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_server.html) and [Client Environment Configuration](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_client.html). - -### Data - -The [training data](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/supervise/client.tar.gz) contains 20 user chat files. The directory structure is as follows: - -```text -datasets/supervise/client/ - ├── 0.txt # Training data of user 0 - ├── 1.txt # Training data of user 1 - │ - │ ...... - │ - └── 19.txt # Training data of user 19 -``` - -The [validation data](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/supervise/eval.tar.gz) contains one chat file. The directory structure is as follows: - -```text -datasets/supervise/eval/ - └── eval.txt # Validation data -``` - -The labels in the training data and validation data correspond to four types of emojis: `good`, `leimu`, `xiaoku`, `xin`. - -### Model-related Files - -The directory structures of the [dictionary](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/vocab.txt) and the [mapping file of dictionary ID](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/vocab_map_ids.txt) related to the model file are as follows: - -```text -datasets/ - ├── vocab.txt # Dictionary - └── vocab_map_ids.txt # Mapping file of Dictionary ID -``` - -## Defining the Network - -The ALBERT language model[1] is used in federated learning. The ALBERT model on the client includes the embedding layer, encoder layer, and classifier layer. - -For details about the network definition, see [source code](https://gitee.com/mindspore/federated/blob/master/tests/st/network/albert.py). - -### Generating a Device-Side Model File - -User can generate a Device-Side Model File as follow, or download the generated [ALBERT Device-Side Model File](https://gitee.com/link?target=https%3A%2F%2Fmindspore-website.obs.cn-north-4.myhuaweicloud.com%2Fnotebook%2Fmodels%2Falbert_supervise.mindir.ms). - -#### Exporting a Model as a MindIR File - -The sample code is as follows: - -```python -import argparse -import os -import random -from time import time -import numpy as np -import mindspore as ms -from mindspore.nn import AdamWeightDecay -from src.config import train_cfg, client_net_cfg -from src.utils import restore_params -from src.model import AlbertModelCLS -from src.cell_wrapper import NetworkWithCLSLoss, NetworkTrainCell - - -def parse_args(): - """ - parse args - """ - parser = argparse.ArgumentParser(description='export task') - parser.add_argument('--device_target', type=str, default='GPU', choices=['Ascend', 'GPU']) - parser.add_argument('--device_id', type=str, default='0') - parser.add_argument('--init_model_path', type=str, default='none') - parser.add_argument('--output_dir', type=str, default='./models/mindir/') - parser.add_argument('--seed', type=int, default=0) - return parser.parse_args() - - -def supervise_export(args_opt): - ms.set_seed(args_opt.seed), random.seed(args_opt.seed) - start = time() - # Parameter configuration - os.environ['CUDA_VISIBLE_DEVICES'] = args_opt.device_id - init_model_path = args_opt.init_model_path - output_dir = args_opt.output_dir - if not os.path.exists(output_dir): - os.makedirs(output_dir) - print('Parameters setting is done! Time cost: {}'.format(time() - start)) - start = time() - - # MindSpore configuration - ms.set_context(mode=ms.GRAPH_MODE, device_target=args_opt.device_target) - print('Context setting is done! Time cost: {}'.format(time() - start)) - start = time() - - # Build model - albert_model_cls = AlbertModelCLS(client_net_cfg) - network_with_cls_loss = NetworkWithCLSLoss(albert_model_cls) - network_with_cls_loss.set_train(True) - print('Model construction is done! Time cost: {}'.format(time() - start)) - start = time() - - # Build optimizer - client_params = [_ for _ in network_with_cls_loss.trainable_params()] - client_decay_params = list( - filter(train_cfg.optimizer_cfg.AdamWeightDecay.decay_filter, client_params) - ) - client_other_params = list( - filter(lambda x: not train_cfg.optimizer_cfg.AdamWeightDecay.decay_filter(x), client_params) - ) - client_group_params = [ - {'params': client_decay_params, 'weight_decay': train_cfg.optimizer_cfg.AdamWeightDecay.weight_decay}, - {'params': client_other_params, 'weight_decay': 0.0}, - {'order_params': client_params} - ] - client_optimizer = AdamWeightDecay(client_group_params, - learning_rate=train_cfg.client_cfg.learning_rate, - eps=train_cfg.optimizer_cfg.AdamWeightDecay.eps) - client_network_train_cell = NetworkTrainCell(network_with_cls_loss, optimizer=client_optimizer) - print('Optimizer construction is done! Time cost: {}'.format(time() - start)) - start = time() - - # Construct data - input_ids = ms.Tensor(np.zeros((train_cfg.batch_size, client_net_cfg.seq_length), np.int32)) - attention_mask = ms.Tensor(np.zeros((train_cfg.batch_size, client_net_cfg.seq_length), np.int32)) - token_type_ids = ms.Tensor(np.zeros((train_cfg.batch_size, client_net_cfg.seq_length), np.int32)) - label_ids = ms.Tensor(np.zeros((train_cfg.batch_size,), np.int32)) - print('Client data loading is done! Time cost: {}'.format(time() - start)) - start = time() - - # Read checkpoint - if init_model_path != 'none': - init_param_dict = ms.load_checkpoint(init_model_path) - restore_params(client_network_train_cell, init_param_dict) - print('Checkpoint loading is done! Time cost: {}'.format(time() - start)) - start = time() - - # Export - ms.export(client_network_train_cell, input_ids, attention_mask, token_type_ids, label_ids, - file_name=os.path.join(output_dir, 'albert_supervise'), file_format='MINDIR') - print('Supervise model export process is done! Time cost: {}'.format(time() - start)) - - -if __name__ == '__main__': - total_time_start = time() - args = parse_args() - supervise_export(args) - print('All is done! Time cost: {}'.format(time() - total_time_start)) - -``` - -#### Converting the MindIR File into an MS File that Can be Used by the Federated Learning Framework on the Device - -For details about how to generate a model file on the device, see [Implementing an Image Classification Application](https://www.mindspore.cn/federated/docs/en/master/image_classification_application.html). - -## Starting the Federated Learning Process - -Start the script on the server. For details, see [Cloud-based Deployment](https://www.mindspore.cn/federated/docs/en/master/deploy_federated_server.html). -For corresponding cloud-side configuration and model weights document, refer to [albert example](https://gitee.com/mindspore/federated/tree/master/example/cross_device_albert). - -Based on the training and inference tasks of the ALBERT model, the overall process is as follows: - -1. Create an Android project. - -2. Build the MindSpore Lite AAR package. - -3. Describe the Android instance program structure. - -4. Write code. - -5. Configure Android project dependencies. - -6. Build and run on Android. - -### Creating an Android Project - -Create a project in Android Studio and install the corresponding SDK. (After the SDK version is specified, Android Studio automatically installs the SDK.) - -![New project](./images/create_android_project.png) - -### Obtaining a Related Package - -1. Obtain MindSpore Lite AAR package - - For details, see [MindSpore Lite](https://www.mindspore.cn/lite/docs/en/master/use/downloads.html). - - ```text - mindspore-lite-full-{version}.aar - ``` - -2. Obtain MindSpore Federated device-side jar package - - For details, see [On-Device Deployment](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html). - - ```text - mindspore_federated/device_client/build/libs/jarAAR/mindspore-lite-java-flclient.jar - ``` - -3. Place the AAR package in the app/libs/ directory of the Android project. - -### Android Instance Program Structure - -```text -app -│ ├── libs # Binary archive file of the Android library project -| | ├── mindspore-lite-full-{version}.aar # MindSpore Lite archive file of the Android version -| | └── mindspore-lite-java-flclient.jar # MindSpore Federate archive file of the Android version -├── src/main -│ ├── assets # Resource directory -| | └── model # Model directory -| | └── albert_supervise.mindir.ms # Pre-trained model file -│ | └── albert_inference.mindir.ms # Inference model file -│ | └── data # Data directory -| | └── 0.txt # training data file -| | └── vocab.txt # Dictionary file -| | └── vocab_map_ids.txt # Dictionary ID mapping file -| | └── eval.txt # Training result evaluation file -| | └── eval_no_label.txt # Inference data file -│ | -│ ├── java # Application code at the Java layer -│ │ └── ... Storing Android code files. Related directories can be customized. -│ │ -│ ├── res # Resource files related to Android -│ └── AndroidManifest.xml # Android configuration file -│ -│ -├── build.gradle # Android project build file -├── download.gradle # Downloading the project dependency files -└── ... -``` - -### Writing Code - -1. AssetCopyer.java: This code file is used to store the resource files in the app/src/main/assets directory of the Android project to the disk of the Android system. In this way, the federated learning framework API can read the resource files based on the absolute path during model training and inference. - - ```java - import android.content.Context; - import java.io.File; - import java.io.FileOutputStream; - import java.io.InputStream; - import java.util.logging.Logger; - public class AssetCopyer { - private static final Logger LOGGER = Logger.getLogger(AssetCopyer.class.toString()); - public static void copyAllAssets(Context context,String destination) { - LOGGER.info("destination: " + destination); - copyAssetsToDst(context,"",destination); - } - // Copy the resource files in the assets directory to the disk of the Android system. You can view the specific path by printing destination. - private static void copyAssetsToDst(Context context,String srcPath, String dstPath) { - try { - // Recursively obtain all file names in the assets directory. - String[] fileNames =context.getAssets().list(srcPath); - if (fileNames.length > 0) { - // Build the destination file object. - File file = new File(dstPath); - // Create a destination directory. - file.mkdirs(); - for (String fileName : fileNames) { - // Copy the file to the specified disk. - if(!srcPath.equals("")) { - copyAssetsToDst(context,srcPath + "/" + fileName,dstPath+"/"+fileName); - }else{ - copyAssetsToDst(context, fileName,dstPath+"/"+fileName); - } - } - } else { - // Build the input stream of the source file. - InputStream is = context.getAssets().open(srcPath); - // Build the output stream of the destination file. - FileOutputStream fos = new FileOutputStream(new File(dstPath)); - // Define a 1024-byte buffer array. - byte[] buffer = new byte[1024]; - int byteCount=0; - // Write the source file to the destination file. - while((byteCount=is.read(buffer))!=-1) { - fos.write(buffer, 0, byteCount); - } - // Refresh the output stream. - fos.flush(); - // Close the input stream. - is.close(); - // Close the output stream. - fos.close(); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - ``` - -2. FlJob.java: This code file is used to define training and inference tasks. For details about federated learning APIs, see [federated Learning APIs](https://www.mindspore.cn/federated/docs/en/master/interface_description_federated_client.html). - - ```java - import android.annotation.SuppressLint; - import android.os.Build; - import androidx.annotation.RequiresApi; - import com.mindspore.flAndroid.utils.AssetCopyer; - import com.mindspore.flclient.FLParameter; - import com.mindspore.flclient.SyncFLJob; - import java.util.Arrays; - import java.util.UUID; - import java.util.logging.Logger; - public class FlJob { - private static final Logger LOGGER = Logger.getLogger(AssetCopyer.class.toString()); - private final String parentPath; - public FlJob(String parentPath) { - this.parentPath = parentPath; - } - // Android federated learning training task - @SuppressLint("NewApi") - @RequiresApi(api = Build.VERSION_CODES.M) - public void syncJobTrain() { - // create dataMap - String trainTxtPath = "data/albert/supervise/client/1.txt"; - String evalTxtPath = "data/albert/supervise/eval/eval.txt"; // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - String vocabFile = "data/albert/supervise/vocab.txt"; // Path of the dictionary file for data preprocessing. - String idsFile = "data/albert/supervise/vocab_map_ids.txt" // Path of the mapping ID file of a dictionary. - Map> dataMap = new HashMap<>(); - List trainPath = new ArrayList<>(); - trainPath.add(trainTxtPath); - trainPath.add(vocabFile); - trainPath.add(idsFile); - List evalPath = new ArrayList<>(); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(evalTxtPath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(vocabFile); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - evalPath.add(idsFile); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - dataMap.put(RunType.TRAINMODE, trainPath); - dataMap.put(RunType.EVALMODE, evalPath); // Not necessary, if you don't need verify model accuracy after getModel, you don't need to set this parameter - - String flName = "com.mindspore.flclient.demo.albert.AlbertClient"; // The package path of AlBertClient.java - String trainModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path - String inferModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - String sslProtocol = "TLSv1.2"; - String deployEnv = "android"; - - // The url for device-cloud communication. Ensure that the Android device can access the server. Otherwise, the message "connection failed" is displayed. - String domainName = "http://10.*.*.*:6668"; - boolean ifUseElb = true; - int serverNum = 4; - int threadNum = 4; - BindMode cpuBindMode = BindMode.NOT_BINDING_CORE; - int batchSize = 32; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setDataMap(dataMap); - flParameter.setTrainModelPath(trainModelPath); - flParameter.setInferModelPath(inferModelPath); - flParameter.setSslProtocol(sslProtocol); - flParameter.setDeployEnv(deployEnv); - flParameter.setDomainName(domainName); - flParameter.setUseElb(ifUseElb); - flParameter.setServerNum(serverNum); - flParameter.setThreadNum(threadNum); - flParameter.setCpuBindMode(BindMode.valueOf(cpuBindMode)); - - // start FLJob - SyncFLJob syncFLJob = new SyncFLJob(); - syncFLJob.flJobRun(); - } - // Android federated learning inference task - public void syncJobPredict() { - // create dataMap - String inferTxtPath = "data/albert/supervise/eval/eval.txt"; - String vocabFile = "data/albert/supervise/vocab.txt"; - String idsFile = "data/albert/supervise/vocab_map_ids.txt"; - Map> dataMap = new HashMap<>(); - List inferPath = new ArrayList<>(); - inferPath.add(inferTxtPath); - inferPath.add(vocabFile); - inferPath.add(idsFile); - dataMap.put(RunType.INFERMODE, inferPath); - - String flName = "com.mindspore.flclient.demo.albert.AlbertClient"; // The package path of AlBertClient.java - String inferModelPath = "ms/albert/train/albert_ad_train.mindir0.ms"; // Absolute path, consistent with trainModelPath - int threadNum = 4; - BindMode cpuBindMode = BindMode.NOT_BINDING_CORE; - int batchSize = 32; - - FLParameter flParameter = FLParameter.getInstance(); - flParameter.setFlName(flName); - flParameter.setDataMap(dataMap); - flParameter.setInferModelPath(inferModelPath); - flParameter.setThreadNum(threadNum); - flParameter.setCpuBindMode(cpuBindMode); - flParameter.setBatchSize(batchSize); - - // inference - SyncFLJob syncFLJob = new SyncFLJob(); - int[] labels = syncFLJob.modelInference(); - LOGGER.info("labels = " + Arrays.toString(labels)); - } - } - ``` - - The above eval_no_label.txt refers to a file where no label exists, with one statement per line. The format reference is as follows, which the user is free to set: - - ```text - 愿以吾辈之青春 护卫这盛世之中华🇨🇳 - girls help girls - 太美了,祝祖国繁荣昌盛! - 中国人民站起来了 - 难道就我一个人觉得这个是plus版本? - 被安利到啦!明天起来就看!早点睡觉莲莲 - ``` - -3. MainActivity.java: This code file is used to start federated learning training and inference tasks. - - ```java - import android.os.Build; - import android.os.Bundle; - import androidx.annotation.RequiresApi; - import androidx.appcompat.app.AppCompatActivity; - import com.huawei.flAndroid.job.FlJob; - import com.huawei.flAndroid.utils.AssetCopyer; - @RequiresApi(api = Build.VERSION_CODES.P) - public class MainActivity extends AppCompatActivity { - private String parentPath; - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - // Obtain the disk path of the application in the Android system. - this.parentPath = this.getExternalFilesDir(null).getAbsolutePath(); - // Copy the resource files in the assets directory to the disk of the Android system. - AssetCopyer.copyAllAssets(this.getApplicationContext(), parentPath); - // Create a thread and start the federated learning training and inference tasks. - new Thread(() -> { - FlJob flJob = new FlJob(parentPath); - flJob.syncJobTrain(); - flJob.syncJobPredict(); - }).start(); - } - } - ``` - -### Configuring Android Project Dependencies - -1. AndroidManifest.xml - - ```xml - - - - - - - - - - - - - - - ``` - -2. app/build.gradle - - ```text - plugins { - id 'com.android.application' - } - android { - // Android SDK build version. It is recommended that the version be later than 27. - compileSdkVersion 30 - buildToolsVersion "30.0.3" - defaultConfig { - applicationId "com.mindspore.flAndroid" - minSdkVersion 27 - targetSdkVersion 30 - versionCode 1 - versionName "1.0" - multiDexEnabled true - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - ndk { - // Different mobile phone models correspond to different NDKs. Mate 20 corresponds to 'armeabi-v7a'. - abiFilters 'armeabi-v7a' - } - } - // Specified NDK version - ndkVersion '21.3.6528147' - sourceSets{ - main { - // Specified JNI directory - jniLibs.srcDirs = ['libs'] - jni.srcDirs = [] - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - } - dependencies { - // AAR package to be scanned in the libs directory - implementation fileTree(dir:'libs',include:['*.aar', '*.jar']) - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' - implementation 'com.android.support:multidex:1.0.3' - - // Add third-party open source software that federated learning relies on - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.14.9' - implementation group: 'com.google.flatbuffers', name: 'flatbuffers-java', version: '2.0.0' - implementation(group: 'org.bouncycastle',name: 'bcprov-jdk15on', version: '1.68') - } - ``` - -### Building and Running on Android - -1. Connect to the Android device and run federated learning training and inference applications. Connect to the Android device through a USB cable for debugging. Click `Run 'app'` to run the federated learning task on your device. - - ![run_app](./images/start_android_project.png) - -2. For details about how to connect the Android Studio to a device for debugging, see . Android Studio can identify the mobile phone only when USB debugging mode is enabled on the mobile phone. For Huawei phones, enable USB debugging mode by choosing `Settings > System & updates > Developer options > USB debugging`. - -3. Continue the installation on the Android device. After the installation is complete, you can start the app to train and infer the ALBERT model for federated learning. - -4. The program running result is as follows: - - ```text - I/SyncFLJob: [model inference] inference finish - I/SyncFLJob: labels = [2, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4] - ``` - -## Results - -The total number of federated learning iterations is 10, the number of client-side local training epochs is 1, and the batchSize is set to 16. - -```text - total acc:0.44488978 - total acc:0.583166333 - total acc:0.609218437 - total acc:0.645290581 - total acc:0.667334669 - total acc:0.685370741 - total acc:0.70741483 - total acc:0.711422846 - total acc:0.719438878 - total acc:0.733466934 -``` - -## References - -[1] Lan Z, Chen M , Goodman S, et al. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations[J]. 2019. diff --git a/docs/federated/docs/source_en/split_pangu_alpha_application.md b/docs/federated/docs/source_en/split_pangu_alpha_application.md deleted file mode 100644 index 3f9594025a..0000000000 --- a/docs/federated/docs/source_en/split_pangu_alpha_application.md +++ /dev/null @@ -1,338 +0,0 @@ -# Vertical Federated Learning Model Training - Pangu Alpha Large Model Cross-Domain Training - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/split_pangu_alpha_application.md) - -## Overview - -With the advancement of hardware computing power and the continuous expansion of network data size, pre-training large models has increasingly become an important research direction in fields such as natural language processing and graphical multimodality. Take Pangu Alpha, which released a large pre-trained model of Chinese NLP in 2021, as an example, the number of model parameters reaches 200 billion, and the training process relies on massive data and advanced computing centers, which limits its application landing and technology evolution. A feasible solution is to integrate the computing power and data resources of multiple participants based on vertical federated learning or split learning techniques to achieve cross-domain collaborative training of pre-trained large models while ensuring security and privacy. - -MindSpore Federated provides a vertical federated learning base functional component based on split learning. This sample provides a federated learning training sample for large NLP models by taking the Pangaea alpha model as an example. - -![Implementing cross-domain training for the Pangu Alpha large model](./images/splitnn_pangu_alpha_en.png) - -As shown in the figure above, in this case, the Pangaea α model is sliced into three sub-networks, such as Embedding, Backbone and Head. The front-level subnetwork Embedding and the end-level subnetwork Head are deployed in the network domain of participant A, and the Backbone subnetwork containing multi-level Transformer modules is deployed in the network domain of participant B. The Embedding subnetwork and Head subnetwork read the data held by participant A and dominate the training and inference tasks for performing the Pangaea α model. - -* In the forward inference stage, Participant A uses the Embedding subnetwork to process the original data and transmits the output Embedding Feature tensor and Attention Mask Feature tensor to Participant B as the input of Participant B Backbone subnetwork. Then, Participant A reads the Hide State Feature tensor output from the Backbone subnetwork as the input of Participant A Head subnetwork, and finally the predicted result or loss value is output by the Head sub-network. - -* In the backward propagation phase, after completing the gradient calculation and parameter update of the Head subnetwork, Participant A transmits the gradient tensor associated with the Hide State Feature tensor to Participant B for the gradient calculation and parameter update of the Backbone subnetwork. Then, Participant B transmits the gradient tensor associated with the Embedding Feature tensor to Participant A for the gradient calculation and parameter update of the Embedding subnetwork after completing the gradient calculation and parameter update of the Backbone subnetwork. - -The feature tensor and gradient tensor exchanged between participant A and participant B during the above forward inference and backward propagation are processed by using privacy security mechanisms and encryption algorithms, so that it is not necessary to transmit the data held by participant A to participant B for implementing the collaboration training of the network model by the two participants. Due to the small number of Embedding and Head subnetwork parameters and the huge number of Backbone subnetwork parameters, this sample application is suitable for the large model collaboration training or deployment between the service side (corresponding to participant A) and the computing center (corresponding to participant B). - -For a detailed introduction to the pangu α model principles, please refer to [MindSpore ModelZoo - pangu_alpha](https://gitee.com/mindspore/models/tree/master/official/nlp/Pangu_alpha), [Introduction to Pengcheng -pangu α](https://git.openi.org.cn/PCL-Platform.Intelligence/PanGu-Alpha), and its [research paper](https://arxiv.org/pdf/2104.12369.pdf). - -## Preparation - -### Environment Preparation - -1. Refer to [Obtaining MindSpore Federated](https://mindspore.cn/federated/docs/en/master/federated_install.html) to install MindSpore version 1.8.1 and above and MindSpore Federated. - -2. Download the MindSpore Federated code and install the Python packages that this sample application depends on. - - ```bash - git https://gitee.com/mindspore/federated.git - cd federated/example/splitnn_pangu_alpha/ - python -m pip install -r requirements.txt - ``` - -### Dataset Preparation - -Before running the sample, refer to [MindSpore ModelZoo - pangu_alpha - Dataset Generation](https://gitee.com/mindspore/models/tree/master/official/nlp/Pangu_alpha#dataset-generation) and use the preprocess.py script to convert the raw text corpus for training into a dataset that can be used for model training. - -## Defining the Vertical Federated Learning Training Process - -MindSpore Federated Vertical Federated Learning Framework uses FLModel (see [Vertical Federated Learning Model Training Interface](https://mindspore.cn/federated/docs/en/master/vertical/vertical_federated_FLModel.html)) and yaml files (see [Yaml Configuration file for model training of vertical federated learning](https://mindspore.cn/federated/docs/en/master/vertical/vertical_federated_yaml.html)), to model vertical federated learning training process. - -### Defining the Network Model - -1. Call the function components provided by MindSpore and take nn.Cell (see [mindspore.nn.Cell](https://mindspore.cn/docs/en/master/api_python/nn/mindspore.nn.Cell.html#mindspore-nn-cell)) as a base class to program the training network of this participant to be involved in vertical federated learning. Taking the Embedding subnetwork of participant A in this application practice as an example, [sample code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/src/split_pangu_alpha.py) is as follows: - - ```python - class EmbeddingLossNet(nn.Cell): - """ - Train net of the embedding party, or the tail sub-network. - Args: - net (class): EmbeddingLayer, which is the 1st sub-network. - config (class): default config info. - """ - - def __init__(self, net: EmbeddingLayer, config): - super(EmbeddingLossNet, self).__init__(auto_prefix=False) - - self.batch_size = config.batch_size - self.seq_length = config.seq_length - dp = config.parallel_config.data_parallel - self.eod_token = config.eod_token - self.net = net - self.slice = P.StridedSlice().shard(((dp, 1),)) - self.not_equal = P.NotEqual().shard(((dp, 1), ())) - self.batch_size = config.batch_size - self.len = config.seq_length - self.slice2 = P.StridedSlice().shard(((dp, 1, 1),)) - - def construct(self, input_ids, position_id, attention_mask): - """forward process of FollowerLossNet""" - tokens = self.slice(input_ids, (0, 0), (self.batch_size, -1), (1, 1)) - embedding_table, word_table = self.net(tokens, position_id, batch_valid_length=None) - return embedding_table, word_table, position_id, attention_mask - ``` - -2. In the yaml configuration file, describe the corresponding name, input, output and other information of the training network. Taking the Embedding subnetwork of Participant A in this application practice, [example code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/embedding.yaml) is as follows: - - ```yaml - train_net: - name: follower_loss_net - inputs: - - name: input_ids - source: local - - name: position_id - source: local - - name: attention_mask - source: local - outputs: - - name: embedding_table - destination: remote - - name: word_table - destination: remote - - name: position_id - destination: remote - - name: attention_mask - destination: remote - ``` - - The `name` field is the name of the training network and will be used to name the checkpoints file saved during the training process. The `inputs` field is the list of input tensor in the training network, and the `outputs` field is the list of output tensor in the training network. - - The `name` fields under the `inputs` and `outputs` fields are the input/output tensor names. The names and order of the input/output tensors need to correspond strictly to the inputs/outputs of the `construct` method in the corresponding Python code of the training network. - - `source` under the `inputs` field identifies the data source of the input tensor, with `local` representing that the input tensor is loaded from local data and `remote` representing that the input tensor is from network transmission of other participants. - - `destination` under the `outputs` field identifies the destination of the output tensor, with `local` representing the output tensor for local use only, and `remote` representing that the output tensor is transferred to other participants via networks. - -3. Optionally, a similar approach is used to model the assessment network of vertical federated learning that this participant is to be involved. - -### Defining the Optimizer - -1. Call the functional components provided by MindSpore, to program the optimizer for parameter updates of this participant training network. As an example of a custom optimizer used by Participant A for Embedding subnetwork training in this application practice, [sample code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/src/pangu_optim.py) is as follows: - - ```python - class PanguAlphaAdam(TrainOneStepWithLossScaleCell): - """ - Customized Adam optimizer for training of pangu_alpha in the splitnn demo system. - """ - def __init__(self, net, optim_inst, scale_update_cell, config, yaml_data) -> None: - # Custom optimizer-related operators - ... - - def __call__(self, *inputs, sens=None): - # Define the gradient calculation and parameter update process - ... - ``` - - Developers can customize the input and output of the `__init__` method in the optimizer class, but the input of the `__call__` method in the optimizer class needs to contain only `inputs` and `sens`. `inputs` is of type `list`, corresponding to the input tensor list of the training network, and its elements are of type `mindspore.Tensor`. `sens` is of type `dict`, which saves the weighting coefficients used to calculate the gradient values of the training network parameters, and its key is a gradient weighting coefficient identifier of type `str`. Value is of type `dict`, whose key is of type `str`, and it is the name of the output tensor of the training network. Value is of type `mindspore.Tensor`, which is the weighting coefficient of the training network parameter gradient values corresponding to this output tensor. - -2. In the yaml configuration file, describe the corresponding gradient calculation, parameter update, and other information of the optimizer. The [sample code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/embedding.yaml) is as follows: - - ```yaml - opts: - - type: CustomizedAdam - grads: - - inputs: - - name: input_ids - - name: position_id - - name: attention_mask - output: - name: embedding_table - sens: hidden_states - - inputs: - - name: input_ids - - name: position_id - - name: attention_mask - output: - name: word_table - sens: word_table - params: - - name: word_embedding - - name: position_embedding - hyper_parameters: - learning_rate: 5.e-6 - eps: 1.e-8 - loss_scale: 1024.0 - ``` - - The `type` field is of the optimizer type. Here is the developer-defined optimizer. - - The `grads` field is a list of `GradOperation` associated with the optimizer, which will use the `GradOperation` operator in the list to compute the output gradient values and update the training network parameters. The `inputs` and `output` fields are input and output tensor lists of the `GradOperation` operator, whose elements are an input/output tensor name, respectively. The `sens` field is the gradient weighting coefficient or the sensitivity identifier of the `GradOperation` operator (refer to [mindspore.ops.GradOperation](https://mindspore.cn/docs/en/master/api_python/ops/mindspore.ops.GradOperation.html?highlight=gradoperation)). - - The `params` field is a list of training network parameter names to be updated by the optimizer, whose elements are the names of one training network parameter each. In this example, the custom optimizer will update the network parameters with the `word_embedding` string and the `position_embedding` string in their names. - - The `hyper_parameters` field is a list of hyperparameters for the optimizer. - -### Defining Gradient Weighting Coefficient Calculation - -According to the chain rule of gradient calculation, the subnetwork located at the backstream of the global network needs to calculate the gradient value of its output tensor relative to the input tensor, i.e., the gradient weighting coefficient or sensitivity, to be passed to the sub-network located at the upstream of the global network for its training parameter update. - -MindSpore Federated uses the `GradOperation` operator to complete the above gradient weighting coefficient or sensitivity calculation process. The developer needs to describe the `GradOperation` operator used to calculate the gradient weighting coefficients in the yaml configuration file. Taking Head of participant A in this application practice as an example, [sample code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/head.yaml) is as follows: - -```yaml -grad_scalers: - - inputs: - - name: hidden_states - - name: input_ids - - name: word_table - - name: position_id - - name: attention_mask - output: - name: output - sens: 1024.0 -``` - -The `inputs` and `output` fields are lists of input and output tensors of the `GradOperation` operator, whose elements are input/output tensor names, respectively. The `sens` field is the gradient weighting coefficient or sensitivity of this `GradOperation` operator (refer to [mindspore.ops.GradOperation](https://mindspore.cn/docs/en/master/api_python/ops/mindspore.ops.GradOperation.html?highlight=gradoperation)). If it is a `float` or `int` type value, a constant tensor will be constructed as the gradient weighting coefficient. If it is a `str` type string, the tensor corresponding to the name will be parsed as a weighting coefficient from the weighting coefficients transmitted by the other participants via the network. - -### Executing the Training - -1. After completing the above Python programming development and yaml configuration file, the `FLModel` class and `FLYamlData` class provided by MindSpore Federated are used to build the vertical federated learning process. Taking the Embedding subnetwork of participant A in this application practice as an example, [sample code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/run_pangu_train_local.py) is as follows: - - ```python - embedding_yaml = FLYamlData('./embedding.yaml') - embedding_base_net = EmbeddingLayer(config) - embedding_eval_net = embedding_train_net = EmbeddingLossNet(embedding_base_net, config) - embedding_with_loss = _VirtualDatasetCell(embedding_eval_net) - embedding_params = embedding_with_loss.trainable_params() - embedding_group_params = set_embedding_weight_decay(embedding_params) - embedding_optim_inst = FP32StateAdamWeightDecay(embedding_group_params, lr, eps=1e-8, beta1=0.9, beta2=0.95) - embedding_optim = PanguAlphaAdam(embedding_train_net, embedding_optim_inst, update_cell, config, embedding_yaml) - - embedding_fl_model = FLModel(yaml_data=embedding_yaml, - network=embedding_train_net, - eval_network=embedding_eval_net, - optimizers=embedding_optim) - ``` - - The `FLYamlData` class mainly completes the parsing and verification of yaml configuration files, and the `FLModel` class mainly provides the control interface for vertical federated learning training, inference and other processes. - -2. Call the interface methods of the `FLModel` class to perform vertical federated learning training. Taking the Embedding subnetwork of participant A in this application practice as an example, [sample code](https://gitee.com/mindspore/federated/blob/master/example/splitnn_pangu_alpha/run_pangu_train_local.py) is as follows: - - ```python - if opt.resume: - embedding_fl_model.load_ckpt() - ... - for epoch in range(50): - for step, item in enumerate(train_iter, start=1): - # forward process - step = epoch * train_size + step - embedding_out = embedding_fl_model.forward_one_step(item) - ... - # backward process - embedding_fl_model.backward_one_step(item, sens=backbone_scale) - ... - if step % 1000 == 0: - embedding_fl_model.save_ckpt() - ``` - - The `forward_one_step` method and the `backward_one_step` method perform the forward inference and backward propagation operations of a data batch, respectively. The `load_ckpt` method and the `save_ckpt` method perform the checkpoints file loading and saving operations respectively. - -## Running the Example - -This example provides 2 sample programs, both running as shell scripts to pull up Python programs. - -1. `run_pangu_train_local.sh`: Single-process example program. Participant A and participant B are trained in the same process, which transmits the feature tensor and gradient tensor directly to the other participant in the form of intra-program variables. - -2. `run_pangu_train_leader.sh` and `run_pangu_train_follower.sh`: Multi-process example program. Participant A and participant B run a separate process, which encapsulates the feature tensor and gradient tensor as protobuf messages, respectively, and transmits them to the other participant via the https communication interface. `run_pangu_train_leader.sh` and `run_pangu_train_follower.sh` can be run on two servers separately to achieve cross-domain collaboration training. - -3. The current vertical federated distributed training supports https cross-domain encrypted communication. The startup command is as follows: - - ```bash - # Start the leader process in https encrypted communication mode: - bash run_pangu_train_leader.sh 127.0.0.1:10087 127.0.0.1:10086 /path/to/train/data_set /path/to/eval/data_set True server_cert_password client_cert_password /path/to/server_cert /path/to/client_cert /path/to/ca_cert - - # Start the follower process in https encrypted communication mode: - bash run_pangu_train_follower.sh 127.0.0.1:10086 127.0.0.1:10087 True server_cert_password client_cert_password /path/to/server_cert /path/to/client_cert /path/to/ca_cert - ``` - -### Running a Single-Process Example - -Taking `run_pangu_train_local.sh` as an example, run the sample program as follows: - -1. Go to the sample program directory: - - ```bash - cd federated/example/splitnn_pangu_alpha/ - ``` - -2. Taking the wiki dataset as an example, copy the dataset to the sample program directory: - - ```bash - cp -r {dataset_dir}/wiki ./ - ``` - -3. Install the dependent Python packages: - - ```bash - python -m pip install -r requirements.txt - ``` - -4. Modify `src/utils.py` to configure parameters such as checkpoint file load path, training dataset path, and evaluation dataset path. Examples are as follows: - - ```python - parser.add_argument("--load_ckpt_path", type=str, default='./checkpoints', help="predict file path.") - parser.add_argument('--data_url', required=False, default='./wiki/train/', help='Location of data.') - parser.add_argument('--eval_data_url', required=False, default='./wiki/eval/', help='Location of eval data.') - ``` - -5. Execute the training script: - - ```bash - ./run_pangu_train_local.sh - ``` - -6. View the training loss information recorded in the training log `splitnn_pangu_local.txt`. - - ```text - INFO:root:epoch 0 step 10/43391 loss: 10.616087 - INFO:root:epoch 0 step 20/43391 loss: 10.424824 - INFO:root:epoch 0 step 30/43391 loss: 10.209235 - INFO:root:epoch 0 step 40/43391 loss: 9.950026 - INFO:root:epoch 0 step 50/43391 loss: 9.712448 - INFO:root:epoch 0 step 60/43391 loss: 9.557744 - INFO:root:epoch 0 step 70/43391 loss: 9.501564 - INFO:root:epoch 0 step 80/43391 loss: 9.326054 - INFO:root:epoch 0 step 90/43391 loss: 9.387547 - INFO:root:epoch 0 step 100/43391 loss: 8.795234 - ... - ``` - - The corresponding visualization results are shown below, where the horizontal axis is the number of training steps, the vertical axis is the loss value, the red curve is the Pangu α training loss value, and the blue curve is the Pangu α training loss value based on splitting learning in this example. The trend of decreasing loss values is basically the same, and the correctness of the training process can be verified considering that the initialization of the network parameter values has randomness. - - ![Cross-domain training results of the Pangu alpha large model](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha_result.png) - -### Running a Multi-Process Example - -1. Similar to the single-process example, go to the sample program directory, and install the dependent Python packages: - - ```bash - cd federated/example/splitnn_pangu_alpha/ - python -m pip install -r requirements.txt - ``` - -2. Copy the dataset to the sample program directory on Server 1: - - ```bash - cp -r {dataset_dir}/wiki ./ - ``` - -3. Start the training script for Participant A on Server 1: - - ```bash - ./run_pangu_train_leader.sh {ip_address_server1} {ip_address_server2} ./wiki/train ./wiki/train - ``` - - The first parameter of the training script is the IP address and port number of the local server (Server 1), and the second parameter is the IP address and port number of the peer server (Server 2). The third parameter is the training dataset file path. The fourth parameter is the evaluation dataset file path, and the fifth parameter identifies whether to load an existing checkpoint file. - -4. Start the training script for Participant B on Server 2. - - ```bash - ./run_pangu_train_follower.sh {ip_address_server2} {ip_address_server1} - ``` - - The first parameter of the training script is the IP address and port number of the local server (Server 2), and the second parameter is the IP address and port number of the peer server (Server 2). The third parameter identifies whether to load an existing checkpoint file. - -5. Check the training loss information recorded in the training log `leader_processs.log` of Server 1. If the trend of its loss information is consistent with that of the centralized training loss values of Pangaea α, the correctness of the training process can be verified. \ No newline at end of file diff --git a/docs/federated/docs/source_en/split_wnd_application.md b/docs/federated/docs/source_en/split_wnd_application.md deleted file mode 100644 index 13b8f996ee..0000000000 --- a/docs/federated/docs/source_en/split_wnd_application.md +++ /dev/null @@ -1,280 +0,0 @@ -# Vertical Federated Learning Model Training - Wide&Deep Recommendation Application - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/split_wnd_application.md) - -## Overview - -MindSpore Federated provides a vertical federated learning infrastructure component based on Split Learning. - -Vertical FL model training scenarios: including two stages of forward propagation and backward propagation/parameter update. - -Forward propagation: After the data intersection module processes the parameter-side data and aligns the feature information and label information, the Follower participant inputs the local feature information into the precursor network model, and the feature tensor output from the precursor network model is encrypted/scrambled by the privacy security module and transmitted to the Leader participant by the communication module. The Leader participants input the received feature tensor into the post-level network model, and the predicted values and local label information output from the post-level network model are used as the loss function input to calculate the loss values. - -![](./images/vfl_forward_en.png) - -Backward propagation: The Leader participant calculates the parameter gradient of the backward network model based on the loss value, trains and updates the parameters of the backward network model, and transmits the gradient tensor associated with the feature tensor to the Follower participant by the communication module after encrypted and scrambled by the privacy security module. The Follower participant uses the received gradient tensor for training and update of of frontward network model parameters. - -![](./images/vfl_backward_en.png) - -Vertical FL model inference scenario: similar to the forward propagation phase of the training scenario, but with the predicted values of the backward network model directly as the output, without calculating the loss values. - -## Network and Data - -![](./images/splitnn_wide_and_deep_en.png) - -This sample provides a federated learning training example for recommendation-oriented tasks by using Wide&Deep network and Criteo dataset as examples. As shown above, in this case, the vertical federated learning system consists of the Leader participant and the Follower participant. Among them, the Leader participant holds 20×2 dimensional feature information and label information, and the Follower participant holds 19×2 dimensional feature information. Leader participant and Follower participant deploy 1 set of Wide&Deep network respectively, and realize the collaborative training of the network model by exchanging embedding vectors and gradient vectors without disclosing the original features and label information. - -For a detailed description of the principle properties of Wide&Deep networks, see [MindSpore ModelZoo - Wide&Deep - Wide&Deep Overview](https://gitee.com/mindspore/models/blob/master/official/recommend/Wide_and_Deep/README.md#widedeep-description) and its [research paper](https://arxiv.org/pdf/1606.07792.pdf). - -## Dataset Preparation - -This sample is based on the Criteo dataset for training and testing. Before running the sample, you need to refer to [MindSpore ModelZoo - Wide&Deep - Quick Start](https://gitee.com/mindspore/models/blob/master/official/recommend/Wide_and_Deep/README.md#quick-start) to pre-process the Criteo dataset. - -1. Clone MindSpore ModelZoo code. - - ```shell - git clone https://gitee.com/mindspore/models.git - cd models/official/recommend/Wide_and_Deep - ``` - -2. Download the dataset - - ```shell - mkdir -p data/origin_data && cd data/origin_data - wget http://go.criteo.net/criteo-research-kaggle-display-advertising-challenge-dataset.tar.gz - tar -zxvf criteo-research-kaggle-display-advertising-challenge-dataset.tar.gz - ``` - -3. Use this script to pre-process the data. The preprocessing process may take up to an hour and the generated MindRecord data is stored in the data/mindrecord path. The preprocessing process consumes a lot of memory, so it is recommended to use a server. - - ```shell - cd ../.. - python src/preprocess_data.py --data_path=./data/ --dense_dim=13 --slot_dim=26 --threshold=100 --train_line_count=45840617 --skip_id_convert=0 - ``` - -## Quick Experience - -This sample runs as a Shell script pulling up a Python program. - -1. Refer to [MindSpore website guidance](https://www.mindspore.cn/install), installing MindSpore 1.8.1 or higher. - -2. Use to install the Python libraries that MindSpore Federated depends on. - - ```shell - cd federated - python -m pip install -r requirements_test.txt - ``` - -3. Copy the Criteo dataset after [preprocessing](#dataset-preparation) to this directory. - - ```shell - cd tests/example/splitnn_criteo - cp -rf ${DATA_ROOT_PATH}/data/mindrecord/ ./ - ``` - -4. Run the sample program to start the script. - - ```shell - # start leader: - bash run_vfl_train_leader.sh 127.0.0.1:10087 127.0.0.1:10086 /path/to/data_set False - - # start follower: - bash run_vfl_train_follower.sh 127.0.0.1:10086 127.0.0.1:10087 /path/to/data_set False - ``` - - or - - ```shell - # Start the leader process with https encrypted communication: - bash run_vfl_train_leader.sh 127.0.0.1:10087 127.0.0.1:10086 /path/to/data_set True server_cert_password client_cert_password /path/to/server_cert /path/to/client_cert /path/to/ca_cert - - # Start the follower process using https encrypted communication: - bash run_vfl_train_follower.sh 127.0.0.1:10086 127.0.0.1:10087 /path/to/data_set True server_cert_password client_cert_password /path/to/server_cert /path/to/client_cert /path/to/ca_cert - ``` - -5. View training log `log_local_gpu.txt`. - - ```text - INFO:root:epoch 0 step 100/2582 wide_loss: 0.528141 deep_loss: 0.528339 - INFO:root:epoch 0 step 200/2582 wide_loss: 0.499408 deep_loss: 0.499410 - INFO:root:epoch 0 step 300/2582 wide_loss: 0.477544 deep_loss: 0.477882 - INFO:root:epoch 0 step 400/2582 wide_loss: 0.474377 deep_loss: 0.476771 - INFO:root:epoch 0 step 500/2582 wide_loss: 0.472926 deep_loss: 0.475157 - INFO:root:epoch 0 step 600/2582 wide_loss: 0.464844 deep_loss: 0.467011 - INFO:root:epoch 0 step 700/2582 wide_loss: 0.464496 deep_loss: 0.466615 - INFO:root:epoch 0 step 800/2582 wide_loss: 0.466895 deep_loss: 0.468971 - INFO:root:epoch 0 step 900/2582 wide_loss: 0.463155 deep_loss: 0.465299 - INFO:root:epoch 0 step 1000/2582 wide_loss: 0.457914 deep_loss: 0.460132 - INFO:root:epoch 0 step 1100/2582 wide_loss: 0.453361 deep_loss: 0.455767 - INFO:root:epoch 0 step 1200/2582 wide_loss: 0.457566 deep_loss: 0.459997 - INFO:root:epoch 0 step 1300/2582 wide_loss: 0.460841 deep_loss: 0.463281 - INFO:root:epoch 0 step 1400/2582 wide_loss: 0.460973 deep_loss: 0.463365 - INFO:root:epoch 0 step 1500/2582 wide_loss: 0.459204 deep_loss: 0.461563 - INFO:root:epoch 0 step 1600/2582 wide_loss: 0.456771 deep_loss: 0.459200 - INFO:root:epoch 0 step 1700/2582 wide_loss: 0.458479 deep_loss: 0.460963 - INFO:root:epoch 0 step 1800/2582 wide_loss: 0.449609 deep_loss: 0.452122 - INFO:root:epoch 0 step 1900/2582 wide_loss: 0.451775 deep_loss: 0.454225 - INFO:root:epoch 0 step 2000/2582 wide_loss: 0.460343 deep_loss: 0.462826 - INFO:root:epoch 0 step 2100/2582 wide_loss: 0.456814 deep_loss: 0.459201 - INFO:root:epoch 0 step 2200/2582 wide_loss: 0.452091 deep_loss: 0.454555 - INFO:root:epoch 0 step 2300/2582 wide_loss: 0.461522 deep_loss: 0.464001 - INFO:root:epoch 0 step 2400/2582 wide_loss: 0.442355 deep_loss: 0.444790 - INFO:root:epoch 0 step 2500/2582 wide_loss: 0.450675 deep_loss: 0.453242 - ... - ``` - -6. Close training process. - - ```shell - pid=`ps -ef|grep run_vfl_train_socket |grep -v "grep" | grep -v "finish" |awk '{print $2}'` && for id in $pid; do kill -9 $id && echo "killed $id"; done - ``` - -## Deep Experience - -Before starting the vertical federated learning training, users need to construct the dataset iterator and network structure as they do for normal deep learning training with MindSpore. - -### Building the Dataset - -The current simulation process is used, i.e., both participants read the same data source. But for training, both participants use only part of the feature or label data, as shown in [Network and Data](#network-and-data). Later, the [Data Access](https://www.mindspore.cn/federated/docs/en/master/data_join/data_join.html) method will be used for both participants to import the data individually. - -```python -from run_vfl_train_local import construct_local_dataset - - -ds_train, _ = construct_local_dataset() -train_iter = ds_train.create_dict_iterator() -``` - -### Building the Network - -Leader participant network: - -```python -from wide_and_deep import WideDeepModel, BottomLossNet, LeaderTopNet, LeaderTopLossNet, LeaderTopEvalNet, \ - LeaderTeeNet, LeaderTeeLossNet, LeaderTopAfterTeeNet, LeaderTopAfterTeeLossNet, LeaderTopAfterTeeEvalNet, \ - AUCMetric -from network_config import config - - -# Leader Top Net -leader_top_base_net = LeaderTopNet() -leader_top_train_net = LeaderTopLossNet(leader_top_base_net) -... -# Leader Bottom Net -leader_bottom_eval_net = leader_bottom_base_net = WideDeepModel(config, config.leader_field_size) -leader_bottom_train_net = BottomLossNet(leader_bottom_base_net, config) -``` - -Follower participant network: - -```python -from wide_and_deep import WideDeepModel, BottomLossNet -from network_config import config - - -follower_bottom_eval_net = follower_base_net = WideDeepModel(config, config.follower_field_size) -follower_bottom_train_net = BottomLossNet(follower_base_net, config) -``` - -### Vertical Federated Communication Base - -Before training, we first have to start the communication base to make Leader and Follower participants group network. Detailed API documentation can be found in [Vertical Federated Communicator](https://gitee.com/mindspore/federated/blob/master/docs/api/api_python_en/vertical/vertical_communicator.rst). - -Both parties need to import the vertical federated communicator: - -```python -from mindspore_federated.startup.vertical_federated_local import VerticalFederatedCommunicator, ServerConfig -``` - -Leader participant communication base: - -```python -http_server_config = ServerConfig(server_name='leader', server_address=config.http_server_address) -remote_server_config = ServerConfig(server_name='follower', server_address=config.remote_server_address) -self.vertical_communicator = VerticalFederatedCommunicator(http_server_config=http_server_config, - remote_server_config=remote_server_config, - compress_configs=compress_configs) -self.vertical_communicator.launch() -``` - -Follower participant communication base: - -```python -http_server_config = ServerConfig(server_name='follower', server_address=config.http_server_address) -remote_server_config = ServerConfig(server_name='leader', server_address=config.remote_server_address) -self.vertical_communicator = VerticalFederatedCommunicator(http_server_config=http_server_config, - remote_server_config=remote_server_config, - compress_configs=compress_configs) -self.vertical_communicator.launch() -``` - -### Building a Vertical Federated Network - -Users need to use the classes provided by MindSpore Federated to wrap their constructed networks into a vertical federated network. The detailed API documentation can be found in [Vertical Federated Training Interface](https://gitee.com/mindspore/federated/blob/master/docs/api/api_python_en/vertical/vertical_federated_FLModel.rst). - -Both parties need to import the vertical federated training interface: - -```python -from mindspore_federated import FLModel, FLYamlData -``` - -Leader participant vertical federated network: - -```python -leader_bottom_yaml_data = FLYamlData(config.leader_bottom_yaml_path) -leader_top_yaml_data = FLYamlData(config.leader_top_yaml_path) -... -self.leader_top_fl_model = FLModel(yaml_data=leader_top_yaml_data, - network=leader_top_train_net, - metrics=self.eval_metric, - eval_network=leader_top_eval_net) -... -self.leader_bottom_fl_model = FLModel(yaml_data=leader_bottom_yaml_data, - network=leader_bottom_train_net, - eval_network=leader_bottom_eval_net) -``` - -Follower participant vertical federated network: - -```python -follower_bottom_yaml_data = FLYamlData(config.follower_bottom_yaml_path) -... -self.follower_bottom_fl_model = FLModel(yaml_data=follower_bottom_yaml_data, - network=follower_bottom_train_net, - eval_network=follower_bottom_eval_net) -``` - -### Vertical Training - -For the process of vertical training, refer to [overview](#overview). - -Leader participant training process: - -```python -for epoch in range(config.epochs): - for step, item in enumerate(train_iter): - leader_embedding = self.leader_bottom_fl_model.forward_one_step(item) - item.update(leader_embedding) - follower_embedding = self.vertical_communicator.receive("follower") - ... - leader_out = self.leader_top_fl_model.forward_one_step(item, follower_embedding) - grad_scale = self.leader_top_fl_model.backward_one_step(item, follower_embedding) - scale_name = 'loss' - ... - grad_scale_follower = {scale_name: OrderedDict(list(grad_scale[scale_name].items())[2:])} - self.vertical_communicator.send_tensors("follower", grad_scale_follower) - grad_scale_leader = {scale_name: OrderedDict(list(grad_scale[scale_name].items())[:2])} - self.leader_bottom_fl_model.backward_one_step(item, sens=grad_scale_leader) -``` - -Follower participant training process: - -```python -for _ in range(config.epochs): - for _, item in enumerate(train_iter): - follower_embedding = self.follower_bottom_fl_model.forward_one_step(item) - self.vertical_communicator.send_tensors("leader", follower_embedding) - scale = self.vertical_communicator.receive("leader") - self.follower_bottom_fl_model.backward_one_step(item, sens=scale) -``` - diff --git a/docs/federated/docs/source_en/vertical_federated_trainer.rst b/docs/federated/docs/source_en/vertical_federated_trainer.rst deleted file mode 100644 index ccd9b3c96b..0000000000 --- a/docs/federated/docs/source_en/vertical_federated_trainer.rst +++ /dev/null @@ -1,12 +0,0 @@ -Vertical Federated Trainer -========================== - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/vertical_federated_trainer.rst - :alt: View Source On Gitee - -.. toctree:: - :maxdepth: 1 - - vertical/vertical_federated_FLModel - vertical/vertical_federated_yaml \ No newline at end of file diff --git a/docs/federated/docs/source_en/vfl_communication_compress.md b/docs/federated/docs/source_en/vfl_communication_compress.md deleted file mode 100644 index ae13e0c55d..0000000000 --- a/docs/federated/docs/source_en/vfl_communication_compress.md +++ /dev/null @@ -1,231 +0,0 @@ -# Vertical Federated Learning Communication Compression - -[![View Source On Gitee](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source_en.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_en/vfl_communication_compress.md) - -Vertical federated learning traffic affects user experience (user traffic, communication latency, federated learning training efficiency) and is limited by performance constraints (memory, bandwidth, CPU usage). Small amount of communication helps a lot to improve user experience and reduce performance bottlenecks, so it needs to be compressed. MindSpore Federated implements bi-directional communication compression between Leader and Follower in a vertical federated application scenario. - -## Overall Process - -![image1](./images/vfl_normal_communication_compress_en.png) - -Figure 1 Framework diagram of general vertical federated learning communication compression process - -First perform the Embedding DP (EDP) encryption operation on Follower. Then enter the bit packing process. The bit packing process automatically determines whether the input data can be packed, and only when the input data can be strongly converted to the specified bit storage format with no loss of precision, the bit packing operation is performed. Follower sends the packaged data to Leader, Leader determines whether the data needs to be unpacked based on the reported data information. Before the Leader passes the data to the Follower, it is quantized and compressed. Follower receives the data and decompresses the quantized data. - -![image2](./images/vfl_pangu_communication_compress_en.png) - -Figure 2 Framework diagram of Pangu vertical federated learning communication compression process - -The overall process is the same as the general vertical federated learning communication compression process. Compared to normal vertical federated, each iteration will have one more round of communication in Pangu vertical federated learning, so it needs to perform one more quantization compression and decompression process. - -## Compression Method - -### Bit Packing Compression Method - -Bit-packing compression is a method of converting a sequence of data structures into a compact binary representation. Bit packing itself is a lossless compression method, but usually the data input to bit packing is compressed with loss compression. - -Taking 3-bit packing as an example: - -Quantization bitness bit_num= 3 - -The data stored in the format of float32 before compression is: - -data = [3, -4, 3, -2, 3, -2, -4, 0, 1, 3] - -First determine if compression is possible using bit-packing compression: - -data_int = int(data) - -If the elements in data - data_int are not 0, exit the bit packing process. - -Convert the source data to binary format based on bit_num: - -data_bin = [011, 100, 011, 110, 011, 110, 100, 000, 001, 011] - -Note: Before conversion, you need to determine whether the current data is within the range that bit_num can accommodate. If it exceeds the range exit the bit packing process. - -Since native C++ does not have a dedicated binary storage format, multiple binary data need to be stitched together and combined into int8 format data storage. If the number of bits is not enough, zero is added to the last data. Combined data is as follows: - -data_int8 = [01110001, 11100111, 10100000, 00101100] - -The binary data is then converted to an integer between -128 and 127, and the data type is strongly converted to int8. - -data_packed = [113, -25, -96, 44] - -Finally, data_packed and bit_num are passed to the receiver. - -When unpacking, the receiver simply reverses the above process. - -### Quantization Compression Method - -The quantization compression method is that communication data fixpoint of floating is approximated to a finite number of discrete values. The currently supported quantization compression method is minimum-maximum compression (min_max). - -Taking the 8-bit quantization as an example: - -Quantization bitness bit_num= 8 - -The float data before compression is: - -data = [0.03356021, -0.01842778, -0.009684053, 0.025363436, -0.027571501, 0.0077043395, 0.016391572, -0.03598478, -0.0009508357] - -Compute the minimum and maximum values: - -min_val = -0.03598478 - -max_val = 0.03356021 - -Compute the scaling coefficient: - -scale = (max_val - min_val) / (2 ^ bit_num- 1) = 0.000272725450980392 - -Convert the pre-compressed data to an integer between -128 and 127 with the formula quant_data = round((data - min_val) / scale) - 2 ^ (bit_num - 1). And to directly convert the data type to int8: - -quant_data = [127, -64, -32, 97, -97, 32, 64, -128, 0] - -After the quantitative encoding, the parameters to be uploaded by the sender are quant_data, bit_num, and the maximum and minimum values min_val and max_val. - -After receiving quant_data, min_val and max_val, the receiver uses the inverse quantization formula (quant_data + 2 ^ (bit_num - 1)) * (max_val - min_val) / (2 ^ bit_num - 1) + min_val to restore the weights. - -## Fast Experience - -To use bit packing or quantized compression methods, one first needs to successfully complete the training aggregation process for any of the vertical federated scenarios, such as [Vertical Federated Learning Model Training - Wide&Deep Recommended Applications](https://www.mindspore.cn/federated/docs/en/master/split_wnd_application.html). The preparation work including datasets and network models and the process of simulating the start of federated learning are described in detail in this document. - -1. For MindSpore and MindSpore Federated installation and data preprocessing, refer to [Vertical Federated Learning Model Training - Wide&Deep Recommended Applications](https://www.mindspore.cn/federated/docs/en/master/split_wnd_application.html). - -2. Set the configuration related to compression setting in [related yaml](https://gitee.com/mindspore/federated/tree/master/example/splitnn_criteo/yaml_files). - - The configuration of [leader_top.yaml](https://gitee.com/mindspore/federated/blob/master/example/splitnn_criteo/yaml_files/leader_top.yaml) is as follows: - - ```yaml - role: leader - model: # define the net of vFL party - train_net: - name: leader_loss_net - inputs: - - name: leader_wide_embedding - source: local - - name: leader_deep_embedding - source: local - - name: follower_wide_embedding - source: remote - compress_type: min_max - bit_num: 6 - - name: follower_deep_embedding - source: remote - compress_type: min_max - bit_num: 6 - ... - ``` - - The configuration of [follower_bottom.yaml](https://gitee.com/mindspore/federated/blob/master/example/splitnn_criteo/yaml_files/follower_bottom.yaml) is as follows: - - ```yaml - role: follower - model: # define the net of vFL party - train_net: - name: follower_loss_net - inputs: - - name: id_hldr0 - source: local - - name: wt_hldr0 - source: local - outputs: - - name: follower_wide_embedding - destination: remote - compress_type: min_max - bit_num: 6 - - name: follower_deep_embedding - destination: remote - compress_type: min_max - bit_num: 6 - - name: follower_l2_regu - destination: local - ... - ``` - -3. Users can make super-reference modifications according to the actual situation. - - - compress_type: Compression type, string type, including: "min_max", "bit_pack". - - bit_num: The number of bits, int type, the definition domain is within [1, 8]. - -4. Run the sample program to start the script. - - ```shell - # Start leader process: - bash run_vfl_train_leader.sh 127.0.0.1:1984 127.0.0.1:1230 ./mindrecord/ False - # Start follower process: - bash run_vfl_train_follower.sh 127.0.0.1:1230 127.0.0.1:1984 ./mindrecord/ False - ``` - -5. Check the training log `vfl_train_leader.log`. loss converges normally. - - ```text - epoch 0 step 0 loss: 0.693124 - epoch 0 step 100 loss: 0.512151 - epoch 0 step 200 loss: 0.493524 - epoch 0 step 300 loss: 0.473054 - epoch 0 step 400 loss: 0.466222 - epoch 0 step 500 loss: 0.464252 - epoch 0 step 600 loss: 0.469296 - epoch 0 step 700 loss: 0.451647 - epoch 0 step 800 loss: 0.457797 - epoch 0 step 900 loss: 0.457930 - epoch 0 step 1000 loss: 0.461664 - epoch 0 step 1100 loss: 0.460415 - epoch 0 step 1200 loss: 0.466883 - epoch 0 step 1300 loss: 0.455919 - epoch 0 step 1400 loss: 0.466984 - epoch 0 step 1500 loss: 0.454486 - epoch 0 step 1600 loss: 0.458730 - epoch 0 step 1700 loss: 0.451275 - epoch 0 step 1800 loss: 0.445938 - epoch 0 step 1900 loss: 0.458323 - epoch 0 step 2000 loss: 0.446709 - ... - ``` - -6. Close the training process - - ```shell - pid=`ps -ef|grep run_vfl_train_ |grep -v "grep" | grep -v "finish" |awk '{print $2}'` && for id in $pid; do kill -9 $id && echo "killed $id"; done - ``` - -## Deep Experience - -### Obtaining the Compression Configuration - -The user can use the encapsulated interface to get the configuration related to communication compression. The [Yaml Configuration file for model training of vertical federated learning](https://www.mindspore.cn/federated/docs/en/master/vertical/vertical_federated_yaml.html) gives the configuration description of the parameters related to the startup. The [Model Training Interface](https://www.mindspore.cn/federated/docs/en/master/vertical/vertical_federated_FLModel.html) provides the interface to get the compression configuration. The example method is as follows: - -```python -# parse yaml files -leader_top_yaml_data = FLYamlData(config.leader_top_yaml_path) - -# Leader Top Net -leader_top_base_net = LeaderTopNet() -leader_top_train_net = LeaderTopLossNet(leader_top_base_net) -leader_top_fl_model = FLModel( - yaml_data=leader_top_yaml_data, - network=leader_top_train_net -) - -# get compress config -compress_configs = leader_top_fl_model.get_compress_configs() -``` - -### Setting Compression Configuration - -Users can use the already encapsulated [Vertical Federated Learning Communicator](https://www.mindspore.cn/federated/docs/en/master/vertical/vertical_communicator.html) interface to set the configuration related to communication compression to the communicator device by the following method: - -```python -# build vertical communicator -http_server_config = ServerConfig(server_name='leader', server_address=config.http_server_address) -remote_server_config = ServerConfig(server_name='follower', server_address=config.remote_server_address) -vertical_communicator = VerticalFederatedCommunicator( - http_server_config=http_server_config, - remote_server_config=remote_server_config, - compress_configs=compress_configs -) -vertical_communicator.launch() -``` - -After setting the communication compression configuration, the vertical federated framework will automatically compress the communication content in the backend. diff --git a/docs/federated/docs/source_zh_cn/Data_Join.rst b/docs/federated/docs/source_zh_cn/Data_Join.rst deleted file mode 100644 index e1a33a58b0..0000000000 --- a/docs/federated/docs/source_zh_cn/Data_Join.rst +++ /dev/null @@ -1,12 +0,0 @@ -数据求交 -===================== - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/Data_Join.rst - :alt: 查看源文件 - -.. toctree:: - :maxdepth: 1 - - data_join/data_join - data_join/private_set_intersection \ No newline at end of file diff --git a/docs/federated/docs/source_zh_cn/_ext/__pycache__/my_signature.cpython-37.pyc b/docs/federated/docs/source_zh_cn/_ext/__pycache__/my_signature.cpython-37.pyc deleted file mode 100644 index 516af30c9a197f89a41eb556f5f38d22e72d6668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6812 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 HbA|s0kIqXo diff --git a/docs/federated/docs/source_zh_cn/communication_compression.md b/docs/federated/docs/source_zh_cn/communication_compression.md deleted file mode 100644 index c64fd7bd5c..0000000000 --- a/docs/federated/docs/source_zh_cn/communication_compression.md +++ /dev/null @@ -1,137 +0,0 @@ -# 端云联邦学习通信压缩 - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/communication_compression.md) - -在横向的端云联邦学习训练过程中,通信量会影响端侧用户体验(用户流量、通信时延、FL-Client 参与数量),并受云侧性能约束(内存、带宽、CPU 占用率)限制。为了提高用户体验和减少性能瓶颈,MindSpore联邦学习框架在端云联邦场景中,提供上传和下载的通信量压缩功能。 - -## 压缩方法 - -### 上传压缩方法 - -上传压缩方法可以分为三个主要部分:权重差编解码、稀疏编解码和量化编解码,下面给出了FL-Client和FL-Server上的流程图。 - -![上传压缩client执行顺序](./images/upload_compression_client.png) - -图1 上传压缩方法在FL-Client上的流程图 - -![上传压缩server执行顺序](./images/upload_compression_server.png) - -图2 上传压缩方法在FL-Server上的流程图 - -### 权重差编解码 - -权重差即为端侧训练前后的权重矩阵的向量差。相较于原始权重而言,权重差的分布更符合高斯分布,因此更适合被压缩。FL-Client对权重差进行编码操作,FL-Server对权重差进行解码操作。值得注意的是,为了在FL-Server聚合权重前就将权重差还原为权重,FL-Client在上传权重时,不将权重乘以数据量。FL-Server解码时,需要将权重乘以数据量。 - -![权重差编码](./images/weight_diff_encode.png) - -图3 权重差编码在FL-Client上的流程图 - -![权重差解码](./images/weight_diff_decode.png) - -图4 权重差解码在FL-Server上的流程图 - -### 稀疏编解码 - -端云都遵循同样的随机算法生成稀疏掩码矩阵,该掩码矩阵和原本需要上传的权重形状相同。掩码矩阵只包含0或1两个值。每个FL-Client只上传和掩码矩阵非零值位置相同的权重的数据到FL-Server上。 - -以稀疏率sparse_rate=0.08的稀疏方法为例。FL-Client原本需要上传的参数: - -| 参数名 | 长度 | -| -------------------- | ----- | -| albert.pooler.weight | 97344 | -| albert.pooler.bias | 312 | -| classifier.weight | 1560 | -| classifier.bias | 5 | - -将所有参数接为一维向量: - -| 参数名 | 长度 | -| ----------- | ---------------------- | -| merged_data | 97344+312+1560+5=99221 | - -生成和拼接后参数长度一样的mask向量,其中,有7937 = int(sparse_rate*拼接后参数长度)个值为1,其余值为0(即mask_vector = (1,1,1,...,0,0,0,...)): - -| 参数名 | 长度 | -| ----------- | ----- | -| mask_vector | 99221 | - -使用伪随机算法,将mask_vector随机打乱。随机种子为当前的iteration数。取出mask_vector中值为1的索引indexes。取出merged_data[indexes]的值,即压缩后的向量: - -| 参数名 | 长度 | -| ----------------- | ---- | -| compressed_vector | 7937 | - -稀疏压缩后,FL-Client需要上传的参数即为compressed_vector。 - -FL-Server在收到compressed_vector后,首先会用和FL-Client同样的伪随机算法和随机种子,构造出掩码向量mask_vector。然后取出mask_vector中值为1的索引indexes。再然后,生成和模型相同shape的全零矩阵weight_vector。依次将compressed_vector中的值放入weight_vector[indexes]中。weight_vector即为稀疏解码后的向量。 - -### 量化编解码 - -量化压缩方法即将浮点型的通信数据定点近似为有限多个离散值。 - -以8-bit量化举例来讲: - -量化位数num_bits = 8 - -压缩前的浮点型数据为: - -data = [0.03356021, -0.01842778, -0.009684053, 0.025363436, -0.027571501, 0.0077043395, 0.016391572, -0.03598478, -0.0009508357] - -计算最大和最小值: - -min_val = -0.03598478 - -max_val = 0.03356021 - -计算缩放系数: - -scale = (max_val - min_val ) / (2 ^ num_bits - 1) = 0.000272725450980392 - -将压缩前数据转换为-128到127之间的整数,转换公式为quant_data = round((data - min_val) / scale) - 2 ^ (num_bits - 1)。并强转数据类型到int8: - -quant_data = [127, -64, -32, 97, -97, 32, 64, -128, 0] - -量化编码后,FL-Client需要上传的参数即为quant_data以及最小和最大值min_val和max_val。 - -FL-Server在收到quant_data、min_val和max_val后,使用反量化公式(quant_data + 2 ^ (num_bits - 1)) * (max_val - min_val) / (2 ^ num_bits - 1) + min_val,还原出权重。 - -## 下载压缩方法 - -下载压缩方法主要为量化编解码操作,下面给出了FL-Server和FL-Client上的流程图。 - -![下载压缩server执行顺序](./images/download_compression_server.png) - -图5 下载压缩方法在FL-Server上的流程图 - -![下载压缩client执行顺序](./images/download_compression_client.png) - -图6 下载压缩方法在FL-Client上的流程图 - -### 量化编解码 - -量化的编解码方法和上传压缩中一样。 - -## 代码实现准备工作 - -若要使用上传和下载压缩方法,首先需要成功完成任一端云联邦场景的训练聚合过程,如[实现一个情感分类应用(Android)](https://www.mindspore.cn/federated/docs/zh-CN/master/sentiment_classification_application.html)。在该文档中详细介绍了包括数据集和网络模型等准备工作和模拟启动多客户端参与联邦学习的流程。 - -## 算法开启脚本 - -上传和下载压缩方法目前只支持端云联邦学习场景。开启方式需要在启动云侧服务时,在server启动脚本中,在对应的yaml中设置`upload_compress_type='DIFF_SPARSE_QUANT'`和`download_compress_type='QUANT'`。上述两个超参数即可分别控制上传和下载压缩方法的开启和关闭。云侧[完整启动脚本](https://gitee.com/mindspore/federated/tree/master/tests/st/cross_device_cloud/),这里给出启动该算法的相关参数配置。确定参数配置后,用户需要在执行训练前配置对应参数,具体如下: - -```yaml -compression: - upload_compress_type: NO_COMPRESS - upload_sparse_rate: 0.4 - download_compress_type: NO_COMPRESS -``` - -| 超参名称&参考值 | 超参描述 | -| ---------------------- | ------------------------------------------------------------ | -| upload_compress_type | 上传压缩类型,string类型,包括:"NO_COMPRESS"、"DIFF_SPARSE_QUANT" | -| upload_sparse_rate | 稀疏率,即权重保留率,float类型,定义域在(0, 1]内 | -| download_compress_type | 下载压缩类型,string类型,包括:"NO_COMPRESS"、"QUANT" | - -## ALBERT实验结果 - -联邦学习总迭代数为100,客户端本地训练epoch数为1,客户端数量为20,batchSize设置为16,学习率为1e-5,同时开启上传和下载压缩方法,上传稀疏率为0.4。最终在验证集上的准确率为72.5%,不压缩的普通联邦场景为72.3%。 \ No newline at end of file diff --git a/docs/federated/docs/source_zh_cn/conf.py b/docs/federated/docs/source_zh_cn/conf.py deleted file mode 100644 index ea938ec4f1..0000000000 --- a/docs/federated/docs/source_zh_cn/conf.py +++ /dev/null @@ -1,231 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import shutil -import sys -import IPython -import re -from sphinx.ext import autodoc as sphinx_autodoc - -# -- Project information ----------------------------------------------------- - -project = 'MindSpore Federated' -copyright = 'MindSpore' -author = 'MindSpore' - -# The full version, including alpha/beta/rc tags -release = 'master' - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -myst_enable_extensions = ["dollarmath", "amsmath"] - - -myst_heading_anchors = 5 -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'myst_parser', - 'sphinx.ext.mathjax', - 'IPython.sphinxext.ipython_console_highlighting' -] - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -mathjax_path = 'https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/mathjax/MathJax-3.2.2/es5/tex-mml-chtml.js' - -mathjax_options = { - 'async':'async' -} - -smartquotes_action = 'De' - -exclude_patterns = [] - -pygments_style = 'sphinx' - -# -- Options for HTML output ------------------------------------------------- - -# Reconstruction of sphinx auto generated document translation. -language = 'zh_CN' -locale_dirs = ['../../../../resource/locale/'] -gettext_compact = False - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'sphinx_rtd_theme' - -html_search_language = 'zh' - -html_search_options = {'dict': '../../../resource/jieba.txt'} - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = { - 'python': ('https://docs.python.org/3', '../../../../resource/python_objects.inv'), -} - -from sphinx import directives -with open('../_ext/overwriteobjectiondirective.txt', 'r', encoding="utf8") as f: - exec(f.read(), directives.__dict__) - -from sphinx.ext import viewcode -with open('../_ext/overwriteviewcode.txt', 'r', encoding="utf8") as f: - exec(f.read(), viewcode.__dict__) - -# Modify default signatures for autodoc. -autodoc_source_path = os.path.abspath(sphinx_autodoc.__file__) -autodoc_source_re = re.compile(r'stringify_signature\(.*?\)') -get_param_func_str = r"""\ -import re -import inspect as inspect_ - -def get_param_func(func): - try: - source_code = inspect_.getsource(func) - if func.__doc__: - source_code = source_code.replace(func.__doc__, '') - all_params_str = re.findall(r"def [\w_\d\-]+\(([\S\s]*?)(\):|\) ->.*?:)", source_code) - all_params = re.sub("(self|cls)(,|, )?", '', all_params_str[0][0].replace("\n", "").replace("'", "\"")) - return all_params - except: - return '' - -def get_obj(obj): - if isinstance(obj, type): - return obj.__init__ - - return obj -""" - -with open(autodoc_source_path, "r+", encoding="utf8") as f: - code_str = f.read() - code_str = autodoc_source_re.sub('"(" + get_param_func(get_obj(self.object)) + ")"', code_str, count=0) - exec(get_param_func_str, sphinx_autodoc.__dict__) - exec(code_str, sphinx_autodoc.__dict__) - -# Copy source files of chinese python api from federated repository. -from sphinx.util import logging -logger = logging.getLogger(__name__) - -copy_path = 'docs/api/api_python' -src_dir = os.path.join(os.getenv("MF_PATH"), copy_path) - -copy_list = [] - -present_path = os.path.dirname(__file__) - -for i in os.listdir(src_dir): - if os.path.isfile(os.path.join(src_dir,i)): - if os.path.exists('./'+i): - os.remove('./'+i) - shutil.copy(os.path.join(src_dir,i),'./'+i) - copy_list.append(os.path.join(present_path,i)) - else: - if os.path.exists('./'+i): - shutil.rmtree('./'+i) - shutil.copytree(os.path.join(src_dir,i),'./'+i) - copy_list.append(os.path.join(present_path,i)) - -# add view -import json - -if os.path.exists('../../../../tools/generate_html/version.json'): - with open('../../../../tools/generate_html/version.json', 'r+', encoding='utf-8') as f: - version_inf = json.load(f) -elif os.path.exists('../../../../tools/generate_html/daily_dev.json'): - with open('../../../../tools/generate_html/daily_dev.json', 'r+', encoding='utf-8') as f: - version_inf = json.load(f) -elif os.path.exists('../../../../tools/generate_html/daily.json'): - with open('../../../../tools/generate_html/daily.json', 'r+', encoding='utf-8') as f: - version_inf = json.load(f) - -if os.getenv("MF_PATH").split('/')[-1]: - copy_repo = os.getenv("MF_PATH").split('/')[-1] -else: - copy_repo = os.getenv("MF_PATH").split('/')[-2] - -branch = [version_inf[i]['branch'] for i in range(len(version_inf)) if version_inf[i]['name'] == copy_repo][0] -docs_branch = [version_inf[i]['branch'] for i in range(len(version_inf)) if version_inf[i]['name'] == 'tutorials'][0] - -re_view = f"\n.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/{docs_branch}/" + \ - f"resource/_static/logo_source.svg\n :target: https://gitee.com/mindspore/{copy_repo}/blob/{branch}/" - -for cur, _, files in os.walk(present_path): - for i in files: - flag_copy = 0 - if i.endswith('.rst'): - for j in copy_list: - if j in cur: - flag_copy = 1 - break - if os.path.join(cur, i) in copy_list or flag_copy: - try: - with open(os.path.join(cur, i), 'r+', encoding='utf-8') as f: - content = f.read() - new_content = content - if '.. include::' in content and '.. automodule::' in content: - continue - if 'autosummary::' not in content and "\n=====" in content: - re_view_ = re_view + copy_path + cur.split(present_path)[-1] + '/' + i + \ - '\n :alt: 查看源文件\n\n' - new_content = re.sub('([=]{5,})\n', r'\1\n' + re_view_, content, 1) - if new_content != content: - f.seek(0) - f.truncate() - f.write(new_content) - except Exception: - print(f'打开{i}文件失败') - -import mindspore_federated - -sys.path.append(os.path.abspath('../../../../resource/sphinx_ext')) -# import anchor_mod -import nbsphinx_mod - - -sys.path.append(os.path.abspath('../../../../resource/search')) -import search_code - -sys.path.append(os.path.abspath('../../../../resource/custom_directives')) -from custom_directives import IncludeCodeDirective - -def setup(app): - app.add_directive('includecode', IncludeCodeDirective) - -src_release = os.path.join(os.getenv("MF_PATH"), 'RELEASE_CN.md') -des_release = "./RELEASE.md" -with open(src_release, "r", encoding="utf-8") as f: - data = f.read() -if len(re.findall("\n## (.*?)\n",data)) > 1: - content = re.findall("(## [\s\S\n]*?)\n## ", data) -else: - content = re.findall("(## [\s\S\n]*)", data) -#result = content[0].replace('# MindSpore', '#', 1) -with open(des_release, "w", encoding="utf-8") as p: - p.write("# Release Notes"+"\n\n") - p.write(content[0]) diff --git a/docs/federated/docs/source_zh_cn/cross_device.rst b/docs/federated/docs/source_zh_cn/cross_device.rst deleted file mode 100644 index 813aa7f74d..0000000000 --- a/docs/federated/docs/source_zh_cn/cross_device.rst +++ /dev/null @@ -1,17 +0,0 @@ -端侧客户端 -============ - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/cross_device.rst - :alt: 查看源文件 - -.. toctree:: - :maxdepth: 1 - - java_api_callback - java_api_client - java_api_clientmanager - java_api_dataset - java_api_flparameter - java_api_syncfljob - interface_description_federated_client \ No newline at end of file diff --git a/docs/federated/docs/source_zh_cn/data_join.md b/docs/federated/docs/source_zh_cn/data_join.md deleted file mode 100644 index 8d9e3ba5e0..0000000000 --- a/docs/federated/docs/source_zh_cn/data_join.md +++ /dev/null @@ -1,242 +0,0 @@ -# 纵向联邦学习数据接入 - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/data_join.md) - -和横向联邦学习不同,纵向联邦学习训练或推理时,两个参与方(leader和follower)拥有相同样本空间。因此,在纵向联邦学习的双方发起训练或推理之前,必须协同完成数据求交。双方必须读取各自的原始数据,并提取出每条数据对应的ID(每条数据的唯一标识符,且都不相同)进行求交(即求取交集)。然后,双方根据求交后的ID从原始数据中获得特征或标签等数据。最后各自导出持久化文件,并在后续训练或推理之前保序地读取数据。 - -## 总体流程 - -数据接入可以分为数据导出和数据读取两个部分。 - -### 数据导出 - -MindSpore Federated纵向联邦学习数据导出流程框架如图1所示: - -![](./images/data_join.png) - -图 1 纵向联邦学习数据接入流程框架图 - -在数据导出流程中,Leader Worker和 Follower Worker为纵向联邦学习的两个参与方。Leader Worker常驻并保持对Follower Worker的监听,Follower Worker可以在任意时刻进入数据接入流程中。 - -在Leader Worker收到 Follower Worker的注册请求后,会对注册内容进行校验。若注册成功,则给Follower Worker发送任务相关的超参(PSI 相关超参、分桶规则、ID字段名称等)。 - -然后Leader Worker 和 Follower Worker 分别读取各自的原始数据,再从各自的原始数据中提取出 ID 列表并实现分桶。 - -Leader Worker 和 Follower Worker 的每个桶都启动隐私求交方法获得两方的ID交集。 - -最后,两方根据ID交集提取原始数据中相应的数据并导出成MindRecord格式的文件。 - -### 数据读取 - -纵向联邦要求两个参与方在训练或推理的每一个批次的数据ID的值和顺序都一样的。MindSpore Federated通过在两方读取各自数据时,使用相同的随机种子和对导出的文件集合使用字典排序的方法,保证数据读取的顺序一致。 - -## 快速体验 - -### 数据准备样例 - -若要使用数据接入方法,首先需要准备好原始数据。用户可以使用[随机数据生成脚本](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/generate_random_data.py)生成出各参与方的伪造数据作为样例。 - -```shell -python generate_random_data.py \ - --seed=0 \ - --total_output_path=vfl/input/total_data.csv \ - --intersection_output_path=vfl/input/intersection_data.csv \ - --leader_output_path=vfl/input/leader_data_*.csv \ - --follower_output_path=vfl/input/follower_data_*.csv \ - --leader_file_num=4 \ - --follower_file_num=2 \ - --leader_data_num=300 \ - --follower_data_num=200 \ - --overlap_num=100 \ - --id_len=20 \ - --feature_num=30 -``` - -用户可根据实际情况进行超参设置: - -| 超参名称 | 超参描述 | -| -------------------- | ------------------------------------------------------------ | -| seed | 随机种子,int类型。 | -| total_output_path | 所有数据的输出路径,str类型。 | -| intersection_output_path | 交集数据的输出路径,str类型。 | -| leader_output_path | leader方数据的输出路径。若配置的内容包括`*`号,则会在导出多个文件时将`*`号依次替换为0、1、2……的序号。str类型。 | -| follower_output_path | follower方数据的输出路径。若配置的内容包括`*`号,则会在导出多个文件时将`*`号依次替换为0、1、2……的序号。str类型。 | -| leader_file_num | leader方数据的输出文件数目,int类型。 | -| follower_file_num | follower方数据的输出文件数目,int类型。 | -| leader_data_num | leader方数据总量,int类型。 | -| follower_data_num | follower方数据总量,int类型。 | -| overlap_num | 两方重叠的数据总量,int类型。 | -| id_len | 数据ID为字符串类型。该超参为字符串的长度,int类型。 | -| feature_num | 导出的数据的列数。 | - -运行数据准备后生成多个csv文件: - -```text -follower_data_0.csv -follower_data_1.csv -intersection_data.csv -leader_data_0.csv -leader_data_1.csv -leader_data_2.csv -leader_data_3.csv -``` - -### 数据导出样例 - -用户可以使用[数据求交脚本](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/run_data_join.py)实现两方数据求交并导出成MindRecord格式文件。用户需要分别启动Leader和Follower两个进程。 - -启动Leader: - -```shell -python run_data_join.py \ - --role="leader" \ - --main_table_files="vfl/input/leader/" \ - --output_dir="vfl/output/leader/" \ - --data_schema_path="vfl/leader_schema.yaml" \ - --server_name=leader_node \ - --http_server_address="127.0.0.1:1086" \ - --remote_server_name=follower_node \ - --remote_server_address="127.0.0.1:1087" \ - --primary_key="oaid" \ - --bucket_num=5 \ - --store_type="csv" \ - --shard_num=1 \ - --join_type="psi" \ - --thread_num=0 -``` - -启动Follower: - -```shell -python run_data_join.py \ - --role="follower" \ - --main_table_files="vfl/input/follower/" \ - --output_dir="vfl/output/follower/" \ - --data_schema_path="vfl/follower_schema.yaml" \ - --server_name=follower_node \ - --http_server_address="127.0.0.1:1087" \ - --remote_server_name=leader_node \ - --remote_server_address="127.0.0.1:1086" \ - --store_type="csv" \ - --thread_num=0 -``` - -用户可根据实际情况进行超参设置: - -| 超参名称 | 超参描述 | -| ------------------- | ------------------------------------------------------- | -| role | worker的角色类型,str类型,包括:"leader"、"follower"。 | -| main_table_files | 原始数据路径,可以配置单个或多个文件路径、数据目录路径,list或str类型。 | -| output_dir | 导出的MindRecord相关文件的目录路径,str类型。 | -| data_schema_path | 导出时所需要配置的超参文件存放的路径,str类型。 | -| server_name |本地用于通信的http服务名字,str类型。 | -| http_server_address | 本机IP和端口地址,str类型。 | -| remote_server_name | 对端用于通信的http服务名字,str类型。 | -| remote_server_address | 对端IP和端口地址,str类型。 | -| primary_key(Follower不需要配置) | 数据ID的名称,str类型。 | -| bucket_num(Follower不需要配置) | 求交和导出时,分桶的数目,int类型。 | -| store_type | 原始数据存储类型,str类型。包括:"csv"。 | -| shard_num(Follower不需要配置) | 单个桶导出的文件数量,int类型。 | -| join_type(Follower不需要配置) | 求交算法,str类型。包括:"psi"。 | -| thread_num | 使用PSI求交算法时,计算所需线程数,int类型。 | - -在上述样例中,data_schema_path对应的文件可以参考[leader_schema.yaml](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/vfl/leader_schema.yaml)和[follower_schema.yaml](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/vfl/follower_schema.yaml)中的相应文件配置。用户需要在该文件中提供要导出的数据的列名和类型。 - -运行数据导出后生成多个MindRecord相关文件: - -```text -mindrecord_0 -mindrecord_0.db -mindrecord_1 -mindrecord_1.db -mindrecord_2 -mindrecord_2.db -mindrecord_3 -mindrecord_3.db -mindrecord_4 -mindrecord_4.db -``` - -### 数据读取样例 - -用户可以使用[读取数据脚本](https://gitee.com/mindspore/federated/blob/master/tests/st/data_join/load_joined_data.py)实现求交后的数据读取: - -```shell -python load_joined_data.py \ - --seed=0 \ - --input_dir=vfl/output/leader/ \ - --shuffle=True -``` - -用户可根据实际情况进行超参设置: - -| 超参名称 | 超参描述 | -| --------- | ----------------------------------------- | -| seed | 随机种子,int类型。 | -| input_dir | 输入的MindRecord相关文件的目录,str类型。 | -| shuffle | 数据是否需要打乱,bool类型。 | - -如果求交结果正确,两方各自读取数据时,两方的每条数据的OAID顺序一致,而每条数据中的其他列的数据可以为不同值。运行数据读取后打印交集数据: - -```text -Leader数据导出运行结果: -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'uMbgxIMMwWhMGrVMVtM7')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'IwoGP08kWVtT4WHL2PLu')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'MSRe6mURtxgyEgWzDn0b')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'y7X0WcMKnTLrhxVcWfGF')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'DicKRIVvbOYSiv63TvcL')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'TCHgtynOhH3z11QYemsH')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'OWmhgIfC3k8UTteGUhni')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'NTV3qEYXBHqKBWyHGc7s')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'wuinSeN1bzYgXy4XmSlR')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'SSsCU0Pb46XGzUIa3Erg')} -…… - -Follower数据导出运行结果: -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'uMbgxIMMwWhMGrVMVtM7')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'IwoGP08kWVtT4WHL2PLu')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'MSRe6mURtxgyEgWzDn0b')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'y7X0WcMKnTLrhxVcWfGF')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'DicKRIVvbOYSiv63TvcL')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'TCHgtynOhH3z11QYemsH')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'OWmhgIfC3k8UTteGUhni')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'NTV3qEYXBHqKBWyHGc7s')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'wuinSeN1bzYgXy4XmSlR')} -{……, 'oaid': Tensor(shape=[], dtype=String, value= 'SSsCU0Pb46XGzUIa3Erg')} -…… -``` - -## 深度体验 - -下列代码的详细的API文档可以参考[数据接入文档](https://www.mindspore.cn/federated/docs/zh-CN/master/data_join/data_join.html)。 - -### 数据导出 - -用户可以使用已经封装好的接口和配置文件实现数据求交以及导出MindRecord相关文件,方法如下: - -```python -from mindspore_federated import FLDataWorker -from mindspore_federated.common.config import get_config - - -if __name__ == '__main__': - current_dir = os.path.dirname(os.path.abspath(__file__)) - args = get_config(os.path.join(current_dir, "vfl/vfl_data_join_config.yaml")) - dict_cfg = args.__dict__ - - worker = FLDataWorker(config=dict_cfg) - worker.do_worker() -``` - -### 数据读取 - -用户可以使用已经封装好的接口实现导出的MindRecord相关文件的数据读取,方法如下: - -```python -from mindspore_federated.data_join import load_mindrecord - - -if __name__ == "__main__": - dataset = load_mindrecord(input_dir="vfl/output/leader/", shuffle=True, seed=0) -``` - diff --git a/docs/federated/docs/source_zh_cn/deploy_federated_client.md b/docs/federated/docs/source_zh_cn/deploy_federated_client.md deleted file mode 100644 index a7b4e8ffb6..0000000000 --- a/docs/federated/docs/source_zh_cn/deploy_federated_client.md +++ /dev/null @@ -1,200 +0,0 @@ -# 横向联邦端侧部署 - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/deploy_federated_client.md) - -本文档介绍如何编译,部署Federated-Client。 - -## Linux 编译指导 - -### 系统环境和第三方依赖 - -本章节介绍如何完成MindSpore联邦学习的端侧编译,当前联邦学习端侧仅提供Linux上的编译指导,其他系统暂不支持。下表列出了编译所需的系统环境和第三方依赖。 - -| 软件名称 | 版本 | 作用 | -|-----------------------| ------------ | ------------ | -| Ubuntu | 18.04.02LTS | 编译和运行MindSpore的操作系统 | -| [GCC](#安装gcc) | 7.3.0到9.4.0之间 | 用于编译MindSpore的C++编译器 | -| [git](#安装git) | - | MindSpore使用的源代码管理工具 | -| [CMake](#安装cmake) | 3.18.3及以上 | 编译构建MindSpore的工具 | -| [Gradle](#安装gradle) | 6.6.1 | 基于JVM的构建工具 | -| [Maven](#安装maven) | 3.3.1及以上 | Java项目的管理和构建工具 | -| [OpenJDK](#安装openjdk) | 1.8 到 1.15之间 | Java项目的管理和构建工具 | - -#### 安装GCC - -可以通过以下命令安装GCC。 - -```bash -sudo apt-get install gcc-7 git -y -``` - -如果要安装更高版本的GCC,使用以下命令安装GCC 8。 - -```bash -sudo apt-get install gcc-8 -y -``` - -或者安装GCC 9。 - -```bash -sudo apt-get install software-properties-common -y -sudo add-apt-repository ppa:ubuntu-toolchain-r/test -sudo apt-get update -sudo apt-get install gcc-9 -y -``` - -#### 安装git - -可以通过以下命令安装git。 - -```bash -sudo apt-get install git -y -``` - -#### 安装CMake - -可以通过以下命令安装[CMake](https://cmake.org/)。 - -```bash -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - -sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" -sudo apt-get install cmake -y -``` - -#### 安装Gradle - -可以通过以下命令安装[Gradle](https://gradle.org/releases/)。 - -```bash -# 下载对应的压缩包,解压。 -# 配置环境变量: - export GRADLE_HOME=GRADLE路径 - export GRADLE_USER_HOME=GRADLE路径 -# 将bin目录添加到PATH中: - export PATH=${GRADLE_HOME}/bin:$PATH -``` - -#### 安装Maven - -可以通过以下命令安装[Maven](https://archive.apache.org/dist/maven/maven-3/)。 - -```bash -# 下载对应的压缩包,解压。 -# 配置环境变量: - export MAVEN_HOME=MAVEN路径 -# 将bin目录添加到PATH中: - export PATH=${MAVEN_HOME}/bin:$PATH -``` - -#### 安装OpenJDK - -可以通过以下命令安装[OpenJDK](https://jdk.java.net/archive/)。 - -```bash -# 下载对应的压缩包,解压。 -# 配置环境变量: - export JAVA_HOME=JDK路径 -# 将bin目录添加到PATH中: - export PATH=${JAVA_HOME}/bin:$PATH -``` - -### 验证是否成功安装 - -确认[系统环境和第三方依赖](#系统环境和第三方依赖)中安装是否成功。 - -```text -打开命令窗口数输入:gcc --version -输出以下结果标识安装成功: - gcc version 版本号 - -打开命令窗口数输入:git --version -输出以下结果标识安装成功: - git version 版本号 - -打开命令窗口数输入:cmake --version -输出以下结果标识安装成功: - cmake version 版本号 - -打开命令窗口数输入:gradle --version -输出以下结果标识安装成功: - Gradle 版本号 - -打开命令窗口数输入:mvn --version -输出以下结果标识安装成功: - Apache Maven 版本号 - -打开命令窗口数输入:java --version -输出以下结果标识安装成功: - openjdk version 版本号 - -``` - -### 编译选项 - -联邦学习device_client目录下的`cli_build.sh`脚本用于联邦学习端侧的编译。 - -#### cli_build.sh的参数使用说明 - -| 参数 | 参数说明 | 取值范围 | 默认值 | -| ---- | ------------------------ | -------- | ------------ | -| -p | 依赖外部包的下载存放路径 | 字符串 | third | -| -c | 是否复用之前下载的依赖包 | on、off | on | - -### 编译示例 - -1. 首先,在进行编译之前,需从gitee代码仓下载源码。 - - ```bash - git clone https://gitee.com/mindspore/federated.git ./ - ``` - -2. 然后进入目录mindspore_federated/device_client,执行如下命令: - - ```bash - bash cli_build.sh - ``` - -3. 由于端侧框架和模型是解耦的,我们提供的x86架构包mindspore-lite-{version}-linux-x64.tar.gz不包含模型相关脚本,因此需要用户自行生成模型脚本对应的jar包,我们提供的模型脚本对应jar包可采用如下方式获取: - - ```bash - cd federated/example/quick_start_flclient - bash build.sh -r mindspore-lite-java-flclient.jar #-r 后需要给出最新x86架构包绝对路径(步骤2生成,federated/mindspore_federated/device_client/build/libs/jarX86/mindspore-lite-java-flclient.jar) - ``` - -运行以上指令后生成jar包路径为:federated/example/quick_start_flclient/target/quick_start_flclient.jar。 - -### 构建依赖环境 - -1. 将文件`federated/mindspore_federated/device_client/third/mindspore-lite-{version}-linux-x64.tar.gz`解压后,所得到的目录结构如下所示(联邦学习l不使用的文件不展示): - - ```sh - mindspore-lite-{version}-linux-x64 - ├── tools - └── runtime - ├── include # 训练框架头文件 - ├── lib # 训练框架库 - │ ├── libminddata-lite.a # 图像处理静态库文件 - │ ├── libminddata-lite.so # 图像处理动态库文件 - │ ├── libmindspore-lite-jni.so # MindSpore Lite推理框架依赖的jni动态库 - │ ├── libmindspore-lite-train.a # MindSpore Lite训练框架依赖的静态库 - │ ├── libmindspore-lite-train.so # MindSpore Lite训练框架依赖的动态库 - │ ├── libmindspore-lite-train-jni.so # MindSpore Lite训练框架依赖的jni动态库 - │ ├── libmindspore-lite.a # MindSpore Lite推理框架依赖的静态库 - │ ├── libmindspore-lite.so # MindSpore Lite推理框架依赖的动态库 - │ └── mindspore-lite-java.jar # MindSpore Lite训练框架jar包 - └── third_party - ├── glog - │└── libmindspore_glog.so.0 #glog 日志动态库文件 - └── libjpeg-turbo - └── lib - ├── libjpeg.so.62 # 图像处理动态库文件 - └── libturbojpeg.so.0 # 图像处理动态库文件 - ``` - -2. 可将路径`mindspore-lite-{version}-linux-x64/runtime/lib/`、`mindspore-lite-{version}-linux-x64/runtime/third_party/glog/`以及`mindspore-lite-{version}-linux-x64/runtime/third_party/libjpeg-turbo/lib/`中联邦学习所依赖的so文件放入一个文件夹,比如`/resource/x86libs/`。然后在x86中设置环境变量(下面需提供绝对路径): - - ```sh - export LD_LIBRARY_PATH=/resource/x86libs/:$LD_LIBRARY_PATH - ``` - -3. 设置好依赖环境之后,可参考应用实践教程[实现一个端云联邦的图像分类应用(x86)](https://www.mindspore.cn/federated/docs/zh-CN/master/image_classification_application.html)在x86环境中模拟启动多个客户端进行联邦学习。 \ No newline at end of file diff --git a/docs/federated/docs/source_zh_cn/deploy_federated_server.md b/docs/federated/docs/source_zh_cn/deploy_federated_server.md deleted file mode 100644 index 317e44ece7..0000000000 --- a/docs/federated/docs/source_zh_cn/deploy_federated_server.md +++ /dev/null @@ -1,317 +0,0 @@ -# 横向联邦云侧部署 - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/deploy_federated_server.md) - -本文档以LeNet网络为例,讲解如何使用MindSpore Federated部署横向联邦学习集群。 - -MindSpore Federated Learning (FL) Server集群物理架构如图所示: - -![](./images/mindspore_federated_networking.png) - -如上图所示,在横向联邦学习云侧集群中,有三种角色的MindSpore进程:`Federated Learning Scheduler`、`Federated Learning Server`和`Federated Learning Worker`: - -- Federated Learning Scheduler - - `Scheduler`的功能主要包括: - - 1. 协助集群组网:在集群初始化阶段,由`Scheduler`负责收集`Server`信息,并保障集群一致性。 - 2. 开放管理面:向用户提供`RESTful`接口,实现对集群的管理。 - - 在一个联邦学习任务中,只有一个`Scheduler`,其与`Server`通过TCP协议通信。 - -- Federated Learning Server - - `Server`为执行联邦学习任务的主体,用于接收和解析端侧设备上传的数据,具有执行安全聚合、限时通信、模型存储等能力。在一个联邦学习任务中,`Server`可以有多个(用户可配置),`Server`间通过TCP协议通信,对外开放HTTP端口与端侧设备连接。 - - 在MindSpore联邦学习框架中,`Server`还支持弹性伸缩以及容灾,能够在训练任务不中断的情况下,动态调配硬件资源。 - -- Federated Learning Worker - - `Worker`为执行联邦学习任务的附件模块,用于对Server中的模型进行二次有监督训练,而后将训练所得模型下发给Server,在一个联邦学习任务中,`Worker`可以有多个(用户可配置),`Worker`和`Server`间通过TCP协议通信。 - -`Scheduler`和`Server`需部署在单网卡的服务器或者容器中,且处于相同网段。MindSpore自动获取首个可用IP地址作为`Server`地址。 - -> 服务器会校验客户端携带的时间戳,需要确保服务器定期同步时钟,避免服务器出现较大的时钟偏移。 - -## 准备环节 - -> 建议使用[Anaconda](https://www.anaconda.com/)创建虚拟环境进行如下操作。 - -### 安装MindSpore - -MindSpore横向联邦学习云侧集群支持在x86 CPU和GPU CUDA硬件平台上部署。可参考[MindSpore安装指南](https://www.mindspore.cn/install)安装MindSpore最新版本。 - -### 安装MindSpore Federated - -通过[源码](https://gitee.com/mindspore/federated)编译安装。 - -```shell -git clone https://gitee.com/mindspore/federated.git -b master -cd federated -bash build.sh -``` - -对于`bash build.sh`,可通过例如`-jn`选项,例如`-j16`,加速编译;可通过`-S on`选项,从gitee而不是github下载第三方依赖。 - -编译完成后,在`build/package/`目录下找到Federated的whl安装包进行安装: - -```bash -pip install mindspore_federated-{version}-{python_version}-linux_{arch}.whl -``` - -### 验证是否成功安装 - -执行以下命令,验证安装结果。导入Python模块不报错即安装成功: - -```python -from mindspore_federated import FLServerJob -``` - -### 安装和启动Redis服务器 - -联邦学习默认依赖[Redis服务器](https://gitee.com/link?target=https%3A%2F%2Fredis.io%2F)作为缓存数据中间件,运行联邦学习业务,需要安装和运行Redis服务器。 - -> 用户需自行检查Redis版本的安全性,某些Redis版本可能存在漏洞。 - -安装Redis服务器: - -```bash -sudo apt-get install redis -``` - -运行Redis服务器,配置端口号为:23456: - -```bash -redis-server --port 23456 --save "" -``` - -## 启动集群 - -1. [样例路径](https://gitee.com/mindspore/federated/tree/master/example/cross_device_lenet_femnist/)。 - - ```bash - cd example/cross_device_lenet_femnist - ``` - -2. 据实际运行需要修改yaml配置文件:`default_yaml_config.yaml`,如下为[Lenet的相关配置样例](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/yamls/lenet/default_yaml_config.yaml)。 - - ```yaml - fl_name: Lenet - fl_iteration_num: 25 - server_mode: FEDERATED_LEARNING - enable_ssl: False - - distributed_cache: - type: redis - address: 127.0.0.1:23456 # ip:port of redis actual machine - plugin_lib_path: "" - - round: - start_fl_job_threshold: 2 - start_fl_job_time_window: 30000 - update_model_ratio: 1.0 - update_model_time_window: 30000 - global_iteration_time_window: 60000 - - summary: - metrics_file: "metrics.json" - failure_event_file: "event.txt" - continuous_failure_times: 10 - data_rate_dir: ".." - participation_time_level: "5,15" - - unsupervised: - cluster_client_num: 1000 - eval_type: SILHOUETTE_SCORE - - encrypt: - encrypt_train_type: NOT_ENCRYPT - pw_encrypt: - share_secrets_ratio: 1.0 - cipher_time_window: 3000 - reconstruct_secrets_threshold: 1 - dp_encrypt: - dp_eps: 50.0 - dp_delta: 0.01 - dp_norm_clip: 1.0 - signds: - sign_k: 0.01 - sign_eps: 100 - sign_thr_ratio: 0.6 - sign_global_lr: 0.1 - sign_dim_out: 0 - - compression: - upload_compress_type: NO_COMPRESS - upload_sparse_rate: 0.4 - download_compress_type: NO_COMPRESS - - ssl: - # when ssl_config is set - # for tcp/http server - server_cert_path: "server.p12" - # for tcp client - client_cert_path: "client.p12" - # common - ca_cert_path: "ca.crt" - crl_path: "" - cipher_list: "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-PSK-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-CHACHA20-POLY1305" - cert_expire_warning_time_in_day: 90 - - client_verify: - pki_verify: false - root_first_ca_path: "" - root_second_ca_path: "" - equip_crl_path: "" - replay_attack_time_diff: 600000 - - client: - http_url_prefix: "" - client_epoch_num: 20 - client_batch_size: 32 - client_learning_rate: 0.01 - connection_num: 10000 - - ``` - -3. 准备模型文件,启动方式为:基于权重启动,需要提供相应的模型权重。 - - 获取lenet模型权重: - - ```bash - wget https://ms-release.obs.cn-north-4.myhuaweicloud.com/ms-dependencies/Lenet.ckpt - ``` - -4. 运行Scheduler,管理面地址默认为`127.0.0.1:11202`。 - - ```python - python run_sched.py \ - --yaml_config="yamls/lenet.yaml" \ - --scheduler_manage_address="10.*.*.*:18019" - ``` - -5. 运行Server,默认启动1个Server,HTTP服务器地址默认为`127.0.0.1:6666`。 - - ```python - python run_server.py \ - --yaml_config="yamls/lenet.yaml" \ - --tcp_server_ip="10.*.*.*" \ - --checkpoint_dir="fl_ckpt" \ - --local_server_num=1 \ - --http_server_address="10.*.*.*:8019" - ``` - -6. 停止联邦学习。当前版本联邦学习集群为常驻进程,可执行`finish_cloud.py`脚本,以终止联邦学习服务。执行指令的示例如下,其中`redis_port`传参,需与启动redis时的传参保持一致,代表停止此`Scheduler`对应的集群。 - - ```python - python finish_cloud.py --redis_port=23456 - ``` - - 若console打印如下内容: - - ```text - killed $PID1 - killed $PID2 - killed $PID3 - killed $PID4 - killed $PID5 - killed $PID6 - killed $PID7 - killed $PID8 - ``` - - 则表明停止服务成功。 - -## 弹性伸缩 - -MindSpore联邦学习框架支持`Server`的弹性伸缩,对外通过`Scheduler`管理端口提供`RESTful`服务,使得用户在不中断训练任务的情况下,对硬件资源进行动态调度。 - -以下示例介绍了如何通过对应接口,对控制集群扩容/缩容。 - -### 扩容 - -在集群启动后,进入部署scheduler节点的机器,向`Scheduler`发起请求,查询状态、节点信息。可使用`curl`指令构造`RESTful`请求。 - -```sh -curl -k 'http://10.*.*.*:18015/state' -``` - -`Scheduler`将返回`json`格式的查询结果。 - -```json -{ - "message":"Get cluster state successful.", - "cluster_state":"CLUSTER_READY", - "code":0, - "nodes":[ - {"node_id","{ip}:{port}::{timestamp}::{random}", - "tcp_address":"{ip}:{port}", - "role":"SERVER"} - ] -} -``` - -需要拉起3个新的`Server`进程,并将`local_server_num`参数累加扩容的个数,从而保证全局组网信息的正确性,即扩容后,`local_server_num`的数量应为4,执行指令的示例如下: - -```sh -python run_server.py --yaml_config="yamls/lenet.yaml" --tcp_server_ip="10.*.*.*" --checkpoint_dir="fl_ckpt" --local_server_num=4 --http_server_address="10.*.*.*:18015" -``` - -该指令代表启动四个`Server`节点,总`Server`数量为4。 - -### 缩容 - -直接使用kill -9 pid的方式模拟缩容,使用`curl`指令构造`RESTful`请求,查询状态,发现集群中少了一个node_id,达到缩容目的。 - -```sh -curl -k \ -'http://10.*.*.*:18015/state' -``` - -`Scheduler`将返回`json`格式的查询结果。 - -```json -{ - "message":"Get cluster state successful.", - "cluster_state":"CLUSTER_READY", - "code":0, - "nodes":[ - {"node_id","{ip}:{port}::{timestamp}::{random}", - "tcp_address":"{ip}:{port}", - "role":"SERVER"}, - {"node_id","worker_fl_{timestamp}::{random}", - "tcp_address":"", - "role":"WORKER"}, - {"node_id","worker_fl_{timestamp}::{random}", - "tcp_address":"", - "role":"WORKER"} - ] -} -``` - -> - 在集群扩容/缩容成功后,训练任务会自动恢复,不需要用户进行额外干预。 - -## 安全 - -MindSpore联邦学习框架支持`Server`的SSL安全认证,要开启安全认证,需要在启动命令加上`enable_ssl=True`,config_file_path指定的config.json配置文件需要添加如下字段: - -```json -{ - "server_cert_path": "server.p12", - "crl_path": "", - "client_cert_path": "client.p12", - "ca_cert_path": "ca.crt", - "cert_expire_warning_time_in_day": 90, - "cipher_list": "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK", - "connection_num":10000 -} -``` - -- server_cert_path:服务端包含证书和密钥的密文的p12文件路径。 -- crl_path:吊销列表的文件。 -- client_cert_path:客户端包含证书和密钥的密文的p12文件路径。 -- ca_cert_path:根证书。 -- cipher_list:密码套件。 -- cert_expire_warning_time_in_day:证书过期的告警时间。 - -p12文件中的密钥为密文存储。 diff --git a/docs/federated/docs/source_zh_cn/deploy_vfl.md b/docs/federated/docs/source_zh_cn/deploy_vfl.md deleted file mode 100644 index 640c22f706..0000000000 --- a/docs/federated/docs/source_zh_cn/deploy_vfl.md +++ /dev/null @@ -1,69 +0,0 @@ -# 纵向联邦部署 - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/deploy_vfl.md) - -本文档讲解如何使用和部署纵向联邦学习框架。 - -MindSpore Vertical Federated Learning (VFL) 物理架构如图所示: - -![](./images/deploy_VFL.png) - -如上图所示,在纵向联邦的交互中有两个参与方:Leader node和Follower node,每一个参与方都有两种角色的进程:`FLDataWorker`和`VFLTrainer`: - -- FLDataWorker - - `FLDataWorker`的功能主要包括: - - 1. 数据集合求交:获得纵向联邦参与双方的共有用户交集,支持隐私集合求交协议,可防止联邦学习参与方获得交集外的ID信息。 - 2. 训练数据生成:在获得交集ID之后,扩充数据特征,生成用于训练的mindrecord文件。 - 3. 开放管理面:向用户提供`RESTful`接口,实现对集群的管理。 - - 在一个联邦学习任务中,只有一个`Scheduler`,其与`Server`通过TCP协议通信。 - -- VFLTrainer - - `VFLTrainer`为执行纵向联邦训练任务的主体,执行模型拆分后的正反向计算、Embedding张量传输,梯度张量传输、反向优化器更新等任务。当前版本支持单机单卡和单机多卡的训练模式。 - - 在MindSpore联邦学习框架中,`Server`还支持弹性伸缩以及容灾,能够在训练任务不中断的情况下,动态调配硬件资源。 - -`FLDataWorker`和`VFLTrainer`一般部署在同一台服务器或者容器中。 - -## 准备环节 - -> 建议使用[Anaconda](https://www.anaconda.com/)创建虚拟环境进行如下操作。 - -### 安装MindSpore - -MindSpore纵向联邦支持在x86 CPU、GPU CUDA和Ascend硬件平台上部署。可参考[MindSpore安装指南](https://www.mindspore.cn/install)安装MindSpore最新版本。 - -### 安装MindSpore Federated - -通过[源码](https://gitee.com/mindspore/federated)编译安装。 - -```shell -git clone https://gitee.com/mindspore/federated.git -b master -cd federated -bash build.sh -``` - -对于`bash build.sh`,可通过例如`-jn`选项,例如`-j16`,加速编译;可通过`-S on`选项,从gitee而不是github下载第三方依赖。 - -编译完成后,在`build/package/`目录下找到Federated的whl安装包进行安装: - -```shell -pip install mindspore_federated-{version}-{python_version}-linux_{arch}.whl -``` - -#### 验证是否成功安装 - -执行以下命令,验证安装结果。导入Python模块不报错即安装成功: - -```python -from mindspore_federated import FLServerJob -``` - -## 运行样例 - -FLDataWorker的运行样例可参考[纵向联邦学习数据接入](https://www.mindspore.cn/federated/docs/zh-CN/master/data_join.html)。 - -VFLTrainer的运行样例可参考[纵向联邦学习模型训练 - Wide&Deep推荐应用](https://www.mindspore.cn/federated/docs/zh-CN/master/split_wnd_application.html)。 diff --git a/docs/federated/docs/source_zh_cn/faq.md b/docs/federated/docs/source_zh_cn/faq.md deleted file mode 100644 index 7e9f84e777..0000000000 --- a/docs/federated/docs/source_zh_cn/faq.md +++ /dev/null @@ -1,9 +0,0 @@ -# FAQ - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/faq.md) - -**Q: 请问如果集群组网不成功,怎么定位原因?** - -A: 请查看服务器的网络情况,譬如请查看防火墙是否禁止端口访问,请设置防火墙允许端口访问。 - -
    diff --git a/docs/federated/docs/source_zh_cn/federated_install.md b/docs/federated/docs/source_zh_cn/federated_install.md deleted file mode 100644 index 7de6d374ee..0000000000 --- a/docs/federated/docs/source_zh_cn/federated_install.md +++ /dev/null @@ -1,25 +0,0 @@ -# 获取MindSpore Federated - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/federated_install.md) - -[MindSpore Federated](https://gitee.com/mindspore/federated)框架代码现已独立建仓,分为端侧和云侧,其云侧能力依赖MindSpore和MindSpore Federated,利用MindSpore进行云侧集群聚合训练以及与端侧进行通信,因此需要分别获取MindSpore whl包和MindSpore Federated whl包。端侧能力依赖MindSpore Lite和MindSpore Federated java包,其中MindSpore Federated java主要负责数据预处理、调用MindSpore Lite进行模型训练和推理以及利用隐私保护机制和云侧进行模型相关的上传和下载。 - -## 获取MindSpore whl包 - -包括源码编译和下载发布版两种方式,支持x86 CPU、GPU CUDA等硬件平台,根据硬件平台类型,选择进行安装即可。安装步骤可参考[MindSpore安装指南](https://www.mindspore.cn/install)。 - -## 获取MindSpore Lite java包 - -包括源码编译和下载发布版两种方式。目前,MindSpore Lite联邦学习功能只支持Linux和Android平台,且只支持CPU。安装步骤可参考[下载MindSpore Lite](https://www.mindspore.cn/lite/docs/zh-CN/master/use/downloads.html)和[编译MindSpore Lite](https://www.mindspore.cn/lite/docs/zh-CN/master/build/build.html)。 - -## 获取MindSpore Federated whl包 - -包括源码编译和下载发布版两种方式,支持x86 CPU、GPU CUDA等硬件平台,根据硬件平台类型,选择进行安装即可。安装步骤可参考[编译MindSpore Federated whl](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_server.html)。 - -## 获取MindSpore Federated java包 - -包括源码编译和下载发布版两种方式。目前,MindSpore Federated联邦学习功能只支持Linux和Android平台。安装步骤可参考和[编译MindSpore Federated java](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html)。 - -## Linux编译环境要求 - -目前源码编译只支持Linux,编译环境要求可参考[MindSpore源码编译](https://www.mindspore.cn/install)和[MindSpore Lite源码编译](https://www.mindspore.cn/lite/docs/zh-CN/master/build/build.html)。 diff --git a/docs/federated/docs/source_zh_cn/horizontal_server.rst b/docs/federated/docs/source_zh_cn/horizontal_server.rst deleted file mode 100644 index d5a4319b56..0000000000 --- a/docs/federated/docs/source_zh_cn/horizontal_server.rst +++ /dev/null @@ -1,12 +0,0 @@ -联邦服务器 -============== - -.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg - :target: https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/horizontal_server.rst - :alt: 查看源文件 - -.. toctree:: - :maxdepth: 1 - - horizontal/federated_server - horizontal/federated_server_yaml diff --git a/docs/federated/docs/source_zh_cn/image_classfication_dataset_process.md b/docs/federated/docs/source_zh_cn/image_classfication_dataset_process.md deleted file mode 100644 index 6f991cc4e4..0000000000 --- a/docs/federated/docs/source_zh_cn/image_classfication_dataset_process.md +++ /dev/null @@ -1,451 +0,0 @@ -# 联邦学习图像分类数据集处理 - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/image_classfication_dataset_process.md) - -本教程采用`leaf`数据集中的联邦学习数据集`FEMNIST`,该数据集包含62个不同类别的手写数字和字母(数字0~9、26个小写字母、26个大写字母),图像大小为`28 x 28`像素,数据集包含3500个用户的手写数字和字母(最多可模拟3500个客户端参与联邦学习),总数据量为805263,平均每个用户包含数据量为226.83,所有用户数据量的方差为88.94。 - -参考[leaf数据集官方指导](https://github.com/TalwalkarLab/leaf)下载数据集。 - -1. 下载数据集前的环境要求。 - - ```sh - numpy==1.16.4 - scipy # conda install scipy - tensorflow==1.13.1 # pip install tensorflow - Pillow # pip install Pillow - matplotlib # pip install matplotlib - jupyter # conda install jupyter notebook==5.7.8 tornado==4.5.3 - pandas # pip install pandas - ``` - -2. 使用git下载官方数据集生成脚本。 - - ```sh - git clone https://github.com/TalwalkarLab/leaf.git - ``` - - 下载项目后,目录结构如下: - - ```sh - leaf/data/femnist - ├── data # 用来存放指令生成的数据集 - ├── preprocess # 存放数据预处理的相关代码 - ├── preprocess.sh # femnist数据集生成shell脚本 - └── README.md # 官方数据集下载指导文档 - ``` - -3. 以`femnist`数据集为例,运行以下指令进入指定路径。 - - ```sh - cd leaf/data/femnist - ``` - -4. 用指令`./preprocess.sh -s niid --sf 1.0 -k 0 -t sample`生成的数据集包含3500个用户,且按照9:1对每个用户的数据划分训练和测试集。 - - 指令中参数含义可参考`leaf/data/femnist/README.md`文件中的说明。 - - 运行之后目录结构如下: - - ```text - leaf/data/femnist/35_client_sf1_data/ - ├── all_data # 所有数据集混合在一起,不区分训练测试集,共包含35个json文件,每个json文件包含100个用户的数据 - ├── test # 按照9:1对每个用户的数据划分训练和测试集后的测试集,共包含35个json文件,每个json文件包含100个用户的数据 - ├── train # 按照9:1对每个用户的数据划分训练和测试集后的训练集,共包含35个json文件,每个json文件包含100个用户的数据 - └── ... # 其他文件,暂不需要用到,不作介绍 - ``` - - 其中每个json文件包含以下三个部分: - - - `users`: 用户列表。 - - `num_samples`: 每个用户的样本数量列表。 - - `user_data`: 一个以用户名为key,以它们各自的数据为value的字典对象;对于每个用户,数据表示为图像列表,每张图像表示为大小为784的整数列表(将`28 x 28`图像数组展平所得)。 - - 在重新运行`preprocess.sh`之前,请确保删除数据目录中的`rem_user_data`、`sampled_data`、`test`和`train`子文件夹。 - -5. 将35个json文件划分为3500个json文件(每个json文件代表一个用户)。 - - 参考代码如下: - - ```python - import os - import json - - def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - def partition_json(root_path, new_root_path): - """ - partition 35 json files to 3500 json file - - Each raw .json file is an object with 3 keys: - 1. 'users', a list of users - 2. 'num_samples', a list of the number of samples for each user - 3. 'user_data', an object with user names as keys and their respective data as values; for each user, data is represented as a list of images, with each image represented as a size-784 integer list (flattened from 28 by 28) - - Each new .json file is an object with 3 keys: - 1. 'user_name', the name of user - 2. 'num_samples', the number of samples for the user - 3. 'user_data', an dict object with 'x' as keys and their respective data as values; with 'y' as keys and their respective label as values; - - Args: - root_path (str): raw root path of 35 json files - new_root_path (str): new root path of 3500 json files - """ - paths = os.listdir(root_path) - count = 0 - file_num = 0 - for i in paths: - file_num += 1 - file_path = os.path.join(root_path, i) - print('======== process ' + str(file_num) + ' file: ' + str(file_path) + '======================') - with open(file_path, 'r') as load_f: - load_dict = json.load(load_f) - users = load_dict['users'] - num_users = len(users) - num_samples = load_dict['num_samples'] - for j in range(num_users): - count += 1 - print('---processing user: ' + str(count) + '---') - cur_out = {'user_name': None, 'num_samples': None, 'user_data': {}} - cur_user_id = users[j] - cur_data_num = num_samples[j] - cur_user_path = os.path.join(new_root_path, cur_user_id + '.json') - cur_out['user_name'] = cur_user_id - cur_out['num_samples'] = cur_data_num - cur_out['user_data'].update(load_dict['user_data'][cur_user_id]) - with open(cur_user_path, 'w') as f: - json.dump(cur_out, f) - f = os.listdir(new_root_path) - print(len(f), ' users have been processed!') - # partition train json files - partition_json("leaf/data/femnist/35_client_sf1_data/train", "leaf/data/femnist/3500_client_json/train") - # partition test json files - partition_json("leaf/data/femnist/35_client_sf1_data/test", "leaf/data/femnist/3500_client_json/test") - ``` - - 其中`root_path`为`leaf/data/femnist/35_client_sf1_data/{train,test}`,`new_root_path`自行设置,用于存放生成的3500个用户json文件,需分别对训练和测试文件夹进行处理。 - - 新生成的3500个用户json文件,每个文件均包含以下三个部分: - - - `user_name`: 用户名。 - - `num_samples`: 用户的样本数。 - - `user_data`: 一个以'x'为key,以用户数据为value的字典对象;以'y'为key,以用户数据对应的标签为value。 - - 运行该脚本打印如下,代表运行成功: - - ```sh - ======== process 1 file: /leaf/data/femnist/35_client_sf1_data/train/all_data_16_niid_0_keep_0_train_9.json====================== - ---processing user: 1--- - ---processing user: 2--- - ---processing user: 3--- - ...... - ``` - -6. 将json文件转换为图片文件。 - - 可参考如下代码: - - ```python - import os - import json - import numpy as np - from PIL import Image - - name_list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', - 'v', 'w', 'x', 'y', 'z' - ] - - def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - def json_2_numpy(img_size, file_path): - """ - read json file to numpy - Args: - img_size (list): contain three elements: the height, width, channel of image - file_path (str): root path of 3500 json files - return: - image_numpy (numpy) - label_numpy (numpy) - """ - # open json file - with open(file_path, 'r') as load_f_train: - load_dict = json.load(load_f_train) - num_samples = load_dict['num_samples'] - x = load_dict['user_data']['x'] - y = load_dict['user_data']['y'] - size = (num_samples, img_size[0], img_size[1], img_size[2]) - image_numpy = np.array(x, dtype=np.float32).reshape(size) # mindspore doesn't support float64 and int64 - label_numpy = np.array(y, dtype=np.int32) - return image_numpy, label_numpy - - def json_2_img(json_path, save_path): - """ - transform single json file to images - - Args: - json_path (str): the path json file - save_path (str): the root path to save images - - """ - data, label = json_2_numpy([28, 28, 1], json_path) - for i in range(data.shape[0]): - img = data[i] * 255 # PIL don't support the 0/1 image ,need convert to 0~255 image - im = Image.fromarray(np.squeeze(img)) - im = im.convert('L') - img_name = str(label[i]) + '_' + name_list[label[i]] + '_' + str(i) + '.png' - path1 = os.path.join(save_path, str(label[i])) - mkdir(path1) - img_path = os.path.join(path1, img_name) - im.save(img_path) - print('-----', i, '-----') - - def all_json_2_img(root_path, save_root_path): - """ - transform json files to images - Args: - json_path (str): the root path of 3500 json files - save_path (str): the root path to save images - """ - usage = ['train', 'test'] - for i in range(2): - x = usage[i] - files_path = os.path.join(root_path, x) - files = os.listdir(files_path) - - for name in files: - user_name = name.split('.')[0] - json_path = os.path.join(files_path, name) - save_path1 = os.path.join(save_root_path, user_name) - mkdir(save_path1) - save_path = os.path.join(save_path1, x) - mkdir(save_path) - print('=============================' + name + '=======================') - json_2_img(json_path, save_path) - - all_json_2_img("leaf/data/femnist/3500_client_json/", "leaf/data/femnist/3500_client_img/") - ``` - - 运行该脚本打印如下,代表运行成功: - - ```sh - =============================f0644_19.json======================= - ----- 0 ----- - ----- 1 ----- - ----- 2 ----- - ...... - ``` - -7. 由于有些用户文件夹下的数据集较小,若数量小于batch size,需要进行随机扩充。 - - 可参考下面代码对整个数据集`"leaf/data/femnist/3500_client_img/"`进行检查并扩充: - - ```python - import os - import shutil - from random import choice - - def count_dir(path): - num = 0 - for root, dirs, files in os.walk(path): - for file in files: - num += 1 - return num - - def get_img_list(path): - img_path_list = [] - label_list = os.listdir(path) - for i in range(len(label_list)): - label = label_list[i] - imgs_path = os.path.join(path, label) - imgs_name = os.listdir(imgs_path) - for j in range(len(imgs_name)): - img_name = imgs_name[j] - img_path = os.path.join(imgs_path, img_name) - img_path_list.append(img_path) - return img_path_list - - def data_aug(data_root_path, batch_size = 32): - users = os.listdir(data_root_path) - tags = ["train", "test"] - aug_users = [] - for i in range(len(users)): - user = users[i] - for tag in tags: - data_path = os.path.join(data_root_path, user, tag) - num_data = count_dir(data_path) - if num_data < batch_size: - aug_users.append(user + "_" + tag) - print("user: ", user, " ", tag, " data number: ", num_data, " < ", batch_size, " should be aug") - aug_num = batch_size - num_data - img_path_list = get_img_list(data_path) - for j in range(aug_num): - img_path = choice(img_path_list) - info = img_path.split(".") - aug_img_path = info[0] + "_aug_" + str(j) + ".png" - shutil.copy(img_path, aug_img_path) - print("[aug", j, "]", "============= copy file:", img_path, "to ->", aug_img_path) - print("the number of all aug users: " + str(len(aug_users))) - print("aug user name: ", end=" ") - for k in range(len(aug_users)): - print(aug_users[k], end = " ") - - if __name__ == "__main__": - data_root_path = "leaf/data/femnist/3500_client_img/" - batch_size = 32 - data_aug(data_root_path, batch_size) - ``` - -8. 将扩充后图片数据集转换为联邦学习框架可用的bin文件格式。 - - 可参考下面代码: - - ```python - import numpy as np - import os - import mindspore.dataset as ds - import mindspore.dataset.vision as vision - import mindspore.dataset.transforms as transforms - import mindspore - - def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - def count_id(path): - files = os.listdir(path) - ids = {} - for i in files: - ids[i] = int(i) - return ids - - def create_dataset_from_folder(data_path, img_size, batch_size=32, repeat_size=1, num_parallel_workers=1, shuffle=False): - """ create dataset for train or test - Args: - data_path: Data path - batch_size: The number of data records in each group - repeat_size: The number of replicated data records - num_parallel_workers: The number of parallel workers - """ - # define dataset - ids = count_id(data_path) - mnist_ds = ds.ImageFolderDataset(dataset_dir=data_path, decode=False, class_indexing=ids) - # define operation parameters - resize_height, resize_width = img_size[0], img_size[1] # 32 - - transform = [ - vision.Decode(True), - vision.Grayscale(1), - vision.Resize(size=(resize_height, resize_width)), - vision.Grayscale(3), - vision.ToTensor(), - ] - compose = transforms.Compose(transform) - - # apply map operations on images - mnist_ds = mnist_ds.map(input_columns="label", operations=transforms.TypeCast(mindspore.int32)) - mnist_ds = mnist_ds.map(input_columns="image", operations=compose) - - # apply DatasetOps - buffer_size = 10000 - if shuffle: - mnist_ds = mnist_ds.shuffle(buffer_size=buffer_size) # 10000 as in LeNet train script - mnist_ds = mnist_ds.batch(batch_size, drop_remainder=True) - mnist_ds = mnist_ds.repeat(repeat_size) - return mnist_ds - - def img2bin(root_path, root_save): - """ - transform images to bin files - - Args: - root_path: the root path of 3500 images files - root_save: the root path to save bin files - - """ - - use_list = [] - train_batch_num = [] - test_batch_num = [] - mkdir(root_save) - users = os.listdir(root_path) - for user in users: - use_list.append(user) - user_path = os.path.join(root_path, user) - train_test = os.listdir(user_path) - for tag in train_test: - data_path = os.path.join(user_path, tag) - dataset = create_dataset_from_folder(data_path, (32, 32, 1), 32) - batch_num = 0 - img_list = [] - label_list = [] - for data in dataset.create_dict_iterator(): - batch_x_tensor = data['image'] - batch_y_tensor = data['label'] - trans_img = np.transpose(batch_x_tensor.asnumpy(), [0, 2, 3, 1]) - img_list.append(trans_img) - label_list.append(batch_y_tensor.asnumpy()) - batch_num += 1 - - if tag == "train": - train_batch_num.append(batch_num) - elif tag == "test": - test_batch_num.append(batch_num) - - imgs = np.array(img_list) # (batch_num, 32,3,32,32) - labels = np.array(label_list) - path1 = os.path.join(root_save, user) - mkdir(path1) - image_path = os.path.join(path1, user + "_" + "bn_" + str(batch_num) + "_" + tag + "_data.bin") - label_path = os.path.join(path1, user + "_" + "bn_" + str(batch_num) + "_" + tag + "_label.bin") - - imgs.tofile(image_path) - labels.tofile(label_path) - print("user: " + user + " " + tag + "_batch_num: " + str(batch_num)) - print("total " + str(len(use_list)) + " users finished!") - - root_path = "leaf/data/femnist/3500_client_img/" - root_save = "leaf/data/femnist/3500_clients_bin" - img2bin(root_path, root_save) - ``` - - 运行该脚本打印如下,代表运行成功: - - ```sh - user: f0141_43 test_batch_num: 1 - user: f0141_43 train_batch_num: 10 - user: f0137_14 test_batch_num: 1 - user: f0137_14 train_batch_num: 11 - ...... - total 3500 users finished! - ``` - -9. 生成`3500_clients_bin`文件夹内共包含3500个用户文件夹,其目录结构如下: - - ```sh - leaf/data/femnist/3500_clients_bin - ├── f0000_14 # 用户编号 - │ ├── f0000_14_bn_10_train_data.bin # 用户f0000_14的训练数据 (bn_后面的数字10代表batch number) - │ ├── f0000_14_bn_10_train_label.bin # 用户f0000_14的训练标签 - │ ├── f0000_14_bn_1_test_data.bin # 用户f0000_14的测试数据 (bn_后面的数字1代表batch number) - │ └── f0000_14_bn_1_test_label.bin # 用户f0000_14的测试标签 - ├── f0001_41 # 用户编号 - │ ├── f0001_41_bn_11_train_data.bin # 用户f0001_41的训练数据 (bn_后面的数字11代表batch number) - │ ├── f0001_41_bn_11_train_label.bin # 用户f0001_41的训练标签 - │ ├── f0001_41_bn_1_test_data.bin # 用户f0001_41的测试数据 (bn_后面的数字1代表batch number) - │ └── f0001_41_bn_1_test_label.bin # 用户f0001_41的测试标签 - │ ... - └── f4099_10 # 用户编号 - ├── f4099_10_bn_4_train_data.bin # 用户f4099_10的训练数据 (bn_后面的数字4代表batch number) - ├── f4099_10_bn_4_train_label.bin # 用户f4099_10的训练标签 - ├── f4099_10_bn_1_test_data.bin # 用户f4099_10的测试数据 (bn_后面的数字1代表batch number) - └── f4099_10_bn_1_test_label.bin # 用户f4099_10的测试标签 - ``` - -根据以上1~9步骤生成的`3500_clients_bin`文件夹可直接作为端云联邦图像分类任务的输入数据。 - diff --git a/docs/federated/docs/source_zh_cn/image_classification_application.md b/docs/federated/docs/source_zh_cn/image_classification_application.md deleted file mode 100644 index ff194ff3b2..0000000000 --- a/docs/federated/docs/source_zh_cn/image_classification_application.md +++ /dev/null @@ -1,331 +0,0 @@ -# 实现一个端云联邦的图像分类应用(x86) - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/image_classification_application.md) - -根据参与客户端的类型,联邦学习可分为云云联邦学习(cross-silo)和端云联邦学习(cross-device)。在云云联邦学习场景中,参与联邦学习的客户端是不同的组织(例如,医疗或金融)或地理分布的数据中心,即在多个数据孤岛上训练模型。在端云联邦学习场景中,参与的客户端为大量的移动或物联网设备。本框架将介绍如何在MindSpore端云联邦框架上使用网络LeNet实现一个图片分类应用,并提供在x86环境中模拟启动多客户端参与联邦学习的相关教程。 - -在动手进行实践之前,确保你已经正确安装了MindSpore。如果没有,可以参考[MindSpore安装页面](https://www.mindspore.cn/install)完成安装。 - -## 准备工作 - -我们提供了可供用户直接使用的[联邦学习图像分类数据集FEMNIST](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/federated/3500_clients_bin.zip),以及`.ms`格式的[端侧模型文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/models/lenet_train.ms)。用户也可以根据实际需求,参考以下教程自行生成数据集和模型。 - -### 生成端侧模型文件 - -1. 定义网络和训练过程。 - - 具体网络和训练过程的定义可参考[快速入门](https://www.mindspore.cn/tutorials/zh-CN/master/beginner/quick_start.html#网络构建)。 - -2. 将模型导出为MindIR格式文件。 - - 代码片段如下: - - ```python - import argparse - import numpy as np - import mindspore as ms - import mindspore.nn as nn - - def conv(in_channels, out_channels, kernel_size, stride=1, padding=0): - """weight initial for conv layer""" - weight = weight_variable() - return nn.Conv2d( - in_channels, - out_channels, - kernel_size=kernel_size, - stride=stride, - padding=padding, - weight_init=weight, - has_bias=False, - pad_mode="valid", - ) - - def fc_with_initialize(input_channels, out_channels): - """weight initial for fc layer""" - weight = weight_variable() - bias = weight_variable() - return nn.Dense(input_channels, out_channels, weight, bias) - - def weight_variable(): - """weight initial""" - return ms.common.initializer.TruncatedNormal(0.02) - - class LeNet5(nn.Cell): - def __init__(self, num_class=10, channel=3): - super(LeNet5, self).__init__() - self.num_class = num_class - self.conv1 = conv(channel, 6, 5) - self.conv2 = conv(6, 16, 5) - self.fc1 = fc_with_initialize(16 * 5 * 5, 120) - self.fc2 = fc_with_initialize(120, 84) - self.fc3 = fc_with_initialize(84, self.num_class) - self.relu = nn.ReLU() - self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2) - self.flatten = nn.Flatten() - - def construct(self, x): - x = self.conv1(x) - x = self.relu(x) - x = self.max_pool2d(x) - x = self.conv2(x) - x = self.relu(x) - x = self.max_pool2d(x) - x = self.flatten(x) - x = self.fc1(x) - x = self.relu(x) - x = self.fc2(x) - x = self.relu(x) - x = self.fc3(x) - return x - - parser = argparse.ArgumentParser(description="export mindir for lenet") - parser.add_argument("--device_target", type=str, default="CPU") - parser.add_argument("--mindir_path", type=str, - default="lenet_train.mindir") # the mindir file path of the model to be export - - args, _ = parser.parse_known_args() - device_target = args.device_target - mindir_path = args.mindir_path - - ms.set_context(mode=ms.GRAPH_MODE, device_target=device_target) - - if __name__ == "__main__": - np.random.seed(0) - network = LeNet5(62) - criterion = nn.SoftmaxCrossEntropyWithLogits(sparse=False, reduction="mean") - net_opt = nn.Momentum(network.trainable_params(), 0.01, 0.9) - net_with_criterion = nn.WithLossCell(network, criterion) - train_network = nn.TrainOneStepCell(net_with_criterion, net_opt) - train_network.set_train() - - data = ms.Tensor(np.random.rand(32, 3, 32, 32).astype(np.float32)) - label = ms.Tensor(np.random.randint(0, 1, (32, 62)).astype(np.float32)) - ms.export(train_network, data, label, file_name=mindir_path, - file_format='MINDIR') # Add the export statement to obtain the model file in MindIR format. - ``` - - 参数`--mindir_path`用于设置生成的MindIR格式文件路径。 - -3. 将MindIR文件转化为联邦学习端侧框架可用的ms文件。 - - 模型转换可参考[训练模型转换教程](https://www.mindspore.cn/lite/docs/zh-CN/master/converter/converter_tool.html)。 - - 模型转换示例如下: - - 假设待转换的模型文件为`lenet_train.mindir`,执行如下转换命令: - - ```sh - ./converter_lite --fmk=MINDIR --trainModel=true --modelFile=lenet_train.mindir --outputFile=lenet_train - ``` - - 转换成功输出如下: - - ```sh - CONVERT RESULT SUCCESS:0 - ``` - - 这表明MindSpore模型成功转换为MindSpore端侧模型,并生成了新文件`lenet_train.ms`。如果转换失败输出如下: - - ```sh - CONVERT RESULT FAILED: - ``` - - 生成的`.ms`格式的模型文件为后续客户端所需的模型文件。 - -## 模拟启动多客户端参与联邦学习 - -### 为客户端准备好模型文件 - -本例在端侧使用lenet模拟实际用的网络,其中lenet的`.ms`格式的[端侧模型文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/models/lenet_train.ms),由于真实场景一个客户端只包含一个.ms格式的模型文件,在模拟场景中,需要拷贝多份.ms文件,并按照`lenet_train{i}.ms`格式进行命名。其中i代表客户端编号,由于`run_client_x86.py`中,已自动为每个客户端拷贝.ms文件。 -具体见[启动脚本](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/simulate_x86/run_client_x86.py)中的copy_ms函数。 - -### 启动云侧服务 - -用户可先参考[横向云侧部署教程](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_server.html)部署云侧环境,并启动云侧服务。 - -### 启动客户端 - -启动客户端之前请先参照[横向端侧部署教程](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html)进行端侧环境部署。 - -使用提供的[run_client_x86.py](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/simulate_x86/run_client_x86.py)脚本进行端侧联邦学习的启动,通过相关参数的设置,来启动不同的联邦学习接口。 -待云侧服务启动成功之后,使用提供run_client_x86.py的脚本,调用联邦学习框架jar包`mindspore-lite-java-flclient.jar` 和模型脚本对应的jar包`quick_start_flclient.jar`(可参考[横向端侧部署中编译出包流程](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html)获取)来模拟启动多客户端参与联邦学习任务。 - -以LeNet网络为例,`run_client_x86.py`脚本中部分入参含义如下,用户可根据实际情况进行设置: - -- `--fl_jar_path` - - 设置联邦学习jar包路径,x86环境联邦学习jar包获取可参考[横向端侧部署中编译出包流程](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html)。 - -- `--case_jar_path` - - 设置模型脚本所生成的jar包`quick_start_flclient.jar`的路径,x86环境联邦学习jar包获取可参考[横向联邦端侧部署中编译出包流程](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html)。 - -- `--lite_jar_path` - - 设置mindspore lite的端侧jar包`mindspore-lite-java.jar`的路径,位于端侧包mindspore-lite-{version}-linux-x64.tar.gz中,x86环境联邦学习jar包获取可参考[横向端侧部署中构建环境依赖](https://www.mindspore.cn/federated/docs/zh-CN/master/deploy_federated_client.html)。 - -- `--train_data_dir` - - 训练数据集root路径,LeNet图片分类任务在该root路径中存放的是每个客户端的训练data.bin文件与label.bin文件,例如`data/femnist/3500_clients_bin/`。 - -- `--fl_name` - - 联邦学习使用的模型脚本包路径。我们提供了两个类型的模型脚本供大家参考([有监督情感分类任务](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert)、[LeNet图片分类任务](https://gitee.com/mindspore/federated/tree/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet)),对于有监督情感分类任务,该参数可设置为所提供的脚本文件[AlBertClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/albert/AlbertClient.java) 的包路径`com.mindspore.flclient.demo.albert.AlbertClient`;对于LeNet图片分类任务,该参数可设置为所提供的脚本文件[LenetClient.java](https://gitee.com/mindspore/federated/blob/master/example/quick_start_flclient/src/main/java/com/mindspore/flclient/demo/lenet/LenetClient.java) 的包路径`com.mindspore.flclient.demo.lenet.LenetClient`。同时,用户可参考这两个类型的模型脚本,自定义模型脚本,然后将该参数设置为自定义的模型文件ModelClient.java(需继承于类[Client.java](https://gitee.com/mindspore/federated/blob/master/mindspore_federated/device_client/src/main/java/com/mindspore/flclient/model/Client.java))的包路径即可。 - -- `--train_model_dir` - - 设置联邦学习使用的训练模型路径,为上面教程中拷贝的多份.ms文件所存放的目录,比如`ms/lenet`,必须为绝对路径。 - -- `--domain_name` - - 用于设置端云通信url,目前,可支持https和http通信,对应格式分别为:https://......、http://......,当`if_use_elb`设置为true时,格式必须为: 或者 ,其中`127.0.0.1`对应提供云侧服务的机器ip(即云侧参数`--scheduler_ip`),`6666`对应云侧参数`--fl_server_port`。 - - 注意1,当该参数设置为`http://......`时代表使用HTTP通信,可能会存在通信安全风险,请知悉。 - - 注意2,当该参数设置为`https://......`代表使用HTTPS通信。此时必须进行SSL证书认证,需要通过参数`--cert_path`设置证书路径。 - -- `--task` - - 用于设置本此启动的任务类型,为`train`代表启动训练任务,为`inference`代表启动多条数据推理任务,为`getModel`代表启动获取云侧模型的任务,设置其他字符串代表启动单条数据推理任务。默认为`train`。由于初始的模型文件(.ms文件)是未训练过的,建议先启动训练任务,待训练完成之后,再启动推理任务(注意两次启动的`client_num`保持一致,以保证`inference`使用的模型文件与`train`保持一致)。 - -- `--batch_size` - - 设置联邦学习训练和推理时使用的单步训练样本数,即batch size。需与模型的输入数据的batch size保持一致。 - -- `--client_num` - - 设置client数量,与启动server端时的`start_fl_job_cnt`保持一致,真实场景不需要此参数。 - -若想进一步了解`run_client_x86.py`脚本中其他参数含义,可参考脚本中注释部分。 - -联邦学习接口基本启动指令示例如下: - -```sh - rm -rf client_*\ - && rm -rf ms/* \ - && python3 run_client_x86.py \ - --fl_jar_path="federated/mindspore_federated/device_client/build/libs/jarX86/mindspore-lite-java-flclient.jar" \ - --case_jar_path="federated/example/quick_start_flclient/target/case_jar/quick_start_flclient.jar" \ - --lite_jar_path="federated/mindspore_federated/device_client/third/mindspore-lite-2.0.0-linux-x64/runtime/lib/mindspore-lite-java.jar" \ - --train_data_dir="federated/tests/st/simulate_x86/data/3500_clients_bin/" \ - --eval_data_dir="null" \ - --infer_data_dir="null" \ - --vocab_path="null" \ - --ids_path="null" \ - --path_regex="," \ - --fl_name="com.mindspore.flclient.demo.lenet.LenetClient" \ - --origin_train_model_path="federated/tests/st/simulate_x86/ms_files/lenet/lenet_train.ms" \ - --origin_infer_model_path="null" \ - --train_model_dir="ms" \ - --infer_model_dir="ms" \ - --ssl_protocol="TLSv1.2" \ - --deploy_env="x86" \ - --domain_name="http://10.*.*.*:8010" \ - --cert_path="CARoot.pem" --use_elb="false" \ - --server_num=1 \ - --task="train" \ - --thread_num=1 \ - --cpu_bind_mode="NOT_BINDING_CORE" \ - --train_weight_name="null" \ - --infer_weight_name="null" \ - --name_regex="::" \ - --server_mode="FEDERATED_LEARNING" \ - --batch_size=32 \ - --input_shape="null" \ - --client_num=8 -``` - -注意,启动指令中涉及路径的必须给出绝对路径。 - -以上指令代表启动8个客户端参与联邦学习训练任务,若启动成功,会在当前文件夹生成8个客户端对应的日志文件,查看日志文件内容可了解每个客户端的运行情况: - -```text -./ -├── client_0 -│ └── client.log # 客户端0的日志文件 -│ ...... -└── client_7 - └── client.log # 客户端4的日志文件 -``` - -针对不同的接口和场景,只需根据参数含义,修改特定参数值即可,比如: - -- 启动联邦学习训练任务SyncFLJob.flJobRun() - - 当`基本启动指令`中 `--task`设置为`train`时代表启动该任务。 - - 可通过指令`grep -r "average loss:" client_0/client.log`查看`client_0`在训练过程中每个epoch的平均loss,会有类似如下打印: - - ```sh - INFO: ----------epoch:0,average loss:4.1258564 ---------- - ...... - ``` - - 也可通过指令`grep -r "evaluate acc:" client_0/client.log`查看`client_0`在每个联邦学习迭代中聚合后模型的验证精度,会有类似如下打印: - - ```sh - INFO: [evaluate] evaluate acc: 0.125 - ...... - ``` - - 在云侧,可以通过设置yaml配置文件的`cluster_client_num`参数与`eval_type`参数来指定进行无监督聚类指标统计的客户端group id数量与算法类型,在云侧生成的`metrics.json`统计文件可以查询到无监督指标信息: - - ```text - "unsupervisedEval":0.640 - "unsupervisedEval":0.675 - "unsupervisedEval":0.677 - "unsupervisedEval":0.706 - ...... - ``` - -- 启动推理任务SyncFLJob.modelInference() - - 当`基本启动指令`中 `--task`设置为`inference`时代表启动该任务。 - - 可通过指令`grep -r "the predicted labels:" client_0/client.log`查看`client_0`的推理结果: - - ```sh - INFO: [model inference] the predicted labels: [0, 0, 0, 1, 1, 1, 2, 2, 2] - ...... - ``` - -- 启动获取云侧最新模型任务SyncFLJob.getModel() - - 当`基本启动指令`中 `--task`设置为`getModel`时代表启动该任务。 - - 在日志文件中若有如下内容代表获取云侧最新模型成功: - - ```sh - INFO: [getModel] get response from server ok! - ``` - -### 关闭客户端进程 - -可参考[finish.py](https://gitee.com/mindspore/federated/blob/master/example/cross_device_lenet_femnist/simulate_x86/finish.py)脚本,具体如下: - -关闭客户端指令如下: - -```sh -python finish.py --kill_tag=mindspore-lite-java-flclient -``` - -其中参数`--kill_tag`用于搜索该关键字对客户端进程进行kill,只需要设置`--jarPath`中的特殊关键字即可。默认为`mindspore-lite-java-flclient`,即联邦学习jar包名。 -用户可通过指令`ps -ef |grep "mindspore-lite-java-flclient"`查看进程是否还存在。 - -50个客户端参与联邦学习训练任务实验结果。 - -目前`3500_clients_bin`文件夹中包含3500个客户端的数据,本脚本最多可模拟3500个客户端参与联邦学习。 - -下图给出了50个客户端(设置`server_num`为16)进行联邦学习的测试集精度: - -![lenet_50_clients_acc](images/lenet_50_clients_acc.png) - -其中联邦学习总迭代数为100,客户端本地训练epoch数为20,batchSize设置为32。 - -图中测试精度指对于每个联邦学习迭代,各客户端测试集在云侧聚合后的模型上的精度。 - -AVG:对于每个联邦学习迭代,50个客户端测试集精度的平均值。 - -TOP5:对于每个联邦学习迭代,测试集精度最高的5个客户端的精度平均值。 - -LOW5:对于每个联邦学习迭代,测试集精度最低的5个客户端的精度平均值。 diff --git a/docs/federated/docs/source_zh_cn/image_classification_application_in_cross_silo.md b/docs/federated/docs/source_zh_cn/image_classification_application_in_cross_silo.md deleted file mode 100644 index 7f245d2e50..0000000000 --- a/docs/federated/docs/source_zh_cn/image_classification_application_in_cross_silo.md +++ /dev/null @@ -1,313 +0,0 @@ -# 实现一个云云联邦的图像分类应用(x86) - -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/federated/docs/source_zh_cn/image_classification_application_in_cross_silo.md) - -根据参与客户端的类型,联邦学习可分为云云联邦学习(cross-silo)和端云联邦学习(cross-device)。在云云联邦学习场景中,参与联邦学习的客户端是不同的组织(例如,医疗或金融)或地理分布的数据中心,即在多个数据孤岛上训练模型。在端云联邦学习场景中,参与的客户端为大量的移动或物联网设备。本框架将介绍如何在MindSpore Federated云云联邦框架上,使用网络LeNet实现一个图片分类应用。 - -启动云云联邦的图像分类应用的完整脚本可参考[这里](https://gitee.com/mindspore/federated/tree/master/example/cross_silo_femnist)。 - -## 下载数据集 - -本示例采用[leaf数据集](https://github.com/TalwalkarLab/leaf)中的联邦学习数据集`FEMNIST`,该数据集包含62个不同类别的手写数字和字母(数字0~9、26个小写字母、26个大写字母),图像大小为`28 x 28`像素,数据集包含3500个用户的手写数字和字母(最多可模拟3500个客户端参与联邦学习),总数据量为805263,平均每个用户包含数据量为226.83,所有用户数据量的方差为88.94。 - -可参考文档[端云联邦学习图像分类数据集处理](https://www.mindspore.cn/federated/docs/zh-CN/master/image_classfication_dataset_process.html)中步骤1~7获取图片形式的3500个用户数据集`3500_client_img`。 - -由于原始3500个用户数据集中每个用户数据量比较少,在云云联邦任务中会收敛太快,无法明显体现云云联邦框架的收敛效果,下面提供一个参考脚本,将指定数量的用户数据集合并为一个用户,以增加参与云云联邦任务的单个用户数据量,更好地模拟云云联邦框架实验。 - -```python -import os -import shutil - - -def mkdir(path): - if not os.path.exists(path): - os.mkdir(path) - - -def combine_users(root_data_path, new_data_path, raw_user_num, new_user_num): - mkdir(new_data_path) - user_list = os.listdir(root_data_path) - num_per_user = int(raw_user_num / new_user_num) - for i in range(new_user_num): - print( - "========================== combine the raw {}~{} users to the new user: dataset_{} ==========================".format( - i * num_per_user, i * num_per_user + num_per_user - 1, i)) - new_user = "dataset_" + str(i) - new_user_path = os.path.join(new_data_path, new_user) - mkdir(new_user_path) - for j in range(num_per_user): - index = i * new_user_num + j - user = user_list[index] - user_path = os.path.join(root_data_path, user) - tags = os.listdir(user_path) - print("------------- process the raw user: {} -------------".format(user)) - for t in tags: - tag_path = os.path.join(user_path, t) - label_list = os.listdir(tag_path) - new_tag_path = os.path.join(new_user_path, t) - mkdir(new_tag_path) - for label in label_list: - label_path = os.path.join(tag_path, label) - img_list = os.listdir(label_path) - new_label_path = os.path.join(new_tag_path, label) - mkdir(new_label_path) - - for img in img_list: - img_path = os.path.join(label_path, img) - new_img_name = user + "_" + img - new_img_path = os.path.join(new_label_path, new_img_name) - shutil.copy(img_path, new_img_path) - -if __name__ == "__main__": - root_data_path = "cross_silo_femnist/femnist/3500_clients_img" - new_data_path = "cross_silo_femnist/femnist/35_7_client_img" - raw_user_num = 35 - new_user_num = 7 - combine_users(root_data_path, new_data_path, raw_user_num, new_user_num) -``` - -其中`root_data_path`为原始3500个用户数据集路径,`new_data_path`为合并后数据集的路径,`raw_user_num`指定用于合并的用户数据集总数(需<=3500),`new_user_num`用于设置将原始数据集合并为多少个用户。如示例代码中将从`cross_silo_femnist/femnist/3500_clients_img`中选取前35个用户,合并为7个用户数据集后存放在路径`cross_silo_femnist/femnist/35_7_client_img`(合并后的7个用户,每个用户包含原始的5个用户数据集)。 - -如下打印代表合并数据集成功: - -```sh -========================== combine the raw 0~4 users to the new user: dataset_0 ========================== -------------- process the raw user: f1798_42 ------------- -------------- process the raw user: f2149_81 ------------- -------------- process the raw user: f4046_46 ------------- -------------- process the raw user: f1093_13 ------------- -------------- process the raw user: f1124_24 ------------- -========================== combine the raw 5~9 users to the new user: dataset_1 ========================== -------------- process the raw user: f0586_11 ------------- -------------- process the raw user: f0721_31 ------------- -------------- process the raw user: f3527_33 ------------- -------------- process the raw user: f0146_33 ------------- -------------- process the raw user: f1272_09 ------------- -========================== combine the raw 10~14 users to the new user: dataset_2 ========================== -------------- process the raw user: f0245_40 ------------- -------------- process the raw user: f2363_77 ------------- -------------- process the raw user: f3596_19 ------------- -------------- process the raw user: f2418_82 ------------- -------------- process the raw user: f2288_58 ------------- -========================== combine the raw 15~19 users to the new user: dataset_3 ========================== -------------- process the raw user: f2249_75 ------------- -------------- process the raw user: f3681_31 ------------- -------------- process the raw user: f3766_48 ------------- -------------- process the raw user: f0537_35 ------------- -------------- process the raw user: f0614_14 ------------- -========================== combine the raw 20~24 users to the new user: dataset_4 ========================== -------------- process the raw user: f2302_58 ------------- -------------- process the raw user: f3472_19 ------------- -------------- process the raw user: f3327_11 ------------- -------------- process the raw user: f1892_07 ------------- -------------- process the raw user: f3184_11 ------------- -========================== combine the raw 25~29 users to the new user: dataset_5 ========================== -------------- process the raw user: f1692_18 ------------- -------------- process the raw user: f1473_30 ------------- -------------- process the raw user: f0909_04 ------------- -------------- process the raw user: f1956_19 ------------- -------------- process the raw user: f1234_26 ------------- -========================== combine the raw 30~34 users to the new user: dataset_6 ========================== -------------- process the raw user: f0031_02 ------------- -------------- process the raw user: f0300_24 ------------- -------------- process the raw user: f4064_46 ------------- -------------- process the raw user: f2439_77 ------------- -------------- process the raw user: f1717_16 ------------- -``` - -文件夹 `cross_silo_femnist/femnist/35_7_client_img`目录结构如下: - -```text -35_7_client_img # 将FeMnist数据集中35个用户合并为7个客户端数据(各包含5个用户数据) -├── dataset_0 # 客户端0的数据集 -│ ├── train # 训练数据集 -│ │ ├── 0 # 存放类别0对应的图片数据 -│ │ ├── 1 # 存放类别1对应的图片数据 -│ │ │ ...... -│ │ └── 61 # 存放类别61对应的图片数据 -│ └── test # 测试数据集,目录结构同train -│ ...... -│ -└── dataset_6 # 客户端6的数据集 - ├── train # 训练数据集 - │ ├── 0 # 存放类别0对应的图片数据 - │ ├── 1 # 存放类别1对应的图片数据 - │ │ ...... - │ └── 61 # 存放类别61对应的图片数据 - └── test # 测试数据集,目录结构同train -``` - -## 定义网络 - -我们选择相对简单的LeNet网络。LeNet网络不包括输入层的情况下,共有7层:2个卷积层、2个下采样层(池化层)、3个全连接层。每层都包含不同数量的训练参数,如下图所示: - -![LeNet5](images/LeNet_5.jpg) - -> 更多的LeNet网络的介绍不在此赘述,希望详细了解LeNet网络,可以查询。 - -本任务使用的网络可参考脚本[test_cross_silo_femnist.py](https://gitee.com/mindspore/federated/blob/master/example/cross_silo_femnist/test_cross_silo_femnist.py)。 - -若想具体了解MindSpore中网络定义流程可参考[初学入门](https://www.mindspore.cn/tutorials/zh-CN/master/beginner/quick_start.html#网络构建)。 - -## 启动云云联邦任务 - -### 安装MindSpore和MindSpore Federated - -包括源码和下载发布版两种方式,支持CPU、GPU、Ascend硬件平台,根据硬件平台选择安装即可。安装步骤可参考[MindSpore安装指南](https://www.mindspore.cn/install),[MindSpore Federated安装指南](https://www.mindspore.cn/federated/docs/zh-CN/master/federated_install.html)。 - -目前联邦学习框架只支持Linux环境中部署,cross-silo联邦学习框架需要MindSpore版本号>=1.5.0。 - -### 启动任务 - -参考[示例](https://gitee.com/mindspore/federated/tree/master/example/cross_silo_femnist),启动集群。参考示例目录结构如下: - -```text -cross_silo_femnist/ -├── config.json # 配置文件 -├── finish_cross_silo_femnist.py # 关闭云云联邦任务脚本 -├── run_cross_silo_femnist_sched.py # 启动云云联邦scheduler脚本 -├── run_cross_silo_femnist_server.py # 启动云云联邦server脚本 -├── run_cross_silo_femnist_worker.py # 启动云云联邦worker脚本 -├── run_cross_silo_femnist_worker_distributed.py # 启动云云联邦分布式训练worker脚本 -└── test_cross_silo_femnist.py # 客户端使用的训练脚本 -``` - -1. 启动Scheduler - - `run_cross_silo_femnist_sched.py`是为用户启动`Scheduler`而提供的Python脚本,并支持通过`argparse`传参修改配置。执行指令如下,代表启动本次联邦学习任务的`Scheduler`,其TCP端口为`5554`。 - - ```sh - python run_cross_silo_femnist_sched.py --scheduler_manage_address=127.0.0.1:5554 - ``` - - 打印如下代表启动成功: - - ```sh - [INFO] FEDERATED(35566,7f4275895740,python):2022-10-09-15:23:22.450.205 [mindspore_federated/fl_arch/ccsrc/scheduler/scheduler.cc:35] Run] Scheduler started successfully. - [INFO] FEDERATED(35566,7f41f259d700,python):2022-10-09-15:23:22.450.357 [mindspore_federated/fl_arch/ccsrc/common/communicator/http_request_handler.cc:90] Run] Start http server! - ``` - -2. 启动Server - - `run_cross_silo_femnist_server.py`是为用户启动若干`Server`而提供的Python脚本,并支持通过`argparse`传参修改配置。执行指令如下,代表启动本次联邦学习任务的`Server`,其http起始端口为`5555`,`server`数量为`4`个。 - - ```sh - python run_cross_silo_femnist_server.py --local_server_num=4 --http_server_address=10.*.*.*:5555 - ``` - - 以上指令等价于启动了4个`Server`进程,每个`Server`的联邦学习服务端口分别为`5555`、`5556`、`5557`和`5558`。 - -3. 启动Worker - - `run_cross_silo_femnist_worker.py`是为用户启动若干`worker`而提供的Python脚本,并支持通过`argparse`传参修改配置。执行指令如下,代表启动本次联邦学习任务的`worker`,其http起始端口为`5555`,`worker`数量为`4`个: - - ```sh - python run_cross_silo_femnist_worker.py --dataset_path=/data_nfs/code/fed_user_doc/federated/tests/st/cross_silo_femnist/35_7_client_img/ --http_server_address=10.*.*.*:5555 - ``` - - 当前云云联邦的`worker`节点支持单机多卡&多机多卡的分布式训练方式,`run_cross_silo_femnist_worker_distributed.py`是为用户启动`worker`节点的分布式训练而提供的Python脚本,并支持通过`argparse`传参修改配置。执行指令如下,代表启动本次联邦学习任务的分布式`worker`,其中`device_num`表示`worker`集群启动的进程数目,`run_distribute`表示启动集群的分布式训练,其http起始端口为`5555`,`worker`进程数量为`4`个: - - ```sh - python run_cross_silo_femnist_worker_distributed.py --device_num=4 --run_distribute=True --dataset_path=/data_nfs/code/fed_user_doc/federated/tests/st/cross_silo_femnist/35_7_client_img/ --http_server_address=10.*.*.*:5555 - ``` - -当执行以上三个指令之后,进入当前目录下`worker_0`文件夹,通过指令`grep -rn "test acc" *`查看`worker_0`日志,可看到如下类似打印: - -```sh -local epoch: 0, loss: 3.787421340711655, trian acc: 0.05342741935483871, test acc: 0.075 -``` - -则说明云云联邦启动成功,`worker_0`正在训练,其他worker可通过类似方式查看。 - -若worker已分布式多卡训练的方式启动,进入当前目录下`worker_distributed/log_output/`文件夹,通过指令`grep -rn "test acc" *`查看`worker`分布式集群的日志,可看到如下类似打印: - -```text -local epoch: 0, loss: 2.3467453340711655, trian acc: 0.06532451988877687, test acc: 0.076 -``` - -以上脚本中参数配置说明请参考[yaml配置说明](https://www.mindspore.cn/federated/docs/zh-CN/master/horizontal/federated_server_yaml.html)。 - -### 日志查看 - -成功启动任务之后,会在当前目录`cross_silo_femnist`下生成相应日志文件,日志文件目录结构如下: - -```text -cross_silo_femnist -├── scheduler -│ └── scheduler.log # 运行scheduler过程中打印日志 -├── server_0 -│ └── server.log # server_0运行过程中打印日志 -├── server_1 -│ └── server.log # server_1运行过程中打印日志 -├── server_2 -│ └── server.log # server_2运行过程中打印日志 -├── server_3 -│ └── server.log # server_3运行过程中打印日志 -├── worker_0 -│ ├── ckpt # 存放worker_0在每个联邦学习迭代结束时获取的聚合后的模型ckpt -│ │ ├── 0-fl-ms-bs32-0epoch.ckpt -│ │ ├── 0-fl-ms-bs32-1epoch.ckpt -│ │ │ -│ │ │ ...... -│ │ │ -│ │ └── 0-fl-ms-bs32-19epoch.ckpt -│ └── worker.log # 记录worker_0参与联邦学习任务过程中输出日志 -└── worker_1 - ├── ckpt # 存放worker_1在每个联邦学习迭代结束时获取的聚合后的模型ckpt - │ ├── 1-fl-ms-bs32-0epoch.ckpt - │ ├── 1-fl-ms-bs32-1epoch.ckpt - │ │ - │ │ ...... - │ │ - │ └── 1-fl-ms-bs32-19epoch.ckpt - └── worker.log # 记录worker_1参与联邦学习任务过程中输出日志 -``` - -### 关闭任务 - -若想中途退出,则可用以下指令: - -```sh -python finish_cross_silo_femnist.py --redis_port=2345 -``` - -或者等待训练任务结束之后集群会自动退出,不需要手动关闭。 - -### 实验结果 - -- 使用数据: - - 上面`下载数据集`部分生成的`35_7_client_img/`数据集 - -- 客户端本地训练epoch数:20 - -- 云云联邦学习总迭代数:20 - -- 实验结果(每个迭代聚合后模型在客户端的测试集上精度) - -`worker_0`测试结果: - -```sh -worker_0/worker.log:7409:local epoch: 0, loss: 3.787421340711655, trian acc: 0.05342741935483871, test acc: 0.075 -worker_0/worker.log:14419:local epoch: 1, loss: 3.725699281115686, trian acc: 0.05342741935483871, test acc: 0.075 -worker_0/worker.log:21429:local epoch: 2, loss: 3.5285709657335795, trian acc: 0.19556451612903225, test acc: 0.16875 -worker_0/worker.log:28439:local epoch: 3, loss: 3.0393165519160608, trian acc: 0.4889112903225806, test acc: 0.4875 -worker_0/worker.log:35449:local epoch: 4, loss: 2.575952764115026, trian acc: 0.6854838709677419, test acc: 0.60625 -worker_0/worker.log:42459:local epoch: 5, loss: 2.2081101375296512, trian acc: 0.7782258064516129, test acc: 0.6875 -worker_0/worker.log:49470:local epoch: 6, loss: 1.9229739431736557, trian acc: 0.8054435483870968, test acc: 0.69375 -worker_0/worker.log:56480:local epoch: 7, loss: 1.7005576549999293, trian acc: 0.8296370967741935, test acc: 0.65625 -worker_0/worker.log:63490:local epoch: 8, loss: 1.5248727620766704, trian acc: 0.8407258064516129, test acc: 0.6375 -worker_0/worker.log:70500:local epoch: 9, loss: 1.3838803705352127, trian acc: 0.8568548387096774, test acc: 0.7 -worker_0/worker.log:77510:local epoch: 10, loss: 1.265225578921041, trian acc: 0.8679435483870968, test acc: 0.7125 -worker_0/worker.log:84520:local epoch: 11, loss: 1.167484122101638, trian acc: 0.8659274193548387, test acc: 0.70625 -worker_0/worker.log:91530:local epoch: 12, loss: 1.082880981700859, trian acc: 0.8770161290322581, test acc: 0.65625 -worker_0/worker.log:98540:local epoch: 13, loss: 1.0097520119572772, trian acc: 0.8840725806451613, test acc: 0.64375 -worker_0/worker.log:105550:local epoch: 14, loss: 0.9469810053708015, trian acc: 0.9022177419354839, test acc: 0.7 -worker_0/worker.log:112560:local epoch: 15, loss: 0.8907848935604703, trian acc: 0.9022177419354839, test acc: 0.6625 -worker_0/worker.log:119570:local epoch: 16, loss: 0.8416629644123349, trian acc: 0.9082661290322581, test acc: 0.70625 -worker_0/worker.log:126580:local epoch: 17, loss: 0.798475691030866, trian acc: 0.9122983870967742, test acc: 0.70625 -worker_0/worker.log:133591:local epoch: 18, loss: 0.7599438544427897, trian acc: 0.9243951612903226, test acc: 0.6875 -worker_0/worker.log:140599:local epoch: 19, loss: 0.7250227383907605, trian acc: 0.9294354838709677, test acc: 0.7125 -``` - -其他客户端的测试结果基本相同,不再一一列出。 \ No newline at end of file diff --git a/docs/federated/docs/source_zh_cn/images/HFL.png b/docs/federated/docs/source_zh_cn/images/HFL.png deleted file mode 100644 index d66167a07acbb730fc6fac6e5f482b490650d9fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166782 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 z 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 diff --git a/docs/federated/docs/source_zh_cn/images/VFL.png b/docs/federated/docs/source_zh_cn/images/VFL.png deleted file mode 100644 index 7e79ee943f5f658e80ea0d17f43a0f4f7eefa22f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116041 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

  • |J2JwmPjw%$ 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 qv!F?^R%F9vINyrt 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 diff --git a/docs/federated/docs/source_zh_cn/images/create_android_project.png b/docs/federated/docs/source_zh_cn/images/create_android_project.png deleted file mode 100644 index a519264c4158fba67eb1ff5f5fbc3eae65b32363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57219 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 a+J(BAQD>YXnEB$`B2 diff --git a/docs/federated/docs/source_zh_cn/images/cross-silo_fastrcnn-2workers-loss.png b/docs/federated/docs/source_zh_cn/images/cross-silo_fastrcnn-2workers-loss.png deleted file mode 100644 index c8be83d387fc0df853616dca972e169dfe8e4b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70276 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ⅆ&dTha%xJ5JOM}L27=0GXTEzeWz(hD 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 RRT%I~MNwU$Sk5@$e*is;j4l8G diff --git a/docs/federated/docs/source_zh_cn/images/data_join.png b/docs/federated/docs/source_zh_cn/images/data_join.png deleted file mode 100644 index 82af0a7bc57276af86086cbea4c4c6866fd9e754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51235 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 CJ2Jxn diff --git a/docs/federated/docs/source_zh_cn/images/deploy_VFL.png b/docs/federated/docs/source_zh_cn/images/deploy_VFL.png deleted file mode 100644 index 824c4cc4a9f3c636e41a8113179d183ec9414d4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114384 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�BPjbXF75I$Hzxv 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 diff --git a/docs/federated/docs/source_zh_cn/images/label_dp.png b/docs/federated/docs/source_zh_cn/images/label_dp.png deleted file mode 100644 index e0a2667bf9da107ef93e1897218b686e13a60000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22239 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 A^*k5q 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 diff --git a/docs/federated/docs/source_zh_cn/images/lenet_50_clients_acc.png b/docs/federated/docs/source_zh_cn/images/lenet_50_clients_acc.png deleted file mode 100644 index c1282811f7161d77ec2ea563d96983ef293dbf43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19869 zcmdSBWmHvd8!oy?0cin|E~QJPOF}wC6cCW^Mvx9EX#qh&LZn5yL8MbD>24M2E~$O5 z_x--T_t?Mok8{o#XAFl+S(6#hbLVwk_Y8liCXa_hfrCIG@DvqfA0ZH^#0Uh+eJo7) z$!h%DIRt_Zp(rc$*dujg)?Y{O*jMnphOiSgDu~I{?wtK~>~gxILU25JhxHVuV9#>d z;nw#bZ!KKi(;Y%ysLOfJPJajqeeU_J#***wZGZOq7cCd>w%YM$*zWI+q`tiyB@0J; zt{COtPFB85ZfDAY9fXIf_vbX|!?H_uR=R>h^Vy4MjZv>(H~#(L!sIKta;8a&g^o(c zz@TfSmM#%ZE$WsnN~!!|ZKlozmnkePjD?=0-j6YD0%&eHSE1k46PIq*4lvh?(mbMm6 zQ>(13Wbq@j(sKL4cV9LEUmyifyI3E4QsUk{^u(T!690>JkCilc1j5|he90F1R4yz1 z8J|9}nEZ{8kEfqD@cc!ZkdQzpD5yO%Ha{QpVtp(lBSWgXgs_)9S`JYm)z{sP#m3HV ze&%~NJum0!>Dhf`X6xwK^$L&DNFasx?%hCb15XUhASoZe=g*0e=jB-*bg;fbZoyq#ZIhzpnfv$ob6fOZYhJH}L~SA*}rd($5Uaq=@>eW#7~ zk}#Bj786mc&-GYKtMjo_FnjHD7Z(jZJ$4CgLql%%SPZ!=qUh*op7$!BK7W>e`t(-g zZnUEj-0zboPY@PC(ZhM_%d2_m_$e_*M{X*rst@|Oc_?x9>z-qzU!AXXEGX_w4)~GH z{~fF0;pGkZ{#^+!wfhyN0>egKU0orWE0LWk%;RuWd$;|DdhplKAzO^Y!^4yB+Kmj2 zovW@U9v(Vh$=1h;(0C|)Hl}L`(9qE6SFx&O<3=ry%u~bcW#J?h_qkK`<>Zu%r{9c9k-d??a-$*s+o4)nBXlmY?Am{mzl|s z)Ms&Ubo8oWe|*&y@$%g}GIHEkrCo>rEYE4b`_5sBzqkz#z1aNla1e6smQ1q-!x-gX z8=06$&x~7CNM#K++X*mAN*c~+*WybfnDKsQ7aKH01YIMDh?$p2B@GVW*qS@{tkBA7)g28-5ax%rPXAYaUwZz%qznNq+xX!7^(KIMC_@@I3C)Rs{#O(dkm@33HLzx72drkjk6Om|;j^r|2; zH#c|o>H5*;^q=i*d3$?KIXO8VAtCZZaxzg&;)F6ATU!~N(#}pf53vu~b9EwVYWMj0 zAIz$=Slv`!AnaW~lr9*R6R#nQMEcvzfK63I%ahC&SvFgS;PnC$LX?+X%WIptA-Z1gi0f2y*9;Z2)-JW6e_kY?>4XOx7bu=HZ{>2lnCY~zwL+$KbdA+&Ar{)-ofnYaulx6eN+O?TSb+73=nUr*_)rn9~6Dw3wtjMb&B zrS+;WMKH1@;Kvr1{#l9drY-%d!WjelJc_s2huAxD?(@EacJr?^^VB-1^&9@K6-4-Q zW<#vg0C#G-m~QHL%dSllBlGR@;%snaBsiK<(4-@Rw7aJ#UYwRnwq5$~)BI1L9^$s^ zbKP{?p5y%BZcRtWxf8PQdw${!PO>y`bv|Hxk75~r>*b^^_ekl)rW-CUZui`{LrvTI zVJArf2PrNSiz#*=){7S}5HH8Zw04CvniJYZ=VTFG7I#F>ht5E5U*Ef z`N-JVlC9wxg`Gf(P8M45(bG6g_m=VZ7c@&<_XEk$D<*LvYg9KA;c#ZWB*eKzx4Y)X zn(jWbZqzXhe1dLO^;dwRPwTFOahl4?h#)r8uN36xvu50(C>byCpb1`c$`BVl@xtn&Sg#^PWw4GNhBc1t zASOn~>hf7=M%jJQDr|3M6*g5F7Y057CBygP2VdJL)BP_!&wnyYwj?$l+=$t7w=!D zN^V;-`9iWcYqb|3r+YLQAQQ|PJ>K2lCPqdG$S>K}K|jeAegs<9OfNpKYfrvzB(MYi zrKtO&{^3hZ_qz#XuF|w<8TWZ9qRT1JGc=PccOVkV$;-H7O3MtM}aWNM;F6L9?)1^r6%=~=pw6wJHeMl@ML0Aw-3oyc}sv+J)__IGFp!4E< zIYR096$R=M@9kHwFm*V{bc(bld6m%6vj(x^zcCeHhu^7<3DzpWW91O1i770S(4DUR zkmA71Eu6i3qkv0ZtE^q>yuNoiU3=G|0Z&UPGuG|2(UYY^0X~xcNh15^%x%u zQbfCa5L3>d4=il}%UbDAi^mw$DtO{7fzO)JnV+4FK7Vz2j11|IpFC-S=rWS8N$)Gs z`l5PceLYAnE6#q{rmFl7r_qtO`|eW534tGxDV@~y4?D{=`aEl{A{`o7;m?Jr%5!lt z-rr}LfEWfIL}H8Ba1(v`quQ*&fB->GL-UT5yrm`PN6+k{Q`i9ZlbTjjf+<-1R8UmV4?JMdk6Bt;N;15`p^p~}OHjv{fXRFReEeB{jI0w17y6yD zF{=|F38=HeV%n;@Qu-{u9!=RsFw(yKp^HyXozjO13r_i&JO*s*>)BTQKL)Wmb^CQ^ ztiUxE&*NEl^RC+-J1y6;@N-C6Fyvb6u+_3ED@mR`dqy%-NjDe8XB=uy^fT>yTCGq6Dxb<&slOI@;v@zY112UW zNy_6^RxU0wf7cuDzdc+y^jdThVlWtf98Y#h6LanM?c2r!GESpkyOvw>HS^l-7k|eg zUOuaL3n^+O(1I8{e|0h6wSBp@{R*AGm83sTjsPoOPE}292}-fo_0?N{2D9kX2}~l4UciPJDFd;ma z!kK@}&K8j?px1mmJ~}eFy1ZCwY}r>3N>d{tBg=$(JKHEy;6~2CN*g2kLj{HL zAm2vs(_YMBu`rQR7BRxJ=su72Rp{n)4cbc`zBsH5PZ^etO5LK9HcpbgZ;gy3bIKm+ z3M*14L}bYxzsoTLT8zTHe@Y82O5Bj9{L=HQ70!o;$RA}#V~F-P{pQ8lFT0LVy_Zjl`f-s-pA>Zu_vl-ol< zg@ejl<%P6XJ*#w!pfX>=jkc(`rCX#Wz?c;qqXX;Don0fwBbt?aK-HyGF#5{1IW;vk zczpeViwhq( z;1UpIK^;sHjX66zJ5gat&}&hVxVOBReO@? ze|i)0QwQr%qR5!S!ztFPkZanL*Mq;s1Pc=e=LWWg5@eN?@n#TRYhmQgJ|+4qq;Mvw za7L$)!U>OrfJItIqxWsh$UxC5;9n9W7=%Eck(GtUm8k4?lU*!td>xs-QwkW~HPW>{ z?o}F>(xroD)EOUVwXtQ}`DDj+5aDjmP3YfB(+R&6UHYDAX#L2qsiBH8t%foYkqUsfoOykS5_PQk+p) z7Rz;=hRbpO@~Ec6lQx0u*K?7ylYaNcAli#R@+K8=UoS=9#Z{l$s9=F!>=eO2Se0-D|mYI^@O(6pB=WeZ+nZOw6DL+Nf(~665SC} zKAv@gOIAC~e)hl}GBQGj--~g7&i?g}m5%Q2?)p-12|uEb>p}$rjo7!nk;%#M@Nn#> z%|;cIPS9VT@6ukC*-5h-3qMckyCdNFHX%V)Y(OAI)s8Fj#pm6QhyZjVBBI+-X`JBz z!x;aI#{9qX!HYo*!3A0@u+0q#vd9PLE3P8(@1y|j`L3^lhFw4V8cZbvg58FMRsktg z?pDyXnVa8!O(pzhM1>g8A&UqK1?ZEhBz%OHB&w>acvAWhFQIDx`7;VYq`L+~X9@=g z2hB!2OrlSbr@cSww_lRat1* zr>3Ts{Orr|U%}VEwI3x5q^dDPk@;h0CN=6O{LCugAqHx|{cLIxQPIJ{LHg;ju`$eo zQ5@(Q(5~TsgaQ~Gty&!dOq87Io{NgCtn4jD8#*cYB*C|=W@2E-4Cajm6zu;8AGi5q zOLaKFUllFh!2Kt*ydg&BTqsW;Yilzz3L`N(I`|ockIJg5+l;KpAKagi4}^6h?!5oc z$GfyGT*S-i%~#W#YVHE?#XDRm0vik@S6uHh#43!n0OB`z{s`8zS^q}a^rn@){abrm z2ZvXKR;ji_|Gg^mprQ8ucgX+qU=kxgN~8YRDatx0?Y8;*BHTm!oBcP%w(yVIB*k7f z&#qQlD8EfZd*RGlKE563)kkJlGL3(@_J~e7ZOn&A!=@|-T?2FH1#Ljd8FNxyhw%@@ z$M5XzdtH8%p6U6fbkYfnfH~$&wsT+NHy#Uhe0^h{qS}3xwoPY?5gK~KoDFWlI>CxC zW6b`g*Je<+LDP*jegX#XS+`I3Fj%{dH&7dQ4Fzjb+h$udcMQd^HLdKW4)^IkjUwg0 z7T4h5P5fL@_8Tk^i)vsHR$n~XPx0fvd%sy+RMI@~YUWSajXDX8s;?f*U0zZ4^!V}h z31>a9$G?cl+2CfP*(pX|aBD#66xJ%w*ObS@_xjZaORLg3%!E5QhpwKlzXJo%HE=NQ$noxu9rIi)rWpH|lFJ4Qy7WZrZQ|8>*GbMk{id@^h99tsJ=1W2 zvgPB0>MrTFu=V485)OStTBR@-z+O)F2_-Rbmb>2Yu#QYV72&&;)s8bcccT;Y+h2&K5~OfWePv!Ks$`I;AMCigK0E6 zC$6IIr-%#Eu&_6g{KN^u7UxOlzX%q+n;2Kc2PX{!!dUnLHI>6U>2zKRlbaCsOqVqaDx3(xxhD! zou^x)1Q<)YCuWO~4%B&Xtui=q}CQ7d=L zT`6PF-ive)T`w!VO;k`w>h<%g-@VkX!dh*W5CRG8-Q7j4cug?)vtHWXF%q-_d=2)*$}Im7HPSnfq(dZv7GN0Za=;Q~Zj3O_zA_cYWfwN2Xxr(O*{@ zzYUVe%3dc#!$w8SI5$S_rk}^z>GfAz##UVL{j(}fyUr8i&mAxsGIJsW(CK-2BU1dY zM3*97^a!NH9?uAF72OeB4nMhF7pZ;GX-Vd@rEYgquIxymlJn?O=-20i0jWh-&HxUoDwXXqYQy$Y{LUdJJSSV|6 zZ%!yUtshh8Bd7v7Eyx6aZ>7Io_H@(2dDL=%188 zHg-A%qj%W-6Bq*OhieZjzysEEh}63qy1imx$|yA*@Z|Nep_1`pyf-| zQ&YN7S4Q#^!8H~8@7x}yUa8+{IJ?@-PH#q}-F?fnZlo~zQ}pWP zH^a+^&Y7&L9g#ma&o1u$L@r;@r-0xVqxEM> z;W@R>_P3Pe$DScN21hB#C@Iyjc6sj?)FWg;Nw55sLfr%e1>3Cdwc1p*{(8RH9DoLw zhD1ktytp&aOGqVa=IDi`nq03Q;7We0Ol)5r+#)OE^*ptB93VZYkR>xQh>JZn88e1@M( zb@l4~H)oFdC)j%;`sa#rDUL5UC4;k)a%SVnDWWalajLm`Z8;eQCcS`$X! zQj^&?!@C!wohMuarB&o&nYF8*6PjhoTxZ0uNtS16k*Z#J0wqHqvz>&Cqtq6c@MyW} ze93Di!r@4glHTwy^P?%6Iwj9u+uQD!+1t}7X|I@=ovV#hj@c&4q~$10?Uq?H%0Tuc zKWo`;@n1GY>|GK--9dBt9)a1ghwAfVy^Xr*>mU7GE#n3)M)uOg{3j>J@eZy8Gr|6M zTq35-ZAc}qtcZ>zzp}Be^2TRou#b#44mQUCc_yXj2!cyp=9%@kJ(c=DE= z3D=Q}2%L9|tziVT&+4Nqw3(gEUDt_~3pre@r$@F4qtG3% zme3vZy|C^jCDO1n$v@Kmyr*rmt!=~AP0|vwkM@A#=dVxZXDTXZ&c^M`?4{y0+Y1?o z>^rCOk)?_yike%RF#)p4CnW?6TGN6H$NFS7oZM%sKd+8zhLYGBbZtyF(MomRl5llZ zS9wl+xkEdxyys-d#lE)O!S@bxIB&jlbG-3|W5hZKKUn@9c@x68%!TUnlz8_tgMya4 z8nPw0n6%eII@Q;ZD-pp6O_>^A-c5DQ;^mvRq>|UKdRr;NJ;}r-ACKXP@AU zmUB(_dd9v%B8im|3n#7|Dfks15+c%vu^#k$uy+DV9@y$2 zTp!`T|5@LsrIO-xOxJEYt*7(y*gdVHZde{0<1F=%od0S8zBD0vM!u!g#j+4%67MS{ zRS_c~sSYLG_%18RyuI}2bTC$6Ym(KGuY|6jVtEO!xTR z)HYvTbsAwm!x0wFqRAVZ#Lai1G zC-G2WTnDOIk%|t+^{ep zL`*)MIO>yJSyagFb$qG5zx$o)eC`9kht)-dXD>C;;1a1OoyI>b=ye28#X*yH_>=$P zOA&}7tw?}nn0ZsKr_b}TT=r$8e9|BLN568=MQj8df)GU`JuQHyI}S>?zT%m#*242G4^ct`?gF-V2z|4!o%KG ze+mHdklV(_27!Pi2D$uSHhM`yTwMH9@o(aZxRcOp?Mk5Rb01Y-4r!0(~-8}d{>?`RLGlX{H{ePFfh!@IE*zmcI>`~7|l~W44&z_p-s2Q z7(C#@iXJdI)aV`k?XWmy7H2s*oWCI)LN4JiQFN*p(o%--!Ec1?2@`E{FwJ5nydd zv>oCoB4gPaiaLmF0*Oj-Zx=Z*2w<-Q%x)qe5kLh zy9J;wAPsPyYxqO@eBpQel_4Pcl7F+b-#wI`#Fm10e+VE!ktdvvP1WY2G84}Pl<^*c~d8! z)11glkX>nUzg#T~?aJN#?vK0lX8Ps}L;QLs2Hh!gg=`%o6A}ozkQ}tJo){P>yO2zJ z7xSLSU*Pz-TQF>O87IohqVvQm2sfFP6{{3PKTO6|`cnH=L^&jRw&P?*?HPrOqO9!u zr~ugr#hdHj6NH&Mef`R=WNL3QMMAWXk*uIe(f-x%vIQsxy)j*!$t7iCdsBrrIDh;E zbClOmDY0R(P7n4+sKKDaWqrq5p^LAd-Y(hXtvcq4;)JOP)+^003U`eFEWs!@qy%G;T(;WG8G)1B$Gz=hi-fE%;2P|;1cFC}ubMPzoTq*3CQq`| zOWGj*DEe~4x$5uJy&N3W0AmLVai-Q8t;S)tHG-7A)Mk_oSdTxhBEUvS=OpX79E=ud zgGoBAk8uJmWi(#=%teil3Z9k8e(K@vGC67M7yW$&&v%&zibJ{5Rd314h9@aYl^jf^ z2s*ZI6G%puHUm??T<5O&Nvptl-uL+1oXfB8Z^^ko)9A@z`!7q=7L~Xci9|YqUlVOt3~eZIMnFiJ zN^r-OS~EU?GTCW=y9o=?ZBRqaezlN?os)I1(&hN~+mr8_`f2fDEN>R*7zP9Vcy~^H zguD(|9A=WzN_j*@DGkq;ZpOb6uw{D0bSqxN*@~G+!z3^$tVpkB3HVo4)7L}FS%V9c zmgx_Gl;YB_eF@*(;j{;vxI6yslb_p?h{1Nf;3$8n8?nZn8?Pu0>fP{$hmUO@x;%eg zYTSm2B*P*YF>`Zso%Vhz>VI)nJo@7F9KQ3r@YnENPy=TBD5oeO=4 z6mfMba)-mq<7WFZPH;!&4Cw=**KcwK;|eAufB5hUn5JJniDfP;YGNk~K@amEgFX+b zYYL_HBiBUGt8TZ3T(9-mWe{+jivlvGZTmRV7Y9@|(E4;-+>*_vK?^5QbiMm|fzD+6 zowQG#2`BRIdr<=rNR3X67C1F8@<-iiiQ((~s-SJJmyeOLfj+V6B9PY0S z^!!!})21VA27!aqVrxh#JVX*LI3!ctw@}+&_wxy#*XIGbu4cgM8tH|K^_{|rR#`7vxk_xb-ngIjz<9(>vXaF|w*Lzh7qw zJYt&r_K94UkQ0ApAiZm{!cs#=Cv0fw5x6&#xy{lpzyO@)LwJkC#R1GAT&n!iVI$?qWVp948}go1(tY-@H{9y& z^b8DWa52%~&)(i1vC{ESj0@JKdgL}zm)uIAKa;yLhEnXDlq4cWBJvot_!>KRX?#FFB8g{8&PH(`)Wx%R+ zza}Uo6b7cpeAw?MfhE4%)!A7J>L1~n!Mw8mHJ)gq)IqCC{l2mp0JX%))Qfs&GvS$f&(sx?x);u|d&G~m1Cf_+W8 zvi1QUCul2RSwQ>;nmgb=X#^BNO%~E(q~LYuCdK5Bfinj8N-<|^eOv};1n-7@j1_P| z0MSXjZAa^|fHK+Zp06*(W1u9y8yXsF>X1cCOWOr1LSE394aG|`GhYKj)CK2r@Bw_y zC?Jj{a|@VtlDsGQG$Bqa{nS*VZYms~p!|x6jC5XX#Q+s#_{wi^FEF<#FRs>TtL}k; zE=_fDj5M`Sa6cX1`#)A)ArzPB{3&?MW;fqReLU|k3CyF@>QGMXF+9f`-%fDFb~@=I zt)3x99I`4oBuE7MK9e1!{3p@C3tKKrquNke`8w#QqCt-W;z&ouafSZ?Swsjrzz312 z*hb^L@A_Re{bc(ApT%%~eL>Uk$gxiGn}ePE1EZkJS^(X_Q9Hr795>0%O>Tpz2^#LO znmW2if2DQT$4j~(*D>Oo}=o#A8gHTADcQk5rPzRX@6*(H7(L<#TnF- z6CmzTn7(RnM~5c?ZC=<%4@8T2DP-dtH*VCvSSRz5ptZ2DATgwjEG*;Xg*`E^^`9j=Z3u(~Hi`};VOOya-vkO>Y` zHa{UvjJ%c%#PdavosEnzIoR6ULvbMo>H?Mbz#f@JOy}j%w;vYJP6VWK>X96K?+=+H zDkSl}Ye-Fd$OLT7%AG1sRMpktDH*J{Z_IS2akRL%!!iiDZ|M&WY3DzlC^bg={{6eO z*OKF8`Gdm1E08^tq;QXw7{-8{MhZlsKIsa57;!8)+^WidEQ#$|vW9r!8$9S72*eK_ zj`+xm-i+&K)VLEdB@Z+>2Er_jlYmx&%I&JNv-9@6yvccb(<{;9V-y62;U&sDdx4OR z8)CZ4Zz&k_n){8w?u1^fJyzK~b^)0-D8!a%G-(U0#7{7kJ>SYQM5vEYg#Skq#zBU- z55(fj$w8`r`xOOy{F@)&ryOs+8PWX}{wX_)pGH5vi;f`(gByW9lhUz$dA8j(GC~4U zy%`6=uLh3#Pkw-uMb_E5Oej}!RE8oElaWBM#`rO*R4?Sj$T?Zz{+eIEU< z9&ySqhJ zop7*)!<-%;Qim^#1klB_K07EcC+WS$OANa{hn!y@|UjaU3i*y}XFMIv!(CiNKcBl2o=yl-#SggIT456&)FI5|7|(?nM` zbpUUJ#zRqn?@m!179P_?AyE^bWquvwVEdgl7$FBi z9wmc(22Fl>Zq#GdJ;29DpxC`@J^YI8libp4$(ICN6;BzplvK%D5BhI%={J{~_mF6_ z^!D_$xeSP31MvjV)^;Eb_XZwAh}*oz30ZC+@3jGoC%e(tP6L)I(;w z`Rcwnb#-+S!=f%B(hQjg(0IuX-pLa2-<)ez!(~dqKt+KPr{m6b1gwzbR3&R}2okIZ zE{I8^^4llO;`xHOiAP`WiC)Y$cq5g{p!4fITptIaJtJ2z>5Lf)0=kP&pFSzP&n*qh(QI%_4TTr6@JH60e=1v0*Mm@EJm0ohN{3*Pay)(E9 zqZD*#UUUjBG~}IEw!8rZ(0{&7tFLyIvqMKk@i|!x6>|9l?u?q1so?_!oP=%wa-t2Oz!U=&2!*Puk~RLlTtx`n(u2PlNYKjGYqtl)W~ zYwiLahsQ=)S8RGZKx1$!fZ-L0n^x`uHCsVYK2n|=ox?*k3Zn18<*pd{XXf#6o||x< zyOS@ll6KJ$&#T25Q=)9jRAouwF-1h!xaxhEJMo@|epe{4BL+aK^*#gkmcFae-wjdZ z3A=rd*2`CJ?#Vt@l4=8G_Tupw>G29%3b^idv~Z@RN^0V(F);(YDu7 zPU)5&7>J7Oc@Mq*?RD1^apffYKl!1XRxD3r>WNSFiBj=H9O!kWL9(`)@T` zV0+gJT6-sQh2EAC@2eYpS=tDM%`7H||GB%&(YN;SPyegSVO^>mWqXSQ0|ygdUaX7# zehsSxxFt3Y(4%`vPkd5=4E$97%YF6oeQ$CY+lLq2ko9&!86=fA+^6{u(hCYl z=5){c+8PYi$Q+gFa4gOD_4NTSrT9HFb^8KerE#AC2-jSu3!q{qLQKyF4Zjp#WWTOv0~3>`cHU)PD9`7 ztd98U^R3|gM#pB*9P943>fh6+Nj6X(F{`CELtn+X)%AiKTB!l7ceIz} z_y3{WK;W|El9QA3tv{>V-J`w~k7ZlGtIq#r6{wr@ck|PldX}=444hBpj zs8%2?5&A6)`UOdWu&3{-iYn#MEu4SBzcztq|B=TqyGxz7aqVuW+7B2#=xa&%s$Q=D z)w#sK{f_V2N{o>2-+O=_EV;nyQwrGK2Vwbm1MFJ1qK&087y;;AUcGu{c8C3o_piC~ zk+nDWte!DuUpDH-D>c4|R8ezwb#*!KEw9h%z0_6fA zWcmGIHsyQnqx)3{y!l@B%_ExsH&+(XTiK_^|oSZer+_L(j=J!ZG5|^EbhB7lMW@EaJAA1HN1YjKiuE4Wd40;s;s-q z9#^Mt)0WlyEV5`1ztz?8O?%-?KAP<}?#~u&kW6 zKrE&$e8oGNY-)Xl@4qpnQF!lv{>eeTGA^bAew9YWR4ucf z=eZ-p=R;k*k*A-7hXMHL9L$pE6&I&W0x6!@#lbKx19+dQnGYRN(udmd%D9|YUxX?| zb(K>1m9&}XBpC>?0IWB)vjeVvZ{GWO>w$rR&CM$iJ4MKM&QB>N;%k?1g|Lb8yWC}p ztjsc3G~V#U10;o-I;3kk0AMi4g1ivGC9c45k)^R>A3Nxo^v!+f==DT=P@*Pke>RR+ z64^$#zvr|3F+WexG+%OZ4z-H&)x~>pcT6H8PSsnq3MVDAuxZ2cb~C%z+H>)M9$2p$ zl-E38({5^&r}fP~Nma^`wzg)4MbF6o4f%xS>0P$iq^<2%q>hQNW+r05@^4tQ)ON#E zSk>__qxT}u<$D(BGXHl34Zix6frJ=un^9n3eQx5K*Fyo2FBU z3WY&1W~cEz7)Fw8sR)wE9+U=_<~3%6=E;^`Vuy7ZiqTb@7Z8s!N8-*)!9t^lozay492W@3;d^nt zUc4q>((G=D*=(oUeqEhpd2;hhtZxa-!vQSSzm=zzRaj_eun&b?0?u`=*gthbuZ}(# zM@7vmx@(zj_4IYp`g&1U7xfW%auH%Jw1?kVTDG6Ark9j-l?2}mv5>+b)|Sh2I!U7k zqG`21q8BQYlX%N*5daWgI1-!-WKYGK zZ{T5~I`J(J5GosY+4n)mg|R5>l3NgxQ;T zX7z}km(UN3?KGoV_k(g%W6x|P`0*l=?pob7-re0NSiLDr=zO^LBvsPiu_(5S#+xI$ zjvfL*Bl!0DioAjTt+X`$y~Y{4b6NuP%jZ*2p?YjL9JhBNQ3gP(hLXSsGk^A++&3|q zit&FD6&6#_qb*axv0M=i&@NlDr}@vMDF8K6>Q_FYU&jQA1;P+7Z+>7=W0^g@Cn6Hj*eJ2P`q!#<(_7Ag9CW+peHj0X`{K>G2lXz% zN$vLG{S8Qh696a>vLdj=4d|*(tN$5|MG(Fbr0=V)u1?xx(ib&y3%pD3IAn@$BI*xf ze9-40EXM7HeNLR(H{+mafvL*yn2=@c8gYso+p&oWti+z%)7)e0tW=sHg zRTnRER?*7RD;C!8r1GtC)}>Wm5?w3jn{OIy0drX`mNLt2WP~N!h}AJ z!7lMu!gLqCN&~74P2-EjPrr^6$NFD}4CEe&;4Gca+)<^IIX~%=#HSMT;Mv*h;l2i@ zC6HH%Pa{U|ad9{v|E2_nXEFWGmuato?04aC+>l^obhP8}FEqZ_fQLmbX}a`USZE1a zIvO|hf7ZLaUeZM4ar!IKR7qWdedrP-%mHwyysC1toT_TH$DE91zwL7(#T!&%i^ ztVc&j!@J0A4O(*!;rfv)O~u7(y~`~@*UVS=QjwFp+uRNB7OUln*ZCulzhX4`bBybR zJE;ZlKfgRbt(7c6T|L%NQ1;RvvZYe2U8g{g(s{!jk8K$mYSdgdB*4PSYrI zjQ0ZgYh+`sEzBSk(5O|5Pw{J+)J&uFUd*5!=hnekSxxOGuvX>EY~0*2XZ3Wq z8#)2;2MP^4?>1}!>G0|H>Z%lMSGOA|?6iyU5U%d-S)fGENd9gF!zM77LhoJ=;%+f6 z7|MeJb8&GoY50W*atdW>MO)~q^_Xq$>$IJ~t~>9$&6YsP{Z@C@xaV{y-sGuA`a`G| z1JMU((0^o%+H|5uK&zRi*7UoEiTTjLfJ;IEuEB0Mz3B!c%9XurX&S1O z-$p=WuC;!9iVCIIk7XcLn6c5|1aW&=Ugi^9WX*SBVgLwy&yG3{lg&zEmYjr2{jdCX z%N}kfbvqv&9l_uOCcsoMp(b_=j|$Y7h9P&+(Y^O7O9a-nn}f3T77Yyz9;-QtCQ1b` zBm%J)S{U90%}_%9Ehp3nTKJ&70GvOb})|T9qrT) zgTxy?wpCNHflS2o6GRFH?a-i^s9meQxq)t2;WYjB>&a3ivTBF%<6c$0MWklJr0io> z7UNIvTaLoWxf2-X-aQu-6huoBpGRWNj@fE?Z96+o?FS6c_^gNJIQpDm8fZ)%I-7&YfwhpfqPgWS`_%QYH-Me?$X)ZAH36O5=@mm^GxHuJlsE!Mfnx!RkrLKLq zWw)Jx3^2L#K?~K#POZjI_)z5N?cEXHt(!f)5^PG*;7jABu)zwM;6m9hRE1 zt{$m+TcJeO2yg_PUoLC%WqN%SGQpf5dAKqaYtX ze5l>40fVLzab@|v8OQRBFSL!wr2>e{z_!I$QZAYp=8Sri#2yStF=x)!P@&iLXnw}W zOXOaS(ew2c$ETIxPzGkIbB2o9*FR_75W3j?73q%$4Q}AH)Mocu+z+IyTo~q?7V2e! zS_q$i=(FIPnx4+`>k6{_qsy^tif|(9rPGVU7rElog9v2lBCd}H)GmuQRoV}W+ zdHs;`8sgtEDWwy^PYn&v3hiMe1?DDTC1R-^3xB;NT)5ts1T$+e{74ccEd{fUDqR$t z$?y9tTwlBZpiy2`T^B~8hXR35+;xU|p57+${8AQMrtB~E_3=XvxV;8nJ+7}QSYx~2 zhlFcT;;tqYOc>WWtfyUjU0sd<#_M4GgtUy#RfvlBStMk9c#T5XXd0-4cxNx*B_R?1 zaMH-lIAju8O~$U0D!U|C+8$wtVf?30-#d+dadICX8+!$|l%#T}!)3)uD3eTLsJ`~g z7ZG>?MeH4_ykYE=KC)wiCZ~%uwY);i?nS5e*<$MR2C~1o?SHA?Xo(I~S##I!Xp0O; zOHp$A!|2vKEl0Lk_wpVD@jbKzWAr3n{%rLqB`?m$mNsF3=Y2RyUONB8u zAzaqEun_=xyGUnVaf$nrMc!U>V#qLx%QfdAZ+CkrRp?6;Tz|0OW@6p=xuC%G@1h_% zF8!+P6pdoG?K=hg*f$E}LIy2uS4*prgq()qJ_b4ClC|4%9Ps)gWgP)>3G zmiog?=+h6A@*@Hp;4ra`gmPKDW+%oRE4_9C;12RC1)#*Xs1V+GIBJz(gA+VOv?!_v zhB|!wh~*&AKe5f8pv&rBL|+2x;yLppd}MW9RrTaNjWike2J5xpd5+Z|I`D>#bxmU1 z^w&<~g_)Vs8?+2m-eNLKD4weFl@xiW&F1a@Om;;!T7zUJ>`~}{2EP73{@@Uuy+x;M z#X)u*`5p*8J!oxUZqq{ynaq!2_UFHEp+P_-07)ESI^-2#dPdJJ#85anIU&)~Pft%x zk))UWLpoz3z_vk99X`PSkG%R{k-VVUnKT6OcGE;0i94&OgR8DfmJd#-6o#QaX@?>1 zhx+2$wF){G+d?&8u*fR5!6**?zd0WHj*;u3FwXxJ1%Uuj9i)AjVUC8u?Wc>d zpG|bA*z`hc8yir!zrj$3yF$*LI>QWLWp#CCZLJP2Zg6uZyhla;H5CzBK?sSMtmeNj zV|Z%x6#fA+K~s>^!;=yplLq2J*v8ZcE(f%HYI*T3Xq*amQ*;qXodUcT0|f!(2jbt? z_W*0%aRINwsCJykM*vBWOxb3u9H0bRbXw@RX-Gl~bMN52P_u+?)cc+xD~QwHxvzx9 zb%e4CS7d=0)?bz;9VwU+n@0;(Y(C8po)R_zQB8K;NCjwd+X+W)sNkcmu~up zzSr9lrq#ap`K$C#37A&-P#HYSJmY)|UWCxX3TJqQWOJ_b3x&@F7=CfZ2K@8oz)Ix$ zi*TJrA7SJOHgKG565DR|q-ZEXEr^C z83hj&Qh`aM{^N|A=km`~fgMZWN_n;ai%m5%w{F{Z2-vy+?hennW>NFQ0N8H50NmL( z*N=VmRjKe%F#y7x+?R!!RKu$ngo7Qii;z|?u+$`ux1Gw9z1V7C>xZVWh%1$5;p zE_R@pSu;ng%bsb|>luNoh*e}lc{W{%i2K*tv76(#=$WTQC*NHFHj{u(6Wa!y{WLmy z_eo$>6xY@$+3VRtOM_M_T~mAc_16YqLCFJL_5{oviNLdGY|Nc>TLTU+J(6P7xm60d zLeN)w%YvG`<$gI?GyI)4x0!GN^C58IkAU@AU{rxN#-5dG0-nPJtadZ}{we`?Qz@C5 zE@=ktgYfq5j`*7gJSC&R;?b(UatoQn?EFJFca>(}Sl0Fv*q{Y&E$#x=KN~-#| zPkj@fH{C2vAIHJg50NX^trPnmD5bO~!fo4yN6WZ?-H?)W&@MzVwQm!N*>bt)|NgsHV!*@G p7$lzL+qU0z6+ECO#6S>>@ma=2#eTaAJbaCT!PC{xWt~$(697E49Yp{D diff --git a/docs/federated/docs/source_zh_cn/images/lenet_signds_loss_auc.png b/docs/federated/docs/source_zh_cn/images/lenet_signds_loss_auc.png deleted file mode 100644 index 7304b69c4d0abf039549dce758b906d688213e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73257 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 A=Zf%e^EBnp%DeWAOJ|=5yESv2AuU-* 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 XIjSACvd;_u?vayHmaG#068QfB>1-1Y diff --git a/docs/federated/docs/source_zh_cn/images/mindspore_federated_networking.png b/docs/federated/docs/source_zh_cn/images/mindspore_federated_networking.png deleted file mode 100644 index 4340cb66b638e072ffdb11167743cc45c36a9536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26359 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 diff --git a/docs/federated/docs/source_zh_cn/images/signds_flow.png b/docs/federated/docs/source_zh_cn/images/signds_flow.png deleted file mode 100644 index 2fc591a202bb54490aa0c6e46cf2fe2a94cc407b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29610 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 b{|hhx^Z;T&KUwig00000NkvXXu0mjfkYfV5 diff --git a/docs/federated/docs/source_zh_cn/images/signds_step_length.png b/docs/federated/docs/source_zh_cn/images/signds_step_length.png deleted file mode 100644 index 1b4e0830cb38b20312fa9fe7e3621fe12c388864..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60777 zcmY(q1ymbR+bxU~x8lX2I25U)&@ulVE<*y)bug|V82U*U44;RW@HwvZEd|#hS{qr8|rFJpD6wy4t$`a<<;N*x_N%k0lLI{gTFCQo?2*%je8=)`T{A zba%DS?0b8p+~*PFLFFsoG(@Q zz-Iuet!ibkTj5j?^pSbfZywxo1bp<#gHoMTVX-}4^!X`+e<&=`l$sR2l-V0&Z7KKgW7 z5p>i-mpXheZLKIfQZ0CPQS)fYaet?P312# z?*0tI&j>+p@ayZ0DaL31GM&8##P2>dyR^ZSR9HEn+9-b)O(CpNTjsFJ>cnBZI?3T= z78LEY5jqp=XZd`S|NFdi(uZBc^OOf<{XxuOhBX=B))7j!P!nQnrZlQE?^{YHJZ>ID zoB3h2mELNvx4692RIP(PVy%^2?P?@erl7^?i!FhD;8D-(&T_yrY`gPX4ZoYvBw>b4 z%5Wxsq#m9uPL!t8ICJb;9Eni=Kwi|4bolm%SY#w)#ru7AU!8z!y|4Drv7X3Ca=S|R(b2Dl1$>j)G&r0>Nr(>_X3clm$(hJrE}>24cF2EJ zwNd$DL8t~O;3^~jJ5_;*oy4Cb>rm8d#}U!kgv!XZ@R#HlA$9_P`-=39_~P3@l?|bWh5}u{A4`ONF#baFep&hJ?9b$3qDXsw^w3M~Jnb8wx|HPXOld=`jgrk) zQz<@jnt80G`*~H(`?*K^IrmGMPr|XT3qj7j5kebA(V**uEQ~%NTAU^U;Y27ceX$GY z?<)^KSK2iaQY2Dfz*MlM`+-8T5J}(`W)Q%d;Ck?xVuNiovF(FGj)S|%ub;?DIn4P|Tc9Zki{6v&XgW5*{W$cG4}zY~ZwtP} zy$^tZ+t)8gJf8HgrKfN~h|R?H{pS=PM8Gb6L0ij?2Mb6i6x*+JJ0PW&C(VcYNex3U z1dmPVOntHY=90Up>?ZP8i{A}K((3xqrk3CVD`nH`3Y!dY8=30R{?Uowh*q1Cmd0iR z_%y+lJn%~q2>OBdt^Jry%}J#JBFc%O%@Z=C&2tBYpo61G5BeA4N{DmXY-6^wd&ya} zQ7$FT^O=g?b8%itXKjJEo4A7>{fx9DfgArKDX<{oK9#u-F?Ox}( zhZe|S`E^ck0JK#j8T^lrkDMq+WqE;#kSd*;L`z9jaFnRq8ybAlJ07O3Ja#+2pIU=> zooMHRQg7J1mf`FEYxnp;)-M4gkegnPjtrsVu(0bQ+})tL3`=T|6=?amgstac;Kk-c zV3}%OX#%zEyevh4lyRpg{=H6(0nn>JY??~5RH=Z3&uNVRfMGCQNl7XBani~v{8z{4 zaU6~VGbsyD1E-AnJ67Y4u}1t0*6x?nME&VDM3R@YeIJaQz!n z^>y;MEx)frZK(u4^5Wn?{R6%?Y_y zKmvbHXtb9iXWXnSnI`a8wxy6Lb!)Q5{TbFp+SE)xp{V+1fc#k%-!MyAzL1$rU^f>M zm*DQx?NyLh3cE+*6dLGoQO4T6awQLLYJ=M*myX4#FUr;sh;f~q#aEC{p2J{utkdf^ zKx2v7IOROj%?bajiyrw)pld+EJb}gmo-m(?kaQEKIv>2}x8CD&4mW@MD)KSRvFu9g zxK?|W@#AGprA~qo2!YX#W7as{T3g;z6bUG*$wpnNt~N0C3chKxz=t>Uqg%#f`=ume zy{M+(PjLQ`w+YP{e-|kx4U*6nr4~>Ec?6Lu`71%u)h*R3B>|Z9bn~9QWsZWM7 z`C&e$11vL@Tt^_uIXqKj)@>kiEO)NXkGZmJ40b-lH%~C>p4xgSE1XFB$SVWR+BVZu zjEUHug-&ut;1Rbl2k*fwBkBWhBqQOhE2^|~n zE08SU@%4)j;y@7bX{yiUh1a<}s&O~2sx(3gx7#g03fg_&dDksr`QR)Ix9bKr?7{PP zu4bCaSh0fr8tfFiG^q<{>e824pzL;QR}FR&ziK|LqL_9+d7Ent5wVuNfRP^Ooh(AC}F}h&!S-0%A!Pup{mE zc~w}e&VbMVQgQvA&r({j=WloP+q_4HC{B6-$g)*^l@<;FF`qY)?|Z=@+>4a6Y;5j8 zf&@9sBfr6?6MsinKidTExR3%~zi#Gr&_P(hV^YUFg5}MNif)VCK7#oIR#&&OGYfkk zgmUnSEceO$>GG%JO#Kf;b^Dqyvje9P)TMmd@dL5%YAvz${Kuw3T!)%^4qL+wu+|u~ z8&1tEbFVgVv5Mo>-upd}=23}VBV7kLB03g7t7=LQYW=>Q$bM=D+_v*&hdQuuuP5t< z)PDx8`>+3j!)kHELZGGHZ#lb_wzD&9)6=S1$|xEFUqi#S)m)*pmWhdz;LL{w7&B()ZNgzhN&zq@?g_ze*5C3+xl ze*8=oZUxkzA(r0UH z$XK*dkCD(x{cV3e;3I9aF445Nw;$;LElfSqNzBb<9j$y~)t0|#stI7eiCDx72>sri zoSKU0Zy$BeC5i7JNA#(G(^0^Vr75tBBzmDrmn|9uN_BHbzXYCk`CRXj~B}){XP0sm7J2Y57~gj!NrwKqE}75NFfysGy*xUwv;Gm@s9Hm>JV|; z#*<=Wq8?xEPhLe?Nk{}&lVSDqQ6Lk-g&nSU^2Jh!n!M})+zyl;bK&jBsB0thd|5?i zwKu(#@oUz{GHAbOwP_$A|fIxwf7Fa9n>Fg z0FiVnFWMN@h-|(I^3Z|tf=8c%zfl2@k7ePRRjjceg;rA5$-;HAXJ;ev%i{f6Ey>cu zL;oGN;nU9H-_1$DW018#@PQqj8Cem4FHsmgQ@wyb$fwuC5(1yj1mp zNGfPeGJ%0nHGT|ze%gZfYHE6VUye8Q)HVHo9q3k5U`zps5U%u-!_Iq>6eTlLxl| zSqgD&QmxM78|ipgYe5Pe#(y++UfS_)Z|UDIj7XLzk!paV_enP&dx#L&#si*v{0GTI ztwa4`?2V5Sw4x|g0{NH-%jD%}!z zG@H1_cmB9rtmZs?`N^1JbaC8rKb_YS)#`MUnxdk_xl&Jx=b;~N+M5P7a#yNI%|f6h zH3szMsr~X-?Njt`6iRmcpfI&D^u1`Js2$rhjo>%)*Wca3UGZ<`4w$ z*{Ok0*m}IVe3$v8)YDS$bX=llKir=xXvbBS36V(KLNeU$xo?yB)(59olpmnzr1Ga> zm2Xe+ZsNA>n<%lNOF`7u0bSs4N@{hbbG_O@!nBWCSUHK{e3Cs6g4y+bbvR1M zgjIl|fozJfTi?A_OyUP8#@N!Hi;4EAYoUZ<=fJY~w|Rr;o%sahTcgu@q6^oBe;}PL z>E$Sad1ZytN~3gU{BI{Rn(52I2(_y}9*tgESKqDS!M1_3N(E8!2M5SbFn6B^Gtq4W zle2=KpB$s$cVcspu+MK!EG{8CO`?ylR7QEsiu1vA%fyIh+DwZA`pR0yUZMeh}caT)Q>9Y!?5B6P1~;tpL0c>c`MKUIm*j#?kw zL~Py(MU?f`wyGG1ZaEhB7p<^0fPw;buhIXW8pQ`I>t}Rr-P9V$IGc1A&hODEkaMJ? zp05}1vBeUazweCb#rU@zGJ(PWRtWTKFmzpBOfz8W%=cgV#FWkdaFJkEv9-O44mmXv zvKVuW7QXZl;!r0sQ*p3!Vlm$bnQ^sAexyuRL^@vd#?iK9QTy6=hS z3qM^6K(A%|NEX(9@v{wqhJ?m``=VO*QHy&uh9`M9#RbKT_M_|0yqka<6ruVW&z9qZ zXIJPOr*QG4YZ8lfj2Z_))c4Zj1{iB{3p&{eepzqzDtMTaCffkBKY^Fut!geP6y<9+ z{gOIj*67aiZn<^5zFb}->VH3OGGQ*izNp!`n_Rly`yDt&p#O>jJQB6aV*pmclGsf| zYu^02ud>~lPuc-p_{FW#GK=@Ky#>wr(FR!5qTdQ~DM#Wm!Rq)u8FxxITQ6e(W!oGP zof28RfS9dVf@~$UhOCN!by??o=gsfhmGv{1V?MGKyY)3Uw4;`gaoI)y4zHE;gCXWd z0zy`O1vAsoE+K1X#}2o$o~uUkolmnYLF%(*87;T{E&rDpe3;HNi*1@X`m{fo8#MRk zSO>B*#_l&SniDfD1x6&as98IBB5mNHh!i1Th7uKW*;*g2ebIN!TL|z(!qHrCU{)^> zX~AK8yL6*6JAr)@>u8BN41zQG49~h&ghb5=rgTn1Pn0+p*!STViW^GyoSA>n5)bAxyD@QkJ2@t zQS!4I^(DnB+h$NAQx!$9apqf_&d#mJCJ(pM9MD|8jb+nQ+fz$+xL?CA@76%xi-K0s z(R9KAK76ei!h4(59HDdCMTZ`Gn&;cH*8#Qu}pi#pU#Hp}APHXXYd2>+Jk90MqI3~wne zT${9YRk=temJaXm}w^ezM3keL>>{7)YhcNq`q4I`R?>^Jc<5_VzuY(Vi3#K zB*)B9|6v%1R?o)z;bOZv2ok9O+(f6};*jx4KiID!S>DkrZS+sR-~Cw$hvkUehu<|K zT8Epxy`n+q8{LX52F>x;nM3=obG62ud!)w*x2LOVPMbX}kkimxNiG#f1cc|OTYG&< zl;~;#v*5;Vwt**gdEgr(ygiI3=d10UhP<9AQw?mSwk$+9+{8nxNZ`c{F?po-h=InN z#SjBS@Bty{4R$w=&l@C{f_>BUX&gfd`9$Lzu@NNw^Lv%MaWo>>7Z<7q)8Z^Y9(Ba*C=@ zLxiGM9d*dB_W{PK;8BfxJyz4O0v(#V)2q9sl&N1#hw)qZ)4w2QUe$2U_|+gM`laV; zLu5VKhLAzbh-G_b<_HFi& zxw&07oy7K&f@+lG_Nbrk>ppMx1iV?jr8GONaGE(Io;a5!Bi;Y$c1GLq`v?^PgwT5b z(>V?^ zh530gv#Lq6RyFnY?)b{Jx!@IJG{m84V^|Fx>!E_K7mt$T2{Map5(J`?GN$rjF&9vC zkN;z7B8A5~Y6;s>@2$|9+JEZ$t(;pqQ(RtHs9|_7_ioARAM#&WnN}v(91xiAi`LZA z8E4V@7lg1Y08sFw?TUtP0F;pY%%pOUnX)Dk1`SB>6QXffi`-~i)e4|dN~(0{=E&fG zE;9IU#?*t+RZ*Y{^uVQ@3etPixvZ(ncE}ap!)+ACqDQ=UcschBk_MO&;eQmJ@ov4M;gE@ zPB#a>D^!GkT_eSWX$|vbxPqu98n@ZL?vI1cwC2Jqn2Hg!9xsPHNTZ-9OKbwHzcs7( z`_ac6G3SQ&=RAY`RsNq0UrA;YQaki`%Gp*BSpv@mVV{gx$2U`Q1m;y%cBw(qv` z7QYa4Y$prS)JlpQzos#0F&qr?=5bCkV!hlK7*`kUSgorr!EHoX2Is6rpj#(oG%y%d60mUk+ z_w|HwUq;jvB@wU`emIG;v;GR6a~pSGnMsQKt+BYIaeH5MdKwDRrKS7G4>9oi8{x~boO3!hw0&ZGRgFYPpJ zy>%m4sx`655?D%%32W7~7TDTm^TvcXet(WWTnt~MS51h^I}f~2y89%Z?v3avFSBOx ze3u*yBH^sJFxBkI^*o9Rje`K;pPNWbExjnsucQWF%X*Tb()gbJP8WY6;6wWGk5Hlo z1`n`PkM#);F*ZIPZLrm{6JjL((x~wW@p531 zb+}?eMUo!i$@X%feNI$_<}H}AdPd^NXrFzUgBaeE?nYp8p4s1}oSetTjEaDNJMsaa zxTEvfQ&YACFL8gJDDq2e7iI-ng@$<-^|^4P5oAp&q|;eE-`2|I5$Px`-@yjHsJ$6z z@5!e0xt*@rqi9>}Fqo57bnhhltZBKdKg_dR?R;=$%cia)ak;5AQrI_%GpbSm?r0Uj zWLNw?UG~`Klx}J?8#MvS$~oya5KG2Bm1{ZxQE9(y`j6Gais=ngQ3I6N_DTHyJM?O zDTI2)JS5%u%FG`wD*#5z@GP4G#gypX>DuhCM}5i!F$3k!qFirCoA!T@;F^5CpRVYG z)E$b-?d?WYueuL{7EG0}1}S*Gb>Au_2SPb4#AI5Xv41Bw7JON5j^1|2oh*Gkp%2_+ zKRf&^w-5stp&s+|sAxq;(QK8`YE&h|;=6>$X2*;yb+-xcUtI7Mov9Mes)?z_r&X<} zCToQ_OyR0Mk7F9P9X~IQo%tTxk|y=j_Gi7bd!axol0TM`zU|X}2Y2BtcRUeIeeB7P zLZ70O{K8pYJgV%w%>%TfL#R7K*@Y6+6Emp8<#sHd-OC>4sHNnE;_|+ejIdpJyyI<+ zJ0O?aImwvERWN867}LX~4_tIX;RBwLMjvh@%%F{VoTi2*by;Jqs*4nT)q^!x-F_p? zd!1vqeSB=w<(&bO%Gax8}&t*IEMu938pZ~a)N=Q8pj^y{2yA)k7b=X2LWWV$Y9 zW19CYdT(Yi-EalVO=sooY&jl1c#q@yllxq>rk7OA&Swf?sg;PkEQkbd4ZuTohyimi z)@ry+O^R7%9a}wG)9_z8XpHf#|8Hp8HEu}P7$xbfPobktw4X+2aw{2!Kr>?F-DWM> z_QMr|(A}T&{)A?^y23R#Xdj0*j!31>weiry9JZbCXHg6b$zG;Tc84UNwm8-jG*~q6 zyc5=gk}hcAxG{qU2XSVV*^nPlrdI>_zXg6*0`&F6!t-LpM75y>Y$I)l<(0;ZTSEBe zY9i#DPiKug0@)H|rUgGPYiKmVovGV047Yo8EiH9ZK_k%Leg)v$Z#$IN_DPK=%hBPR z=ezHJ;YC$ z;MvIb2*yc)ab{#biVt~*U$Ik2UJQ3X56@lCl&{DCgmuy$rqcS&INd$U2n%7;$0PNr zn5NbN2F_X3GN4{a*J;1Gg^7BYNZ_Vr7k{?Sb$+TXnDMJAP6yO6VAehYNE!Mws?_oF z()%Y`Lu=QS^Lrin<1%mbmHGK)U|UJLGF*QSoUyxq#|!*oz+2MZ$jD1&T<}}*)dd}xWj4xWx z(y0fw3hLsOw$&#uopeymka6!)MwrTxJJ+s>LYb!ZpPxI< zB5$^R-LqBKR84)h?+x*jp;)kMhcc-EMlDfguyvk7;6se%aKwSfme)z|`H=9gCXIYY!9Lrdtr)rTTo&7X)v?ng*&I4SUJz#ltFv~YZuQgqR+C-N`TCWJlKh|rPgp3qlR!la?9T;!6e5KU zeYC$Tn@8D~^asB2=!W;;-pywJ03Q}PO%6Fid0(^HuC&jRl8Ef@@^^CZSN2EI3*6Be z_t0LRt>=%Z`1Lhb!%pP9TjND}_ZV3;7oW_!FY5b@zC6|}J?V6v!A#k)QNtFm{ZIZU zvWTdzuZ1P0)(e``Rq$mL3#I^8vz4JerSZJ2M)-f7QoWOmmnJWRkrg1vNf5~SJ75@O zf1^Kx{}$6SNa3*d1zr&0M`6bWkPUV1%)l6S{~;KS99-GnGEf=Wx5JVK{}vJjd`YTk z(-zle+GEKLiALTR_sw#(8scH-ouD8MTK5$%`OlpeO@JCBp!{Y#-2IoIRcXmRc4Sr= zNnNh0dByYZEEPq$iDu21b7eYduO5|#b-ZSeqZDVtEL2US8h^^sUz(>KarL%{o&IpE z!%7Zb)Pj}xW-)$b#zKJr#Q{Hbvm28?KL+C_3IrrVEV~z@ETyAN_KC8}|8Pu0lL~s1 z%Q~)DG71I+9u(b@nPE^>A!SNpq@eVrK~s81Y=3Ep2|c^V6jbTchusqP z{9y7WsG<4(V%cMlH|PV*i=5_?WxHtxR*ug}(AoLVKcq(QZFPVz<@RB49%SvtAT=iL zhJkl6m3Rf`q3bPYsJ12v6ad-l>h$4gv!zND9o+s}qkmoQp!wtU!nnmAF1G*ZVmCQp zK*DxpdNU^B?x`u4`Eb4laK!rs=@j4^7ib-F&9_Dp5&%=ZXN@JZ*^`8IsOxy}9Xpy; z1YHSF#8(VSMYz;YRl{x|5!d4DuD)dZqm=V0CG*Ho2|ew?Het9W?%^c5TvZmCi-ft9h!%6-+R#{9`e*?CAlw0R(@DPMngcb zl3KeoVi;KS0JkG~OVv`LGa%wY>~)?*-HmAQk)0x!w=yDVD7FycjTqHGt#SZN$L?@_ ztAGxK;_9)b6%ytG=dldX}|AhcFfvtu%}cVQZ3b6!DgQs{-4&V$q1q=}}w%nm%^bvYm;(Tv!ZntsU^Y z;EweZ_rV(#E~{$Yg@0LI{FT#nlFUFJ{=WK9_BTL+WA1t2a=PgAQ!PZGmm)ME%}+2= z5~!Y0U(?oPaYx>&=o`9xPCM3}<}@<53ud(was6rXnLrdvc$|?mf?nO}$$Xxi10~hD zQ$a9pqpW{zaMB#2rlwWy8N#PdOmYgK=tGYsC(iw0@yzpdMBIsltM6cz_9WKEfT?`g^uqy^S|Z@FNBQX-1-S%v3b)^E zX8yc{$d)vl$lm({?$@fFQ2)^k9bnI)Zc~6J{ta^kYCcM%8`2jGX_!I0qb}YQb!apm zWSaiA5XaOWhWd}?;0>?1y?m?jQ-*@a`TA&0Tc2@#!++GTfC1BiTJZiKnJPBNAAR!d zYWYW-B-FDzBv6hc-J&&(j7Gx9A{!gipp;PB=aCu8C8YwcD%#rCmV`l0wD7BHWTIL! z0<#30T4v10BiM#i&@%>;T!;aznk!Urce<)5^d&Ka%SK`U>nD>gJ-piHX05kn8oABM zG`128E-BFYrRn#NlSNU81b7F^iLKtOsdnWcONd^VQkU zSuj^qn{vEFUwaWjGB5o`%3@}?xg9Q0cGF^lM&1uU3dRKWJ#2n}Xh;^JzMzeWTIGkK zzGsLJmr*XKae0RzUi3!3dv0%QYr6=)g`GZ-B8MaekHzlxh5?^b4H0&_822)+$re;Hnq`#*Mpj{&&Be4zf zY(wYAu)g`*e}4|gKEP52Y~v`g_5?h)_+x%Ow}EC7hsie2hK7d5d|X`{AHFGNa*vDZ z6S*ljH8$=UjY9{d+{exGfR>JJH|vAa=WwWBmX2^5)$S!g^LWtTneFYf^2MYP@jf0 z)KqdMkJy6{?0>)Rg(J%2e6QR4gkMrtwg8>#dqI<_EVNUBuTS!i0XK89i6c!mGZP-P zZQ5;3M{wzPDrB^?F)r;~ z1*pnMmseoa=F;y@1!;wv@NSY0=K*1llDH~>clc(zBeAZv$k1geas_Lwp3pEvRvZL* zbCuec-q&({eezI$GE-0Sf{v%FQMd08hSx@`$vp@(hq+(=ZqrHJ_wIyow65n#;q2Q~ zuA>8QnaIbrZa+RA$3I%rtIc-QvRWVgoe4f2J%5sukqOU3{^vK5U4x$|=J|s6dcfD4 z5M4s^P&C?LIXVG-gK$KVMfBeFGl>gPj)`{GNs7s72PpE{FMWEHgQ02hxwZyM4kH40 z_@kntxLx<;fTOL}??c0E7$5hNRHvFyS9$_EwLIfRt}qLGk|gyd_t;LPOlCd-|_l9^C|7w!S{jyibYiANut>^k1J?;xvQQPN1%yELNWH z9Y_@Z;fi87$Xtt9+93!jg!j~>%#UJA)%upXVRW|p*aTay?Mk|X8UqpSE?6ye15^)3 z2Eu%L7x;K`2<0k^uLb^gm{%Hs=IV^Fz=|v6maYvR^EYoVlu@S=GQmZg+nlE@$LclQ zFS(&4&dhOcuGxmSWlW1UDTPmcE*|$b06O=lC2&E~5|u_7 zVaWjVPbD_o{?dz~yF$>DXvzQrlvtN&hEjXKtM;bTIzeP;aY7lrql$)?2XqN|WvRlhI?D{P`FY+TQPZ`#AKr+Id* zF<%dR!z3EV>E&29Uo188r&sn&{eQQw`&45Xi=q%^R2tIt5>Oqc8kI#L_xU;J2rqcX4;g|~i1q9E)(v=Ju>?WO;}%YV4GgL2rBZO%nj zk5&HPF60L)Akzbn_7KTN=l-87_MaLVDt&OHpU$A8hWX!%u2X3jC$!bn6regsX6S-T zSn2=mTpWSzWVQLkVZ5I@Ahuzf<584Q2>?zWyMZwXM+MQ0B2W*djNtLI1!XkN`dXcR zRMdP2ps?QAd&P6@EAyrp{j?)FF~;LDS_BRC8NLc*Af&UeL{C1X$Sf7~|g~ zWEezM5IuD#5?2J(++u<)>`}wO^x2=9Qq1_eIIc%Zp3rpV*!v5OT<-Ti9N#k_xL9fU zdZLs#teR}=AXNJ#CJd&opRC~Deq{Qz%VScM3UV$b#ch3S`H#^wC9676Fb7?2E z6lsP~0YhEJgr7EsM7iP_E8+NvCE9LNVgfGmbRi^Bx2|+AmV~i#d^AzDwuz9IRedv% z^$|^2+2n^pscYN0$d#z5;LOiVLWR^-zmu)@>v%MvkdNt5 z5?ii(a0(1U2V6I_cCUF zCG z-HG%&Ba;iurz95u`mSi6o5`*b(@l+Ec-AIlIZ?!?*0m{jIW*OjOB}rd>IfiU%?@O7vm@ZnQOuYxW&wKfMBnUKd+k5#T~8gV&CNJBCcDKhv<7IvFkpU+SRH zdn8_BTVItIxcXl|@uWy~=PwTrYvpbiRZBh(cW>RXC}eTyPhYNUKehaP35xdDwZgx# z6BpnqsIO1vgxaM8)7AS=zNU_kE`dzd4c&&-QvQUOLk&GPGiVP@Uo(K(4AX4%|s6~+tF zW(<{qn@S~Q@g9hm92K%fQWBSI(N0_&Hvwn!hOZL|lctEV6hd4(=8Q8B>VxfquZ)jf z?J^mE_W3)!RR@f;2Y9 zlqeyWEmHGQ@>he5)qy8YJnv+jNszAaddCX_Zp0E)b%ml|I=X5f}UL#vQ?<`<36kYsykQek!^haU!;lksK zWHEHl;CP7P9A_v_uO*9_7!MRzQ4nQEKHF_Z<7XEmuH^#Lvh68<04rZ*XY9GzjORD| z8io*TUVrSTqyiBl7IJKnF88vPQYstnj+HH=OoUwTIx% zL?iiL+UnLzLpQ3iKJ<;i_!}{mkb$`oPi2B#hw$F7QHT7^wz;y#IULZVfyj1om_)(8 zLLZ7CAwl2LA3JaP84GI;qK`LJW8Lm>7R`q$_zY3E3?0gvRE)=NRT3dF+g+?IJjkQw z6=>TJ{h^d0#noHh%YuQob^y8_1%h zr6?qSMPu#>qG-puCf^BvQL1I;tK1NVyF8qo@V<>62zSj~PULf7XR2)DctE~-FAeo3 zDMLQIlO0ZU2d29WGW*$k2c|FY0&)?z{eKplsY9QmNje{9w!BZtl6Xfs2DP18O(WyI zf2XcZz8lHs=jo<#L040`ybc%WPjP7k{#=j6TynaT#s; zwF^L`!P_m8FOD~`62Va5QmJRwgG%+72SmN$`Lt^(q5Oh7u-zEntXI4I4&13lvZVHB zsv^1FMz^ThrFv|Pjn6KP4361a$Qbu78%KGM;I(1C{W{muJcO0s;fu_y}XHC2;o<~ZX z{c;SADo5V>yxbl;diujN@)dmB`TNgD)Ur%;`J#?4P;8hzEO==r`SyePrlWlJ1)RN@ z=8_%$KY*0mcR+r#O$UU~>NGYdKNqS=^dHceJ-ZFqZX=u`C{`ksbS8fM09yDT!1!H8 z6;QjffRHPFtwacx!d0>QF94O0h0Yo7WZQuX^#5RXmA~G{P^^1E1JUW~W>QoxC>+Jw zf6+D}-#6`L0;iW``<=yPOS-D$vClC5uUbY8X-R)1Swqw3(0%@jHf3md{x}hb$*Yq= zb}W+Ne8;%2=R; z0at)~oBMwgl_Lc}1`)!|mOk;TW0lXM=Y{oC^|Hc*S?j|P`Vohx-}_oP)@1R0+vO_#b1Jow2m*0(_!s6dJFJbpFpef+^u#ER0Ne( z9qU#SI&Om;VXj);S|w?4R0z@vjLB^We4r1<48V%92OYM=K!r_eDNVA#y7L&_?eT}OEo%q%oNe`9xR-wK+!93QV$gIRN?#iOKR3~3?npf(R! zaznu1BdUV?h}rAJl^3|;Oa2P*sT(3Zv#TYIj=r5gfNyMS;0)Fk*b-@E^b1_`xh%^uApZ34;^7wuF(~%e^0q>PJN<5 zReJ3+gZI0ULe3m!!X?GTiuMNw1R5qz4aF>*N>y+#a8+I=X@IIW{Z|+wz3#a*)evja zc<*@dG|*06rLs%_)wqViXVQ!{jPw3_W?)11U^}Di^HlmG3PPm zzo)rgYu6>9S(#+580R28#X&G>>N8eefCQIrUP)ZXr;_;{*UZ*8IH>R+V(`)>zJrD{ z_(~SxSRlTDHJjJTS_0-Er=kqyF&~%rIWX;DNwZ=7?VSL9SYULhJ^^t?NUqA$q==r) zXa}NO18z!W!@GxFxLc^0WTPR|Ov_7+zT0b8e3>$E0|{VkGU4yEk~+s9q0;q3GlWrL z5B8qUOF_b~+#VEUI}f|hJ?EI9{mtzRg&J9QtH{g~qz z>9~x0D;xZANM~H49V{PSuPuL^im8wIKcyR*!cw#vaufd(i6%E>D~D>wnsjZh!dAUE zP2GaBvMoSdvpz~8xAwN`)g&EppXV$0I)!-AcR0%Jen-{u${zJ5`@Q|@q{<7|_9&W5 z0ze6yjPhdCokTe!p)Wg1WT+?Vn>w=8p@OxKJ;tvuYF||1pRw)>*=F=G%-+sP4*-P&8NUj?6Qv@is8l}R$rZdxhBGCF0 z55pwV^7bkjF>GWGl1KRZ@hul0#ZpjBNDFz*5V{=^D&-V?r0T*PY(acbUsh|YPj|uO zd$=_P+t=qW1~Ci7{Z=q_$riJnc!E>YS8q>XtqNiw1gYV?54$D4kdNDUb(oNf0{E}D z4q)wkdv*cslGoB)z<-qLiK5_ogJB{Ejj_2a;xii7F;Y4l2f+YGyD8yckP0gNU!ptv z`U7hqA(u9E=Vqc5uD_3r2KK23ocPV)f7nc-o<)M+G~@oFISIL7*ojfY8mrxJM~3gi z(@nuH+)oCzTPM*K!*;;qNO@mi1p#FBC@IF-xQs|UV}F5>T* zAmX!>1RiW42F10IYiQCHHL8$GECj(q!pLb&HQ9UXO|jJ?3@^bmlq4;l^|Ql}8@6FX z=V8(rvlP8}uNF8oDNK0$~3q!tx zc|+Lzg&wR%lbf#XUw4K@UNY4BooAKbKQB#`R^!&t$}P3GYu>B$$J#f_s7yR0Ty64r zg_BbGq_NIsU2!tqw~cpy{?@i{0+5v-L>z;H8qGv*|9Bs3x$@8?G|kkN=c;qvxr30_ z*E9CC%TlJv6Hz4i*Td&jaSb6X`3iY^jtnhjq%IR!}th~Z7w9v$fcy0-lXd^x*)?FF-IRU z9zD>g^WL3`U9VEfHD)`16QlPpaeh|FnPygh7S!8i&~rWJ=uqOAOn_sFs0OIxQ&qAK zeJvr%>s-U4=pXv_9Jp=`dz;sl=1JO3kKcQUoZMGr!ItaPi-u!^hZ*X zAH6GsX^Ji7d3fpoz=VMGjjHyqMU0`pQT5077tlQRimMT&r7}x98n4}<{3XONkoD@F z^Sk@Tuqe)cZvqf9#f+?x_{a3zuioY^6h7fMyX}9^7>=u;76nesA8ETF@q_cHx+1~2 z#0p4qfcxH>W)#~97rRp!cU*Rm)=mVg0qpU+PsT!6PI>I(BL0~ZJ{In}@vV_aS6Uu? zTeV-$kULl@8uq_K>P4!W^x~bz+^R?>-YivcM}7oOT5$l!QKINO?vSg93|DkqLsuD8 zLT>r&8lh8U#aEqIr(Y#lr4z{5J0SNX|FYVo6P@OLe43OplT=WXs!b~4eTftli2{FvC8rh6;p(@OCvTd<%fqMj42*r4UYi%ynItIY( z!TH~II=;6Cq^XFA=rt*8n9*Xvm!T+Vb@RW17z7NwN-lKX^$JLn6FC=D29`v(vNBeD ztE&zH-hIJq7v`5pueViWgbu7Kq0^97W`rfenCr}CM9VT1xS-W-t7inJcSS7dJmNc+ zU%QA2QM%o3`krlbYJ&U4dJxjGd|8}yO}z0zT^jfK{e6aY9)9S@#IZ0;oFMOCL8nf^ z+=zb@cWp5gVF}DRBfdB9)Zj1)O>FP{)Dv)dN_Y_0^R_Q{C-sGStxpx)K`R_m>wgmF zlh)NH8wh~LKJ4T7Z^f79Ubm_Lhq1p3i(~8BaA64AxVwhn?(V_e-GT%H!5sn(H15GA zNYLOA+-cl3KoYERf?I%uz%H`Z_rL4l-`BPKth=jfmdvU-YmDc91{%U-=8ITgS>i8^ zG1+H8m*$~x@%|OJmp(}g{ee1Msr&H$o0ch2WL{cXLUJOO~*+1iH0Sx}$f1ztU6cd3zbC4J9& z#n9t4-XS@31wTrprKXNN?o9&%zZcxxv-#5p2L}MKN52Qd%NVCu5W}9<+tf9tMLh*F zxb6vjwl+2+!gJAAGND`eSkW=iO0O-WMLwhXUsne@muzD0m%D210XH0J85t-9MZ-(bC$z@7D&v8}%AR<=_06svfI-6r^Bot}rHK|#u7mAL&7#uk18 z2%ljFpeJ_%4;QQ5F*4YU8x;v`4(3WOf+w^27pil#o{;X6+MWmFzj?G_*O9R_R)>)! zTE5p)6nB#EetEVB-tnZRrz;2T?d`>e`gfU2DlHf=sOKvBoU9~Ye$pu$bNkw0do`~i zIeJ$h9ajE&I?sI#02+lOWVLm49DW{s-S+Mn-8$D)R*s?IG;4oxmk=Sp6E+v}OBqP5 zzgQRXIXU7~*-uj@u9^NIYA{u%mcuaY3cA2|kiQ!o90YyJ6ZVJz_;|Xz9)K%92Vi;; z;YEGm@YkX6bbDF9Ern_A;Q{5ojG*&M(xZ?;s6IkClHb)nE+HVx_Y*?2l0Ba#3(=hw zVQ%w2&h{fB$^V7MLJHM6kUB&cjN;EPY=k{0rw8(+?gN)q)!jM{;RUMF0yxFY?Cfe& z$?9L``rm|qAy${pPF*vcw^3t7l`_hJ;o!vKIo{E(7Znxlbap$~J^=5X#<_%s5?-H3 zU<_>RE*6=Rd@y@AeXd3D$(L|+Vw)r2yoh`Lx^fV9`PRs6YiBn`GIDphH&|^uo<3LM zeYC7)>=~y9qeveD1pE$j#Y%P~#!pE+)GSvCn?@UZ=&Uv?yjAbm!NRAMBo!bXygy7G zoa#(7WJN=gLBeZ?F*r0d2S5Nexu{!2`!%nekgW+x?x!aw2^;1voY8@}=uD259e8&#QZr zp~u17X$*`9Kq6qjfb0u{5Nr6thZAendEdK~O9{E&?!^U9-_j$bJWALG4&9mpyFm96 z%qwAcpBEyi|CkMLjjW%5nu&5ca{ddAYNM^~PQ)x0kOI7+pP;TLRU_%K-S{FD;c#C& zC@n#1JTh}dS-v3;E_>J%>Z;ph5i`Nl6PL+NFz-D)az zn>2l-;RSxF+_>mi6Aqm3jAvW~5;9itm5;$YE3zW8f}otx1`emh%O6B5!17P57ir8=z1FoZhMwfMoU=p=#zT{)2W|wvKCsgG(aQc84J2*)SYq=EZHyMl~ z^mPSY^Pk=y_Z8ZM!^7k1h=#}nFP}9u;vrAr8aOG0p@r>;OFrCMw?%xwcU|8eP1%tw z_Pg9oV<9}z@hfOH?$a*985lK|c3EwwFP>>}Syy%oDSxYjQ>vHE@5ta6L5YQ9;bagN zC=&3qDrp=LTi8a%0@{b@U^b7K>-SoI^?5w$VuKtQh6bc=7&VxF3C&NP7R?60*JFv~vAOOvZ-9l7a zP8U*?N`fATO~NHLwNzuqsz5)SNS$$3Yth3&2(N5!CP<=iw2oNfwA$V@K$wPeuB@n- z6h21Vmqr>oIF%N7K1l5TaydWvp$&pW%Ks*{aiSbfzt3wM{sPI7un12ri${)ypGa=_ zvsSXMQ27ih@x|q|ucUb^d4Gl=?sxH$!epwX@Y262Z--tZ>=%yP&YB~hKwg-i8+Y`i!t5m z(dMu}B85;1x%PVUBRYVZjirQ^KMu9G73x*RPXZc?7bi3fhd+hm)t)*&L}lhVs}>}T zNK@}QDuKBka@4mOOhSy}Fh~6m_sS1!v(IEL38f2Z`#Ojz046B`kVD}NBEt%0`b0vi z4C|p5AzHMW@S1m)U(1PzY|6cjbVC=(36-Ot=f;x@j^XC?g^*aiqd8_VQ`TLfeM84T zK)6cUWX)_G#M%aiqfxB=z$Al4RE+)-bsRZOA2dQxTr`D(MZpBIZlX!+JwAi=?@G#Q z5}k#Kg@yC@U)j4UWLv2f9=SqjDEs2!6-jm$kID!tb+`Ua1byG(sZZHbTl-3 z0~l2O@|k#v1a;1J24OI_8mfsC+cx3A*=nILBo)q)@iBLd>}?w;u@uTmYi!Ltj^}vfwJ%VitTy3LfFL z{bOaIQMu8kC^|C6f=Gl&?1fSJ;O} zspncfB5mT1mDIk z&0}vWTD0c7m(M!kUyTb2yPm_rc#@{R-Rau0B|n=?{O4<``{26^J$lKe!SM`2Wix$! z4_|LLJ?J38hPnBJ$VMc4P+9*Ay1r}Pg!z` zjt%hBnta={@Nlnb>wHdEfA~v4+)?&#pcn}AtIk5KpX4=w2*}D!q7u340)?G2y(8_Wk5FNG)z{Wa4PHpNc}`{(yg+fS4*j4zO_f1}qfMluY! z`!8dtxnKTg8PEsU_e{>WmVo@@ABD_idWk-S*9iw-ygAK?xV2Derof#CN;cs&ak zDE?L3_>BWtCT~w z08)&5RYcogzn>-ge+MXspCJCPcn1)pOnUwI#C#%zdA_av?{*_xKX(6q&*M(k-21PR zXzK$*Zs>PGrr!m&TE~JeBOPx@y95N)FRLx&Y|XK|{H|jH9S!ElJ+#hpQ-+yN8|num z-+#kP2vXUh_-6}VNxAq6pC-0GW*qD$B#p<%_s^9klmR|8ahC@}90`M*d9#O`uNaDC zSfYcZky>iz$;X|en&@&lnO1Wg16Kb%3AqaIP=^oS#X>IIi!;%v*Iwf>zvAH*F!Puc z_(}0>^mef}+2a%~3=)$kh6iPS9lK|1hYWBcbK@&9?ArB?vgYP)@gp$_B~Nx{=ISBG zUS&!7E~h7a%F1JJS3e-Kgnj6k@2!FJK2b+V0|GTl1jK@YZO^X1FjjH}^HqhXh}eqR z9xaa@UB;lDtd?}5@0Ih><~=2?l>*rSRp-dI^$|ms$1jMqsw!JIKkNN=@kH*g%;NKKcf53fu3`n6ia*O1ja|U!QdJ2p8kskrG zA|UnrwpJABKm7)XT%C+P$(aD%)jt`Q+!i)k`~*RRUD$y2m!7K#I{5!A{uad8{-q@~ zPtWOe82+CYpX5(EKofy;a1GJUckv7qk^kH;e|uo+8>kz}Kk2R(wkCRt2?6I3&LRGP zL~6kNin*!THT&J@<0Xrk586K&o+lMqsxiL$CBt^S#^>uT#D9Cw)6#`_Sau}C!Rva8 zj1Frn$T@C6Pkxe?J>8l>54`&E3TNux59rL`zr7ad%p;Kgktz1{HX)_UJx8b;-2ZQ1 zXmfM#wZmMAIDq>Rjt{l~uUBQh;deWsuh4H?(^QV|v_*8-lU$-NoeVR}b>-{N6E8>+ zL`RMuBnpEV(yocXT*clwWTn-}4u8zP59e{OjH0&CFmFzMzf>#uNDi~zPS?_%pJoC) z{;)*3G-O$pDlR4$?iRMnMlv>ecZ=`bM>Dd`VZ&*9Zdg4iSjicGj6uVDqYTrRt#H9# zVB!q9Jf!{6zYAMDAozU4Wy;X{+e@)P_4-xOaDMd!Tr5_P1>)e+tD`a4QmktzE64x> z$g3)A#E4K~hL;JapMI*@Xp)wE=+fM2`jOOc=1I}Ti5F*Prsh+nN;ADDB=_!jmb8#! zq$GRb1WRcqke&9seiP<;+r}*}lKgvDoHloV*Fwwluyotn-Dkb~6#KhHjjB3xhc`+o zx!d0B7woyykMXbX-gj-Dw0p+CYAc-FaE~Ql&Nt1dRk=MlVT*bA>5&zE8n0Yn@0?Uk zj=53IvANAik z3gJTqYHj&8{U9b)?@~Np0d&~Y;Z#H8MbK}>n%}9(Sk7CKvcPcRlE9v>Klit9yNJui;9ts%!k%HRz z01`?ZML?ZL3)(lI8%uK<3}p8sTm2Y)t6)Bi`D>JhqS|>Ci86_JZrTr^Z`{WL=942{KiJj{RO`FiV`ThJBn$bxV>gKyniXEtaZnH$ zztj?P-T^FR>~_p17@XKzBrHa{qUXy)Ncr_bGy!nI4CzE8mj?g)9UR!EdZeUe$X zr|~4B7*F=7UmjThzUDE0g~ghXCI&FN7f2?^fr+>b!|}b3?sH(@Ia-&;4c zP8lWi8UGxs%mJg3ZM0y(CP?dIj8OaQD71$S&+y?ts7`4%$-X-TiuN-6XpEpL#lAP zUi9%&&I+Tt_KyTJo)EpOOs@g*45_kFj8+H5Y_xrf-IdIAkhbVid%AD4je}8V{ zFs(sFFk@XbW7A}W^#4MsWNClv(S`+8ArY7n+UrzV9pCA{0efoNE%G!0F*76%FeG}5 z>G*b3IjvCH6}d>N5PZ^+xGh1Txv-R$#;y`)Z(h#}r2s#BGc%{w5nm3!NVi z2=C>K32iXY>8&mhl`}<**a}l8O~eG;6TTRhsp=h9&b+Jpd$=?c4DSyH-4cHH)480WHs`~iMyO`1s*4zR35sZgzT36 zC@n-o@5gbUeWF2 zSv7=QSZb;NCQo{ibNQ~FJdFS{?6>KMcU)`eCW}l~ z&402LVCuxLv;%vzPn%^2i+1b9zIKm2Ue7Su<&akycZ()JE4oDru}MvKAf3fkv)O}rHZ&I;%%wUfD^z#!3|fPGBsdZr zSE9WHQcZeA`Q5CN!?`KOXJ1Nu2BL!raXm_nO`|4K`SBnd5j`2RJIEwvplQfJLu{(> zC~`fc73R7;pdkHm=lz45YbII~yAxxo?A(34Ar^@aYHP$Eb7&~@^Z-5}+YqYxgjRO{ z$>YvKjvncaVptOLRF>tY0#>!BI5_GMo$*3P_G}7A{aa%+;Ki4FmsrlmAHJeOq`8(B z+klehc%nMC(k1Kd0=B@m2(t_zT_0+4uPGLQq&Iy%3>-z9K+=9 zn3X#d^X1s}+pHpeRijXdqz|#JjypxGcrzMy&QYpX)OW6qgVlV@-s+KJzO$#JWLnkQ zwmX$%{p~6`wcEBRw}W`PD3p9@TkQ9Sxp1jEg56pv|E8VH5U zMCK;#aLz3GasTuZ*M(oErizU06eJ~-)kfd!H5n5Z7x=lE40=Bch5&M%o%K%nT6d3f zK5p}sl}o!(+(p%)pX}}@=3J3z&g-d{6I~tKfO1~9rE3tr-c_6T2&5q0azaK%3%}(> zdMcAK)@6@XGMUS=XY~6<)6WjsCudg&78dXdzHN6h_0KSEjgb!XhYqb;bo5bRe%`h_ zP2@vw#Ylk}KLqya`{=Cd@~I(_BGuZ+{XNA8V0Mm$99$A>lMzC8$^o^_5(t&Hn}~E< z_oMNMt*Sk&L|Wtf*2XF%Wf^ZrrGEaoO!vfX-0w#*x4WnE8#Tc8jX?4Z$zURtb568X zIE#&=)e_$+H1G?6j1$r-hP(;fG1ieo>!yBK_ufIjzB|$=#a}k-uMF;R%@*V~uQXZX z+GH<298=3$*}Wmoo!%wqvyK5LD@5~_8VGYRc^I=@dTel(dXNhz{^=GS#H7}C!{pjx z(V^;ofNXxreU3kB9f35YREifUJL39oA~z;dmw`6vMp9O+4&iktDX9`?>aVKCzM%Nq zb8#A6{@3Lqt`zuolSwVnsKf)bh~QRUSn<)?At(OCK}dM4QGe!fPQ%+sT;z3>Lt_8X zHs$vjxtvO|t(`bnyS=XAs-o_y49a#ku2=jf6lBI;&6aFs?2)VDbaFJ*T>I z>5%55(TJ_Yp1x07%S@igPdEJJl~p!pSVpMn$0~-%h@et+DF+OxEVFk3sN6T zFoS3~b4f2`!tTRwmDXCdBoq|C)+GbhtZA**`oc9z6126#-Q269$$}!$uQnoD5vr(} zMZL8b1oO4$a*cSbbnb?)7cntj9u~`J0Mt)p6dhKqi1et48^EFR8eRf`BZd#2KIcfJmu02M#AwDhe zEi7!C^de-v-AkUL(ATu^{5XEXbSI!FJMg*AK{!Mc#w8rruVUP7dZL!eKVKe4lNY^J zaxwg8S;0=qI+WVjU)39u7M9g=@gakA=_u$yG5T^>dBu_MyIL!UY4XA2MLM?It|v^C zVjCpkqj+PZA}1{|Dk!aroCzq<-)Dk8cpnw3k_~ueNqrg{dOsZ`2xrr$9PcuXV?Nf6 zAb;0jTPTs=>yd1i6mfXLU$l9BN;gkgWfc_!_T@UQaM6fPR5jk_vrOle07?6vWe9nY z?M+h9QnV$qij*4oa#?3@G1kU^o%A?_FZm!s=U0A$gbQ|cHDlqp2qiCvIOyDV%4mc% z&hKqsf(B@pc2cIzqykwIll0}%pJDM@ebcQ^m;uB3Ehh*vUSIMXvecUnIYcHX%SIS& zWj4kf<|$0mOLFzFeehBZH!#$l+J-{<{jjzBUlYw_w5SWYnD>-6lIo1K1jTnk)z>@M zIyd7M(p56o%923KCvhwv1A??*#G(o=q$S7fYRkI>7R$`M>cj`RCGc?za3>ibr$10DoWU^4{Ak1O|yYG)LxS6Hy$p(o?!gniqyDHC?}jx(_i2ch4-5 zUT~O7IiO&pOOHWD8D|M?!DoVROGzdahZ4#uTvlR7Gj1o~d3$u)Uisw>jgaFu&M*<< zuvBqQydqM8AWQ5?W&O$@bOv5dqX}uL*WFh%(=W~$P|4EPavf^!he0s5 zLd50>E(Fo6(U&YO2aJq~Td{!yykFkIvB58*=-TWstbYwzQ0@7If_(=<8HjTa;ZNrB z@Rt)pqaZHEwrJWS7tRf6tqOMy&41gbV3u;al`1Lm3$)iu%WM%i6k0ptW+qVxYrtf{ zyE8Tg(o9>jhTT{n8h(93!{o7#Qwqo&KoMg0VxYj+v}59yFdZOXPvT=Lk zX1hqkEBSX1g3{#^9h(v~dC5BATL^_&561vslyI)hRQg-~G65*3q_r_GOIhmu_rHRsDt!M;0!~*;G+X!NB5b zdArelqiDxvy)jv#D^+UT5MrX&NKszAc-UMnb5J({xt3%}5^UQv;goE3_x*WP+E_Hq z>^FEZwshP(omvaMqp;92Xy>rpL3VK4A%Mc}lViq|<4TB}K*JCmEL7gwHAKaP3HVdv zM{HTaDesQBworHSM6Jz1JpdgE#LIvX7vOCR4o{Ikx%)iAACO(ITOJ00hEGEBNCv=V zmnLjTSxQ7b=07c65~&-rwArZ@H5%!Bda-8MvdsLSV6?p^`mn=)zRy7B!T$+B|EJkb zFKC}h)kg*FiQtIsJYifqGiPS68>};MvpmTotdb8C0Lz!B>YPVPA_DY94$V3GB&JwS1!hCAF?7bmFg^V>3 z?>45191{d^NYJ$d!t$D$Ks>dm@v5Y{BSmVk#lwfp))q5gzo4}hcKxZicx7?bVSzF6 z@-luc25&bpqRCY(c28?`R#KB3AI?N1vJ zGoQ1R8t@Cz&w!0vmisBxDkc5BO%(JNCY0EsRnsfFTH=3sQSxZQdQ=W#zVY8d^~*|j z&Pz^8B>V1Xru$;RhENR%&;FxJLH?6o0sl`A_#2e`|8z<0p$=0238wz%y!}Vr{uKWF zPw)DlBK|2}O7NdO003VbI|9XsjZ7=&>)*HGv5zRfDp~&%M7^fX{SCN$j9utl0g^O_ zzM%p%E$^r_m4CQg0AtP6Hh_*!GME086`UVCUb63P zMBuYJ2mKHWWSung3DG}pm0y*ATL!qne5<=*5KlZuodt_YDZZ|e9}RX~)}x(6W#s*w zBtIoCV^pu zY!Ls{V(JpNF!0$yLHw9~Qs&=w>KT9lw-+r%+|qp>Xjkwpu_j~l8;SkaQnX<6~Hv!-Ca* zI?m`Q>e5Lzp)xlvBaY1tx9E%eCwrXh4iK#mC@kc)i)5h2T;$`TYba>%XTQz2)<PRBrmCc+ItUHc|IZ=JTFu z*>InO04X32NSJaYltN;!E-4|+^$6}z;Y09(7wI)sPwa_=a;ZgQrV8LJ3&~1-&phUF zD2?}4)H5R}voYgO@hvMHOZRiMTEWC2b`g%@j>MGkmlqzfJK49k^oP7bExE&tcDMbC z9y>E1)iU;HvWA0t#(L5q8^J4^TlW((zZ}LS+K0DG349(RVizJ!3WVQkm>STPwG6RlBZT0>%SV|Ls!r8@}qz|CKVc=~zQ7;#%24=~#5 zHuxt+Mox<-Uy2V?&n0_kjBbsV{FH6h?1>Jz-;Ut=@)_r5imqjpA4lC=ANNBKl^U=9 zhwDhzo6O+aKZn*-8iZ$Yn*^T+`UEkeYP;E-2_+AR|ZIiE7_#v|a%Bj-@4=u3sxiekd&rmBC2 zPk2~DRfLH?JV{9U0-?bXD6yh-^i<;|s!gFBFekpCz(H=$aHw%owhUbk{*fGKyTi@= zz;5Exv**mvp1%I4RUMTC7D{v0sgq$bGYv2WHP$x{ls+26Y(nxq&Yz|7Jd(C?o&-I|J?& z!AFgTQLI@Yd=J`cAyHW+OIhNe&aH`Ba zIS_x*IGds4V^Z|tf^B492YdOtfKVJOn>Up06kY_^xmAMd0v}$i*2ro5nzhbJDK$5Q z&wDL+GsJ%e?4iBh2wR3FJ-ZJE(2x9DoQvhw({vm(sMH{MF0YG--Hb-Jwe4_foZry8 zE?3IV;>uX=Qos}k8V0cb*A$;q^qqQ?Ew0Sv^4-K{c0_~eCutpl{q!#hv zlT_XC&uC!Gw0J8LPr#w|AysqjO)-!Q&ybJ8W@3~eP?1giTiXRl1W zK$(NbrNQ)R{qB=+NwG+hcL~3DZF3^fKX))V-5NB#9|X<*-TK{qG$(!KZP3(e_v8Jf z>gfEFf3^`FH4gPQOpSxn(Cj$UDP6GOJN7zZ@ELEwq_C2~JoRGzpr16`D;&tek&y~vw%*BP0j zq{1lR{$dURuoC5vt$W9MZz3hRmS6SH*x%HVSLL3zu|hoJb|$QBdxfir8z=0$&ZuF~ zcB%1)4CnFXQ-5ZAT@su{15;^Dw+#bv6tl*4kCMTz{3}Ba!bY$Ow5Kk7HaQKS5U?@} zNO!#_Rxzx27Ch+Yd&Z~No|K6OzM{qUrf6e42L}W&z~^p}ZC=AiB2;1oJxrvVvDWOP zQZHF4(Nv$cI6Sh`9)+*0hVjp5bV$?adZr9o8~! z$fbc4LDN#1~xmiI9U+?>g&;tv#nES;-!1{ws`w`oyeItpJ3{@7IkL!&_OuyFrH{_LqwSqpSqHl(KZZXA!O#EqV;&S>P|1dJo3DK<9 zU2HrEr%-Hy2fxp^iN<;)9nE}=+`mdAhQF?4>1=@jVKZhP0;Fn=)ZZoyne(PNBfGHqq(MXU#taDrnYT-AntFkC8G*vE3IR&3{}918ZmK5%ej zQh9C#-ZP=dYny9yns|@Jyp%H>?4;zTR~363<^x;(Q!BPt7Q8idHMfb**i~e$AryKf zX!>|4(tY`87U5RmV{}Mq*!IzG)KG+3=rN~hTXhh;=$ru;@;x!qZG9eVEc$twnKJ2gdqm4?8mfJF zEF0}X4;+1`XQ<90V%R}0b+%=jmr6H;A9?MC3SYMp$5USs>o=R3ectS%&;9Q7h)_NGj&?2T5!9t<%LTQ@B$8Uzd-^9baXL_S*|AZ$1R>8?dp4vZ`@aXhVPXR^-B^ zuK$uG=}R-iRb~QPc+Oj5ZnW{2ETMU_TCE}uw+NI^cNK2PrZj3b$Mh!4>nc}D4#@7% zUC6Y3$1Nn3wWCC%xwS0cGto*5b~Hy^M-lJ$!YTPeDP>%>v*?T}=vj_(WRc85_I}5t z_BKDH6MSt?yvAuVnep3lHk{`eR*kRzEshz8*;fHEdp_al2CSo!t7`HCFIwK+(x&Y^ zNt2p3;;F*aXzRF3xl87o6;fdXJQi5*3rdl_BpZ^6tM5*sSor~lHCAAk^sgu=GlFuD zR4xJlI_BqumY*VVvKZzwkzW1$vgf#EG5EoXKZcNF*@&nq{LQFrNChMww~2Pj70%jI zXz}IQDVk=pJ|4PrCNQr8rN@sUETHSTR6tGWbKlcFO4Q0W82sYd8x9BU|QB=#Y8+QB~Lw^0w7m)NWd>^@~CDP@t3w*xwq( zv!e<~0&qbP#!EMLy}oV|E6{iAjc;cPynA0iEEMarqs^iel_5Ulp-x38s5qOVa8=s* z%BA9)=O?Z^%(#RHc5_VDo1(q^yLBE!gjycXwJ1#2eiOL3q5_wA16ZA}YcLc0OE0OF z3i6C{Ebjq>G#O?URiih)&aNx4ht*T)E4*C__7(9(OspGUvr}t*iixAaOd@2qLPO1@6JJ>MnJ$S{MfNW@y*9I0 zXL*+7^=Q7(gXgS*qIG?-P+}rR4PA%5n4X(|4!-U>|M?6lo}*ATc&~0F;*LV_gnsTJ zC9(J!@Sw>%BO?e4#81yns+01^&&W$1OKc(1d_I71e#q~faX;*_blS!2VFipy93Jnu zQpj$k>ysst2%tK>^c*M zP53Zow&Fxg6DZm30rJ({5^-HQA+8V&h`4(oFS=e8?v3%F_SY zni%aw@@2x92hQ53ajmPXaFxx9xo}~=qE<0n0Z$}Cs@e$Y6W{NU2CyiL;05T?Nowxw zk-VGQzhG<Sa`QDNf`_AJ2{7fz{H3wB zH~ky!CdQYBIuyiCVA!vDt{;y%ri8Cf2-XYLCr;COmw>}zDX{;%+4n3P*W)=?3PIZ4 zShWx-x^W%sr`2!HKA^ZOA}` z&BDqiwGyTjX}wFGQuAVkfs593GayM_l>pI7JTRNZOi33Rpi)`E(Gj<3)ax3wK`7H= zcybDIiU3w6^opqN#}b|D1gtL?D~XUzZJRRh^X169QNiuL{7kSkk!TiyReeY=u1lv8 zydSt~_D_GDmF`O%Y&O9-ZW;~lLsA%k9jCWn{K*WDe`L=>UE;2P)s3MzZHNTN3r0T> zq}b!{s8z|bTEiP7#)rq1xNw+>3*%|Sy8~aRxMHSIN*mL-%E^z(XcdQeg4up+d}W0^ zLs!zX*WK1qjmiuT1%4ybCceK9;sx;BxFecV?Ki3)QzE@AHMP#aA7M6 zmoy6tUuN<`(9n6Haas@rbgZ<_rDZesl_@jgiCnYJodzZ(Hk!ca@b2y2f_)aSFSvx1 z^ULCErYFx!Nv$s4)oFWs2;C;~If?rkY=)j-GgMnWv#<&R{khroCMprqV1;Ub2k^t) z;l)wKdf5-I5xPQjfY0g+gc}strSWW66Z4)X|AM{-ZrTmPNi~KrM4(?Nd&^&Hn+eGwv=u&LuFwsd$HInQ> zuY&K1p<4kElCLuD-i+o@a7kFA+Ibh*7_Nh?u@u8Cwv1F3ENpo=x5i1mmY=F_g!?O& zKJr>~D4$e2Dmg1=?+=Jq`0p7)c|#h+RJsw8d@(Q^*R<1b+@gSA!euD>#8n!Q+12|+ ztaSb=n{B~7+(Ewxmt*s^o}XpEGn|;iw*5a_s0r!8g-7TQZh>5Ul;Oh@7oVjeAR#zD zBh*etAi&)sszVDsZG!r16a>Ii%2&FyMd+ii&lvt;CP1miMc5gNEYcSQMkJ<6Z5C0> zPPBYFn(BRHOA645W_#btpp-3Yw*vfKsB)440`pgRec~Y~U}BM>!5&&0*-iyy7(UIR zBWy*zHe3x0;X~3UaCe#dhjr7wBgL~VH>lejYE>Kf$>O7pX+mm?%rWsPIzPNZv;uD6=&vnSjN6p zTcOSgt6pW6dJz#Xg%;I5v4?hWVTSvJyH@pPobJE+YF3E_V_FJG)ZS+G>)`h}livSf zwgiX?dWZ~AOGJ^L?u$O9PRuv^%1<%l&R7TnV(k?%8dR_5HaqBa6d*&7EER+bH-W>w zG6E7DtNe_A7p#Qn5JM7OPeyX2Ivl;91mNYsmblp3b#v-YM{?WD{heWgp#Mc7r{Tqw+%>b1( z1I_$5A;FM~{IBQZllXmSGDon=)s_~Xbs7ksM{fcyc4b=nKgR&g{geLr;n~g(C!mfV z`aV;W$dHKQW=``2#~kW4O};pJ@S)(3L^vAcR7I) z`S&fQquKh7flyjh6>)SoO$V8*k505qhX6n^;wSWig++M|O+3_a9!*^5;)(aH`uUea z1uB@T2s^K~>m{g1jqiMXD(ZOmQ7(4>>R^6lkE19*=$BFrJtL!vn0a@g5;2DL=5XJTVZrJI`tilC2;kK>0Q z%@l^U)*5||7>eU=z9AL!t)u9tMJHk_0LrYZ$SIJWJKLoriB#7VNft~?iCJg`~<+C2ba5HJJ0bTFU%1*gCE!BL;jbxqH>eJTNhPc{I z|D$x%^B2IW#o1Ttaj2L^T;3Y4jTc;CcHl3{;j7csqGRyqe7`hOy98Qy>5vTmB{H)rz>HT3{5R_IE;|m^u z=&DT|uXP2e*veKWDnFC?*5*-W=mUFmJ$oTj0F)p-H*IX!R3C{UWG$wTD8Kz;fb%d{ zqH>U;AyJqk=z>H?8@go$xoh%5$v0c3as(~S6lD*iglOW<*3Vq81_fHvLyoeHgkOT~-r?dd(n?kc4xW~}iq%BWmNNLI; z731OD#EtJ^cvt7AD{XXp`_GNl{2e7M+S~_$yX&Qb!ua32D+-&13Q?b8j+`STJWNdg zm0Aja_2Ml=R@3`U72<)GL#XH&(X;U>k!C!sK9Wp4N8@Tga6>I?A#ZRe^Xp*t--(~-B;#CS&j7C5C=P~~l+sLNVg}B>=t!Z^R@8P(94|zW z)r$Oh2lM}}3>hG2z$n;yi#3GCRS?%gNrI^7p(dqFLKhVqo6_RwdmJlhc81`CL1rz6 zP&?Ap8SumgD#TufwoqoWBJ_Qyz(HkrSEE;LZ5i3&PAkpFxYan{Ei}10|6b?rr5k=vx#f%_6hmh)h-+_ zF&};d^%De)mT{*d;~snK=yM-a&IRK*NslK3ngCDh5`Ex}KYBLzT;Zt*8}5{(&HZWI zBlH%%KU1zu4tQub5$q99+Y0}5Ma~0%Y=J{L_^G}#Al7wxq z{hc@h@Af{Z4}tGSHcyNcIiU;m<&JtsP{wx6T!LMGa|QZKSqR{EJ#`wFzyiF z-vwaA?cD1iSA7WXyUqCP?2Xt86pnk~MzBFRlyBEjK11n6G8Cnu#>B*o{{WP=YQ0^tOiBLa?bH2)6(#`H`E;>#T?OY_h+W6!0cje`*i- z^jr1rf{)?J5&ze4uU*LTGjjR(?OVC7^iV>`r;)liOXfco7*&av@LSf%>D9f)!fK@J zS@xxc|9o)mm_!i-P@J%rY3k%GQ+fqL;zN@um)RDl%b&$j-1nVf0WTCS(FWRvC7V6m z552d!At;Sj`(AC0z?FWwn3xQ8;;R4K2d?)BIY`auP9)1b&B#~`ryC!L^aX}kiXX#5 z2$gcU>Vgaug349Lg{mJzfXZbnFWXRiR0X zG8M+#jeqym__=~*0N4MPj-~)MHG}*FOh0Xz-u?go$`1GM^Yb+*MLY|Dk$e1+S*LUc z@Gal&)op8J?{XFx%p3-ya6ON|@y|2P z&K4?ftifX_vW{sEP8@2 zC@dfD?^3g}n3sTWYQQNXey0Zm%m;D+9F=}a7VxMbAQSN{mt1Kd8Hy+WbB-mKWHI8i zEjagjlDD#;=J{K=xi**e?l*_q)g~?FdX@T3b8=$jezCq%OG{NoTYC^ozw=EbOaNrw z6c4<0RaR5uueJYF-TTwh9zj863oi+u<;e(QAjzoHmmBc7&;-Wz1Hgk~6UC-7jxvdW zte2G64mBAV4NcqJ!+}9i9-mR20Gzpz4$RJw6@f~N4&NFbJYi6zc8|RTz6qetbtwQ8 z&jE){ANS*hghU?jHyv^!9v@Cr$9rJ>MEz7)pULNd2aK6xoiZ0k^eX9@k1XRrVTFTn z&Yo1UOnyfqIR%B-K1eH_cogR*W(dp%ll(=+Ln4K+_WegUnH6wnr&yc!_6V*+;5i0g z9xx3p%giKE*3ii49O#O=frg`hs;kpH`J`^S0MvHWCNr9^YeE9% zDi6bKwLJF~yMjehD}O~nhsqc|Rj-W0*uMn2SL-(>grhUE++-Gr-4$SYSe*e(qJv)54|%AtI}O^4>Z%7CnJvA_?~DEU_e!y zT+6iyH`3;@xBuOxC+!gK$0Fb?utO$-P>%3}!l9hSygZRo)ceW<$rJq%nBy=%R^r_P zB^kokr5f?KL7t$yM1U?U#`h9lNPz#b4piEh2qp||UjeEbT=;igP`CfQ+slv4eKdZC z^v^?rEV1DAJTQkn0IIpaSSe8F+SWO7$UO zqQR}{g+))~!-pv*Bl*hFBbR^`@#i3*bI>T2nD&R>4P%Gy4cN*~LgV=mR7|#W8{jLT zIXfmy%3FZI{irS58c9#ANG9QW~_w`a!x(Wa+6+5_2w3p=(x%fOTB$= zS|$K_gz!;;gja1EHUf7$eoRSl&{i*0X{@FZaBaBWFG(z2jN^xjIv4JvkG%rmEBC`h zp^+rkDH$2eE>EP{`|fxhlP{Em>Sg!L>e)l2pO6#TNXX^)n(3f*MVdRzQ%J~t1q?vc zAqhJyh0{s^+}RQw7@yGICfrCcS#KqCIYRmSAQ5)fkJd_Nk8=5 zoDmcXr=9E#TE+~hde;|WidZPRr~kzba9ECc&63xqs(`_ci5N5!#Qlx$dN{{6EfNlr zThSgSI42!80H85Lw(m5wYN6Sx8X6f7$}(`x8V{alNfpX4_XhC>N>NtgK@mMU>g(f< zU;99Ud%0R+uNM4Ti-5jzvA`c01Kj}ZTl1T$z2MT=N+1LdRCld{l#{l^eOa!Q^gsnJd#&glzR(y0$( zN=co27RUr0(*`P);E5Q^4`9#e4O3E5Askr;Abax^_)+-Ok4iMK;fU`0>o@eTp=SGR zB^#l+Vs3CGW|uXjBnXJ*7TdCB+kJ()pyo*40H{dr%!6eVNYe8I!5%_q>d7?Kdo3V|Tr(Mv(?g3Uv{&24FXK!qP~ z<_%3__{@dKYS12RskCZsZ?*BE2eQVzDHvOr2Xb2oA}Xi?A=HU?tWaVKmPYN4zy>#D6N7L$1A0DY_|d-K3OwW8%au@iwqEv4%r6ClJ zFgy+nKyofo5DNRKNbKu`M!1Q5AwkgHVh|UY2OUokPFE=4O-AVjZRJI3*_dU?Y8K+Q z;tvp9RU+P*xwIKur1kQQ$;WSRQ2j6a^4`kQJ!ENyMYYF<7lgVT!E|=70Le!>r&AoFoiY=mlCa?G;A!17MSbzQGT(oj@H2+lDo>zSTJfm& z)ow{z&I}e8*d20;9Z&{LgCu;H!jt|g|b=Ev{ z$qCx%6-RUwJc{LHo>s#$kV`{3_QU(q7`NZonC8{~5fc5?V^d8y`SIuAOl(Hcx^+#V zcEVEaq3;^+#xNzcU0SY3j)VlGvDUcP=$t=tc#-D6Rws%S`mz4tS&TH?abXSRO*ZT^ z-;zNNu(QAH+ZZU&U!!j|ZQE#PPklE-Am`Jk$@&}3MJ~%=B?<#xpn#SdWw#_XrF2G5tY++h^zdivcwD~oymOJ?2A>;t2ZoInmbLtk9sE^$3`wO%4 znufT=qvTejExb9w9%XDwcf_A{eVqVzDj%%7reRc{{1l7Mx9<{-dlJN-Yv;eyFwnm+ zN0<$YUedJovChn#pnVT3!pn`!SgbpZEeW2PJsXG&4Sh5=!Tq6&%uaTdlr;UDNt__v zdsd^4H_4GTHT@UN?@`=ES@!NKo35^yau*(d2R^@uiPJ8Rh;WLE3+R?)=dQgLVzMWQ z6n3V3@gYQ4#umiF4^%Q5A?*B^7ziX_4JP2{t`PVr9QcU*TW^dyu=0S3rYpcie~10s zRWZi@_HR@U>w1q^AOO70eoS?;8EDlMSi|ZGOf(tSVO@b4SbO5-sy;FRu{1?@YGaek zHV6$RLRAm)sZ=Mi>Q3jD{-KsZB2a~zUo5Q{!vEMFD1`7s2yxrLmx>2+SQpg6?g>d% z=6fkIij^>#SB96175abMSz!(o31>GKaW4Ma3%Go4MiI~#r~&Ok2a4hbipmCx8jyvF z#_RRJStn@>NmXc&64zd?@3UXGY78O%n*R4~4mnq;LGW61r8wE!{j|54nCHpxnPHqb|e zz_a}K2bUWe0t|pETTn&dKRmI`$`Inb(tqsP1gI$BTA?@Y1Q6$4#ztd)!2kUg|D$*R zc36xhc*4t6=P*A2sF4mBDz1M=7%-eD!M~bAbiIG!mmz3Xu0-lm|JuJSwZ!ayft|gh z$MAC09&1h3Ly;LL(;i-k-!$3v)JBf>rTOiWSpQs;2b9?R9(LGW+-yakSH6F0@}^-* zq=DDP#SO_Y?p>Py5y=74>q^s9ELks>?aoxKT_$?3LN}xEi`|_Z6@DoJL*>5?={+u} zC@)-xC84Mv^8)dp7-3%zDcam8N75p9=Q&)zWNR?-O(P#XRQSrC7AWk{5L^k@mH}{! zA?nTN-O)(yT!9B7QYjzC4GvJn@?Kdfz0B$?N;G+uwK9V=2T4acm0U>K|d1i0`2dXp;$Jr^J2`S>vXdio+H zCB@Ya^0QWvGB$Q>HRr>VsB}5<16Ed6QmK}X1wvM?0K1lV>A>QS0ZqwyDOfp&FB>^g zkleFFagfIE3r+8Mi8KwrGh-}YKX$mfVdqKwOXA41PqU(4l0UHDW_9`Ub{PJ}@{Csd z^sE99c5rsF@nk;KAX?t}yE^iN&R2|;O?DGipmW$I8Su*O*Uw4U=#Mr#kdS(wE*7)S$%;J-MonQ0CA zU&C~@Jfwt$LPY2P5vdq|fbm;i?@y%^8~H!wqki$JV)Nkn(4Tt-lz)q6|2ZCk0I1Uc zdflvaI9>5{3$E+lR0lQHxvks)t|RY~tZq7Y6XeK2cgebsOHl z$IbtEvHnKHlzN!xsY`rW_mrDIVbRn>Kx_Y3Z1e<0C3jl!DGEKr78?aJ zD6e#A!bFKs{%-*Kk7)IJotNKL^^?aBbU-oJ(%<{_qv=0hNX6%zP;d?t_0~`CGzS3z zMuqhsZkkHO`E8)wr)tADAQrU0QTX3)!ww4cb#g3ldojACb(L=e6tTBPw8S}rKTkKb z?Y#tMjlYw`|Ge3+L)#r5nHJ)dK!VOx-@D;YM+-{Zl0aAdodW(ddVlM!V%z{WI#g3L zljTp>yhuT(O`6>N-kod22&fh0l5{y0AWr+y{I@xKio))O6@$`p~ zvx)yQ%gpiuL5zV^2|`t?Cw5hq_Q5^IUy%ts5qbrXb?|b%DE_U<6$zC*1sj1U#VgHb zy*wsoi<{ZNWBu11s}4X#O?5WUtBAy=MQeb&O}%ZgR-Vgzt+B8HUFy9i6dv~z6-R`M|Xxm=^^6RO(YrpIyoan^T3Z!(pRFS%DT8_2+Y^*C1 z5!dd=_U1OdfU{`X|8mp;17r}kio)g9-i=$gH9v)Ez+Gi?Sqz?!aZ|1tU|)p2K2NcC2~Egi;!luVuyfS6Id9iM~Hpo8S%!9)?R zKKVzGvt3{UzfD5@oZZ!C?x?}`-Am{2xT~M2zrrC$`*3Nxh!Og@)SWTS0LQ|j*jigX(m6zczvv9ka^GuqZjtv=(3DQF&M~zJJc3O0I!XO;+Pi!|EXk!}pXgG6*(9 zeRh}WM%Y>m4XkgWT{9R8TgRl)@7~NG=?s(-P9zu0p?(NYtk?=#id>oro6irA zKv6NGD~wuvkk6vu4$Of^hW!4~)TB-ITWc~>I;I$)k+A(7v}5RG@2`4v_*Ha|!MCje zSZ5FVA2hrL%Ol%8s4jYx8Dbls?n$m3_CzEsH)3j;C{ zlgnW2QfmYZ_=?s}tXmtzRRyO5QPJ83o=8E!%S_E=BWPJOfUVq*rKAX+6)lq=)mp-G zx3ahFy+V5VXk`=gVubEx-ghXNA~QhAME!LqTC!a--^Yu}>@+7HdBBYY zKpKN`aP`*YOpngi+%mqqYvO5CsAO~pRP?kqfXIvItU4(>{-U z)W&HxS4hJw@DQUtaGLBUoKkwKm=|zve2FSa1UMB9{rT}YUi8p!EQ9O5OvD*+bA`$0 zZl$~B__K{Kh}DpoKk)`dc~%Rz7MYLuV-@9vG4dg3$Mbxa~yl^CGz- z@kCA&FHf`~RKmyJTd3S^4d7YFDv>vvlPphD zD|2e86f;dSaG;pW1lX{b&b&@z%r!$Ioe3Vr=JC4Z%GJzx^E%hwo(7$BZw4MKVW+Z0Z;ordhA|Tk(!%kG z-TU{Gb*dt2vatl3;vk@?0tTscRCRIV4U6^`0XSqy>L&!|>+qHmV0BID4kigALFpR4 z+q=yuAk1`v^|5%cn(vzv%*tCUWuEd+ENT5xPY~!ud_*(#bS+Li^gn`$7^QtJQ`j>6 z-t)cu#;4+03Lufnv{fa7vSZ#zDvI10BSA+{>r(Fs-m;5<_`1XFkjklOvpsKU=*&P= z!=Q^2g<7C9C7(iGqfOoUw`l>z64owHXa}9)Ht`5)-J#iuigZ&lGae-pbtjTxb7Evp zUTIJ(g@%pz)nTm^9Q0{%I=Z}JBRb#N9ryV6V}f?CZP&Qs!Gl@G2^Y|{n{SkJw?oYo zD135s^O9t{5p^V92r2Ejp7;a_n0vMM`EpHywV5XhSPq5={n#s>LJSAv&nQn*T8)q} zJK0J8^ zlF~N4&5r+GHdEL?1rKE5GS)I*+PpI6<`tdZia1T}$CFtOAm`DAM8yjZxees?$J0}; zmR`BBm1HTf@TwBdX8(SR2io^xhZ))_eHHyRyD~Rap2CbB27~Uuz{yPHI}CQE=8mVC zAZ|sNe=y%xIE37u1Yqm3z&t?KuMWj#5{F6PYU+s^_MHU0?u0&ZM8v}ReEp2pQNI4^ zen+`~o=t24V1sQRczy#>-%c8@XKAPSU--w-9|cw84@nl{6dqvlsP-gLr+jykB(fkW z`9N38g6B`R&#cry9Chnoj$|Q6SqKvZHP>%UaeNV~GVaHDqWwIJ0f?n{?l{gXRBgSZ zcyNVnszB$bS0K(st&8nyeeMAOy;b%jN!XbNNoq&Xx`?xIGzS=%h0QX-sge12mhLKW zLqb!@uroz?nx6luzlMys@f6!98&c-mCO(8Xri?2=6m|)3dC4a)vL4aLkhHGtB0%Mtl9GRlzeXM%ju zo2dqv53*+XrGTdc*-lebzbCv89HdPT#YQj124N^rM3_LLUg|yT4;NMPb)|c%Xy!^g zs(Od1g_@0cM9x`>^}T?_KR#x`VJ-C81%b=a*X+(^s0~SX@rQxsj=g+ONth!v zMahY(#A?Q9yOqf`Eb$5*+n#YF=#fYQ%>*XB9zL#=UQ)w8>I3FMaZzwG%3T~hvB0mB zRaa2@xWoQKWj^O7=tPY24!V!|5M_=L(92pXw@eyX(hbB2X#nTOhqMsmLcR+w;3z=> z-Nb3o*F9=$h@w>yfV@bmuVC?A=-qqW$(AkBy$QFzzp!nqS;)-Na?et zYQI2_-T=>w{(1!pUem88N-uX>hw;`mK#1~o>7H)ct9qKtcqIuLgXr#hliu}4N=$=Z zY6iIHvHprKESRHujAzb`?crpb1+rMGUk!ZUIsmqB!io%7^*mIoYC{m&rD**r+SKYg z<4JH8-*Imqh`bUaPx7Fse?MuF;uUc0zSX)%G>%6JH|J$XtEQDgo$O+Xj7Z#bjX+hY za1FEjS#`Bl=BuM0a;NNsUTXM~@~2i_P?A6`$aed+JdIE?MZeV}IFGT(N?{-F9|pXa zNiaexf+p?$`j3LE{^+Q~4X2?SuRi&m%^URw7@P=E?DQ#9+`D;0J#iAsAUTl~wjYA7pR0j-kCBih zss6@YF?Z&5nUMlK8)z7|eQVKa9IZeq}v+0!eIgM*Mg>ns~xt z+htdW^>8(l9V^|w_b|P;gih^x8JS<7M-~jC&kiMtSX=9PKX8-E1Uzvv=@NcP?^Jm? zB*5P46=gzBp6#drB;Th6{lwWZwOMXetwXwg;Yc6i1F?L37WwBi&@fWt&0}h)sLbzl zuMvKh2$)JI?QnJu}3)sNM`e%y2uCa-sFrq`)vNm-uAg%-j{Qej{>Vu zstSJIpGHu@V+0WSA0OI8KfXbEOq1(ap_~PC$<}c}OpHGSPf~ z<2CN1qE7O6C#-HFIxA$6fd9I z{3Qpl?c|E}MLx~Ht<%WmcedJ{L%a|L&Wi#K_8aQb%!4)?6uu=S1VnT#ww%%$`SK6Oq*y8Z)rIyM4n7uv+ zt~~+VDq-EqennwbUu~yz{m)a?9C0~BR^taf_KT}QDFEDnbTH=Fi?}%c>zQbOnKsT* zopxHX|CG&!?q+Cz5+ET+U;MSh)_a?)01UD;qJmr4;@~si>~y9LfX)#ssYaIM^i%c9 zi6#Cu`Uw6v=jnf$1Tbumcg|M>`*yA9V7%Q0)-4c{Um(n6XE*EN$6a)1;M20IPkOs9 zIryYH$G<7z_%LBrlUFusqGfD9OiUcxzr~e+@fVg(cE_w1lJ+S7ng!URhf4USGkb*T z4y>a36NsmA^(+*`VB+pJwUU2fm~2$sek-H9%xe)!^yqVFE09t*VoWQIEav$5J^6l_B%cxa8aNv_?C(-=vLvkFyxHuPUBq z)U|BO7+U$iCr$kHWsH_q4*v<^q3*LcP@#~!vEo-Uzngj-qguYS%Gr_=Vjg+aa53P) zdks~YPb8VmpG&}#auGk=PUj9O`cKOKz^7Sc>6xOAr`{w3el!<^-lBO2#Hc^%7N zFFjk%S>LUv&LX&cOIz@{q_1U_Vg142<)$;>IVxyyzXRty9+3{Y9=)&s5PY*CVA-eU z7+n7Y1R-pWOkCq3bC$QHl9VBEQOx>5jyv+HNi>ibE5-0VzdMN!W=WU_Ry(7q-=Aal zBTf}dhYPW8Qr0&KEG@2m1|)&({*EzPLFX`W)0P6S(O;*6mmD=-RWQ(u@JJ zGk8TNVijy2ydkp|_B*X!n20QK&;ail7V+|Kw`Yz;vQu=X5Y>dt2_4y^`0HKW=k_Gy z9?DYp$8J8P;bl05MyT!dKGs)G?ICAV^ur^J+H213p?A+h1R1E}_!!3n>ic39nH$(Y z?8`Yrb4R}QHY6`9Dk94sG5@rfPT8fwtzZiswB{;|Uh{bl#)j+ANF}L3#*h@< zG$ZG6)MVZ?A#Z7j&bCEB?edyJ#zyAQ$`T%_j2Wpm2S81n&C+mS3!HOqBX``7zdFmR zW2t+|G5!%&&4u|$lnkNvwe#yU_ryALw)43GrTF@F%)#pXFC$Cc!{S1pU?MnuVaxU4 zn3{PDAxTEZT=D_1?zfGt8D;Y#;pZrX1$))J$+YU*z!_5GG2X&lU+t%7_L>p&csRmr zgE%d1WsUwlv5ABfw^a`~>@>eoE2zQm2ixA&pB8KdUs_rl(!WU1JX{TEbkh7*RMNOl zJ2vI9+u5Klxrm2Nd~JrO6tZF+qUy-`XfLPEN1LWb;J8`@F(1+4^-kFjIc&7UDT^ZdvZEiE-dCfW+4wRTB}mxeC(`7 zfxrxZz*~3UdSODc-||v8>!{mAB8QDA6`KTq5=Ugx+wtY~ij1_c0tl`*b}_ZReb9 z_{^9DH?h2)DEj14xn_F6dn*@>gq&?mvT40)-z~`=<3D9j#LT}!ps-P;xs7EK@}Ud< z%+Kri;U{=|)Q2fN(+nJqxHb(BmqlS#Mq$AbK;EKg{?ta=OFydv{Asz3L?^2ud#B>K zfunxOQ84}ptVI2p9i?4}OYB|U;OKT^A9=m9%z{UXe!ZA!Ul>w|Gm{?qoD65@+&qX! zQlKy}*l+}qq)08LS!|W=Xipq=C3xKB$F`W~Si?MV6(3OPOmMD{Pf$YYvIy3&X7jy% zCcV>w19wXqNl5Z|y{d0V2vX{uTptUiA)pMj=R$GKB*K~R;3ZvlVq`7D2V+sAzc`>= z17Wnt8o21k4L`pvwh37U3!BTAr3PqoF1pkux!E_$F{=aiX6uxcFP|qyt!$3O^FeYM zM#@GQx?FvP4Hb^>f|IOUGiE^`tT)%eHU6Jy==tq-&%Pa; zd{KvYNr)d~H>AXD!~!#5I=rQ9(WaATd&5Eluc2=J8E?9uYk};3y`!rV##PftDex?! zf$i|&&u5IoSv(k^C>3%rJ|%WqroH8KPu=-&y)G{$(IBol4tD6i08aeQPqCk)#5JS2 zo_~s=LTou7m8JVpdhZ$)QHcp>;y%Ql4oQiGM+_4vaQcldi~LdQe-e72=!E9MUXhkU z#+}B6qeDQ&%o7zKaVA@{6e(*W5lodFNcCQ!YT1Q*QEXB@FZSpB(+SItmefvkxng=0 zZH6E-@5gtIbo579$0I~Ov5|U|5*h*q=zo@d%=QT=8NOmxhiXlq6o)8@DTBu12`MR{ zv%v0wbqBT`UE614Uc%1-VOA12+f0j0^Uo{`=&A$|>*C>&Pbrfpeh!*tp1bCyCV-Ks z_s?wRSJfM51u1={`+J8U=dj`mit=tJvot0@9;32$T3L(7vlY~WV#~D^ADa`1@*GLF z%%3=CTRPQiLzWyR*8xSho&#Fu}1bH2{osK9jyq}7mSh~oR z>`lbt4S+~NFr+#3!@*u!t1~K->m;1gcHS&|FghN^+~3=T(HWzMB_2hY&gWm|d7%kV7bA5z|N2^7HXhBdXd>NmK&d$hVo!Uby9C z4Ci9BUM4E4E1dl|RFtPQrAm@-awqF0JDkWjIYyV6!m1CRX0IG`L_7dvY5?>WdkV)YCg_lvMrGYQ} z68*-ySGgZ&%e!SxMKF9p8x@}*lAF@V#YSqF0|T05$1*uK8uq?B>tZbW(~|b`(XYqG zsPbevDHaN{1`>PM^d)c>4GQX*!rRZ2JjugThXxFy1r6dNm#7DsM6K(MD3{NtxS&go z?d?N}_Uk_Dg@6>%>hAYIs+x*@tA)VRt3={!Hn4_8kK{XePm_(eWSQ+6YO<|Z*5T4 za2X^pq&%$8U-6#y_v*wy(cftDBT9ACaMThrhg{-lJ^W<(e6oCbi}@FFXfx8o-dKPcIL^nS zhlz$t9*|n>{j79q`-lyST9HfI*RG(J;j&`xDv-KiJ8Y7P>9B8!&X+d25TX<8g&7(@_hIq? zj{m)|N)(RA7oV`4euV5hYiLj-TgB&edMI&#Kd#EnCB#vK7v&I-ic@0^Q#Wd1s9^lw z_Na;YACkZ7X}ZtA_`6@z6qG)Z>nbMFCcXJ1=*p9;R`w~TJkd*cwL8R85C`e_aHP3S zJfK?ll4R*+WQWvp+>@%8>6 z`mK--)r{0KWA@`dWA5E|NPR?L*5yMD<5^b2%z?K%zS zoAH|IJeb=nCq}$_hdBR3Tk)IMxqb(Ap<9I#NnG|N>#^SxrbG&jp@!+d{X!WLa)uA2 ziTqcsnT8aEYP33+>TC1&4h!rn;hG|VH~EF*SMC4O+5j3E0#L>NSK=$iW%eOHZRFS1 z`&jnBS~5Tv_@7D|K-tw9qMLtQRtkKpwY#K4zBhfEKXk@+A7$ct?qIBx4d5M*QY>aK zIv4;Q2raNp`B#beANshtf!-Lse-QIj(10g$W^~w}s`DnLDGyB+q}Y5y%T5jZNwuo~ zPnS!BHGIU>(LYEkebm4jcCIO$SXtdJTx9@^vu#f!$B@00QCg!V zuovf3RqC+TL>2Mo{X05S;hS?#Qw2ciCW`RjucGL9TjBJTH7D5DkY{hp-8a2}=VIHm z;|W{p@YtEoaC|AS&~W)k{0~i84GlSK??n7d-PZAOM+TCytu2p+z=v|wiV0MTimTpR zJ`(Wc8X-42$Pv-{lN`2*f6AGy2^cap5xHd>3shv)DtwLllL`=Po+t6TI0yM=r*a(w z4*<~P(Vw?}P`Jm$g-{W~u%wKGQ+9Sp|Ekx5B@37Ss@LcU1;hXT{-yf@b^qi>$7YQs z@W~4|w>bMcMM|x5MMXe~I(@~##wKDkKL$u#iG0BLa3h@x1bG-b+5m&kxfaFz>3ELF z_6y#e*nH`f9sqQ2HMeW+NoIY#4A1WP7$-3(6(me5?MnyNJuGdw=V@EVWDw?QYGSk7 zN8xj)iy%1G9?RM|-z^K+JtE4z{wrBymVM!i4h#Y%K)~dS{#W})2<2QV6mVG3`zth4 zwLnb6*1qYdc{ms3_Kb})P0nDX30pQIR!MrixsQ31_?Jdi^2D{1{7ySt<#B3FiR7{F z8)n;HBx2$cZO)VCNAQ~N?8bKF{lhRi%Yft#bN<7q2d+)|hwJ}pW{dHFX8-p$_FuwE zAULe6h0H*|v+JXbkEzD2EJwLNze5@L#GBM_I^F!= zBgo&r6#Njv09JEl_Mq%eZ$~V_MSii&6o1LwUvwaw0u0UVzAkW_&;MnWuFcOmj=pNY zVa*1>ng?S)y}x~U5SEJj6K!6)iHKxn>8Ko=rZw&vFu!#eZ#zHxaA#ik15k?H%61kp zH1i>Vs{ccg{I~P*tk=D}+T7FQ)82SNBm<9&tG$T#Z%#W7oQ%E@m+Yn<1G!T99JV7H zeu6$<*}7Ze-d>n$K9md@Ul$HoTnF4Jo?}V}PWv%Eec_v;VH#815+)LNvogZA98DTq zyx~EPsJtA6TqU0ODL-MbiPse+)BshKFS$yZ@u2L7HmJxLAG_e*v$>mPrT&0tcKW3CfWBaQ%&p2mAj zM=OR`skbA|GM@q>8!XL=E)V!#u|zcoOaJK9Lom1X+~BnP@Fed#wJHZ~`$bKNTTv1f zl`Za#S9~W(Wn*73+L3DJbDn$CX66;1oRllaut!}6xOk`VP{Uso77Pc!gHUb9kEE&r zn3E!gy?pTCOG?Y_HXp~Xx}v1uq0}hY~35bQBEey}gW*p~if-q=X3OTtmQO1)rpSxDU8{ zx_u6>&8nSXJd1UASaTkLT2+FizPekSE)a(e$3aC9GG5OQMQq>okJ#T<-gIyAN*}f9 zz`dN;3Oe+l@}_}3vG+3$6he0{?>moGHNF%-T~00NMnc}N`s6Jyo3V!Wb3nE+g2zG) zjQ~>agv$ztBd>-hZIEo!Vtz$wntB_-u@HqQ9X*d>u*sIEia!mX3Oy%b&Rg>E$fMmm zM&C=p_?fTuIGtvHCU*eU^=<2UDKraL*o5SvwS1-EYu%b-~c{P?#)a|N`0 zviEdceFq;vw{%o*y87G}j=SZ0UP~3U&~!5V9{u8y|M4E}i-}u8iWnCSx1j_z3gIhf z5Z2@FFTU|anzaP`tWYN^ zotlxKqP-`@LZkfl=dD3h=d#6%k9+0r`-M@SzTrrat6OY@U-y1<$~S@)^?^MqvcR#i zchaVm)gcTAjV^Tr|CVX6SsD@s-`xBHJrsL|`8&JS2tp3!t(@X@cm6=hg|hr(`6yQA zgN=L?UQt6_!tB)%-^|j5<<{Z&YIWs9TEK^kL3z7dxnf>lamdOO2e3ma{W5d_+U_l2 z01<#{P8KiQFXyI4B307Vka)6N!8o`~GM@KrsS9|qPn9#z8H~5FYpcN!C8$7;Lq~9V zt?1LTp&kAzN_5X3{Q?h_D9VE36G}3gE1Iy2well-s6Rk7U2}_^nQ>)I0BS2%%;BE? z8Kv^X(-y_1R$Ts$`MBstQ`c^B`bN-Vf+%58zz9t-w?MJufJVeybLp8}3GEL|ls=Qq z&dZ!#w{4HdGf~4HeUWj3o*R7h-%E1;G#Qo*W$B*E_#9w7-MVyK^3p}*0WecF@exi* zZm{NKnAzBrCthjOZ^BD87K_z+vw_N5F#X{Z&O;r!oRw)6Kh z&7Zk4jKwdO8M(~8I$?g%bMZonp zhvFmY{N~j0vk^8wyDzn{xg5OR9`~2<3ho{(+j=6?GLe(IT6z=S(mjV(S+$QQ$sc<0 z76FYsYu=Wk<2(CJFwp$bo~l^wEkSh2xqYf zH<#x-{#uz5Z^lwVYz3ML*Oo~*YOArB4#9~kj5@T(K}_=;vIFyXs?-t>J;7b-m3v!* z$2mhpx>W|95IG9KQRW##SK5j6S9~@lHdiD{p^crVmQ2oLA(^ts>gG{5lFDK}G+Yr! zFA;R77{jrNbtmKhhmFfJFJSoM@yi8Kj1qQ`Qo3J2(P7kz5Xxkq@?|!M_J^NSFDZWe z6CEY9VZr{aqzJO*e;CI02@^+OI)DUgyn-xR&MDp2ed?9FT;L~QNx}!DT2EYNdQmmp zN+Prgp;(?^WnO8E{z!T&ulL;b3FtBA^N#cZ{qd~PXCn4yX84oZj<-hmOUkAf&z};L z6%qgXOxFy6R)+(BOBk`kul$q&dpU9tJh(hi$cNYk*k<|%7XcC#Ko;#1FxB#HoI zokakMT4vMe-)8azCD?Qy1esl^dJaBjNbi|^1t4#gSCdCW&wBmKj0jS!(oj<0ndcUw zDy$Y3w4J>b%;2%;O3TmItiF6m+o@n&lXdp7zYSjJ zvxqzo3op{`EeCzH9>gz^;B61g?bL*z`U_zWH1WXVMx8oe3`Wzyy%U_3-N-M0plyW)AtY*R455=Eu9;AiRqDF88CD%9aL74 zbXi~<%?M#uqFZM4ovgM4$QT+m5V6gMMkl1#Dhqm;nW{Y+sC^(8A$kP08RGzCT0aJy$%LDY0>01K_^>Yz*hX8tY} zOPa*Fr#Nhel?TDPjs+qdwv^tJa>ww%`Tg{O9N`0%pK^fCX}g#Riwan|lQPh=Zaoo( zP5_qg@&rDyNcigdJj?l`>&SC+nzcTGLl(7>braSaxjgsaZt@FgtRNYcan(aW|q&N(H3%C7F=m_^56)pr{fNV{# z>tA-=uqw_3gDE^{!K}4)OM&U*-l#t_wCM)+yIf@C4#nX9Mc<)2kwwvBR>0)Neb+ee z|7lj12Q|w`>qe%l zWUuI`py*QsgK896K=$+EZNwSG+`5!JdK!`tg1;P;@^~0_yD5Wk-A6f;zLz(2mO+@E zkk^`9iDV97{DS2BBproLV-I6-2yg_zWXm!B7< zy?*)*cIRVp-{|~qcO@@9clV%u9_kh9R|NV7`Zk6JUn$bF9q^f7*}W2f^X{NVl!G0= zH03c{bXBG3<7m;~%5}YR-Kw88(X4Orqec1Hq7kmX4+~v4F0IQKvaP>deA)~LW4+d- z_kJ{uG~fIEY+iJUj!^v2y|hn49z0t%XNod1_R8wTkhVCpWghmUK*9G1St(zhG)&|* z{x})3d&;2h8z{0SKm8+}3ODg-pNJ-DP@hbZ$&nw;X*r(5><8Z5{IvJ8?!lANESeDOeoB53Yz>@|n-KECR~M!x#6BR#w9lm< zULZW}7vw4MDTJ8};)yF{7C$`xqTY+cnnQ`^YJ~>6e)e!Ea97cT%3%2%hPF1F8j4ci z9W)poTdc<%yYxx+t`10qKL$Cn@p=Fzy7nlGO(_-_8W+lUO-AhmQ++qNu5KlhI#K|V z?oqT3%g1)oG;`JE!GX;I7j#UL4I)VJ8CgJF@}_Gt8gO=S&M8ol2f9 zS?cufD(CCc`sID2 zpLVd_1wYg1TckHS(y-2$ID`GC*Zx=C$3MeyE0nUEKi+n3MV78N3!HeH=)5DNL;(fk z)u0q}7JXX`*hA!z{(NT~d?II~u3>plURigw|IrVH-Eu(So17RkvzZ1F8b>g8FG^{x zGK54qh@(rwNb32Y!k)UaOR@vKwua-PtuSLZB4H35G#esx|i zRG{(3Kb6%M!>906`^;u}6@@MNJi0;p#jULut`Z$deN2QlWl1e;q!%N2{oCRE8)94A zV9~KVzp9{MUEF%fRk00F#;*Np2Ig_Ri#0TV_pM+f;ZnoPF+0=mQg49_+b731S{6jI z2HulrO?xAfHhC{`!WqG?qvOQfZ)qk2^2ai{gph{!rynIL0?@aQwmL~Mmq+CT(lSXi z5ZRf%$T6M;do<_e3IY_%IGW&-`lbrFk#r`R^LtrOzgCo7?y`F{(J8^wK#NDr;S}_5 zrik@CtXZT2D|*nw93FGvsv5oZ3udfVFjCUci;0mhiYRo#*~qoI^K$AmdSTbBHc1tF z9bGLC1>ud!HRNm?6y4b~y zcBY#Pp^6*0ZqFwad@)Vw_{|A_%|Dg4ndxvj)M!!Zhp( z9;DFh)iM30Q!eTFfyWwuslgK^@LOz3I;L>K2mPaGvnJnYgMOVze)h1wv@rPiul$Ln3hN-6}b^(4ZC=sm8^opAAvO* z$1ZuKuC_Yg#^kw2N0ySfzufI+TvZv9oPD*crOJ?nw)LtWiUpelt}+EpX6thDSViAT zI^71ae4*VjNA0GcFNnxOxKg)v|7vLag3N!Yl ze$^~=JN5>5_Og{Pf6od08Kr1f@GCF!Fp84w9eUQcgZjF0jCFUm-7M5Zx>W2?IPGJm8}Fgr3jy{-*t%1yf!6#IseO`aj#}3^QKo zznwzT6J9zzW7@lL;K{lCIdcTb%KH4X_VB+^YeK8D7_bL{;y*V53K+UZ6~C&gUYvy*a&L9sQ)R3^Qy0X4Twg0R!-LB~6>)gA zu-7t(EcTB|%poo02;=vdbSO=rken}g@7BGrm^=Fr@Co9xeR1<1!f8wvNzu9mX?a26 zt@{cW|6v@I<@5{%cCpRBzHAaK*=yCXA$2VoSaF1;d*BL1VegI8r1HV@A03fudw=QF zFooGS~_SKlX^^>fBwLD=fn+7N-`v{@}?pB|0~GNf>w$x1xMe;grc z1$)2N2L?3XR`t|nEc+NWAI2}{ROQURyI6gnq25z+eVZIrU1#wAb-BU(wY6Hcb<=TG z#zbewi;vze0zx|-ub%$CvP{%dD__xmA9#`X>a~8r)%BbC&F@a}7hK&As?ED$7+*MY zbc0ZGJ>D!B3eW@!8SsGhX@U(nTRheItM7VL)`MdfRY+1d|4&t48P!(Tv>g(pNbyoA zP~3`3OMoI33KR%hptv?ji@OC{iWe!?QnWY(hu~J+r37~;xI>V3PuYa_Zaykn@1X4@o|tTEf=E5|<;kPqSFrp4@Q ztGJYL+<~=DF%Bu*Zk)Jq&KiX&52*{Ci$L>(JVSW0c_7C zZ3|sS*5iKEd4BC$z4Y0Im64ypO{4laA*skMLZ)~lU9w95y0<&F*?R07GEdy-Var3c zpW1%T?LoH4#!0Gs`iwSB8hJQTernh4XT20fm8}xSi{?z>mS5uiRX4NN<*;lm=0@}qjR|+pn z(V{eJT|UwaBW!03>G@QClH!gGK94z=`T1VTPn=&x@A0hB0a7L4Dur zc+?jY%oC1h`*s||vznCjzqNL?M=uT1cj@$WCLwRj5RFIY-N+ z72Lj)7XK#kjh)I5XEUg}=@X0Sq?4tGsszx<`?biT32kM{m`91^Qqb9{Xtg4ijDFii z2i`!E9&_0y2?`OpSq;OWjSaY(-WT{C!pb1?@0@+Y^j?bYz^~k=3{?c0M_44Hoi8M2 znUPxhpVsiED{_kKC3onr5cblf>}2kBS^j+Tz_>B#VsES2%l;9cCW_ryPxAMUfbb4P zEKO8>nZBfje)V0Y6;dH7x*$;+%xnMtY=a(|R5}>8*q`p%s4uiKS2n;0I}Wp5?raH% z;^bUF7$2EJ&!il557Iq!s?S%+ib^NoB{VmvIaKAMw05yUW4^xQ=oRv~1=cuoh}7j- z^g`BK^%uG+)95mNV>I#;S?=>xkU~}Ag><9g3Y$8M5Z(^J{lOQVW|6x7GPZh919b?% zk$e@}{`;@Dn#q7|ob=ADu^K$8S-x{oVdO=*Z3?@SexM*(w~|k5)YI#Hu1t9^B$toT zQWX&sRc`9aR)o*2x#>G#2g7vnVr3Ih?MfuTj=#uTWZm0gVaBdIjjb$%feWGXcU0u| z9U?gHtP6TAG7mkesCO=Nz44$b{V_B6z+3=xWFQ;gea!!2ANbiP53ppk=?I#)|LL{r)7Y;q5%e z>b?4=6f3SBzlI%f&Ba=S2{%m&WHi`qr|_&_cCq7oh1nSjRfMGX`!s@n(62SKG5gk} z*pP1St=tHDz5f^HsdYR0v?QKvfzs{KQqRtE-UbH;SO%Z|u$6`H8d>G@Ap_h!+OrPG z?$9FtWwBy3+*RHQZi@+e&b;(Ga*B#!q1k2YGIaT6AXVsf`ZI~3ip8mN&2AU^JZc7y zrl%>WlyGaeP`Fyf#9kI3n9zqP_4p7%>K^rdCORo;6BLAu2Tp8U2`-Jg@ZZAzrViuM zR^8uP3zpp2Ii~X-tpbN--WNza^q|=33KN*@MD||XS=C=axzN5{wP0`C*_bS00>^R< zku4{7mqjhEPTIo~hEM3(5JQTg)fCIh3OBz}sxhC^tA;dhLi_H_ap@HByaicmoW!O= zo<5@3gIK>)oMw?->=q3E^~xDsE; zn6r!qPew6#eqx*KKh7&?8HjFRN~3alovt{^HPcOdp^IgH(h>Ap-`q*rDS~&sQ1dQk za2wj&tbwi#*E3kK+{%s^c+7Mbh;xPA=rrGs{U8vD7ranSe7F%zrLxf;9o_V-%e5K7 z!5I>*=F%u*kAm|z71baX9xcpNd=xYo-%Uin^{H-Hct}6oRZ0e~F>rJs#~o?( z3`;D+IL$i?7Un=novHl=d$TjBgd=X8=7ZjMWjt+}xDr(J+Ky6k96^4RfX{EjjsO6P zXF=szjkx0S%3+6Y%rW;!I6sC%*iCU7@A*ZI9y?1DTfY1>m2(j+8*7mX0p2QUKEteX zwG;@b_MPOPbhg)t_2KvejLk>Y6@yNW2(u;Lc&&NWC^Qlcc|%HiPl`QczR8)CXoN=P zLyL%^vVnM=%oIz5O;PXq7JJ1eY8aC6LMif9$iWIiomxkcQ`~YIY{TV9<5v#%)N^k; zvK(55alkn?LX^1Z2SpF+cqkAhY-y%W@T zb|BW$Epv@gi%Y0F)6{pRtTtD+Q~X$oe066n;-JvqWu8rgplveVNM@$r>EcANMV1=Z zj;4$yK429NkBHh5DToNkE>*}Ak+8Xh{iPLs9ErC&;_1Bmezx})>j*xIfW6!ts50}$ zq_BZj3|R8BW+g2&VkN)WUxO?_!8%ZMj27($yp;*q@mg#bd6Vi(5vuNLHCoN1)Qto! zai~{yk51xUj%;iMbOz;5km7}Anlo$>+>%atK3)RQ$hSSn>bw+cM!ur&Ri+C{b1Zdt z(o~oQyo=)Bu^Y{nvZp_=CVE>i#~4Ddd}0`h-1sua~fj3+?DMEc#%l7clm{_)Mlfh;Ax?7 zSK!_Trhw$mR`j6%!fWVd)Ere-*uihfiIcty8)Az;XM8P&Ck7eHEZp(EI8iqX5a%Yt z)5uPf9XDrU$4~sQX8Sq49}faVdkW$JAy&A|VAa?802_>HQ{XIljWN3=N;Zgm33 z_cEoMZ@90yiPFyFbD#ab!NKoK8vC%&c-x#*M4<#A#GU{$ao%gEfOTfqNWZX7R*ct= z(oW`jVAp3vHU#NAh%F1U^7|ST=SnTnvUK7q}zuH0K7SX+DE_+>0>s$$h#^bV{a%=KAGHabTtwg5f8NCP69KDcje|p}T z&Sj!iE!o*S>fP8*-x*M)MKjL$Cg%JO6}oJr5rgh|K5~wxV;*|Du-FAGIBJpqQ4Wl^ zwW#R6)F3m(*>X-7Vv=|qTlFWU5QoNY+pi32#V^4E#dex~+*~ZzVMQg)2+F zNUQzrRz0pn>tM@42U7I@bClI@(!QHqZVj9KsLD_nKIPP#E3B7ajUGJ^O0zN|-lDJ%X zo@(grG^?^sRWt)Ait{F%Q&sgR1Mynq?@LPuG64s!2|Z`!&zc|HEhd^kP9Rn@Gj|@c z%E5agOkGufpoA8IeE?3;R+hu5({Xk!0vb%R&Sn11S;)mR-6a#J#R? z3D%*cw6X!hohu79RHoiLj2fZ3!7o321sZdE(qu2hM>itR+HilIUeAqVWFDCM=n3^| z#r+Yd8GpbGefRY4_$KBct{{C-{tCx`<_~!2Y?N$6cH~?WNO9zwOaQNpXSY%%^a=T! z91woQ(~~>=`tXINk=gQ?395L2uQ0y60zIxAnR+VVRYtB>ck$Iz_UaFjwXntWLSE&c zzQ=O|E;>H>vyq$t{KTrPMc|i(=c{$0_M~%YNE&k?+*OVNrT};|3th@>8lOG?<{Q}e z(8P#bM?5xz-~F-`$9Cq`npLLkII&OzC%~k)-^?a0GDzYEiJKT1CXQ7dd?O!!JT-2(KWp6#sJ4r|L00(nOO_3@|4jYPcJ+O(Meoqq z%{QuaJL~N1O?=G} z^#r2I8bstv$vR9w$pqUdek{Z>Q?h56ZZ<+A!DPV?|7|lWywXQNZy|_1#c$CjaXG+~ zIhP}Q+R+%p0!gqRe6ER4V;-(^UA`uvvK$|?vv#b+lbX|i4(=D6u5j*526QaaiaY@f zrA*3xtTM1ACI$waG=zvFjB!HZ-Yh(r05ct*U4{M1m8O#ML*($~%P0WP(80wcOAM10an@KXSkI1l`k4^pop{=5WL#YE8D!)Cj_ zblZ`AxEo&qpPt-$Dj|6sKh5KB!^Txf7PEi;X~(%SEM*5;ID^1CPbC)u96Vs+6%}ax zr!Ooks)?lk)Cp8oF|Nm8JY>!O1db&pqBre8oqey(PA5uHiW!%`&nLI(uRbYl(}QL* zs^<}jO%{t<4y4S4?58>*SW2Yt&er$lg2`99UuM)qDTfnsFHx;gG0qY>20Wi=V0tXg z()>HsLi$X+hybgplHhd0TF_`8$)`=CghXb3P%|6)lWT$ShIdE$zKt8-sq!_{OR%;gsU8v3TN`@=GFRyGj_J zvHpYR&G!j`zvj419(sP@6qV10hOM-KLXV3@TCPzJ!*wAXBY#Buwbn~&9+tp9{++8~ z9yCbW2y!142Sk6B`}ktg^6I?I`9Z+nujB8TQi2^m-&z+bP!-68;j`H_NVd`qz)NO- zpSB2ulrb@zszcARTyHp-YpP3dpP9|<>(@AA+g$eRpYXu5{av^@cKtEPe67A}!4go) zK-Yy_ucai89_Yy>Vfl=Nbz5O2M?bYht3!Ba1c%Mt=Whm!d$pvFB6h22LoxBdx@nh( z=h<$b|E(@nWKnJHLH$Z3t${yk+@7|GmPtMg5WV#D0SpcG;4PiXUbCL}yU5(jGn@Fs z&vOZJlnSV1qa9H<(c#a?SzfHQY68SeQ7%5}*N_SjRW}4ck~Fz+NOM}92JcGQCLyhg zb{+?&%RonbF05KlF9n>Gfej6lS&`H=dmJ!r>$2FO!a<^s@s=kOb$}LN=)<^Dz!%lI zGrLJ$lM=(q!Ru-%Dy$&54v^B;FZF1Ngx!OxHIuAX2psrREgaF{V1S(gIzG#a(s!hR zQ5&GGJ@e&Pq6d%UK1)+R{C~sexIXLxfV}^md?My~?_3dUa?gHlFsf9!ilwwh=HH?jdIFk)LYjCsc|H$z(1wB#(R8in5|*>Sr8UZVS26 zJXyzDZjSp=@XDb=QmNgt{A;&KBi&C^WtnJHQE8!FNgd}HsqD=ms_|r~NT*o;!LTcF z(;a#TDG0mjN7b%I6_HAAWu%Fe7}S*1U#>)CG5Q}xm}pycMHWnynlKH|`5ZJM@2(G+ z{CxX(^0cw=_R*)}3!ZHI(&tkas}dLwDl8U%zU0+fToDxnoGE!a@~VhR?Rh!+=43c4 zU7%sN0u}R$H0;>K|7txpc)ta6hiV0pMf%HbXUBP?&@*tsV7vsT}HHeuk@B5apdSab~?On$J9b{o&vIEuU~TmZe- zonmvs0ZWNWV_k$C_CK$*9ZU|cM2;6|y$aohzrIvU0So(Uk>G|)vW8RicwufYUJ1?l zo(#rDL8SJo0J7LkHw6T!P;si<%NQxHa^IU#4+1P?E5#K?2-N3ed!_=7hkpP*g3Xua z)fWps7pF&z9&;3aaOrcbZy#q8fi=L?O5(BpxY|rUyX9NMSdt`#mK4A9=|QPN^_Y14 zb;XPl!#a^MY&f0g^U5hJHeYT0inS-9C7#!r%uDx|ltZ#s+R|MzlwyH>qu8E*-L;eEvrlK0L-LSMk35`Fz1IqMy;lPo z0Qpf{==h^`F&f{o$oi#2(id}z3LAnPv;4U6TU=OJdRObnW$Z5I>Nk2i0jl9!XIyev z0;GysD3&iEwxk3g7~_pSW?(PU-CK+;>*ZG_9){n4ti=i5uiq(A zBnSeCPxh8z*%uTf(PyPFqj~3k{y_{n-88xbZ)tbnbphsPQYNRMIsImf?Aj1pD!Hg*jc0Li} zy*1RuOePSvTJouj%)g{g5Yb%en!}P#{65fgKoK#73JdVygbNwaLWff5_Tq3z$wL4H z00o!_?>1TM#=OVkeD>}^;|XNI%#Ae(3)|kTIGK(fp1R$0fElF1?yh2^225773_?Fz zeeKO4HWfa2?7fv)2D!PrXo+?uCIJx80zz}u(jRZ5h)4hjx+Z>Z13M~cDT6QdVS4&{ zmKBk=SipPWlI43*kNvs)xcZ8b1;2~=*kNlCY%hjpEX^UuSbJlWWbz_~+xa=?FyvjzHXB~C45i<8Myd|})I{H7{ z6dqBPCs-lyU5P1N7ts?nFP(m!qTYgm09@%d^J-=C4@`oLA-5a zs+Pz;-(usgTyGpxRL*{Un%D;BV{c=& za{15K@`Uexd02sQzyB5*DRBuSw>G?oL2CUa4g30jnCr!ZBO4sWOAm=pJxt6@bsOUY zSK>@A8;wKhK_|Ql@0-~}F(cT7O-VZED?is=8k&yR!ZH-kkaZR6C5xek)Z9=y_W%_l z60)#m4D??ct6Zo;6qdf8NO0+J#glhWFx@N>EH4eP&BM9RT)XmIr!)~<+s+v;kSrq|>WR-3NsW7u07~vyvN|@-82h~CBWnS3D zr{>cCJPl~)FB1MMwdNCMMn#LK6ZqcrA#E;y>lHy5#%TqXc4@+KcM*osGQYPCxkWa;)nZO!B0&|r$G3D@}`tixNidAnbJ(*VX?JLlOKO}Wxr|f zARlQ_yeXx^G<1xN!XP9(x5FK<O+%qW58B4EA5y$ADldArfE&woO792`p;mDg9l83x5d1?Cje*ozRsto`D diff --git a/docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha.png b/docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha.png deleted file mode 100644 index c4603cd6f3cbb775e90bcc554cff6de7c77b37a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64858 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 diff --git a/docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha_result.png b/docs/federated/docs/source_zh_cn/images/splitnn_pangu_alpha_result.png deleted file mode 100644 index 2d0c29c3fdcf0464080a7d61d399f54425716c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38549 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 z 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 Kt>_ls*Zu;&;6gS4 diff --git a/docs/federated/docs/source_zh_cn/images/splitnn_wide_and_deep.png b/docs/federated/docs/source_zh_cn/images/splitnn_wide_and_deep.png deleted file mode 100644 index 3a0075e69492b678f69a6eff759246938504ddd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176768 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