Quickstart fastai¶
Dans ce tutoriel d’apprentissage fédéré, nous allons apprendre à entraîner un modèle SqueezeNet sur MNIST à l’aide de Flower et fastai. Il est recommandé de créer un environnement virtuel et d’exécuter tout cela dans un virtualenv.
Alors, clonez l’exemple de code directement depuis GitHub :
git clone --depth=1 https://github.com/flwrlabs/flower.git _tmp \
&& mv _tmp/examples/quickstart-fastai . \
&& rm -rf _tmp && cd quickstart-fastai
Cela créera un nouveau répertoire appelé quickstart-fastai contenant les fichiers suivants :
quickstart-fastai
├── fastai_example
│ ├── client_app.py # Defines your ClientApp
│ ├── server_app.py # Defines your ServerApp
│ └── task.py # Defines your model, training and data loading
├── pyproject.toml # Project metadata like dependencies and configs
└── README.md
Ensuite, activez votre environnement, puis exécutez :
# Navigate to the example directory
$ cd path/to/quickstart-fastai
# Install project and dependencies
$ pip install -e .
Cet exemple utilise un profil de simulation local qui flwr run soumet à un SuperLink géré local, qui exécute ensuite l’exécution avec le Simulation Runtime Flower, créant une fédération de 10 nœuds en utilisant FedAvg comme stratégie d’agrégation. Le dataset sera partitionné en utilisant le IidPartitioner du Dataset Flower. Laissez-nous exécuter le projet :
# Run with default arguments and stream logs
$ flwr run . --stream
Le processus flwr run . soumet l’exécution, imprime l’ID d’exécution et retourne sans diffuser les journaux. Pour le workflow local complet, voir Exécuter Flower Localement avec un SuperLink Géré.
Avec les arguments par défaut, vous verrez une sortie en flux continu comme celle-ci :
Starting local SuperLink on 127.0.0.1:39093...
Successfully started run 1859953118041441032
INFO : Starting FedAvg strategy:
INFO : ├── Number of rounds: 3
INFO : [ROUND 1/3]
INFO : configure_train: Sampled 5 nodes (out of 10)
INFO : aggregate_train: Received 5 results and 0 failures
INFO : └──> Aggregated MetricRecord: {}
INFO : configure_evaluate: Sampled 10 nodes (out of 10)
INFO : aggregate_evaluate: Received 10 results and 0 failures
INFO : └──> Aggregated MetricRecord: {'eval_loss': 3.1197, 'eval_acc': 0.14874}
INFO : [ROUND 2/3]
INFO : ...
INFO : [ROUND 3/3]
INFO : ...
INFO : Strategy execution finished in 72.84s
INFO : Final results:
INFO : ServerApp-side Evaluate Metrics:
INFO : {}
Vous pouvez également surcharger les paramètres définis dans la section [tool.flwr.app.config] de pyproject.toml comme suit:
# Override some arguments
$ flwr run . --run-config num-server-rounds=5
Astuce
Vérifiez la documentation de Run simulations pour en savoir plus sur la façon de configurer et d’exécuter les simulations Flower.
Note
Vérifiez le sommaire de ce tutoriel dans examples/quickstart-fastai dans le dépôt GitHub Flower.