Mettez à niveau en Flower 1.28

Bienvenue dans le guide de migration pour mettre à jour votre configuration Flower vers la dernière version, 1.28. Ce guide vous guidera tout au long des étapes nécessaires pour assurer une transition fluide, y compris les changements de syntaxe de configuration, les nouvelles fonctionnalités et les meilleures pratiques pour tirer parti des dernières capacités de Flower. Ce guide est pertinent pour les utilisateurs qui mettent à jour depuis les versions 1.26 et 1.27.

Diveons-y !

Résumé des changements

Avec Flower 1.26, nous avons introduit la configuration Flower, un nouveau système pour gérer les connexions SuperLink qui remplace l’ancienne section federations dans le fichier pyproject.toml. Cette modification permet des configurations de connexion plus flexibles et réutilisables sur toutes vos applications Flower. Vous pouvez en savoir plus à propos de cela dans la page Flower Configuration reference.

Avec Flower 1.28, nous avons amélioré encore plus la configuration Flower, fermant l’écart de syntaxe entre les connexions SuperLink utilisées pour les simulations Flower et celles utilisées pour exécuter Flower avec le Deployment Runtime. Le résultat ? Une expérience unifiée et cohérente lors du définition des connexions SuperLink, quel que soit le runtime utilisé. Cela signifie que la configuration des simulations (c’est-à-dire le nombre de virtual SuperNodes, les ressources clientes, etc.) est maintenant définie au niveau qui exécute la simulation. Vous pouvez toutefois surcharger ces paramètres pour chaque exécution si vous le souhaitez.

Ce guide vous aidera :

  • Comprenez comment migrer vos connexions existantes pour la simulation dans votre configuration Flower vers la nouvelle syntaxe.

  • Apprenez à visualiser et ajuster la configuration de simulation dans votre SuperLink. Vous pouvez faire cela soit de manière permanente, soit par run.

Avant de commencer, assurez-vous d’avoir mis à jour vers Flower 1.28.

$ pip install -U "flwr[simulation]"
$ flwr --version # should show 1.28.x

Mettez à jour votre configuration Flower

L’mise à jour principale dans votre configuration Flower est de supprimer ou de commenter les paramètres spécifiques aux simulations (c’est-à-dire ceux qui commencent par options.). Ces paramètres sont maintenant définis au niveau et s’appliqueront à toutes les exécutions de simulation utilisant cette SuperLink. De plus, un nouveau champ address doit être ajouté. Il sera utilisé pour lancer une instance gérée SuperLink sur demande. Voyons comment faire cela avec un exemple. Utilisez les étapes suivantes pour mettre à jour votre configuration Flower :

  1. Localisez votre fichier de configuration Flower. Vous pouvez le trouver en exécutant :

    $ flwr config list
    

    Cette section vous montre le chemin vers votre fichier de configuration Flower et les connexions SuperLink définies à l’intérieur. Exemple de sortie :

Flower Config file: /path/to/your/.flwr/config.toml
SuperLink connections:
  local (default)
  supergrid
  1. Ouvrez le fichier de configuration Flower dans un éditeur de texte. Vous devriez voir quelque chose comme ceci:

config.toml
[superlink]
default = "local"

[superlink.supergrid]
address = "supergrid.flower.ai"

[superlink.local]
options.num-supernodes = 10
options.backend.client-resources.num-cpus = 2
options.backend.client-resources.num-gpus = 0.0
  1. Supprimez ou commentez les paramètres spécifiques à la simulation sous la section [superlink.local] (et toute autre connexion que vous avez ajoutée qui inclut également des champs options.). Ajoutez ensuite un nouveau champ contenant address = ":local:". La configuration mise à jour devrait ressembler à ceci:

config.toml
[superlink]
default = "local"

[superlink.supergrid]
address = "supergrid.flower.ai"

[superlink.local]
address = ":local:"
# options.num-supernodes = 10 # or remove this line
# options.backend.client-resources.num-cpus = 2 # or remove this line
# options.backend.client-resources.num-gpus = 0.0 # or remove this line

Introduisons le champ address avec la valeur :local:, ce qui permet à Flower de démarrer un modèle géré SuperLink sur demande lorsque vous soumettez une exécution en utilisant cette connexion. En savoir plus à propos de cela dans le guide Run Flower Locally with a Managed SuperLink.

Configurer des paramètres personnalisés pour les simulations

Note

Ce guide suppose que vous n’avez pas de SuperLink local en cours d’exécution. Si tel est le cas, veuillez l’arrêter. Si vous êtes incertain, veuillez vous référer à la section section on stopping a local SuperLink.

Dans la section ci-dessus, nous avons supprimé les paramètres spécifiques à la simulation du fichier de configuration Flower. Vous pourriez maintenant vous demander comment configurer le nombre de nœuds virtuels SuperNode ou de ressources clientes pour vos simulations. Tout d’abord, vous pouvez inspecter si votre connexion SuperLink pointe vers un SuperLink local géré et prêt à l’exécution des simulations en exécutant :

$ flwr federation list

📄 Listing federations...
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━┓
┃  Federation                       Description                       Runtime    Status ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━┩
│ @none/default  A federation for testing and development purposes.  simulation  active │
└───────────────┴────────────────────────────────────────────────────┴────────────┴────────┘

Notez que le type Runtime est simulation. Vous pouvez ensuite visualiser la configuration de simulation actuelle de votre modèle local géré SuperLink avec la commande suivante :

$ flwr federation list --federation="@none/default"

                        Simulation Configuration
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃            Setting                         Key             Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ Number of Simulated SuperNodes  num-supernodes                10 │
├────────────────────────────────┼───────────────────────────┼───────┤
│ ClientApp Resources (CPUs)      client-resources-num-cpus      2 │
├────────────────────────────────┼───────────────────────────┼───────┤
│ ClientApp Resources (GPUs)      client-resources-num-gpus    0.0 │
├────────────────────────────────┼───────────────────────────┼───────┤
│ Backend Name                    backend                      ray │
└────────────────────────────────┴───────────────────────────┴───────┘

Comme vous pouvez le voir, la configuration actuelle est identique à celle que nous avions avant dans le fichier Configuration Flower config.toml. Pour modifier n’importe quelle de ces paramètres, consultez la section Customize the Simulation Runtime du guide Flower Simulation Runtime reference.