Skip to content

Commit

Permalink
Feature/SK-1002 | Look over SEO for FEDn docs (#700)
Browse files Browse the repository at this point in the history
  • Loading branch information
niklastheman authored Sep 12, 2024
1 parent 2425a76 commit 1ed8250
Show file tree
Hide file tree
Showing 11 changed files with 39 additions and 8 deletions.
3 changes: 3 additions & 0 deletions docs/aggregators.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
9 changes: 7 additions & 2 deletions docs/apiclient.rst
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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 <https://github.com/scaleoutsystems/fedn/tree/master/examples/notebooks>`_ .
- `API Example <https://github.com/scaleoutsystems/fedn/tree/master/examples/notebooks>`_ .


.. 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.
3 changes: 3 additions & 0 deletions docs/architecture.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
3 changes: 1 addition & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
"sphinx.ext.viewcode",
"sphinx_rtd_theme",
"sphinx_code_tabs",
"sphinx_design",
]

# The master toctree document.
Expand Down Expand Up @@ -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"
4 changes: 4 additions & 0 deletions docs/developer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 4 additions & 0 deletions docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,7 @@ with the Scaleout team.
- `Validating a System Development Kit for edge federated learning <https://www.vinnova.se/en/p/validating-a-system-development-kit-for-edge-federated-learning/>`__
- `Trusted Execution Environments for Federated Learning: <https://www.vinnova.se/en/p/trusted-execution-environments-for-federated-learning/>`__
- `Robust IoT Security: Intrusion Detection Leveraging Contributions from Multiple Systems <https://www.vinnova.se/en/p/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.
3 changes: 3 additions & 0 deletions docs/helpers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
8 changes: 6 additions & 2 deletions docs/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ From development to FL in production:

Available client APIs:

- Python client (this repository)
- Python client (`FEDn C++ client <https://github.com/scaleoutsystems/fedn>`__)
- C++ client (`FEDn C++ client <https://github.com/scaleoutsystems/fedn-cpp-client>`__)
- Android Kotlin client (`FEDn Kotlin client <https://github.com/scaleoutsystems/fedn-android-client>`__)

Expand All @@ -67,4 +67,8 @@ Support
Community support in available in our `Discord
server <https://discord.gg/KMg4VwszAd>`__.

For professionals / Enteprise, we offer `Dedicated support <https://www.scaleoutsystems.com/start#pricing>`__.
For professionals / Enteprise, we offer `Dedicated support <https://www.scaleoutsystems.com/start#pricing>`__.

.. 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.
5 changes: 4 additions & 1 deletion docs/projects.rst
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -437,3 +437,6 @@ and its integration with popular machine learning frameworks like PyTorch and Te
- `FEDN + Self-supervised learning <https://github.com/scaleoutsystems/fedn/tree/master/examples/FedSimSiam>`__


.. 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.
4 changes: 4 additions & 0 deletions docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
1 change: 0 additions & 1 deletion docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
sphinx-rtd-theme
sphinx_code_tabs
sphinx_design

0 comments on commit 1ed8250

Please sign in to comment.