From 58c4e3c40365f16885a3f203685c8b6d90f372f5 Mon Sep 17 00:00:00 2001 From: Chong Shen Ng Date: Sat, 14 Sep 2024 08:27:57 +0100 Subject: [PATCH] docs(framework) Add Flower architecture explanation (#3270) Co-authored-by: Daniel J. Beutel Co-authored-by: Charles Beauville Co-authored-by: Taner Topal Co-authored-by: Heng Pan --- .../_static/flower-architecture-ECE.png | Bin 63522 -> 0 bytes .../_static/flower-architecture-VCE.png | Bin 60825 -> 0 bytes ...flower-architecture-basic-architecture.svg | 4 + .../flower-architecture-deployment-engine.svg | 4 + .../flower-architecture-hub-and-spoke.svg | 4 + .../flower-architecture-multi-run-1.svg | 4 + .../flower-architecture-multi-run-2.svg | 4 + .../_static/flower-architecture-multi-run.svg | 4 + .../_static/flower-architecture.drawio.png | Bin 296021 -> 0 bytes doc/source/conf.py | 4 +- .../contributor-explanation-architecture.rst | 28 --- .../explanation-flower-architecture.rst | 180 ++++++++++++++++++ doc/source/index.rst | 2 +- 13 files changed, 207 insertions(+), 31 deletions(-) delete mode 100755 doc/source/_static/flower-architecture-ECE.png delete mode 100755 doc/source/_static/flower-architecture-VCE.png create mode 100644 doc/source/_static/flower-architecture-basic-architecture.svg create mode 100644 doc/source/_static/flower-architecture-deployment-engine.svg create mode 100644 doc/source/_static/flower-architecture-hub-and-spoke.svg create mode 100644 doc/source/_static/flower-architecture-multi-run-1.svg create mode 100644 doc/source/_static/flower-architecture-multi-run-2.svg create mode 100644 doc/source/_static/flower-architecture-multi-run.svg delete mode 100755 doc/source/_static/flower-architecture.drawio.png delete mode 100644 doc/source/contributor-explanation-architecture.rst create mode 100644 doc/source/explanation-flower-architecture.rst diff --git a/doc/source/_static/flower-architecture-ECE.png b/doc/source/_static/flower-architecture-ECE.png deleted file mode 100755 index 8ccc83469c5d1b51f5e3f6a53f7e8d66f9e14bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63522 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 diff --git a/doc/source/_static/flower-architecture-VCE.png b/doc/source/_static/flower-architecture-VCE.png deleted file mode 100755 index a7ff1a2c2ace6d971739241f624a4ef32f157f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60825 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 I*CpnE0AyxoH2?qr diff --git a/doc/source/_static/flower-architecture-basic-architecture.svg b/doc/source/_static/flower-architecture-basic-architecture.svg new file mode 100644 index 000000000000..65d0ccc05e96 --- /dev/null +++ b/doc/source/_static/flower-architecture-basic-architecture.svg @@ -0,0 +1,4 @@ + + + +
 Client
SuperNode
ClientApp
 Client
SuperNode
ClientApp
 Client
SuperNode
ClientApp
 Server
ServerApp
SuperLink
\ No newline at end of file diff --git a/doc/source/_static/flower-architecture-deployment-engine.svg b/doc/source/_static/flower-architecture-deployment-engine.svg new file mode 100644 index 000000000000..2e8dbdfd2626 --- /dev/null +++ b/doc/source/_static/flower-architecture-deployment-engine.svg @@ -0,0 +1,4 @@ + + + +
 User
 Client
 Server
ServerApp
[run 1]
SuperLink
SuperExec



SuperNode
ServerApp
[run 2]
ClientApp
[run 1]
Deployment Engine Executor
flwr run
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
\ No newline at end of file diff --git a/doc/source/_static/flower-architecture-hub-and-spoke.svg b/doc/source/_static/flower-architecture-hub-and-spoke.svg new file mode 100644 index 000000000000..c97f74f2413d --- /dev/null +++ b/doc/source/_static/flower-architecture-hub-and-spoke.svg @@ -0,0 +1,4 @@ + + + +
 

Client
 

Server
 

Client
 

Client
 

Client
\ No newline at end of file diff --git a/doc/source/_static/flower-architecture-multi-run-1.svg b/doc/source/_static/flower-architecture-multi-run-1.svg new file mode 100644 index 000000000000..4e75224f5b59 --- /dev/null +++ b/doc/source/_static/flower-architecture-multi-run-1.svg @@ -0,0 +1,4 @@ + + + +
 Client
 Server
ServerApp
[run 1]
SuperLink
SuperNode
ServerApp
[run 2]
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
\ No newline at end of file diff --git a/doc/source/_static/flower-architecture-multi-run-2.svg b/doc/source/_static/flower-architecture-multi-run-2.svg new file mode 100644 index 000000000000..b6d20453e98f --- /dev/null +++ b/doc/source/_static/flower-architecture-multi-run-2.svg @@ -0,0 +1,4 @@ + + + +
 Client
 Server
ServerApp
[run 1]
SuperLink
SuperNode
ServerApp
[run 2]
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
\ No newline at end of file diff --git a/doc/source/_static/flower-architecture-multi-run.svg b/doc/source/_static/flower-architecture-multi-run.svg new file mode 100644 index 000000000000..91df0c514b52 --- /dev/null +++ b/doc/source/_static/flower-architecture-multi-run.svg @@ -0,0 +1,4 @@ + + + +
 Client
 Server
ServerApp
[run 1]
SuperLink
SuperNode
ServerApp
[run 2]
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
 Client
SuperNode
ClientApp
[run 1]
ClientApp
[run 2]
\ No newline at end of file diff --git a/doc/source/_static/flower-architecture.drawio.png b/doc/source/_static/flower-architecture.drawio.png deleted file mode 100755 index a9c3914a1839d4aa198a1e8101a829595c6e16a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296021 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�}}iP4V(ba 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

#}0ByfsI15 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 core framework architecture with Edge Client Engine - -.. figure:: _static/flower-architecture-ECE.png - :width: 80 % - -Virtual Client Engine ---------------------- - -`Flower `_ core framework architecture with Virtual Client Engine - -.. figure:: _static/flower-architecture-VCE.png - :width: 80 % - -Virtual Client Engine and Edge Client Engine in the same workload ------------------------------------------------------------------ - -`Flower `_ core framework architecture with both Virtual Client Engine and Edge Client Engine - -.. figure:: _static/flower-architecture.drawio.png - :width: 80 % diff --git a/doc/source/explanation-flower-architecture.rst b/doc/source/explanation-flower-architecture.rst new file mode 100644 index 000000000000..22691d6091ac --- /dev/null +++ b/doc/source/explanation-flower-architecture.rst @@ -0,0 +1,180 @@ +##################### + Flower Architecture +##################### + +This page explains the architecture of deployed Flower federated +learning system. + +In federated learning (FL), there is typically one server and a number +of clients that are connected to the server. This is often called a +federation. + +The role of the server is to coordinate the training process. The role +of each client is to receive tasks from the server, execute those tasks +and return the results back to the server. + +This is sometimes called a hub-and-spoke topology: + +.. figure:: ./_static/flower-architecture-hub-and-spoke.svg + :align: center + :width: 600 + :alt: Hub-and-spoke topology in federated learning + :class: no-scaled-link + + Hub-and-spoke topology in federated learning (one server, multiple clients). + +In a real-world deployment, we typically want to run different projects +on such a federation. Each project could use different hyperparameters, +different model architectures, different aggregation strategies, or even +different machine learning frameworks like PyTorch and TensorFlow. + +This is why, in Flower, both the server side and the client side are +split into two parts. One part is long-lived and responsible for +communicating across the network, the other part is short-lived and +executes task-specific code. + +A Flower `server` consists of **SuperLink** and ``ServerApp``: + +- **SuperLink**: a long-running process that forwards task instructions + to clients (SuperNodes) and receives task results back. + +- ``ServerApp``: a short-lived process with project-spcific code that + customizes all server-side aspects of federated learning systems + (client selection, client configuration, result aggregation). This is + what AI researchers and AI engineers write when they build Flower + apps. + +A Flower `client` consists of **SuperNode** and ``ClientApp``: + +- **SuperNode**: a long-running process that connects to the SuperLink, + asks for tasks, executes tasks (for example, "train this model on + your local data") and returns task results back to the SuperLink. + +- ``ClientApp``: a short-lived process with project-specific code that + customizes all client-side aspects of federated learning systems + (local model training and evaluation, pre- and post-processing). This + is what AI researchers and AI engineers write when they build Flower + apps. + +Why SuperNode and SuperLink? Well, in federated learning, the clients +are the actual stars of the show. They hold the training data and they +run the actual training. This is why Flower decided to name them +**SuperNode**. The **SuperLink** is then responsible for acting as the +`missing link` between all those SuperNodes. + +.. figure:: ./_static/flower-architecture-basic-architecture.svg + :align: center + :width: 600 + :alt: Basic Flower architecture + :class: no-scaled-link + + The basic Flower architecture for federated learning. + +In a Flower app project, users will typically develop the ``ServerApp`` +and the ``ClientApp``. All the network communication between `server` +and `clients` is taken care of by the SuperLink and SuperNodes. + +.. tip:: + + For more details, please refer to the |serverapp_link|_ and + |clientapp_link|_ documentation. + +With *multi-run*, multiple ``ServerApp``\s and ``ClientApp``\s are now +capable of running on the same federation consisting of a single +long-running SuperLink and multiple long-running SuperNodes. This is +sometimes referred to as `multi-tenancy` or `multi-job`. + +As shown in the figure below, two projects, each consisting of a +``ServerApp`` and a ``ClientApp``, could share the same SuperLink and +SuperNodes. + +.. figure:: ./_static/flower-architecture-multi-run.svg + :align: center + :width: 600 + :alt: Multi-tenancy federated learning architecture + :class: no-scaled-link + + Multi-tenancy federated learning architecture with Flower + +To illustrate how multi-run works, consider one federated learning +training run where a ``ServerApp`` and a ``ClientApp`` are participating +in ``[run 1]``. Note that a SuperNode will only run a ``ClientApp`` if +it is selected to participate in the training run. + +In ``[run 1]`` below, all the SuperNodes are selected and therefore run +their corresponding ``ClientApp``\s: + +.. figure:: ./_static/flower-architecture-multi-run-1.svg + :align: center + :width: 600 + :alt: Multi-tenancy federated learning architecture - Run 1 + :class: no-scaled-link + + Run 1 in a multi-run federated learning architecture with Flower. + All SuperNodes participate in the training round. + +However, in ``[run 2]``, only the first and third SuperNodes are +selected to participate in the training: + +.. figure:: ./_static/flower-architecture-multi-run-2.svg + :align: center + :width: 600 + :alt: Multi-tenancy federated learning architecture - Run 2 + :class: no-scaled-link + + Run 2 in a multi-run federated learning architecture with Flower. + Only the first and third SuperNodes are selected to participate in the + training round. + +Therefore, with Flower multi-run, different projects (each consisting of +a ``ServerApp`` and ``ClientApp``) can run on different sets of clients. + +To help you start and manage all of the concurrently executing training +runs, Flower offers one additional long-running server-side service +called **SuperExec**. When you type ``flwr run`` to start a new training +run, the ``flwr`` CLI bundles your local project (mainly your +``ServerApp`` and ``ClientApp``) and sends it to the **SuperExec**. The +**SuperExec** will then take care of starting and managing your +``ServerApp``, which in turn selects SuperNodes to execute your +``ClientApp``. + +This architecture allows many users to (concurrently) run their projects +on the same federation, simply by typing ``flwr run`` on their local +developer machine. + +.. figure:: ./_static/flower-architecture-deployment-engine.svg + :align: center + :width: 800 + :alt: Flower Deployment Engine with SuperExec + :class: no-scaled-link + + The SuperExec service for managing concurrent training runs in + Flower. + +.. note:: + + This explanation covers the Flower Deployment Engine. An explanation + covering the Flower Simulation Engine will follow. + +.. important:: + + As we continue to enhance Flower at a rapid pace, we'll periodically + update this explainer document. Feel free to share any feedback with + us. + +.. |clientapp_link| replace:: + + ``ClientApp`` + +.. |serverapp_link| replace:: + + ``ServerApp`` + +.. _clientapp_link: ref-api/flwr.client.ClientApp.html + +.. _serverapp_link: ref-api/flwr.server.ServerApp.html + +.. title:: Flower federated learning architecture + +.. meta:: + :description: Explore the federated learning architecture of the Flower framework, featuring multi-run, concurrent execution, and scalable, secure machine learning while preserving data privacy. diff --git a/doc/source/index.rst b/doc/source/index.rst index 4f6ad705e9bc..fe996db62ffb 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -115,6 +115,7 @@ Understanding-oriented concept guides explain and discuss key topics and underly explanation-federated-evaluation explanation-differential-privacy + explanation-flower-architecture References ~~~~~~~~~~ @@ -173,7 +174,6 @@ The Flower community welcomes contributions. The following docs are intended to :maxdepth: 1 :caption: Contributor explanations - contributor-explanation-architecture contributor-explanation-public-and-private-apis .. toctree::