Each client keeps its own local data and only ever sends model updates, never raw data. Every round: clients train locally for a few epochs, the server averages their weight updates (FedAvg), then broadcasts the new global model back out.
w_global(t+1) = sum_k (n_k/n) * w_k(t) (FedAvg, weighted by client data size)
DP: update' = update + Laplace(0, sigma) (privacy noise before sending)
- Clients — how many devices participate in each federation round.
- Local epochs — more local training per round speeds convergence but drifts further from the global optimum under skew.
- Non-IID skew — how differently each client's local data is distributed; higher skew slows and destabilizes convergence.
- DP noise σ — differential-privacy noise added to each update before it leaves the device; protects privacy at the cost of slower, noisier convergence.
This is the core trick behind on-device ML (keyboard prediction, health wearables): the model gets smarter across millions of devices without any raw personal data ever leaving them.