Replies: 4 comments 4 replies
-
For all the usage code blocks, the |
Beta Was this translation helpful? Give feedback.
-
Thanks for adding more implementation details, @nisha987, I think it's a very good starting point! On the other hand, I think the sequence diagram you've shared mostly corresponds to the In fact, for As a next step, I would therefore suggest creating a separate sequence diagram for |
Beta Was this translation helpful? Give feedback.
-
PS: in terms of implementation sequence, it could make sense to deliver branching support for |
Beta Was this translation helpful? Give feedback.
-
Another small question - what does "All branches must adhere to Metaflow validation rules" mean? Could you reference those rules, presumably from Metaflow's documentation? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Branching in Metaflow can be explained with parallel steps. it supports any number of parallel branches. This proposal is to enable branching support for Vertical Federated Learning (VFL) in OpenFL, providing a flexible workflow management system that allows for complex, multi-path federated learning scenarios.
Motivation
Proposal
Vertical FL
Vertical Federated Learning (VFL) is a federated machine learning method that allows multiple clients, each possessing complementary and non-overlapping features about the same entity, to collaboratively train machine learning models without disclosing their raw data. This approach is particularly valuable in situations where organizations have distinct yet highly informative data subsets. By combining these subsets, VFL can significantly improve the predictive performance of machine learning models.
Core Features
We propose branching support for the following use-case:
This use-case addresses the branching within collaborator steps. collaborator can branch into multiple steps and join at the end. Example mentioned below is for understanding how branching works and not a usage example.
Implementation Requirements
Scheduling the collaborator
Parallel Execution:
Implementation:
Components which will require changes:
FLSpec:
The
FLSpec
class needs to be updated to support branch selection and routing in thenext()
method. Currently, thenext()
method supports transitioning to the next task withforeach
parameter for collaborator selection. It needs to be extended to handle branching.next()
method: Modify to handle a new keyword parameterbranches
which will specify different execution paths based on branch names.Runtime Changes
Both
LocalRuntime
andFederatedRuntime
need updates to handle branch execution and joining. The primary focus is on ensuring that branching works in both simulation and distributed environments.Aggregator Changes
The aggregator component is central to the branching feature and requires significant changes.
The sequence diagram below illustrates the enhanced internal flow of the aggregator component when handling branching in Vertical Federated Learning. The key steps include:
next()
with thebranches
parameter to dispatch different tasks to different collaboratorsSequence diagram for federated runtime is added below. Key differences from the LocalRuntime approach include:
The 1:1 mapping between branches and collaborators is maintained, with each branch executing on its dedicated collaborator via its associated envoy.
Implementation Approach
1.1. Add branching support to
FLSpec.next()
method1.2. Create helper utilities for branch-to-collaborator mapping
1.3. Add branch-specific decorators (if needed)
2.1. Update
LocalRuntime
to handle branching execution2.2. Test with simulation-based workflows
2.3. Update
FederatedRuntime
to support distributed branching3.1. Modify aggregator to handle branch task assignment and execution
3.2. Implement efficient join operation for branches
3.3. Update task tracking and result collection
Sample Usage Example
Limitations and Scope
Current Design and Limitations
Next steps and other information.
Beta Was this translation helpful? Give feedback.
All reactions