diff --git a/docs/aggregators.rst b/docs/aggregators.rst index 7075b1287..7878bcab5 100644 --- a/docs/aggregators.rst +++ b/docs/aggregators.rst @@ -114,3 +114,6 @@ This extension can then simply be called as such: result_myaggregator = client.start_session(**session_config) +.. 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. \ No newline at end of file diff --git a/docs/apiclient.rst b/docs/apiclient.rst index 4da69839b..7777187f8 100644 --- a/docs/apiclient.rst +++ b/docs/apiclient.rst @@ -1,6 +1,6 @@ .. _apiclient-label: -Using the Python API +Using the FEDn API Client ==================== FEDn comes with an *APIClient* - a Python3 library that can be used to interact with FEDn programmatically. @@ -132,4 +132,9 @@ To get a specific session: For more information on how to use the APIClient, see the :py:mod:`fedn.network.api.client`, and the collection of example Jupyter Notebooks: -- `API Example `_ . \ No newline at end of file +- `API Example `_ . + + +.. meta:: + :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. \ No newline at end of file diff --git a/docs/architecture.rst b/docs/architecture.rst index 85e2430da..af4549029 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -52,3 +52,6 @@ Then, a configurable aggregation protocol on the *Controller* level is responsib many different possible outcomes can be achieved. Good starting configurations are provided out-of-the-box to help the user get started. See :ref:`agg-label` and API reference for more details. +.. meta:: + :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. \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 1c3cdcbb3..f1c93b69e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -24,7 +24,6 @@ "sphinx.ext.viewcode", "sphinx_rtd_theme", "sphinx_code_tabs", - "sphinx_design", ] # The master toctree document. @@ -106,6 +105,6 @@ epub_exclude_files = ["search.html"] # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {"https://docs.python.org/": None} +intersphinx_mapping = {"python": ("https://docs.python.org/", None)} pygments_style = "sphinx" diff --git a/docs/developer.rst b/docs/developer.rst index a631657f7..14d923605 100644 --- a/docs/developer.rst +++ b/docs/developer.rst @@ -264,3 +264,7 @@ For the client, you need to set the following environment variables: - **Description:** The authentication scheme used in the FEDn API and gRPC interceptors. You can use `--token` flags in the FEDn CLI to set the access token. + +.. meta:: + :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 \ No newline at end of file diff --git a/docs/faq.rst b/docs/faq.rst index b40ab2f5b..3bbf6cccb 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -86,3 +86,7 @@ with the Scaleout team. - `Validating a System Development Kit for edge federated learning `__ - `Trusted Execution Environments for Federated Learning: `__ - `Robust IoT Security: Intrusion Detection Leveraging Contributions from Multiple Systems `__ + +.. meta:: + :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. \ No newline at end of file diff --git a/docs/helpers.rst b/docs/helpers.rst index 277ec1c40..7a140687a 100644 --- a/docs/helpers.rst +++ b/docs/helpers.rst @@ -28,3 +28,6 @@ file called ‘myhelper.py’ in the folder fedn.utils.helpers.plugins. See the Keras and PyTorch quickstart examples and :py:mod:`fedn.utils.helpers.plugins.numpyhelper` for further details. +.. meta:: + :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. \ No newline at end of file diff --git a/docs/introduction.rst b/docs/introduction.rst index e4d77283e..ec14e8ef7 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -57,7 +57,7 @@ From development to FL in production: Available client APIs: -- Python client (this repository) +- Python client (`FEDn C++ client `__) - C++ client (`FEDn C++ client `__) - Android Kotlin client (`FEDn Kotlin client `__) @@ -67,4 +67,8 @@ Support Community support in available in our `Discord server `__. -For professionals / Enteprise, we offer `Dedicated support `__. \ No newline at end of file +For professionals / Enteprise, we offer `Dedicated support `__. + +.. 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. \ No newline at end of file diff --git a/docs/projects.rst b/docs/projects.rst index ff4c6e735..af8d4b777 100644 --- a/docs/projects.rst +++ b/docs/projects.rst @@ -1,7 +1,7 @@ .. _projects-label: ================================================ -Develop your own project +Develop a FEDn project ================================================ This guide explains how a FEDn project is structured, and details how to develop your own @@ -437,3 +437,6 @@ and its integration with popular machine learning frameworks like PyTorch and Te - `FEDN + Self-supervised learning `__ +.. meta:: + :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. \ No newline at end of file diff --git a/docs/quickstart.rst b/docs/quickstart.rst index c81bf9752..7ea5c37d6 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -202,3 +202,7 @@ For developers looking to customize FEDn and develop own aggregators, check out to learn how to set up an all-in-one development environment using Docker and docker-compose: :ref:`developer-label` + +.. 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. \ No newline at end of file diff --git a/docs/requirements.txt b/docs/requirements.txt index d29d3002d..46a0b5e64 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,3 +1,2 @@ sphinx-rtd-theme sphinx_code_tabs -sphinx_design