Lancer des applications Flower

Pour lancer une application Flower sur SuperGrid, vous avez besoin d’une fédération. La fédération peut être une fédération de simulation ou une fédération de déploiement. Pour les fédérations de déploiement, les nœuds Super doivent également être ajoutés à la fédération. Si vous avez encore besoin de créer une fédération, voir Créez et Gérez les Fédérations sur SuperGrid. Si vous avez besoin d’enregistrer et de connecter des nœuds Super avant cela, voir Connecter des SuperNodes à la grille SuperGrid.

Ce guide montre deux façons de lancer une application Flower sur SuperGrid : directement à partir de Flower Hub, et depuis un projet d’application Flower sur votre machine. Il utilise l’application @flwrlabs/quickstart-numpy comme exemple, mais le même workflow s’applique aux autres applications Flower, qu’elles soient listées ou non sur la plateforme Flower.

The sections below show the SuperGrid UI workflow. At the end of this page, the same steps are shown in compact form with the Flower CLI.

Lancer des applications Flower à partir de la plateforme Flower

Exécuter directement à partir de la plateforme Flower est la façon la plus rapide de commencer. Ouvrez une page d’application, par exemple @flwrlabs/quickstart-numpy, et cliquez sur Run.

Page d'application Flower sur la plateforme Flower

Sélectionnez la fédération pour exécuter l’application, puis cliquez sur Run app.

Dialogue d'exécution dans SuperGrid

Après le démarrage de l’exécution, ouvrez la fédération dans le SuperGrid dashboard pour inspecter l’état de l’exécution.

Page des détails d'exécution montrant le progrès de l'application

Ouvrez la page Logs pour inspecter les journaux d’application.

Onglet des journaux montrant les journaux de l'exécution de l'application

S’il vous revient à la page de la fédération, l’exécution apparaît dans la liste des exécutions pour cette fédération.

Page de détails de la fédération montrant l'exécution qui a été lancée

Lancer des applications Flower depuis votre machine

Vous pouvez également lancer une application Flower sur SuperGrid depuis votre machine locale. Utilisez ce workflow lorsque vous voulez inspecter ou modifier une application avant de la soumettre à SuperGrid, ou lorsque vous êtes en train de développer une application Flower localement et ne souhaitez pas la lister sur la plateforme Flower.

Cette section suppose que vous avez configuré un environnement Python. Installez Flower avec pip :

$ pip install -U flwr

Tirez l’application localement avec flwr new :

$ flwr new @flwrlabs/quickstart-numpy
$ cd quickstart-numpy

Connectez-vous ensuite à SuperGrid avec flwr login. Cela ouvre une fenêtre de navigateur où vous pouvez vous authentifier avec votre compte SuperGrid. Finalement, exécutez l’application avec flwr run et utilisez --federation pour choisir la fédération :

Note

Remplacez @<username>/<federation-name> par le nom unique de votre fédération, par exemple @peter123/my-federation.

# This opens a browser window where you can log in to SuperGrid.
$ flwr login supergrid

$ flwr run . --federation @<username>/<federation-name>

L’exécution apparaît dans le même tableau de bord de SuperGrid pour la fédération.

Interface de dashboard SuperGrid montrant l'exécution lancée récemment dans la fédération

Personnaliser la configuration d’exécution

Flower Applications peuvent définir des paramètres de runtime par défaut dans la section [tool.flwr.app.config] de leur pyproject.toml. L’application quickstart-numpy utilisée dans ce guide définit num-server-rounds pour contrôler le nombre de tours que son ServerApp exécute :

[tool.flwr.app.config]
num-server-rounds = 3

Les applications peuvent définir des paramètres supplémentaires dans cette section et les lire à partir du code de l’application, par exemple les taux d’apprentissage, les tailles de modèle, les tailles de lot ou les options spécifiques au jeu de données.

Vous pouvez surcharger les valeurs définies par l’application pour une seule exécution avec la flag --run-config. La commande suivante exécute quickstart-numpy sur SuperGrid avec num-server-rounds défini à 5 :

$ flwr run . supergrid --federation @<username>/<federation-name> \
    --run-config "num-server-rounds=5"

Note

Pour plus de détails sur la configuration d’Application Flower dans pyproject.toml, voir Configurez un pyproject.toml.

Advanced

Everything shown above in the SuperGrid UI can also be done with the Flower CLI.

Log in to SuperGrid:

$ flwr login supergrid

Run an app directly from Flower Hub:

$ flwr run @flwrlabs/quickstart-numpy supergrid \
    --federation @<username>/<federation-name> \
    --stream

Inspect runs and logs from the terminal:

# List all your runs (across federations)
$ flwr list supergrid
# Show additional details of a run
$ flwr list --run-id <run-id> supergrid
# Show federation details (including runs) for a specific federation
$ flwr federation list supergrid --federation @<username>/<federation-name>
# Show logs of a run
$ flwr log <run-id> supergrid