openfederatedlearning  by securefederatedai

Open framework for federated learning

Created 4 years ago
802 stars

Top 44.0% on SourcePulse

GitHubView on GitHub
Project Summary

OpenFL is a Python framework for federated learning, enabling collaborative model training on sensitive, distributed datasets without data sharing. It targets researchers and organizations needing to leverage private data for ML model development, offering enhanced privacy and reduced data movement compared to centralized approaches.

How It Works

OpenFL supports two primary setup APIs: TaskRunner for short-lived components with mTLS and TEE support, and Workflow for more flexible, horizontal FL experiments that can scale from local simulation to distributed settings. It's backend-agnostic, integrating with TensorFlow, PyTorch, and Jax, and supports various aggregation algorithms like FedAvg, FedOpt, and FedProx.

Quick Start & Requirements

  • Install via pip: pip install -U openfl
  • Install via conda: conda install conda-forge::openfl
  • Requires Python. ML frameworks (TensorFlow, PyTorch, Jax) must be installed separately.
  • Official documentation: https://openfl.readthedocs.io/en/latest/

Highlighted Details

  • Backend-agnostic design supports TensorFlow, PyTorch, and Jax.
  • Implements aggregation algorithms: FedAvg, FedOpt, FedProx, FedCurv.
  • Supports mTLS and TEE-based confidential computing environments.
  • Workflow API allows local simulation and seamless scaling to federated settings.

Maintenance & Community

  • Hosted by The Linux Foundation.
  • Active Slack channel for community engagement.
  • Mailing list for announcements: openfl-announce@lists.lfaidata.foundation.
  • CII Best Practices badge indicates adherence to security standards.

Licensing & Compatibility

  • Licensed under Apache License Version 2.0.
  • Permissive license suitable for commercial use and integration with closed-source projects.

Limitations & Caveats

  • The Workflow API is noted as experimental.
Health Check
Last Commit

2 weeks ago

Responsiveness

1 day

Pull Requests (30d)
4
Issues (30d)
0
Star History
7 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.