Skip to content
AITroveRead. Build. Understand.
Make this comfortable

Federated training: local data, update leakage and aggregation boundaries

Last updated: 5 Oct 20265 min read
tutorial
IntermediateBy AITrove Editorial

Keeping raw data on devices reduces central collection but does not make model updates harmless or training automatically private.

Define the federation

A learner device could update a small preference model locally and send a clipped update to a coordinator. Record which clients are eligible, how rounds are sampled and what minimum cohort size is required. A device may disconnect midway; accepted updates and aggregation weights must be explicit. A server that sees each raw update may infer information from it even though it never received the underlying events.

Bound and protect updates

Clipping limits the effect of an extreme update and can support a reviewed privacy mechanism, but clipping alone is not a privacy guarantee. Secure aggregation can restrict what the coordinator sees, subject to its protocol and trust assumptions. Differential privacy requires additional accounting if claimed. The privacy unit may be one client, one account or one person; those are not interchangeable.

Handle uneven clients

Highly active devices may produce many examples while others have few. Weighting by local row count can let large clients dominate and may reveal size information. Compare equal-client and capped-example weighting, then test utility by client segment. Communication cost, battery use and dropouts affect participation; a model trained on only reliable devices can underperform for the excluded population.

Test a round

Simulate three clients with update values 0.4, 0.6 and 9.0. Clip each to a magnitude of 1.0 before averaging, so the aggregate is about 0.67 rather than 3.33. Drop one client before final aggregation and record the new denominator. This toy scalar test verifies clipping and aggregation math, not protection against update reconstruction.

Implementation

python
def clipped_mean_update(client_updates, clip_limit):
    if clip_limit <= 0 or not client_updates:
        raise ValueError("invalid aggregation input")
    clipped = [max(-clip_limit, min(clip_limit, value)) for value in client_updates]
    return sum(clipped) / len(clipped)

Performance and operating cost

Aggregating C scalar updates costs O(C) time and O(C) temporary space here. Real model vectors cost O(C times D) work for D parameters, plus network transfer and protocol overhead; local-only data does not remove those costs.

Common Mistakes

  • Do not claim federated training is private merely because raw rows stay local.
  • Do not ignore client dropout or unequal participation.
  • Do not label clipping as a complete leakage defense.

Read next

Continue the workflow: Federated client data and target contract.

ai-data
privacy-aware-ml
Storage details