Federated Learning: Train AI Across Browsers, Phones and GPUs
How federated learning lets every device — browser, phone, CPU, GPU — help train the same model. What works, what does not, and how a universal small-model pool is built.
What federated learning is
Federated learning trains a shared model across many devices without moving the model to one place. Each device trains on its data locally and sends only weight updates, which are averaged into a global model. Google uses it on phones (Gboard); frameworks like Flower and FedML generalize it.
The honest limit: the model must fit the device
A device can only train a model it can hold and run. Small models (compact CNNs, MLPs, classifiers) fit in a browser via WebGPU/TensorFlow.js, on phones, CPUs and GPUs — so every device can train the same small model.
Large models (YOLO, ResNet-50, 7B+ LLMs) cannot run in a browser. They need real GPUs. No trick removes that memory limit — so big-model training stays on the GPU tier while light devices help with smaller models and data tasks.
How "every device trains" works in practice
For a small model, the server initializes shared weights, splits the data, and any device — browser included — trains its slice in its native runtime (TensorFlow.js in the browser, PyTorch on a GPU) and uploads weights as JSON. The server averages them in pure JavaScript (FedAvg) and runs more rounds.
Because weights are tiny numeric arrays, browsers and GPUs interoperate, and contributors are paid by verified contribution.
Project Huginn's universal track
Project Huginn includes a universal small-model federated track: open a browser worker page, paste your token, and your device joins the pool and trains. Capability-aware routing keeps heavy jobs on GPUs and light jobs on any device — putting the maximum number of devices to work.