Science Score: 44.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: ahmedmbakr
  • License: apache-2.0
  • Language: Python
  • Default Branch: develop-AB
  • Size: 30.3 MB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Created over 2 years ago · Last pushed 12 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners

README.md

Blossom-CI documentation license pypi pyversion downloads

NVIDIA FLARE

NVIDIA FLARE (NVIDIA Federated Learning Application Runtime Environment) is a domain-agnostic, open-source, extensible 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: $ python3 -m pip install nvflare

Getting Started

You can quickly get started using the FL simulator. A detailed getting started guide is available in the documentation.

Examples and notebook tutorials are located at NVFlare/examples.

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, blogs, and publications related to NVIDIA FLARE.

License

NVIDIA FLARE is released under an Apache 2.0 license.

Owner

  • Name: Ahmed Bakr
  • Login: ahmedmbakr
  • Kind: user
  • Location: Tuscaloosa, AL
  • Company: The University of Alabama

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

GitHub Events

Total
  • Push event: 1
  • Create event: 1
Last Year
  • Push event: 1
  • Create event: 1

Dependencies

.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/markdown-links-check.yml actions
  • actions/checkout master composite
  • gaurav-nelson/github-action-markdown-link-check 1.0.15 composite
.github/workflows/premerge.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 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/finance/jobs/2_bagging/meta.json cpan
examples/advanced/finance/jobs/2_cyclic/meta.json cpan
examples/advanced/finance/jobs/2_histogram/meta.json cpan
examples/advanced/finance/jobs/vertical_xgb/meta.json cpan
examples/advanced/finance/jobs/vertical_xgb_psi/meta.json cpan
examples/advanced/fl_hub/jobs/numpy-cross-val/meta.json cpan
examples/advanced/job-level-authorization/jobs/job1/meta.json cpan
examples/advanced/job-level-authorization/jobs/job2/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/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/ab-alex-net-gtsrb/jobs/ab-alex-net-gtsrb/meta.json cpan
examples/hello-world/hello-ccwf/jobs/swarm_cse_numpy/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-cross-val/jobs/hello-numpy-cross-val-only/meta.json cpan
examples/hello-world/hello-numpy-cross-val/jobs/hello-numpy-cross-val-only-list-models/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_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
job_templates/cyclic_cc_pt/meta.json cpan
job_templates/cyclic_pt/meta.json cpan
job_templates/sag_pt_executor/meta.json cpan
job_templates/sag_pt_model_learner/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