Federated Learning
Федеративное обучение объединяет обучение одной модели на множестве устройств или в разных организациях: исходные данные остаются локально, а сервер получает только обновления модели.
Федеративное обучение позволяет обучать одну модель машинного обучения на множестве устройств или в разных организациях, которые хранят обучающие данные там, где эти данные были собраны. Координирующий сервер отправляет участникам текущую модель, каждый участник обучает её на своих данных, а обратно передаются только полученные обновления модели, которые объединяются в улучшенную общую модель. Исследователи Google назвали этот подход в статье 2016 года «Коммуникационно-эффективное обучение глубоких сетей на децентрализованных данных», где представили алгоритм Federated Averaging (FedAvg) для обучения на данных, которые остаются на мобильных устройствах пользователей. Перенос модели к данным позволяет телефонам, больницам и банкам извлекать пользу из информации, которую правила конфиденциальности, нормативные акты, например GDPR ЕС, или просто огромный объём не позволяют объединить в одном озере данных.
Как работает федеративное обучение#
Обучение проходит раундами. Сервер выбирает группу доступных клиентов и отправляет им глобальные веса модели. Каждый клиент выполняет несколько эпох градиентного спуска на локальных данных и возвращает обновлённые веса. Затем FedAvg усредняет полученные веса, учитывая долю каждого клиента пропорционально количеству его обучающих примеров; результат становится глобальной моделью следующего раунда. В экспериментах FedAvg несколько локальных шагов между обменами данными сокращали число раундов коммуникации в 10–100 раз по сравнению с синхронным стохастическим градиентным спуском. Этот код моделирует FedAvg для линейной модели на трёх клиентах с разным объёмом данных:
import torch
torch.manual_seed(0)
true_w = torch.tensor([2.0, -3.0])
# Three clients with private datasets of different sizes; raw data never leaves a client
clients = []
for n in (50, 200, 500):
X = torch.randn(n, 2)
clients.append((X, X @ true_w + 0.1 * torch.randn(n)))
global_w = torch.zeros(2)
for r in range(1, 6):
weighted = []
for X, y in clients:
w = global_w.clone()
for _ in range(5): # local gradient descent steps on the client's own data
w -= 0.1 * 2 * X.T @ (X @ w - y) / len(y)
weighted.append(len(y) * w)
# FedAvg: average the client weights, weighted by each client's number of samples
global_w = sum(weighted) / sum(len(y) for _, y in clients)
print(f"round {r}: global weights {[round(v, 3) for v in global_w.tolist()]}")Код выводит глобальные веса [1.354, -2.023] после раунда 1, [1.935, -2.898] после раунда 3 и [1.995, -2.99] после раунда 5, приближаясь к истинным значениям [2, -3], хотя сервер получает только веса каждого клиента.
Федеративное обучение между устройствами и между организациями#
Федеративное обучение работает в двух режимах с разными ограничениями. При обучении между устройствами задействованы миллионы телефонов или датчиков, каждый из которых хранит немного данных и часто бывает офлайн или работает от батареи, поэтому в каждом раунде участвует лишь небольшая доля устройств, а процесс должен выдерживать их отключение. Клавиатура Gboard от Google таким образом обучает свои модели предсказания следующего слова. Межорганизационное обучение связывает несколько организаций, например больницы или банки, каждая из которых хранит большие наборы данных на надёжных серверах. В исследовании федеративной сегментации опухоли 71 учреждение здравоохранения на шести континентах обучило модель сегментации глиобластомы на 25 256 MRI-снимках 6 314 пациентов без обмена данными, а федеративная модель очерчивала опухоль, пригодную для хирургического удаления, на 33% лучше, чем модель, обученная на общедоступных данных. Выбор подходящего режима зависит от того, где хранятся данные:
Та же схема работает и с моделями компьютерного зрения: каждая больница, фабрика или магазин может загрузить текущие глобальные веса YOLO26, дообучить их на собственных изображениях с помощью стандартного режима train Ultralytics YOLO и вернуть серверу только обновлённые веса для усреднения. Фреймворки с открытым исходным кодом, например Flower и NVIDIA FLARE, обеспечивают выбор клиентов, обмен данными и агрегирование в обоих режимах.
Конфиденциальность и безопасность#
Локальное хранение данных само по себе не обеспечивает конфиденциальность обучения, поскольку обновления модели содержат информацию о данных, на которых они были получены. Атаки с инверсией градиента, например Deep Leakage from Gradients, позволяли восстанавливать обучающие изображения и метки по переданным градиентам, а атаки с выводом о принадлежности проверяют, использовалась ли конкретная запись при обучении. В продакшене применяют две меры защиты. Безопасное агрегирование шифрует обновления, чтобы серверу была доступна только их сумма, а дифференциальная приватность ограничивает каждое обновление и добавляет откалиброванный шум, чтобы нельзя было восстановить вклад отдельного пользователя; Google сообщила, что все языковые модели нейронных сетей Gboard для предсказания следующего слова, которые обучаются с помощью федеративного обучения, теперь обеспечивают дифференциальную приватность. Сервер также должен защищаться от клиентов, отправляющих отравленные обновления, используя устойчивые правила агрегирования, например покоординатную медиану, которая ограничивает влияние любого отдельного клиента. Если данные клиентов сильно различаются, например из-за разных сканеров в больницах, локальные модели расходятся, а сходимость замедляется.
Федеративное обучение и смежные понятия#
- Распределённое обучение: Разделяет централизованно хранящийся набор данных между множеством GPU в одном дата-центре, чтобы ускорить обучение. При федеративном обучении данные нельзя перемещать, а участники работают медленнее, менее надёжны и хранят данные с разным распределением.
- Разделённое обучение: Разделяет саму сеть между клиентом и сервером и передаёт промежуточные активации. При федеративном обучении каждый клиент получает полную модель, а стороны обмениваются весами.
- Конфиденциальность данных: Более широкая цель — защита персональной информации. Федеративное обучение — один из способов её достижения; обычно его сочетают с дифференциальной приватностью и безопасным агрегированием.
- Периферийный ИИ: Запускает модели на устройствах. Федеративное обучение между устройствами расширяет этот подход, добавляя обучение непосредственно на этих устройствах.










