@chongshenng/fed-tab
flwr new @chongshenng/fed-tabTabular Federated Learning with TabPFN on the Forest Covertypes Tabular Dataset
This code exemplifies a federated learning setup using the Flower framework on the "forest covertype" tabular dataset. The dataset correspond to 30×30m patches of forest in the US, collected for the task of predicting each patch’s cover type, i.e. the dominant species of tree. The dataset is partitioned into subsets, each holding a distinct portion of the data. The TabPFN-2 transformer-based foundation model for tabular data is used for this task, and federated leraning is performed using the FedAvg strategy over 10 rounds.
Set up the project
Fetch the app
Install Flower:
pip install flwr
Fetch the app:
flwr new @chongshenng/fed-tab
This will create a new directory called fed-tab containing the following files:
fed-tab ├── fed-tab │ ├── 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
Install dependencies and project
Install the dependencies defined in pyproject.toml as well as the fed-tab package.
# From a new python environment, run: pip install -e .
Run the Example
You can run your ClientApp and ServerApp in both simulation and deployment mode without making changes to the code. If you are starting with Flower, we recommend you using the simulation model as it requires fewer components to be launched manually. By default, flwr run will make use of the Simulation Runtime.
Run with the Simulation Runtime
TIP
This example runs faster when the ClientApps have access to a GPU. If your system has one, you can make use of it by configuring the backend.client-resources component in your Flower Configuration. Check the Simulation Runtime documentation to learn more about Flower simulations and how to optimize them.
flwr run .
You can also override some of the settings for your ClientApp and ServerApp defined in pyproject.toml. For example:
flwr run . --run-config "num-server-rounds=5 fraction-train=0.2"
Run with the Deployment Runtime
Follow this how-to guide to run the same app in this example but with Flower's Deployment Runtime. After that, you might be intersted in setting up secure TLS-enabled communications and SuperNode authentication in your federation.
If you are already familiar with how the Deployment Runtime works, you may want to learn how to run it using Docker. Check out the Flower with Docker documentation.