federated-learning.md
1 --- 2 tags: 3 - federated-learning 4 - distributed-training 5 - privacy 6 type: model-family 7 color: blue 8 --- 9 10 # Federated Learning 11 12 Federated learning это способ обучать одну общую модель на данных многих пользователей, не собирая эти данные в одно центральное хранилище. 13 14 ## Core idea 15 16 Сервер рассылает стартовую модель на клиентские устройства. Каждое устройство дообучает копию на своих локальных данных. Затем сервер собирает обновления модели, агрегирует их и рассылает новую global model обратно. 17 18 ## Principle workflow 19 20 ```text 21 Server 22 -> dispatch base model to selected clients 23 -> each client trains locally on private data 24 -> clients return local updates 25 -> server aggregates updates into global model 26 -> server dispatches synchronized model back 27 -> next communication round starts 28 ``` 29 30 ## Main nodes from the screenshot 31 32 1. `Step 1`: `Server` -> `Hosts` -> `Base model` -> `Dispath Model` -> `Mobile` -> `User` 33 2. `Step 2`: `Mobile` -> `Private Data` -> `Train` -> `Base model` -> `Trained Model A/B/C` 34 3. `Step 3`: `Trained Model A/B/C` -> `Server` -> `Centralized Model` 35 4. `Step 4`: `Server` -> `Hosts` -> `Centralized Model` -> `Dispatch back to device` -> `Mobile` -> `User` 36 37 ## Level 1: what the family does 38 39 Federated learning позволяет учить модель на данных пользователей так, чтобы сырые данные обычно оставались на их устройствах. 40 41 Это полезно, когда данные чувствительны, распределены по множеству клиентов или слишком дороги для централизованной передачи. 42 43 ## Level 2: main mechanisms 44 45 - сервер выбирает набор клиентов для очередного раунда 46 - сервер рассылает текущую [global model](concepts/global-model.md) 47 - клиенты обучают локальные копии на [private data](concepts/private-data.md) 48 - клиенты отправляют [local update](concepts/local-update.md) 49 - сервер использует агрегирование, часто [FedAvg](concepts/fedavg.md) 50 - новый раунд повторяет процесс как [communication round](concepts/communication-round.md) 51 52 ## Level 3: why it matters 53 54 - уменьшается необходимость перемещать пользовательские данные в центр 55 - можно использовать данные, которые иначе недоступны из-за privacy или regulation 56 - система лучше отражает реальные распределенные источники данных 57 58 Но вместе с этим появляются новые проблемы: нестабильные клиенты, дорогая коммуникация, смещенные локальные распределения и необходимость защищать обновления, а не только сырые данные. 59 60 ## Strengths or typical use cases 61 62 - клавиатурные подсказки и next-word prediction на телефонах 63 - персонализированные модели на edge devices 64 - медицинские или финансовые сценарии, где нельзя свободно объединять данные 65 - large-scale user devices, где данных много, но они распределены 66 67 ## Limits or tradeoffs 68 69 - privacy лучше, но не бесплатна и не абсолютна 70 - local data часто [non-IID](concepts/non-iid-data.md), поэтому обучение может сходиться хуже 71 - сеть и battery становятся частью стоимости обучения 72 - orchestration сложнее, чем в centralized training 73 74 ## Open and free materials 75 76 - [Communication-Efficient Learning of Deep Networks from Decentralized Data](https://proceedings.mlr.press/v54/mcmahan17a.html) - базовая статья про FedAvg и сам цикл federated learning. 77 - [TensorFlow Federated](https://www.tensorflow.org/federated) - официальный фреймворк с терминологией и примерами раундов обучения. 78 - [TensorFlow Federated Tutorials](https://www.tensorflow.org/federated/tutorials/tutorials_overview) - бесплатные туториалы, где видно pipeline на практике. 79 - [Flower Documentation](https://flower.ai/docs/) - хороший практический вход в orchestration и федеративные стратегии. 80 - [Federated Optimization in Heterogeneous Networks](https://arxiv.org/abs/1812.06127) - полезно, чтобы понять проблемы неоднородных клиентов. 81 82 ## Related notes 83 84 - [01-taxonomy](01-taxonomy.md) 85 - [model-dispatch](model-dispatch.md) 86 - [on-device-training](on-device-training.md) 87 - [update-aggregation](update-aggregation.md) 88 - [model-synchronization](model-synchronization.md) 89 - [centralized training](concepts/centralized-training.md) 90 - [global model](concepts/global-model.md) 91 - [FedAvg](concepts/fedavg.md)