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.
Sélectionnez la fédération pour exécuter l’application, puis cliquez sur Run app.
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.
Ouvrez la page Logs pour inspecter les journaux d’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.
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.
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