Releases#
1.9#
New Features#
Scaling to 100s of collaborators: This release comes with several memory and performance improvements when scaling federations horizontally, including extensive testing and benchmarking in distributed environments.
Verifiable Datasets & S3 support: Introducing a new framework of utilities for flexible loading of datasets, including optional integrity check verifications. Building on this framework, OpenFL now supports data loading from object storage (S3), illustrated by the histology_s3 workspace template.
Aggregator REST API: OpenFL now supports REST as an alternative to gRPC for the communication between the collaborators and the aggregator. The protocol can now be selected in the network settings section of the FL plan.
Federated Analytics: experimental support introduced via example workspace templates, with core framework support scheduled for subsequent OpenFL releases.
Workflow API Enhancements: Numerous bug fixes to
LocalRuntime, and continued progress towards production-readiness of theFederatedRuntime:Fixed an issue that would prevent enabling TLS in distributed environments.
Optimized memory usage and introduced gRPC streaming for the
FederatedRuntime, enabling experimental federations with models of up to 2GB in size.Removed the legacy Aggregator-Based Workflow, superseded by the
FederatedRuntime.
Enhanced Developer Experience#
TaskRunner API Bootstrapping Utilities: Introducing FL administrator utilities for TaskRunner API:
A new
fx collaborator pingcommand to test collaborator/aggregator connectivity without starting any FL tasks or accessing private dataA
no-opworkspace template that can be configured and distributed just for the purposes of establishing and testing connectivity and PKI, in conjunction with the a no-op workspace
Saving a native model: In previous versions of OpenFL, the trained models would be saved as a
.pbuffile by default. OpenFL 1.9 provides the option to save the model in native format directly (such as.pth), if enabled via thesave_native_modelflag in the aggregator section of the FL plan.Flower Interoperability: Most of the OpenFL/Flower interop components have been moved from the experimental flower-app-pytorch workspace to the core OpenFL framework, enabling FL developers to run a wide variety of existing Flower experiments on the OpenFL infrastructure.
OpenFL Nightly Builds: A comprehensive Product Quality Pipeline now runs on a nightly basis and, upon success, produces an openfl-nightly build.
1.8#
New Features#
Secure Aggregation: A privacy-preserving aggregation algorithm for Federated Learning, based on secure multiparty computation (MPC) that helps protect intermediate model updates from introspection. OpenFL now supports Secure Aggregation via both Task Runner API and Workflow API.
OpenFL/Flower Interop: Showcasing how FL experiments defined using the Flower API can be run as OpenFL federations via TaskRunner API. This enables combining Flower’s extensive library of FL algorithms with OpenFL’s advanced security features, including trusted execution, secure communication, and explicit safeguards against data exfiltration.
Federated Evaluation: Enabling seamless switching from learning to evaluation in Task Runner API without redistributing the FL plan, which is particularly advantageous in large, geo-distributed federations. Furthermore, Federated Evaluation is now available via the Workflow API.
Enhanced Developer Experience#
Removing Legacy APIs: The Python Native API and the Interactive API have been removed, along with the accompanying examples and documentation.
ML Frameworks Integration: Upgraded PyTorch-based FL workspaces to 2.4.1, and provided additional Keras 3 back-ends (incl. Jax and PyTorch).
Enhanced Resilience: OpenFL Task Runner API experiments can now recover from Collaborator and Aggregator restarts.
1.7#
New Features#
FederatedRuntime for Workflow API: enables a seamless transition from a local simulation (via LocalRuntime) to a distributed Federated Learning deployment - all orchestrated from a familiar Jupyter notebook environment. Check out the FederatedRuntime 101 Tutorial to try it yourself. The initial version of the FederatedRuntime included in this release is an experimental feature that should be used only in an internal environment. We further recommend that users operate only on artificial or public data that is not considered intellectual property. The experimental tag and restrictions will be removed in future releases of OpenFL.
Federated XGBoost: Adding support for XGBoost training in OpenFL via TaskRunner API, illustrated with the Higgs dataset.
Callbacks: An abstraction for running user-defined actions in TaskRunner API or Workflow API. Callbacks can be used to perform custom actions at different stages of the Federated Learning process.
Enhanced Developer Experience#
Streamlining OpenFL APIs: With this release, the OpenFL Team will concentrate on the TaskRunner API and Workflow API. Consequently, the Python Native API and Interactive API have been deprecated and are scheduled for removal in future iterations.
FL Workspace Dockerization: Revised Task Runner API workspace dockerization process, with TEE-ready containers (using Gramine and Intel® Software Guard Extensions). Follow the updated instructions to enhance the privacy and security of your FL experiments.
Federated Evaluation via TaskRunner API: OpenFL 1.7 further simplifies the creation of Federated Evaluation experiments via the TaskRunner API (see the example FedEval workspace).
Keras 3 API: Upgrading the base TaskRunner classes and example workspaces to Keras 3 for building state-of-the-art FL experiments with TensorFlow (more backends to be included in the upcoming OpenFL releases).
Updated Tutorials: This includes fixes to existing tutorial and example code, and migrating a selection of key OpenFL tutorials from deprecated APIs to Workflow API. Check out the updated Tutorials folder.
Updated Official Documentation: The OpenFL documentation website has been comprehensively reviewed and reorganized to improve navigation and provide clearer content.
1.6#
New Features and APIs:#
Federated LLM fine-tuning:
Horovod: Use horovod to efficiently train LLMs across multiple private clusters
Neuralchat-7b fine-tuning: Learn how to fine-tune neuralchat-7b using the Intel® Extension for Transformers and the workflow interface.
Workflow API enhancements: Introducing an experimental Workspace Export feature that can be used to transform a Workflow API-based FL experiment into the TaskRunner API format for running in a distributed deployment. There is also groundwork laid for a future FederatedRuntime implementation for Workflow API, in addition to the currently supported LocalRuntime.
Federated Evaluation: Federated evaluation allows for the assessment of ML models in a federated learning system by validating the model’s performance locally on decentralized collaborator nodes, and then aggregating these metrics to gauge overall effectiveness, without compromising data privacy and security. FE is now officially supported by OpenFL, including example tutorials on how to use this new feature (via TaskRunner API).
Expanded AI Accelerator Support: Intel® Data Center GPU Max Series support via the Intel® Extension for PyTorch, including examples for training on datasets such as MNIST (via Workflow API) and TinyImageNet (via Interactive API)
Improved straggler collaborator handling: Improvements and bug fixes to aggregator’s fault-tolerance when collaborators stop responding or drop out of a federation. Introducing a cut-off timer-based policy and enabling other policies to be plugged-in. This capability is particularly relevant for large or geo-distributed federations.
fx CLI Improvements: We have separated the CLI commands are separated for creating a collaborator from the certificate request generation, for offering improved control of the participant setup workflow.
Highlighting Community Research#
Mitigating backdoor attacks in FL - Workflow API example contributed by @perieger (TU Darmstadt) demonstrates how Crowdguard can be used to leverage clients’ feedback on individual models, analyze the behavior of neurons in hidden layers, and eliminate poisoned models through an iterative pruning scheme.
Enhanced Documentation:#
Quickstart Tutorial: An updated TaskRunner API quickstart tutorial makes it easier for newcomers to get up and running with built-in workspaces or custom code.
FL Plan Description Documentation: There is now a detailed FL plan description in the to our documentation to help users better understand and configure the federated learning process.
1.5.1#
We are excited to announce the release of OpenFL 1.5.1 - our first since moving to LF AI & Data! This release brings the following changes.
Documentation accessibility improvements: As part of our Global Accessibility Awareness Day (GAAD) Pledge, the OpenFL project is making strides towards more accessible documentation. This release includes the integration of Intel® One Mono font, contrast color improvements, formatting improvements, and new accessibility focused issues to take up in the future.
Documentation to federate a Generally Nuanced Deep Learning Framework (GaNDLF) model with OpenFL
New OpenFL Interactive API Tutorials:
Improvements to workspace export and import
Many documentation improvements and updates
Bug fixes
Fixing dependency vulnerabilities
1.5#
New Workflows Interface (Experimental) - a new way of composing federated learning experiments inspired by Metaflow. Enables the creation of custom aggregator and collaborators tasks. This initial release is intended for simulation on a single node (using the LocalRuntime); distributed execution (FederatedRuntime) to be enabled in a future release.
New use cases enabled by the workflow interface:
Privacy Meter - Privacy meter, based on state-of-the-art membership inference attacks, provides a tool to quantitatively audit data privacy in statistical and machine learning algorithms. The objective of a membership inference attack is to determine whether a given data record was in the training dataset of the target model. Measures of success (accuracy, area under the ROC curve, true positive rate at a given false positive rate …) for particular membership inference attacks against a target model are used to estimate privacy loss for that model (how much information a target model leaks about its training data). Since stronger attacks may be possible, these measures serve as lower bounds of the actual privacy loss. The Privacy Meter workflow example generates privacy loss reports for all party’s local model updates as well as the global models throughout all rounds of the FL training.
Federated Model Watermarking using the WAFFLE method
Differential Privacy – Global differentially private federated learning using Opacus library to achieve a differentially private result w.r.t the inclusion or exclusion of any collaborator in the training process. At each round, a subset of collaborators are selected using a Poisson distribution over all collaborators, the selected collaborators perform local training with periodic clipping of their model delta (with respect to the current global model) to bound their contribution to the average of local model updates. Gaussian noise is then added to the average of these local models at the aggregator. This example is implemented in two different but statistically equivalent ways – the lower level API utilizes RDPAccountant and DPDataloader Opacus objects to perform privacy accounting and collaborator selection respectively, whereas the higher level API uses PrivacyEngine Opacus object for collaborator selection and internally utilizes RDPAccountant for privacy accounting.
Official support for Python 3.9 and 3.10
EDEN Compression Pipeline: Communication-Efficient and Robust Distributed Mean Estimation for Federated Learning (paper link)
Improvements to the resiliency and security of the director / envoy infrastructure:
Optional notification to plan participants to agree to experiment sent to their infrastructure
Improved resistance to loss of network connectivity and failure at various stages of execution
Windows Support (Experimental): Continuous Integration now tests OpenFL on Windows, but certain features may not work as expected. Full Windows support will be added in a future release.
1.4#
The OpenFL v1.4 release contains the following:
tf.data Pipeline Example
PrivilegedAggregationFunctionInterfaceFeTS Challenge Task Runner
Bug fixes and other improvements
1.3#
The OpenFL v1.3 release contains the following updates:
FedCurv aggregation algorithm
HuggingFace/transformers audio classification example using SUPERB dataset
PyTorch Lightning GAN example
NumPy Linear Regression example in Google Colab
Adaptive Federated Optimization algorithms implementation:
FedYogi,FedAdagrad,FedAdamMXNet landmarks regression example as a custom plugin to OpenFL
Migration to JupyterLab
Bug fixes and other improvements
1.2#
The OpenFL v1.2 release contains the following updates:
Long-living entities: Director/Envoy for supporting multiple experiments within the same
FederationScalable PKI: semi-automatic mechanism for certificates distribution via step-ca
Examples with new Interactive API + Director/Envoy: TensorFlow Next Word Prediction, PyTorch Re-ID on Market, PyTorch MobileNet v2 on TinyImageNet
3D U-Net TensorFlow workspace for BraTS 2020 for CLI-based workflow
AggregationFunctioninterface for custom aggregation functions in new Interactive APIAutocomplete of
fxCLIBug fixes and documentation improvements
1.1#
The OpenFL v1.1 release contains the following updates:
New Interactive Python API (experimental)
Example FedProx algorithm implementation for PyTorch and Tensorflow
AggregationFunctionInterfacefor custom aggregation functionsAdds a Keras-based NLP Example
Fixed lossy compression pipelines and added an example for usage
Bug fixes and documentation improvements
1.0.1#
v1.0.1 is a patch release. It includes the following updates:
New docker CI tests
New Pytorch UNet Kvasir tutorial
Cleanup / fixes to other OpenFL tutorials
Fixed description for Pypi
Status/documentation/community badges for README.md
1.0#
This release includes:
The official open source release of OpenFL
Tensorflow 2.0 and PyTorch support
Examples for classification, segmentation, and adversarial training
No-install Docker and Singularity* deployments
Python native API intended for single node federated learning experiments
fxCLI for multi-node production deploymentsAdditional test coverage for OpenFL components