nvflare

NVIDIA Federated Learning Application Runtime Environment

https://github.com/nvidia/nvflare

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    1 of 44 committers (2.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

decentralized federated-analytics federated-computing federated-learning pet privacy-protection python

Keywords from Contributors

monai medical-image-processing medical-image-computing healthcare-imaging agents interactive distributed transformers graph-computation observability
Last synced: 6 months ago · JSON representation ·

Repository

NVIDIA Federated Learning Application Runtime Environment

Basic Info
Statistics
  • Stars: 781
  • Watchers: 19
  • Forks: 209
  • Open Issues: 29
  • Releases: 80
Topics
decentralized federated-analytics federated-computing federated-learning pet privacy-protection python
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners

README.md

NVIDIA Logo

NVIDIA FLARE

Website | Paper | Blogs | Talks & Papers | Research | Documentation

Blossom-CI documentation license pypi pyversion downloads Ask DeepWiki

NVIDIA FLARE (NVIDIA Federated Learning Application Runtime Environment) is a domain-agnostic, open-source, extensible Python SDK that allows researchers and data scientists to adapt existing ML/DL workflows to a federated paradigm. It enables platform developers to build a secure, privacy-preserving offering for a distributed multi-party collaboration.

Features

FLARE is built on a componentized architecture that allows you to take federated learning workloads from research and simulation to real-world production deployment.

Application Features * Support both deep learning and traditional machine learning algorithms (eg. PyTorch, TensorFlow, Scikit-learn, XGBoost etc.) * Support horizontal and vertical federated learning * Built-in Federated Learning algorithms (e.g., FedAvg, FedProx, FedOpt, Scaffold, Ditto, etc.) * Support multiple server and client-controlled training workflows (e.g., scatter & gather, cyclic) and validation workflows (global model evaluation, cross-site validation) * Support both data analytics (federated statistics) and machine learning lifecycle management * Privacy preservation with differential privacy, homomorphic encryption, private set intersection (PSI)

From Simulation to Real-World * FLARE Client API to transition seamlessly from ML/DL to FL with minimal code changes * Simulator and POC mode for rapid development and prototyping * Fully customizable and extensible components with modular design * Deployment on cloud and on-premise * Dashboard for project management and deployment * Security enforcement through federated authorization and privacy policy * Built-in support for system resiliency and fault tolerance

Take a look at NVIDIA FLARE Overview for a complete overview, and What's New for the lastest changes.

Installation

To install the current release: $ python -m pip install nvflare

For detailed installation please refer to NVIDIA FLARE installation.

Getting Started

  • To get started, refer to getting started documentation

  • Structured, self-paced learning is available through curated tutorials and training paths on the website.

    • DLI courses:
    • https://learn.nvidia.com/courses/course-detail?course_id=course-v1:DLI+S-FX-28+V1
    • https://learn.nvidia.com/courses/course-detail?course_id=course-v1:DLI+S-FX-29+V1
  • visit developer portal https://developer.nvidia.com/flare

Community

We welcome community contributions! Please refer to the contributing guidelines for more details.

Ask and answer questions, share ideas, and engage with other community members at NVFlare Discussions.

Related Talks and Publications

Take a look at our growing list of talks and publications, and technical blogs related to NVIDIA FLARE.

License

NVIDIA FLARE is released under an Apache 2.0 license.

Owner

  • Name: NVIDIA Corporation
  • Login: NVIDIA
  • Kind: organization
  • Location: 2788 San Tomas Expressway, Santa Clara, CA, 95051

Citation (CITATION.cff)

# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
#
---
title: "Nvidia FLARE"
abstract: "Nvidia FLARE is an SDK designed to enable federated learning amongst different parties using
their local secure protected data for client-side training, at the same time it includes capabilities to
coordinate and exchange progressing of results across all sites to achieve better global model while
preserving data privacy."
authors:
  - name: "Nvidia Corporation"
date-released: 2022-06-29
version: "2.1.2"
identifiers:
  - description: "This DOI represents all versions of Nvidia FLARE, and will always resolve to the latest one."
    type: doi
    value: "10.5281/zenodo.6780567"
license: "Apache-2.0"
doi: 10.5281/zenodo.6780567
repository-code: "https://github.com/NVIDIA/nvflare"
url: "https://nvflare.readthedocs.io"
cff-version: "1.2.0"
message: "If you use this software, please cite it using these metadata."
preferred-citation:
  type: article
  authors:
  - family-names: Roth
    given-names: Holger R.
  - family-names: Cheng
    given-names:  Yan
  - family-names: Wen
    given-names:  Yuhong
  - family-names: Yang
    given-names:  Isaac
  - family-names: Xu
    given-names:  Ziyue
  - family-names: Hsieh
    given-names:  Yuan-Ting
  - family-names: Kersten
    given-names:  Kristopher
  - family-names: Harouni
    given-names:  Ahmed
  - family-names: Zhao
    given-names:  Can
  - family-names: Lu
    given-names:  Kevin
  - family-names: Zhang
    given-names:  Zhihong
  - family-names: Li
    given-names:  Wenqi
  - family-names: Myronenko
    given-names:  Andriy
  - family-names: Yang
    given-names:  Dong
  - family-names: Yang
    given-names:  Sean
  - family-names: Rieke
    given-names:  Nicola
  - family-names: Quraini
    given-names:  Abood
  - family-names: Chen
    given-names:  Chester
  - family-names: Xu
    given-names:  Daguang
  - family-names: Ma
    given-names:  Nic
  - family-names: Dogra
    given-names:  Prerna
  - family-names: Flores
    given-names:  Mona
  - family-names: Feng
    given-names:  Andrew
  doi: "https://doi.org/10.48550/arXiv.2210.13291"
  journal: "IEEE Data Eng. Bull., Vol. 46, No. 1"
  month: 3
  title: "NVIDIA FLARE: Federated Learning from Simulation to Real-World"
  year: 2023

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2,182
  • Total Committers: 44
  • Avg Commits per committer: 49.591
  • Development Distribution Score (DDS): 0.753
Past Year
  • Commits: 570
  • Committers: 25
  • Avg Commits per committer: 22.8
  • Development Distribution Score (DDS): 0.814
Top Committers
Name Email Commits
Yuan-Ting Hsieh (謝沅廷) y****h@n****m 538
Yuhong Wen y****w@n****m 259
Isaac Yang i****y@n****m 240
Chester Chen 5****n 230
Holger Roth 6****h 176
nvkevlu 5****u 161
Sean Yang s****4@g****m 145
Zhihong Zhang 1****z 127
Yan Cheng 5****v 106
Ziyue Xu 7****7 98
dependabot[bot] 4****] 17
Zhijin z****l@n****m 15
Arun Patole a****e@n****m 7
Mohammad Adil m****l@n****m 7
YanxuanLiu 1****u 6
Kris Kersten 3****n 5
Francesco Farina f****1@g****m 4
Peixin p****i@n****u 4
Dirk Petersen d****n 3
Hao-Wei Pang 4****g 3
Can Zhao 6****o 2
Jiaxin Shan s****n@g****m 2
Tal Einat 5****t 2
Wenqi Li 8****i 2
Yiheng Wang 6****v 2
eordentlich 3****h 2
falibabaei 6****i 2
Nicolas Pannetier n****r@f****o 1
O L 1****i 1
Pengfei Guo 3****f 1
and 14 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 122
  • Total pull requests: 2,703
  • Average time to close issues: 4 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 62
  • Total pull request authors: 41
  • Average comments per issue: 2.5
  • Average comments per pull request: 1.72
  • Merged pull requests: 2,158
  • Bot issues: 0
  • Bot pull requests: 52
Past Year
  • Issues: 42
  • Pull requests: 1,103
  • Average time to close issues: 20 days
  • Average time to close pull requests: 3 days
  • Issue authors: 31
  • Pull request authors: 27
  • Average comments per issue: 1.29
  • Average comments per pull request: 1.79
  • Merged pull requests: 816
  • Bot issues: 0
  • Bot pull requests: 48
Top Authors
Issue Authors
  • holgerroth (19)
  • dirkpetersen (12)
  • falibabaei (10)
  • YuanTingHsieh (7)
  • taleinat (4)
  • Nintorac (3)
  • avelinoapheris (3)
  • pygabc1 (2)
  • FancyXun (2)
  • Writam18 (2)
  • yizhihenpidehou (2)
  • Nicholas-B1 (2)
  • hwpang (2)
  • mingxin-zheng (2)
  • ductrong5x5 (2)
Pull Request Authors
  • YuanTingHsieh (641)
  • SYangster (307)
  • yhwen (301)
  • holgerroth (256)
  • yanchengnv (245)
  • nvidianz (185)
  • chesterxgchen (176)
  • IsaacYangSLA (158)
  • ZiyueXu77 (143)
  • nvkevlu (133)
  • dependabot[bot] (52)
  • zhijinl (19)
  • apatole (11)
  • pxLi (9)
  • hwpang (8)
Top Labels
Issue Labels
bug (55) enhancement (9) question (6) Feature request (5) core (1) cicd (1)
Pull Request Labels
cicd (87) documentation (72) examples (61) dependencies (52) enhancement (39) bug (38) javascript (35) python (14) core (3) research (1)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 11,244 last-month
  • Total docker downloads: 85
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 44
    (may contain duplicates)
  • Total versions: 171
  • Total maintainers: 2
  • Total advisories: 4
pypi.org: nvflare

Federated Learning Application Runtime Environment

  • Versions: 116
  • Dependent Packages: 2
  • Dependent Repositories: 43
  • Downloads: 11,073 Last month
  • Docker Downloads: 51
Rankings
Dependent repos count: 2.2%
Stargazers count: 2.9%
Average: 3.8%
Downloads: 4.1%
Forks count: 4.2%
Docker downloads count: 4.3%
Dependent packages count: 4.8%
Maintainers (2)
Last synced: 6 months ago
pypi.org: nvflare-nightly

Federated Learning Application Runtime Environment

  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 71 Last month
Rankings
Stargazers count: 2.9%
Forks count: 4.2%
Dependent packages count: 10.1%
Average: 12.5%
Dependent repos count: 21.5%
Downloads: 23.8%
Maintainers (1)
Last synced: 6 months ago
pypi.org: monai-nvflare

MONAI NVIDIA FLARE integration

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 79 Last month
  • Docker Downloads: 34
Rankings
Stargazers count: 3.5%
Forks count: 4.8%
Dependent packages count: 6.6%
Average: 14.3%
Downloads: 25.8%
Dependent repos count: 30.6%
Maintainers (1)
Last synced: 6 months ago
pypi.org: nvflare-light

Federated Learning Application Runtime Environment

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 21 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 18.5%
Average: 28.5%
Dependent repos count: 56.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • PyYAML *
  • cryptography >=36.0.0
  • flask *
  • google-api-python-client *
  • grpcio *
  • gunicorn *
  • numpy *
  • psutil *
  • tenseal ==0.3.0
.github/workflows/blossom-ci.yml actions
  • NVIDIA/blossom-action main composite
  • actions/checkout v2 composite
.github/workflows/codeql.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/premerge.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
docker/Dockerfile docker
  • python 3.8 build
integration/monai/setup.py pypi
  • monai >=1.0.1
.github/workflows/markdown-links-check.yml actions
  • actions/checkout master composite
  • gaurav-nelson/github-action-markdown-link-check 1.0.15 composite
examples/advanced/brats18/configs/brats_central/meta.json cpan
examples/advanced/brats18/configs/brats_fedavg/meta.json cpan
examples/advanced/brats18/configs/brats_fedavg_dp/meta.json cpan
examples/advanced/cifar10/cifar10-real-world/jobs/cifar10_fedavg_he/meta.json cpan
examples/advanced/cifar10/cifar10-real-world/jobs/cifar10_fedavg_stream_tb/meta.json cpan
examples/advanced/cifar10/cifar10-sim/jobs/cifar10_central/meta.json cpan
examples/advanced/cifar10/cifar10-sim/jobs/cifar10_fedavg/meta.json cpan
examples/advanced/cifar10/cifar10-sim/jobs/cifar10_fedopt/meta.json cpan
examples/advanced/cifar10/cifar10-sim/jobs/cifar10_fedprox/meta.json cpan
examples/advanced/cifar10/cifar10-sim/jobs/cifar10_scaffold/meta.json cpan
examples/advanced/experiment-tracking/mlflow/jobs/hello-pt-mlflow/meta.json cpan
examples/advanced/experiment-tracking/mlflow/jobs/hello-pt-tb-mlflow/meta.json cpan
examples/advanced/experiment-tracking/tensorboard/jobs/tensorboard-streaming/meta.json cpan
examples/advanced/experiment-tracking/wandb/jobs/hello-pt-wandb/meta.json cpan
examples/advanced/federated-policies/jobs/job1/meta.json cpan
examples/advanced/federated-policies/jobs/job2/meta.json cpan
examples/advanced/federated-policies/jobs/job3/meta.json cpan
examples/advanced/federated-policies/jobs/job4/meta.json cpan
examples/advanced/federated-policies/jobs/job5/meta.json cpan
examples/advanced/federated-statistics/df_stats/jobs/df_stats/meta.json cpan
examples/advanced/federated-statistics/image_stats/jobs/image_stats/meta.json cpan
examples/advanced/fl_hub/jobs/numpy-cross-val/meta.json cpan
examples/advanced/gnn-pt/jobs/gnn-pt/meta.json cpan
examples/advanced/nlp-ner/jobs/bert_ncbi/meta.json cpan
examples/advanced/nlp-ner/jobs/gpt2_ncbi/meta.json cpan
examples/advanced/prostate/prostate_2D/job_configs/prostate_central/meta.json cpan
examples/advanced/prostate/prostate_2D/job_configs/prostate_ditto/meta.json cpan
examples/advanced/prostate/prostate_2D/job_configs/prostate_fedavg/meta.json cpan
examples/advanced/prostate/prostate_2D/job_configs/prostate_fedprox/meta.json cpan
examples/advanced/prostate/prostate_3D/job_configs/prostate_central/meta.json cpan
examples/advanced/prostate/prostate_3D/job_configs/prostate_ditto/meta.json cpan
examples/advanced/prostate/prostate_3D/job_configs/prostate_fedavg/meta.json cpan
examples/advanced/prostate/prostate_3D/job_configs/prostate_fedprox/meta.json cpan
examples/advanced/psi/user_email_match/jobs/user_email_match/meta.json cpan
examples/advanced/random_forest/jobs/random_forest_base/meta.json cpan
examples/advanced/sklearn-kmeans/jobs/sklearn_kmeans_base/meta.json cpan
examples/advanced/sklearn-linear/jobs/sklearn_linear_base/meta.json cpan
examples/advanced/sklearn-svm/jobs/sklearn_svm_base/meta.json cpan
examples/advanced/vertical_federated_learning/cifar10-splitnn/jobs/cifar10_psi/meta.json cpan
examples/advanced/vertical_federated_learning/cifar10-splitnn/jobs/cifar10_splitnn/meta.json cpan
examples/advanced/vertical_xgboost/jobs/vertical_xgb/meta.json cpan
examples/advanced/vertical_xgboost/jobs/vertical_xgb_psi/meta.json cpan
examples/advanced/xgboost/histogram-based/jobs/base/meta.json cpan
examples/advanced/xgboost/tree-based/jobs/bagging_base/meta.json cpan
examples/advanced/xgboost/tree-based/jobs/cyclic_base/meta.json cpan
examples/hello-world/hello-ccwf/jobs/numpy-swcse/meta.json cpan
examples/hello-world/hello-cyclic/jobs/hello-cyclic/meta.json cpan
examples/hello-world/hello-numpy-cross-val/jobs/hello-numpy-cross-val/meta.json cpan
examples/hello-world/hello-numpy-sag/jobs/hello-numpy-sag/meta.json cpan
examples/hello-world/hello-pt/jobs/hello-pt/meta.json cpan
examples/hello-world/hello-tf2/jobs/hello-tf2/meta.json cpan
integration/monai/examples/spleen_ct_segmentation_local/jobs/spleen_ct_segmentation_he/meta.json cpan
integration/monai/examples/spleen_ct_segmentation_local/jobs/spleen_ct_segmentation_loc_non_agg/meta.json cpan
integration/monai/examples/spleen_ct_segmentation_local/jobs/spleen_ct_segmentation_local/meta.json cpan
integration/monai/examples/spleen_ct_segmentation_sim/job/meta.json cpan
integration/monai/examples/spleen_ct_segmentation_sim/job_multi_gpu/meta.json cpan
integration/monai/examples/spleen_ct_segmentation_sim/job_stats/meta.json cpan
integration/nemo/examples/prompt_learning/jobs/templates/meta.json cpan
integration/nemo/examples/supervised_fine_tuning/jobs/templates/meta.json cpan
research/auto-fed-rl/jobs/cifar10_autofedrl/meta.json cpan
research/condist-fl/jobs/condist/meta.json cpan
research/fed-ce/jobs/fedce_prostate/meta.json cpan
research/fed-sm/jobs/fedsm_prostate/meta.json cpan
research/one-shot-vfl/jobs/cifar10_oneshotVFL/meta.json cpan
research/one-shot-vfl/jobs/cifar10_psi/meta.json cpan
research/quantifying-data-leakage/jobs/app_template/meta.json cpan
tests/integration_test/data/apps/cross_val/meta.json cpan
tests/integration_test/data/apps/cross_val_one_client/meta.json cpan
tests/integration_test/data/apps/cyclic/meta.json cpan
tests/integration_test/data/apps/filters/meta.json cpan
tests/integration_test/data/apps/global_model_eval/meta.json cpan
tests/integration_test/data/apps/np_sag/meta.json cpan
tests/integration_test/data/apps/np_sag_weights_diff/meta.json cpan
tests/integration_test/data/apps/pt_init_client/meta.json cpan
tests/integration_test/data/apps/pt_use_name/meta.json cpan
tests/integration_test/data/apps/pt_use_path/meta.json cpan
tests/integration_test/data/apps/sag_exception/meta.json cpan
tests/integration_test/data/apps/slow_job/meta.json cpan
tests/integration_test/data/apps/tb_streaming/meta.json cpan
tests/unit_test/data/jobs/duplicate_clients/meta.json cpan
tests/unit_test/data/jobs/duplicate_server/meta.json cpan
tests/unit_test/data/jobs/invalid_resource_spec_data_type/meta.json cpan
tests/unit_test/data/jobs/mandatory_not_met/meta.json cpan
tests/unit_test/data/jobs/min_clients_value_range/meta.json cpan
tests/unit_test/data/jobs/missing_app/meta.json cpan
tests/unit_test/data/jobs/missing_client_config/meta.json cpan
tests/unit_test/data/jobs/missing_server_config/meta.json cpan
tests/unit_test/data/jobs/missing_server_in_deployment/meta.json cpan
tests/unit_test/data/jobs/no_deployment/meta.json cpan
tests/unit_test/data/jobs/not_enough_clients/meta.json cpan
tests/unit_test/data/jobs/valid_job/meta.json cpan
tests/unit_test/data/jobs/valid_job_deployment_all_idle/meta.json cpan
examples/advanced/brats18/plot-requirements.txt pypi
  • matplotlib *
  • seaborn *
  • tensorflow *