Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/SK-1002 | Look over SEO for FEDn docs #700

Merged
merged 3 commits into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading