Skip to content

Commit aa7d181

Browse files
committed
Added pFedGraph to the Plato documentation.
1 parent aa1fccf commit aa7d181

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/docs/examples/algorithms/8. Personalized Federated Learning Algorithms.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,46 @@ Learning](https://arxiv.org/abs/2212.01197)," in Arxiv, 2022.
107107

108108
---
109109

110+
### pFedGraph
111+
112+
pFedGraph infers a collaboration graph on the server to compute personalized
113+
aggregation weights and then regularizes local training toward the aggregated
114+
model for each client.
115+
116+
```bash
117+
cd examples/personalized_fl
118+
uv run pfedgraph/pfedgraph.py -c configs/pfedgraph_CIFAR10_resnet18.toml
119+
```
120+
121+
**Reference:** Ye et al., "[Personalized Federated Learning with Inferred
122+
Collaboration Graphs](https://proceedings.mlr.press/v202/ye23b.html)," in Proc.
123+
International Conference on Machine Learning (ICML), 2023.
124+
125+
!!! note "Alignment with the paper"
126+
The pFedGraph aggregation strategy
127+
(`plato/servers/strategies/aggregation/pfedgraph.py:13-324`) builds the
128+
collaboration graph by computing cosine similarities over weight updates,
129+
then projects each row onto the simplex to match the graph inference step
130+
described in Section 3.2.
131+
132+
The server (`plato/servers/pfedgraph.py:17-71`) stores per-client aggregated
133+
weights and returns them via `customize_server_payload`, mirroring the
134+
client-specific aggregation in Algorithm 1.
135+
136+
The trainer wiring (`plato/trainers/pfedgraph.py:8-25`) combines
137+
`PFedGraphUpdateStrategy` and `PFedGraphLossStrategyFromConfig`
138+
(`plato/trainers/strategies/algorithms/pfedgraph_strategy.py:20-123`) to
139+
capture the reference vector at round start and add the cosine similarity
140+
regularizer from Equation 3.
141+
142+
This mirrors the official pFedGraph implementation's split between
143+
server-side graph inference and client-side regularized optimization, while
144+
Plato's defaults (cosine similarity + simplex-projected weights) provide a
145+
concrete instantiation of the paper's model-similarity + dataset-size
146+
formulation.
147+
148+
---
149+
110150
### LG-FedAvg
111151

112152
With LG-FedAvg only the global layers of a model are sent to the server for aggregation, while each client keeps local layers to itself.

0 commit comments

Comments
 (0)