{"id":27073185,"url":"https://github.com/intel/openfl","last_synced_at":"2025-04-06T00:01:58.786Z","repository":{"id":37348320,"uuid":"329117231","full_name":"securefederatedai/openfl","owner":"securefederatedai","description":"An Open Framework for Federated Learning.","archived":false,"fork":false,"pushed_at":"2025-04-03T10:57:04.000Z","size":138184,"stargazers_count":761,"open_issues_count":79,"forks_count":222,"subscribers_count":19,"default_branch":"develop","last_synced_at":"2025-04-03T11:00:43.009Z","etag":null,"topics":["federated-analytics","federated-evaluation","federated-learning","privacy-preserving-ml","python","trusted-execution-environment"],"latest_commit_sha":null,"homepage":"https://openfl.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/securefederatedai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-12T21:29:52.000Z","updated_at":"2025-04-01T19:58:21.000Z","dependencies_parsed_at":"2023-10-20T00:36:22.856Z","dependency_job_id":"263ab508-ccd3-4164-b32f-94dde41e5340","html_url":"https://github.com/securefederatedai/openfl","commit_stats":null,"previous_names":["intel/openfl"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/securefederatedai%2Fopenfl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/securefederatedai%2Fopenfl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/securefederatedai%2Fopenfl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/securefederatedai%2Fopenfl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/securefederatedai","download_url":"https://codeload.github.com/securefederatedai/openfl/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415933,"owners_count":20935388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["federated-analytics","federated-evaluation","federated-learning","privacy-preserving-ml","python","trusted-execution-environment"],"created_at":"2025-04-06T00:00:45.974Z","updated_at":"2025-04-06T00:01:58.743Z","avatar_url":"https://github.com/securefederatedai.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/securefederatedai/artwork/blob/main/PNG/OpenFL%20Logo%20-%20color.png?raw=true\" width=\"70%\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\t\n[![PyPI version](https://img.shields.io/pypi/v/openfl)](https://pypi.org/project/openfl/)\n[![Conda version](https://img.shields.io/conda/vn/conda-forge/openfl?color=green)](https://anaconda.org/conda-forge/openfl)\n[![Downloads](https://pepy.tech/badge/openfl)](https://pepy.tech/project/openfl)\n[![Documentation Status](https://readthedocs.org/projects/openfl/badge/?version=latest)](https://openfl.readthedocs.io/en/latest/?badge=latest)\n[\u003cimg src=\"https://img.shields.io/badge/slack-@openfl-blue.svg?logo=slack\"\u003e](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw) \n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6599/badge)](https://bestpractices.coreinfrastructure.org/projects/6599)\n\u003ca href=\"https://scan.coverity.com/projects/securefederatedai-openfl\"\u003e\n  \u003cimg alt=\"Coverity Scan Build Status\"\n       src=\"https://scan.coverity.com/projects/29040/badge.svg\"/\u003e\n\u003c/a\u003e\n\n[**Overview**](#overview)\n| [**Installation**](#installation)\n| [**Features**](#features)\n| [**Changelog**](https://openfl.readthedocs.io/en/latest/releases.html)\n| [**Documentation**](https://openfl.readthedocs.io/en/latest/)\n\n\u003c/div\u003e\n\nOpenFL is a Python framework for Federated Learning. It enables organizations to train and validate machine learning models on sensitive data. It increases privacy by allowing collaborative model training or validation across local private datasets without ever sharing that data with a central server. OpenFL is hosted by The Linux Foundation.\n\n## Overview\n\nFederated Learning is a distributed machine learning approach that enables collaborative training and evaluation of models without sharing sensitive data such as, personal information, patient records, financial data, or classified information. The minimum data movement needed across a Federated Training experiment, is solely the model parameters and their updates. This is in contrast to a Centralized Learning regime, where all data needs to be moved to a central server or a datacenter for massively parallel training.\n\n![Federated Learning](https://openfl.readthedocs.io/en/latest/_images/ct_vs_fl.png)\n\nOpenFL builds on a collaboration between Intel and the Bakas lab at the University of Pennsylvania (UPenn) to develop the [Federated Tumor Segmentation (FeTS)](https://www.fets.ai/) platform (grant award number: U01-CA242871).\n\nThe grant for FeTS was awarded from the [Informatics Technology for Cancer Research (ITCR)](https://itcr.cancer.gov/) program of the National Cancer Institute (NCI) of the National Institutes of Health (NIH), to Dr. Spyridon Bakas (Principal Investigator) when he was affiliated with the [Center for Biomedical Image Computing and Analytics (CBICA)](https://www.cbica.upenn.edu/) at UPenn and now heading the [Division of Computational Pathology at Indiana University (IU)](https://medicine.iu.edu/pathology/research/computational-pathology).\n\nFeTS is a real-world medical federated learning platform with international collaborators. The original OpenFederatedLearning project and OpenFL are designed to serve as the backend for the FeTS platform, and OpenFL developers and researchers continue to work very closely with IU on the FeTS project. An example is the [FeTS-AI/Front-End](https://github.com/FETS-AI/Front-End), which integrates the group’s medical AI expertise with OpenFL framework to create a federated learning solution for medical imaging. \n\nAlthough initially developed for use in medical imaging, OpenFL designed to be agnostic to the use-case, the industry, and the machine learning framework.\n\nFor more information, here is a list of relevant [publications](https://openfl.readthedocs.io/en/latest/about/blogs_publications.html).\n\n## Installation\n\nInstall via PyPI (latest stable release):\n\n```\npip install -U openfl\n```\nOr via conda:\n```\nconda install conda-forge::openfl\n```\nFor more installation options, checkout the [installation guide](https://openfl.readthedocs.io/en/latest/installation.html).\n\n## Features\n\n### Ways to set up an FL experiment\nOpenFL supports two ways to set up a Federated Learning experiment:\n\n- [TaskRunner API](https://openfl.readthedocs.io/en/latest/about/features_index/taskrunner.html): This API uses short-lived components like the `Aggregator` and `Collaborator`, which terminate at the end of an FL experiment. TaskRunner supports mTLS-based secure communication channels, and TEE-based confidential computing environments.\n\n- [Workflow API](https://openfl.readthedocs.io/en/latest/about/features_index/workflowinterface.html): This API allows for experiments beyond the traditional horizontal federated learning paradigm using a pythonic interface. It allows an experiment to be simulated locally, and then to be seamlessly scaled to a federated setting by switching from a local runtime to a distributed, federated runtime.\n\t\u003e **Note:** This is experimental capability.\n\n### Framework Compatibility\n\nOpenFL is backend-agnostic. It comes with support for popular NumPy-based ML frameworks like TensorFlow, PyTorch and Jax which should be installed separately. Users may extend the list of supported backends if needed.\n\n### Aggregation Algorithms\nOpenFL supports popular aggregation algorithms out-of-the-box, with more algorithms coming soon.\n|  | Reference | PyTorch backend | TensorFlow backend | NumPy backend |\n| -------------- | ----- | :--------------------: | :-----------------------: | :----------------------------: |\n| FedAvg | [McMahan et al., 2017](https://arxiv.org/pdf/1602.05629.pdf) | yes | yes | yes |\n| FedOpt | [Reddi et al., 2020](https://arxiv.org/abs/2003.00295) | yes | yes | yes |\n| FedProx | [Li et al., 2020](https://arxiv.org/pdf/1812.06127.pdf) | yes | yes | - |\n| FedCurv | [Shoham et al., 2019](https://arxiv.org/pdf/1910.07796.pdf) | yes | - | - |\n\n## Contributing\nWe welcome contributions! Please refer to the [contributing guidelines](https://openfl.readthedocs.io/en/latest/contributing.html).\n\nThe OpenFL community is expanding, and we encourage you to join us. Connect with other enthusiasts, share knowledge, and contribute to the advancement of federated learning by joining our [Slack channel](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw).\n\nStay updated by subscribing to the OpenFL mailing list: [openfl-announce@lists.lfaidata.foundation](mailto:openfl-announce@lists.lfaidata.foundation).\n\n\n## License\nThis project is licensed under [Apache License Version 2.0](LICENSE). By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.\n\n\n## Citation\n\n```\n@article{openfl_citation,\n\tauthor={Foley, Patrick and Sheller, Micah J and Edwards, Brandon and Pati, Sarthak and Riviera, Walter and Sharma, Mansi and Moorthy, Prakash Narayana and Wang, Shi-han and Martin, Jason and Mirhaji, Parsa and Shah, Prashant and Bakas, Spyridon},\n\ttitle={OpenFL: the open federated learning library},\n\tjournal={Physics in Medicine \\\u0026 Biology},\n\turl={http://iopscience.iop.org/article/10.1088/1361-6560/ac97d9},\n\tyear={2022},\n\tdoi={10.1088/1361-6560/ac97d9},\n\tpublisher={IOP Publishing}\n}\n```","funding_links":[],"categories":["General Resources","federated learning framework","隐私新技术","Framework","Libraries/Frameworks"],"sub_categories":["Frameworks","table","隐私相关领域法规/条例","2022","2015"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintel%2Fopenfl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintel%2Fopenfl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintel%2Fopenfl/lists"}