Features
Work in Progress
- [ ] Putting model and data referenced in Strategy outside of it: Strategies do not depend on model or data, only on aggregation functions. Instead, writing some wrappers on aggregation functions to take care of any model/data, using Fabric.
- [x] Writing wrappers for logging (both via Rich and Tensorboard). SHould not been done via rewriting the functions inside the Strategy.
- [ ] Working on importing dynamically other LightingModules.
- [ ] Working on providing a better package, with both CLI available, and the possibility of using directly the wrappers or the Client.
- [ ] Improving the Documentation part and docstrings of the code.
- [x] GitHub Pages available.
- [ ] Adding some other datasets and models: see point above.
- [x] Adding a test suite using pytest: see here https://typer.tiangolo.com/tutorial/testing/
- [x] Thoughts on Checkpointing.
- [ ] Adding commands to deal with data downloading and/or preprocessing?
- [ ] Integration of Differential Privacy.
- [ ] Integration of FHE
- [ ] Adding other strategies:
- FedProx
- ...
- [x] Refacto: splitting flower directory into flower and typer parts. Separating commands themselves from code of Flower.
- [ ] Better logging: fusion between logging through Rich Console and logging from Flower?
- [x] Use Pydantic to control config files and the good use of the different tools.
- [x] Adding the possibility to save the weights of the model. Cane be done using Fabric.
- [x] Working on Docker part.
- [x] Using only LightningDataModule, and getting rid of load_data.
- [x] Logging with tensorboard.
## Road Map
Here is a list of more mid/long term ideas to implement in Pybiscus for Federated Learning.