Release notes

Version overview with key features, improvements, bug fixes, and instructions.

FEDn SDK 0.9.0

We're excited to announce the release of Fedn v0.9.0 and corresponding updates to Studio! This release includes a variety of new features, bug fixes, and improvements.

New Features in FEDn:

  1. Token Authentication: The API client now supports token authentication for secure access to FEDn Studio. Follow the documentation for more information.
  2. Model Loading: A new API method allows loading and downloading federated models from the model repository.
  3. JWT Verification: The system now includes JWT verification for enhanced security. This has been implemented at the controller level, enabling advanced users of FEDn to integrate with existing authentication systems. See documentation (RBAC).
  4. Asynchronous Simulation: Support for asynchronous simulation has been added. This example has been added to continuously test asynchronous federated training. See “examples” folder on Github.
  5. Remote Logging: Enable remote logging for better monitoring and troubleshooting. You can now set up a remote server which can retrieve logs from clients, combiners and the controller.
  6. Health Endpoint: A /health endpoint has been added to the API for checking the controller health status.
  7. Python Environment Support: The fedn.yaml configuration file in FEDn projects now supports specifying the Python environment. This enables users to control python dependencies at client runtime! You no longer need a specific container image to run your federated FEDn project. See “Getting Started” in documentation!
  8. FEDn projects: To ease management and creation of FEDn projects and their packages (compute package) we have added new subcommands to the CLI:
    1. fedn package create - will make a tarball (package) of your project, including the ML code which can be distributed to all clients using the FEDn package manager (upload of packages)
    2. fedn run build: allows users to run a new entry point in fedn.yaml using the CLI. This is convenient for (example) creating initial model artifacts (federated seed model).
  9. Studio Documentation Integration: Studio documentation has been moved to the main Fedn documentation for easier access.
  10. Default Bearer Token: The FEDN_AUTH_SCHEME now defaults to Bearer for convenience. Please note that we used Token before.
  11. Changes to protobuf definitions: To facilitate c++ and Android clients, changes have been made to protobuf definitions which in turn have resulted in refactors of gRPC endpoints. This makes previous versions of clients incompatible with the current version!

Bug fixes

  1. Client Model Retrieval Error Handling: The client now correctly handles model retrieval errors.
  2. Auth Metadata Conflict: A conflict in auth metadata within the gRPC client has been resolved.
  3. Incorrect Event Data: The get_events function now returns correct data when used with a custom prefix.
  4. Flask Dependency Issue: An issue with Flask dependencies has been fixed.

Improvements

  1. Session ID Storage: The session ID is now stored on status (event) and validation objects for better tracking.
  2. APIClient Refactoring: The APIClient has been refactored for improved code quality and maintainability.

Notes

If you get a gRPC error on the client side stating “Method not found”, please note that this is an indication that you are running an incompatible version of FEDn on the client side. For example, if you are running FEDn v0.8 on the clients but v0.9 on the servers (combiners).

New Features in FEDn Studio

  1. FEDn backend databases (MongoDB and Minio): are now globally shared among projects. Please note that collections and buckets are still isolated and authenticated on a project level. This is to facilitate better management of database services. You don’t have to worry about running out of storage any longer!
  2. JWT authentication: We have enabled JWT authentication for RBAC of different client roles. Federated clients participating in training have limited access to endpoints of the REST-API and gRPC server. An admin API can be generated in the Settings of a project for full access to the REST-API for managing your FEDn projects. For on-premise solutions, the JWT authentication system enables integration with existing authentication systems by sharing the public key from an asymmetric encryption algorithm, such as RS256.
  3. FEDn version synchronization: There’s now a “sync button” to synchronize projects to the latest version of FEDn. If you like to downgrade to a previous version you have to contact support. Please observe that client’s will temporarily lose connection to servers while upgrading. Don’t upgrade during a running session (a check for this will be added in upcoming releases)! If you upgrade, please try to use the same FEDn version on your clients. Compatibility checks will be added in future releases.

https://github.com/scaleoutsystems/fedn/releases

FEDn Studio 0.9.0

The latest update to Fedn Studio introduces significant changes to its user interface, aimed at improving the user experience, especially in federated learning sections. Key features include a compute-package registry for users to upload and choose packages for training sessions, a new step-by-step interface to guide users through session setup, a dedicated model and session page for a clearer view of training outcomes, and enhanced event page filtering for better readability.

  1. Generate Session ID if Not Set by User: Implemented functionality to automatically generate a session ID if not provided by the user.
  2. Validation and Messages for Package Form: Enhanced the validation checks and error messages for the package form in the studio, ensuring better input handling.
  3. Add Feature Flags: Introduced feature flags, allowing users to enable or disable specific functionalities within the application.
  4. Make Project Name More Visible: Improved the visibility of the active  project name in the studio interface for a better user experience.
  5. Session IDs Should Not Contain White Space: Implemented validation to ensure that session IDs do not contain white space for consistency.
  6. Add Support for JWT Authentication for Clients and REST: Integrated support for JSON Web Token (JWT) authentication for clients and REST API for enhanced security.
  7. Add Compute Package Registry: Introduced a compute package registry, providing a centralized system for managing and storing computational packages.
  8. Download Model from Studio UI: Added functionality to allow users to download models directly from the studio's user interface.
  9. Filter Functionality for Events: Implemented a filtering mechanism for events, enabling users to focus on specific events within the studio.
  10. Display Dates Formatted: Improved the display of dates in the studio by formatting them for better readability and understanding.
  11. Display Model Trail in Studio: Introduced the display of model trails in the studio interface, enhancing the tracking of model development.
  12. Download Metrics of Models as a CSV File (Model): Added the ability for users to download metrics of models in CSV file format.
  13. Add Helper Choice Numpy and Android: Included helper choices for Numpy and Android, assisting users in their development processes.
  14. Fedn v0.8: Integrated Fedn v0.8 into the studio application for utilizing the latest features and improvements.
  15. When No Clients Are Connected to Combiner, It Should Say So in the UI: Resolved the issue where the absence of connected clients to the combiner was not appropriately communicated.

For more information on how to get started, please visit the documentation:

https://guide.scaleoutsystems.com/#/docs

FEDn SDK 0.8.0

The release of FEDn version 0.8.0 emphasizes operational efficiency, increased robustness, and enhanced flexibility, enabling users to leverage federated learning more efficiently. The following summarizes the key improvements introduced in this version:

  1. Transition from FEDn Dashboard to FEDn Studio: This release transitions from the FEDn Dashboard to FEDn Studio, streamlining our graphical user interface (GUI) initiatives. The consolidation of dashboards into FEDn Studio reduces the allocation of effort and resources away from core development, allowing for focused enhancement of programming interfaces and command-line interactions within the FEDn SDK/CLI, thus ensuring an improved user experience.
  2. Enhanced Storage Management at the Combiner: One of the challenges in federated learning is storage management, particularly with intermediate model artefacts. To mitigate the risk of storage overflow, we've implemented a solution at the Combiner level. Intermediate models are now automatically deleted by default after aggregation. Users can opt to retain combined models per round for traceability, with the flexibility to configure this behavior according to their specific requirements.
  3. Unified gRPC Stream for Training and Validation: Previously, FEDn used separate gRPC streams for training and validation tasks, leading to potential complexities and inefficiencies. In response, we've refactored the system to leverage a single stream, enhancing robustness and simplifying communication. Different tasks are distinguished using a "type" field in the gRPC requests, ensuring clarity and consistency in data transmission.
  4. Dynamic Aggregator Configuration: With FEDn v0.8.0, we introduce dynamic aggregator configuration, allowing users to seamlessly switch between aggregators between training sessions. The addition of plugins such as FedAdam (fedopt) expands the toolkit, enabling users to choose the most suitable aggregator for their specific use cases. Switching between supported aggregators can be done using the start_session method in the APIClient.
  5. Documentation Enhancements: We've made several improvements to the documentation, with a particular focus on guiding users through the process of implementing custom aggregator plugins. These enhancements aim to empower users with the knowledge and resources needed to maximize the potential of federated learning within their projects.

For more information and detailed release notes, visit the FEDn GitHub repository:

https://github.com/scaleoutsystems/fedn/releases