Fedbiomed Main components
Fed-BioMed has three main components ensuring the correct execution of federated learning algorithms.These components are Node, Researcher and Network, and are defined in the following sections:
Node
In Fed-BioMed, Node provides 2 main functionalities:
Nodestores datasets, upon which the Federated Learning Model will be trained. Datasets paths towards files and folders in a TinyDB database, as well as other metadata such as datatype, data shape, ... .Nodetrains a model upon aTrainRequest(sent byResearcher), and send it back to theResearcheronce training is completed.
Node is a client that is responsible for sending replies in response to Researcher requests. Since Node is not a server, communication between node and researcher is provided through Network component. When a node is started,
it directly connects to the Network component.
More details about Node installation can be found here.
Researcher
In Fed-BioMed, a Researcher is an entity that defines the Federated Learning model. In order to define a model, Researcher has to provide 3 elements:
- a
TrainingPlan(containing a model, method to load/pre-process data and dependencies) - a
Strategy, which defines how nodes are selected / sampled while training a Federated Mode - an
Aggregator, which purpose is to aggregate the local model coming from each node into an aggregated model. Aggregation is performed onResearcherside.Researchercan be run using plain Python scripts or Jupyter Notebook (thus in an interactive fashion).
Researcher orchestrates the training, by sending Requests to Nodes. Thus, for each Request sent by the Researcher, Node must answer back with an appropriate Reply.
More details about Researcher and its installation can be found here.
Network
Network is an entity connecting researcher to the nodes. It provides a Restful HTTP server used for sending TrainingPlan and model weights between Nodes and Researcher, and a MQTT server for short and fast message and Requests exchange between Node and Researcher. Furthermore, MQTT server enables each Node to communicate with other Nodes without passing by the Researcher, permitting much more flexibility than other communication protocols such as gRPC.
Network should work as a Trusted Third Party when considering advanced security options & protocols. More details about its configuration and deployment can be found here.
Fed-BioMed Architecture
Relationship between each main component aforementioned is detailed in the figure below:
As shown in the diagram, Network is a central component in Fed-BioMed, that links Nodes to Researcher, and ensures message and files delivery. Nodes are in charge of running the model sent by the Researcher, and send the resulting trained model to the Researcher. Large files such as TrainingPlan and model parameters are exchanged over a Restful HTTP server whereas messages, Requests and Replies are sent through a MQTT server.
Network configuration
For information on how to configure Network, please follow Network configuration steps
Node configuration
For information on how to configure Node, please follow Node configuration steps
Researcher configuration
For information on how to configure Researcher, please follow Researcher configuration steps