This code is part of thesis work to establish the FLNotify framework as a keycomponent in future federated learning architectures.
This repository is composed of 4 different components:
- infrastructure which contains the code for easily spinning up and down on AWS the required components for FedLess
- FLNotify is the package which provides notification for the security
- Modified FedLess version to include interaction with FLNotify to allow easy notification to security
- Flower based code with interaction to FLNotify, enabling another framework to integrate with this.
Run:
pip install awscli
aws configure
- Download terraform based on your platform from HashiCorp.
- Go to directory
cd infrastructure
- Get AWS credentials
- Run
terraform apply
- Go to Directory
cd infrastructure
- Get AWS credentials
- Run
terraform destroy
Assuming installation has already happened, if not, please see Installation
- Login to kubectl, run:
aws eks update-kubeconfig --region region-code --name my-cluster
- Go to Fedless\kubernetes
- Go to data-file-store
- run
kubectl -f deployment.yaml
- run
kubectl -f service.yaml
- Go to parameter-server
- create a helm package:
helm package parameter-server
- deploy helm chart:
helm install -f parameter-server/values.yaml parameter-store parameter-server-0.1.0.tgz
- deploy openwhisk on the cluster:
??
- deploy invoker
??
- deploy aggregator:
?
Run:
git clone https://github.com/andreas-grafberger/leaf.git
cd data\femnist
./preprocess.sh -s niid --sf 0.25 -k 100 -t sample --smplseed 1549786595 --spltseed 1549786796 --nochecksum
cd ../shakespeare
./preprocess.sh -s niid --sf 1.0 -k 64 -tf 0.9 -t sample --nochecksum
Go to scripts and run any of the existing experiments
TBD