🌐 FedModelKit (fmk)
FedModelKit is a Python library designed to streamline the execution of federated learning tasks within a network of collaborating partners.
It provides a guided workflow that helps users quickly set up experiments, manage dependencies, and follow step-by-step instructions through generated resources.
📑 Table of Contents
🔎 Overview
Federated learning enables multiple partners to train machine learning models collaboratively without sharing raw data.
The FedModelKit library simplifies this process by:
- Automating project initialization
- Creating a reproducible experiment directory with all required dependencies
- Offering a clear, step-by-step workflow to run experiments in a federated network
🧩 Dependencies
These are the dependencies of the packages, including the required Python version:
| Dependency | Version | Description |
|---|---|---|
| Python | >=3.12 | Required Python interpreter version |
flwr[simulations] |
==1.17.0 | Federated learning framework and simulations with Flower |
flwr_datasets |
>=0.5.0 | Datasets compatible with Flower |
mlflow |
==3.11.1 | For experiment tracking and logging |
pandas |
>=2.3.3 | Data manipulation and analysis |
⚙️ Installation
It is recommended to install FedModelKit inside a virtual environment.
We suggest using uv for fast and reproducible setups:
-
Create and activate a virtual environment
uv venv source .venv/bin/activate
or in case of Windows OS
uv venv .venv\Scripts\activate
-
Install
FedModelKituv pip install FedModelKit
🚀 Quick Start
Initialize a new federated learning experiment with:
fmk init -n my_experiment
This will generate in the present directory the project for a new FL experiment.
📖 Next Steps
👉 Once the experiment directory has been created, open the file README.md that has been generated in your directory and follow the guided workflow to set up and run your federated learning tasks.
⚖️ License & Commercial Use
This software is Source Available and distributed under a Dual Licensing model.
🎓 Non-Commercial Use (Community)
This project is free for personal use, education, non-profit organizations, and academic research under the PolyForm Noncommercial License 1.0.0.
- ✅ You can read, modify, and execute the code.
- ✅ You can use it for personal and research projects.
- ❌ You may NOT use it for commercial purposes or in business environments without a commercial license.
Check the LICENSE file for full terms.
💼 Commercial Use (Businesses)
If you wish to use this software in a commercial product, a business, or any revenue-generating environment, you must purchase a Commercial License.
The Commercial License grants you:
- The right to use the software in commercial production environments.
- Exemption from the PolyForm license restrictions.
- Priority support (optional).
📩 To purchase a license, please contact us at: federico.alvarez@upm.es
Metadata
Release files for FedModelKit 0.9.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fedmodelkit-0.9.7.tar.gz | 23.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fedmodelkit-0.9.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.0 MB
Release files / fedmodelkit-0.9.7.tar.gz
| Download URL | fedmodelkit-0.9.7.tar.gz |
|---|---|
| Size | 23.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
31aee796bbf4f5962ac211e81e946ead659d3fe84fcc6d5d3732209f0057389f
|
|
BLAKE2b-256 checksum How to use checksums |
1b83c9033bc73e0c2d9abae8fc7e1c40d15df68caaa9f38cc2abefe22669252c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / fedmodelkit-0.9.7-py3-none-any.whl
| Download URL | fedmodelkit-0.9.7-py3-none-any.whl |
|---|---|
| Size | 23.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d8568c97125deba2dc37a72eaf96217ead0f06100f891b573bd1bee43ca5e635
|
|
BLAKE2b-256 checksum How to use checksums |
c12c6f2d06bc53da68d224d24a9dadd55b9b08a4b77ad27975a3ca2ce443f1be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|