How shuangqing-xu/clover works
Clover is an academic prototype for federated model training with differential privacy and client-side sparsification, alongside a separate maliciously secure shuffle and distributed-DP utilities. The README documents the MNIST, FashionMNIST, and CIFAR-10 training workflow and a standalone shuffle run. Source excerpts show client training and masking, model search, and DP-query construction; the main orchestration and several subsystems are unsampled, so their internal wiring is represented conservatively.
Main entry points: Clover_api.py Federated coordinator · ddpquery_utils.py DP query factory · model_trainer.py Model trainer · Clover-main.py Training entry
Components 20
Federated training
- Training entry
Clover-main.py - Federated coordinator
Clover_api/Clover/Clover_api.py - Dataset loaders
Clover_api/data_preprocessing - Client training
Clover_api/Clover/client.py - Sparse client training
Clover_api/Clover/set_client.py - Model trainer
Clover_api/Clover/model_trainer.py - FedAvg aggregation
Clover_api/Clover/fedavg_trainer.py
Models and search
- Vision models
Clover_api/model/cv - DARTS search
Clover_api/model/cv/darts/train_search.py - Search network
Clover_api/model/cv/darts/model_search.py
Privacy mechanisms
- Distributed DP run
MaliciousSecurity/distributed_dp/fl_run.py - DME run
MaliciousSecurity/distributed_dp/dme_run.py - DP orchestration
MaliciousSecurity/distributed_dp/fl_utils.py - DP query factory
MaliciousSecurity/distributed_dp/ddpquery_utils.py - Compression query
MaliciousSecurity/distributed_dp/compression_query.py - Noise queries
MaliciousSecurity/distributed_dp - Privacy accounting
MaliciousSecurity/distributed_dp/accounting_utils.py
Secure shuffle
- Secure shuffle run
MaliciousSecurity/rss_shuffle_mali.py
Other components
- Experiment operator
- Shuffle participants
Connections 19
- Experiment operator → Training entry: starts training
- Training entry → Federated coordinator: runs federated training
- Federated coordinator → Dataset loaders: loads datasets
- Federated coordinator → Client training: dispatches local training
- Federated coordinator → Sparse client training: dispatches sparse training
- Client training → Model trainer: trains and tests
- Sparse client training → Model trainer: trains and tests
- Model trainer → Vision models: uses model
- Federated coordinator → FedAvg aggregation: coordinates aggregation
- Experiment operator → DARTS search: starts search
- DARTS search → Search network: trains search network
- Experiment operator → Distributed DP run: starts DP run
- Experiment operator → DME run: starts DME run
- Distributed DP run → DP orchestration: uses training utilities
- DP orchestration → DP query factory: builds DP query
- DP query factory → Compression query: wraps query
- DP query factory → Noise queries: selects mechanism
- DP query factory → Privacy accounting: calculates bounds
- Shuffle participants → Secure shuffle run: runs shuffle protocol