Skip to content

Commit

Permalink
Docs/SK-1085 | Update introduction page (#721)
Browse files Browse the repository at this point in the history
  • Loading branch information
niklastheman authored Oct 4, 2024
1 parent 932129d commit e04f933
Show file tree
Hide file tree
Showing 31 changed files with 35 additions and 57 deletions.
1 change: 0 additions & 1 deletion docs/aggregators.rst
Original file line number Diff line number Diff line change
Expand Up @@ -117,5 +117,4 @@ This extension can then simply be called as such:
.. meta::
:description lang=en:
Aggregators are responsible for combining client model updates into a combiner-level global model. During a training session, the combiners will instantiate an Aggregator and use it to process the incoming model updates from clients.
:robots: index, follow
:keywords: Federated Learning, Aggregators, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
2 changes: 1 addition & 1 deletion docs/apiclient.rst
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,4 @@ For more information on how to use the APIClient, see the :py:mod:`fedn.network.
:description lang=en:
FEDn comes with an APIClient - a Python3 library that can be used to interact with FEDn programmatically. In this tutorial we show how to use the APIClient to initialize the server-side with the compute package and seed models, run and control training sessions and to retrieve models and metrics.
:keywords: Federated Learning, APIClient, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

2 changes: 1 addition & 1 deletion docs/architecture.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,4 @@ many different possible outcomes can be achieved. Good starting configurations a
:description lang=en:
Architecture overview - Constructing a federated model with FEDn amounts to a) specifying the details of the client-side training code and data integrations, and b) deploying the federated network.
:keywords: Federated Learning, Architecture, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

2 changes: 1 addition & 1 deletion docs/auth.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,4 @@ You can use `--token` flags in the FEDn CLI to set the access token.
:description lang=en:
Authentication and Authorization (RBAC) - FEDn supports Role-Based Access Control (RBAC) for controlling access to the FEDn API and gRPC endpoints. The RBAC system is based on JSON Web Tokens (JWT) and is implemented using the `jwt` package.
:keywords: Federated Learning, Authentication and Authorization, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@

html_theme_options = {
"logo_only": True,
"display_version": False,
}

# Add any paths that contain custom static files (such as style sheets) here,
Expand Down
2 changes: 1 addition & 1 deletion docs/developer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -269,4 +269,4 @@ You can use `--token` flags in the FEDn CLI to set the access token.
:description lang=en:
During development on FEDn, and when working on own extentions including aggregators and helpers, it is useful to have a local development setup of the core FEDn server-side services (controller, combiner etc). We provide Dockerfiles and docker-compose template for an all-in-one local sandbox
:keywords: Federated Learning, Developer guide, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

2 changes: 1 addition & 1 deletion docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,4 @@ with the Scaleout team.
:description lang=en:
How do you approach the question of output privacy? We take security in (federated) machine learning seriously. Federated learning is a foundational technology that improves input privacy in machine learning by allowing datasets to stay local and private, and not copied to a server.
:keywords: Federated Learning, FAQ, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

2 changes: 0 additions & 2 deletions docs/fedn.network.api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,3 @@ fedn.network.api.tests module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.clients.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,3 @@ fedn.network.clients.test\_client module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.combiner.aggregators.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,3 @@ fedn.network.combiner.aggregators.fedopt module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.combiner.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,3 @@ fedn.network.combiner.roundhandler module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.controller.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,3 @@ fedn.network.controller.controlbase module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.loadbalancer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@ fedn.network.loadbalancer.loadbalancerbase module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,3 @@ fedn.network.state module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.statestore.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,3 @@ fedn.network.statestore.statestorebase module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.storage.models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@ fedn.network.storage.models.tempmodelstorage module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.storage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,3 @@ Subpackages
fedn.network.storage.s3
fedn.network.storage.statestore

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.storage.s3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@ fedn.network.storage.s3.repository module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.network.storage.statestore.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,3 @@ fedn.network.storage.statestore.statestorebase module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,3 @@ Subpackages
fedn.network
fedn.utils

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.utils.helpers.plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,3 @@ fedn.utils.helpers.plugins.numpyhelper module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.utils.helpers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@ fedn.utils.helpers.helpers module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.utils.plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,3 @@ fedn.utils.plugins.pytorchhelper module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 0 additions & 2 deletions docs/fedn.utils.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,3 @@ fedn.utils.process module
:undoc-members:
:show-inheritance:

.. meta::
:robots: index, follow
2 changes: 1 addition & 1 deletion docs/helpers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ for further details.
:description lang=en:
Model marshalling - In federated learning, model updates need to be serialized and deserialized in order to be transferred between clients and server/combiner. There is also a need to write and load models to/from disk, for example to transiently store updates during training rounds.
:keywords: Federated Learning, Model marshalling, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

1 change: 1 addition & 0 deletions docs/img/machine_learning_centralized_decentralized.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ Indices and tables
:description lang=en:
FEDn is a federated learning platform that is secure, scalable and easy-to-use. FEDn supports the full journey from early testing/exploration, through pilot projects, to real-world deployments and integration.
:keywords: Federated Learning, Machine Learning, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

36 changes: 24 additions & 12 deletions docs/introduction.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
What is Federated Learning?
===========================

Federated Learning is a novel approach to address challenges related to data privacy, security,
and decentralized data distribution. In contrast to traditional machine learning setups where data is collected and stored centrally,
Federated Learning allows for collaborative model training while keeping data local with the data owner or device. This is particularly advantageous in
scenarios where data cannot be easily shared due to privacy regulations, network limitations, or ownership concerns.
Federated learning (FL) is a decentralized approach that tackles the issues of centralized machine learning by allowing models to be trained on data distributed across various locations without moving the data. Instead, FL moves the computation to where the data exists, enabling the creation of strong, globally-informed models while preserving data privacy and security.

At its core, Federated Learning orchestrates model training across distributed devices or servers, referred to as clients or participants.
These participants could be diverse endpoints such as mobile devices, IoT gateways, or remote servers. Rather than transmitting raw data to a central location,
each participant computes gradients locally based on its data. These gradients are then communicated to a server, often called the aggregator.
The server aggregates and combines the gradients from multiple participants to update a global model.
This iterative process allows the global model to improve without the need to share the raw data.
Traditional machine learning
-----------------------------

Traditionally, machine learning follows a centralized model. This approach involves collecting data from various sources into a single, centralized repository, typically in a cloud environment or a dedicated data center. Then, advanced algorithms are applied to this consolidated dataset, training predictive models that can be deployed to make decisions based on new incoming data.

However, the centralized machine learning paradigm is facing growing challenges. The explosion of connected devices, sensors, and distributed data sources has led to an exponential increase in the volume and complexity of data being generated. At the same time, concerns around privacy, security, and regulatory compliance have made it increasingly difficult to freely move and consolidate data from different sources.

The data needed to train effective machine learning models is often distributed across organizations, devices, or clients, making centralization challenging due to privacy risks and high transfer costs.

.. image:: img/machine_learning_centralized_decentralized.svg

How federated learning works
-----------------------------

In federated learning, AI models are trained across multiple devices or servers (called client nodes) without needing to move the data off those devices. Here’s a simplified breakdown of how it works:

1. **Starting the global model -** The process begins with a global model on a central server. This could be any type of machine learning model, like a neural network or decision tree.
2. **Sending the model to clients -** The server sends the global model’s parameters to a group of selected client nodes. Each client uses its own local dataset, which stays securely on the device.
3. **Local training -** Each client trains the model using its local data, adjusting the model’s parameters based on what it learns from the data. This training process is repeated for several rounds, rather than continuing until full accuracy is achieved.
4. **Combining the updates -** The updated models from each client are sent back to the central server, where they are combined. A common approach is called Federated Averaging, where the server takes a weighted average of the updates from each client.

At last, the improved global model is sent back to the clients for further training. This cycle continues until the model reaches a satisfactory level of accuracy.

The FEDn framework
--------------------
Expand Down Expand Up @@ -71,11 +84,10 @@ For professionals / Enteprise, we offer `Dedicated support <https://www.scaleout

.. meta::
:description lang=en:
In contrast to traditional machine learning setups where data is collected and stored centrally, Federated Learning allows for collaborative model training while keeping data local with the data owner or device.
Federated learning is a decentralized approach that tackles the issues of centralized machine learning by allowing models to be trained on data distributed across various locations without moving the data.
:keywords: Federated Learning, Machine Learning, What is federated machine learning, Federated Learning Framework, Federated Learning Platform
:robots: index, follow
:og:title: What is Federated Learning?
:og:description: Federated Learning is a novel approach to address challenges related to data privacy, security, and decentralized data distribution.
:og:description: Federated learning is a decentralized approach that tackles the issues of centralized machine learning by allowing models to be trained on data distributed across various locations without moving the data.
:og:image: https://fedn.scaleoutsystems.com/static/images/scaleout_black.png
:og:url: https://fedn.scaleoutsystems.com/docs/introduction.html
:og:type: website
2 changes: 1 addition & 1 deletion docs/modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ API reference
:description lang=en:
API reference for FEDn, a federated learning platform that is secure, scalable and easy-to-use. FEDn supports the full journey from early testing/exploration, through pilot projects, to real-world deployments and integration.
:keywords: Federated Learning, API reference, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

2 changes: 1 addition & 1 deletion docs/projects.rst
Original file line number Diff line number Diff line change
Expand Up @@ -441,4 +441,4 @@ and its integration with popular machine learning frameworks like PyTorch and Te
:description lang=en:
A FEDn project is a convention for packaging/wrapping machine learning code to be used for federated learning with FEDn. At the core, a project is a directory of files, containing your machine learning code, FEDn entry points, and a specification of the runtime environment for the client.
:keywords: Federated Learning, Machine Learning, Federated Learning Framework, Federated Learning Platform, FEDn, Scaleout Systems
:robots: index, follow

1 change: 0 additions & 1 deletion docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,6 @@ to learn how to set up an all-in-one development environment using Docker and do
.. meta::
:description lang=en: This tutorial is a quickstart guide to FEDn based on a pre-made FEDn Project. It is designed to serve as a starting point for new developers. The first step is to start the server side (aggregator, controller). We do this by setting up a new Project in FEDn Studio.
:keywords: Getting started with Federated Learning, Federated Learning, Federated Learning Framework, Federated Learning Platform
:robots: index, follow
:og:title: Getting started with FEDn
:og:description: This tutorial is a quickstart guide to FEDn based on a pre-made FEDn Project. It is designed to serve as a starting point for new developers.
:og:image: https://fedn.scaleoutsystems.com/static/images/scaleout_black.png
Expand Down

0 comments on commit e04f933

Please sign in to comment.