Federated Art Chase: Privacy Leakage and Data Poisoning in Federated Fine-Tuning
Organizations: Indigma Innovations Greece
Abstract
Federated learning (FL) is increasingly used to adapt a pretrained, centrally fine-tuned model to data that remain on user devices, beyond training a model from scratch. In this report, prepared for the 4th Federated Machine Learning International Summer School, we study the privacy and integrity of this approach with a reproducible pipeline. An ImageNet-pretrained MobileNetV4-Conv-Small model is fine-tuned centrally on ten Quick, Draw! classes (97.50% test accuracy) and then adapted with head-only FedAvg over ten non-IID clients, which raises client training accuracy from 90.34% to 91.49% while preserving global accuracy. We evaluate four adversarial scenarios. First, from a single one-step client update, an honest-but-curious server recovers the complete private label set, but its reconstructions follow class prototypes rather than the private drawings (mean SSIM 0.130). Second, from a one-round FedAvg aggregate, label-count recovery falls from 87.5% with one client to 75.0% with five and ten clients, below the 80.0% of an uninformed uniform guess. Third, under FedAvg, a backdoor injected by 30%, 50%, and 100% of the clients reaches an attack success rate (ASR) of 21.9%, 31.3%, and 54.7% at a cost of at most 0.8 percentage points of clean accuracy, whereas label flipping is effective only when most of the source-class data are relabeled. Fourth, FLTrust with a root set retained from centralized fine-tuning lowers the backdoor ASR to 1.8% and 4.0% at 30% and 50% malicious clients and the label-flipping ASR from 12.6% to 0.8% without measurable clean-accuracy loss, but provides no protection when every client is malicious. The report closes with a live session in which participants draw, fine-tune, and poison the model through Indigma's FedMaestro orchestrator. Code and executed notebooks, runnable on Google Colab, are at https://github.com/Indigma-Innovations/fl-summer-school.
Figures & tables
| Experiment | Adversary | Capabilities and assumptions | Reported metrics |
|---|---|---|---|
| Stage 1 (NB1) | none | centralized training on QuickDraw-10 | loss, accuracy |
| Stage 2 (NB4) | none | 10 clients, head-only FedAvg | loss, accuracy (client and global) |
| Attack 1 (NB2) | honest-but-curious server | observes , one client delta , , ; public QuickDraw data | label-set accuracy; MSE, PSNR, SSIM |
| Attack 2 (NB3) | honest-but-curious server | observes , , , , ; public QuickDraw data | label-count accuracy; MSE, PSNR, SSIM |
| Attack 3 (NB5) | malicious clients (fraction ) | poison local training data; follow the protocol otherwise | clean accuracy, ASR |
| Defense (NB6) | malicious clients (fraction ) | as Attack 3; server holds a clean root set | clean accuracy, ASR, trust scores |
| Use | Indices | Size | Selection |
|---|---|---|---|
| Stage 1 train / validation / test (NB1) | – | 40,000 / 5,000 / 5,000 | stratified 80/10/10 split per class (seed 42) |
| Federated clients (NB4–NB6) | 13,675 (12,310 train, 1,365 val.) | hard selection from random candidates per class | |
| Attack 1 private batch (NB2) | 5 | hardest of 128 random candidates per class | |
| Attack 2 private pool (NB3) | 56 (10 clients) | hardest of 128 random candidates per class and client | |
| Attacker public priors (NB2, NB3) | 96 per class (prototypes), 1 per canvas | uniform random | |
| Global evaluation set (NB4–NB6) | – | 5,000 | test part of the 80/10/10 split rebuilt with seed 123 (79.8% overlap with the Stage 1 training split) |
| Split | Loss before | Loss after | Accuracy before (%) | Accuracy after (%) | accuracy (pp) |
|---|---|---|---|---|---|
| Train (augmented) | 7.8110 | 0.2378 | 6.97 | 92.29 | |
| Validation | 8.5807 | 0.0961 | 5.64 | 97.48 | |
| Test | 8.5695 | 0.0969 | 6.00 | 97.50 |
| Round 0 | Round 50 | ||||
|---|---|---|---|---|---|
| View | Loss | Accuracy (%) | Loss | Accuracy (%) | accuracy (pp) |
| Client train (12,310) | 0.3876 | 90.34 | 0.3703 | 91.49 | |
| Client validation (1,365) | 0.4305 | 89.67 | 0.4364 | 89.89 | |
| Global evaluation (5,000) | 0.0925 | 97.66 | 0.0910 | 97.64 | |
| Rule | Recovered label set | Correct | Margin |
|---|---|---|---|
| Top- most negative ( Eq. ( 5 ) with ) | square , triangle , circle , star , sun | 4/5 | 0.0011 |
| Set search, Eq. ( 5 ) with | line , circle , square , triangle , star | 5/5 | 0.0133 |
| Recovered labels | Oracle labels | |||||
| Class | MSE | PSNR (dB) | SSIM | MSE | PSNR (dB) | SSIM |
| line | 7690.18 | 9.27 | 0.069 | 7620.23 | 9.31 | 0.070 |
| circle | 11111.11 | 7.67 | 0.208 | 10979.75 | 7.72 | 0.190 |
| square | 8178.44 | 9.00 | 0.192 | 8155.11 | 9.02 | 0.191 |
| triangle | 7658.22 | 9.29 | 0.010 | 7478.31 | 9.39 | 0.010 |
| star | 10332.21 | 7.99 | 0.171 | 10327.46 | 7.99 | 0.172 |
| Clients | Correct | Count accuracy (%) | Uniform (%) | Classes at bound | |||
| 1 | 0 | 8 | 7/8 | 87.5 | 80.0 | 10.84 | – ∗ |
| 2 | 0–1 | 12 | 10/12 | 83.3 | 73.3 | 10.45 | 5 |
| 5 | 0–4 | 28 | 21/28 | 75.0 | 80.0 | 10.20 | 5 |
| 10 | 0–9 | 56 | 42/56 | 75.0 | 80.0 | 10.44 | 5 |
| ∗ For , every non-zero count equals the bound. | |||||||
| Matched pairs | Full (missed empty canvas) | |||||||
|---|---|---|---|---|---|---|---|---|
| Pairs | MSE | PSNR (dB) | SSIM | MSE | PSNR (dB) | SSIM | Runtime (s) | |
| 1 | 7/8 | 8615.64 | 8.81 | 0.212 | 8034.18 | 9.23 | 0.186 | 393.9 |
| 2 | 10/12 | 10081.14 | 8.17 | 0.117 | 10285.06 | 8.08 | 0.097 | 86.0 |
| 5 | 21/28 | 8087.35 | 9.32 | 0.198 | 8281.28 | 9.18 | 0.148 | 53.1 |
| 10 | 42/56 | 8672.74 | 8.99 | 0.219 | 8611.48 | 9.07 | 0.164 | 33.9 |
| FedAvg | FLTrust | |||||||
|---|---|---|---|---|---|---|---|---|
| Attack | Malicious clients | Weight | Poisoned | Acc. | ASR (%) | Acc. | ASR (%) | |
| Label flipping | 0.0 | – | 0.0% | 0 (0.0%) | 97.62 | 0.60 | 97.66 | 0.60 |
| 0.1 | 2 | 9.8% | 31 (2.2%) | 97.64 | 0.60 | 97.64 | 0.60 | |
| 0.3 | 4, 5, 8 | 34.3% | 888 (64.3%) | 96.48 | 12.60 | 97.64 | 0.80 | |
| 0.5 | 0, 1, 2, 8, 9 | 50.1% | 296 (21.4%) | 97.68 | 0.60 | 97.66 | 0.60 | |
| 1.0 | all | 100.0% | 1,381 (100%) | 87.92 | 97.80 | 88.02 | 97.80 | |
| Mean trust score | Malicious aggregation weight | ||||||
|---|---|---|---|---|---|---|---|
| Attack | Honest | Malicious | FedAvg weight | FLTrust share | ASR FedAvg (%) | ASR FLTrust (%) | |
| Label flipping | 0.0 | 0.384 | – | 0.0% | 0.0% | 0.60 | 0.60 |
| 0.1 | 0.387 | 0.234 | 9.8% | 6.3% | 0.60 | 0.60 | |
| 0.3 | 0.413 | 0.227 | 34.3% | 19.0% | 12.60 | 0.80 | |
| 0.5 | 0.429 | 0.285 | 50.1% | 39.8% | 0.60 | 0.60 | |
| 1.0 | – | 0.230 | 100.0% | 100.0% | 97.80 | 97.80 | |
| Notebook | Operation | Runtime | Peak RAM (MiB) | Peak VRAM (MiB) |
|---|---|---|---|---|
| NB1 | Centralized fine-tuning, 15 epochs of 40,000 images | 56.9 min | n/r | n/r |
| NB2 | One head-only SGD step on 5 images (client side) | 0.086 s | 1288.1 | 35.0 |
| NB3 | Attack 2, complete experiment, / 2 / 5 / 10 | 393.9 / 86.0 / 53.1 / 33.9 s | 1689–1782 | 100–571 |
| NB4 | Clean FedAvg, 50 rounds, 10 clients (training and aggregation) | 12.55 s | 2333.5 | 31.3 |
| NB5 | FedAvg under poisoning, per 50-round scenario | 11.19–12.10 s | 2444.7 | 31.3 |
| NB6 | FLTrust under poisoning, per 50-round scenario | 12.03–12.70 s | 2448.9 | 31.3 |
Federated Learning
Federated learning trains shared models across data holders without requiring them to pool their raw data.
See all 951 papers