В федеративном обучении строки остаются у клиентов, а сервер объединяет обновления модели. Это уменьшает передачу сырых данных, но не создаёт приватность автоматически. Неодинаковые клиенты превращают простое среднее в содержательный выбор цели.

Клавиатура учится на телефонах

Модель следующего слова должна учитывать реальные пользовательские тексты, которые нельзя собирать в одну центральную таблицу без серьёзного риска. Федеративная схема отправляет текущие веса на выбранные устройства, каждое делает несколько локальных шагов, сервер агрегирует изменения.

У клиента kk есть данные DkD_k и локальная функция

Fk(w)=1nkiDki(w).F_k(w)=\frac1{n_k}\sum_{i\in D_k}\ell_i(w).

Классическая цель, взвешенная по числу примеров:

F(w)=k=1KnkjnjFk(w).F(w)=\sum_{k=1}^K \frac{n_k}{\sum_jn_j}F_k(w).

Она равна среднему loss по всем строкам, как если бы данные были объединены. Но «средний пользователь» и «средняя строка» — разные цели: активный человек с миллионом сообщений получает огромный вес.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Центральный сервер отправляет модель выбранным телефонам, те обучаются локально и возвращают обновления, сервер агрегирует
Рис. 64.1. Раунд федеративного обучения

Шаг 1: сервер выбирает доступных клиентов и отправляет wtw_t. Шаг 2: каждый обучается на своих данных. Шаг 3: зашифрованные или обычные обновления Δk\Delta_k возвращаются. Шаг 4: сервер строит wt+1w_{t+1}. Сырые сообщения не покидают телефон, но стрелки обновлений всё равно несут информацию.

FedAvg

В одном раунде клиент начинает с общего wtw_t и выполняет EE локальных эпох SGD:

wt,k(e+1)=wt,k(e)ηFk,Be(wt,k(e)).w_{t,k}^{(e+1)} =w_{t,k}^{(e)}-\eta\nabla F_{k,B_e}(w_{t,k}^{(e)}).

Сервер усредняет финальные веса:

wt+1=kStnkjStnjwt,k.w_{t+1}=\sum_{k\in S_t} \frac{n_k}{\sum_{j\in S_t}n_j}w_{t,k}.

При одном малом локальном шаге это похоже на большой распределённый gradient step. Несколько шагов экономят коммуникацию, но локальные модели успевают уйти в направления собственных данных.

Non-IID: каждый клиент живёт в своём мире

На одном телефоне пользователь пишет по-русски, на другом — по-сербски; один часто вводит код, другой — имена. Распределения Pk(x,y)P_k(x,y) различны. При большом EE локальный оптимизатор приближается к минимуму FkF_k, и усреднение далёких весов не равно шагу к минимуму глобальной FF.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Две локальные функции потерь с разными минимумами, траектории клиентов расходятся и их среднее отклоняется от центрального шага
Рис. 64.2. Client drift при неоднородных данных

Красные и синие контуры — F1,F2F_1,F_2 с разными минимумами. Из общей точки клиенты делают несколько локальных шагов и расходятся. Фиолетовая точка усреднения не совпадает с зелёным шагом по полному глобальному градиенту; расхождение растёт с числом локальных эпох.

Лаборатория агрегации

Размер клиента, локальные шаги и качество групп

Загружается живая иллюстрация…

Сначала сделайте клиентов одинаковыми и сравните FedAvg с центральным обучением. Затем разделите классы между устройствами и увеличивайте локальные шаги. Следите за общей метрикой и worst-client quality. Наконец переключайте веса «по строкам» и «по клиентам»: победитель по среднему изменится.

Какая справедливость зашита в веса

Sample-weighted objective оптимизирует случайную строку. Uniform-client

Fuser(w)=1KkFk(w)F_{\text{user}}(w)=\frac1K\sum_kF_k(w)

оптимизирует случайного клиента. Можно минимизировать хвост распределения клиентских losses или worst-group risk. Ни одна цель не универсальна.

Если активные пользователи генерируют больше примеров, sample weighting улучшает частые сценарии, но может ухудшить редких. Отчёт должен показывать распределение качества по клиентам и группам, а не только глобальное среднее из урока о риске.

Персонализация

Одна глобальная модель может быть компромиссом, плохим для всех. После федеративного обучения устройство дообучает последний слой локально или получает смесь глобальных прототипов. Meta-learning пытается найти инициализацию, быстро адаптирующуюся к клиенту.

Персонализация требует локальных данных и может переобучиться на малой истории. Для нового клиента нужен глобальный fallback. Оценивать следует отдельно до и после адаптации, не используя локальный test в локальном обучении.

Коммуникация как ограничение

Передача миллионов весов тысячами устройств дорога по энергии и сети. Используют:

  • выбор части клиентов на раунд;
  • несколько локальных шагов;
  • квантование и sparsification обновлений;
  • отправку только крупных координат;
  • error feedback для накопления отброшенного остатка.

Сжатие создаёт шум и смещение. Если всегда обнулять малые координаты, их совместный эффект может потеряться. Error feedback переносит невысказанную часть в следующий раунд.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Треугольная диаграмма компромисса между числом коммуникаций, объемом сообщения и отклонением локальных моделей
Рис. 64.3. Треугольник локальные шаги–байты–drift

Три вершины обозначают редкую коммуникацию, малый пакет и близость к центральному градиенту. Нельзя одновременно без цены максимизировать все свойства. На рёбрах подписаны инструменты: local epochs, quantization и control variates.

Secure aggregation

Secure aggregation позволяет серверу увидеть сумму обновлений, не раскрывая каждое отдельно. Клиенты маскируют векторы так, что маски взаимно уничтожаются в общей сумме. Протокол должен выдерживать отключение части устройств.

Это защищает от любопытного сервера, рассматривающего отдельное обновление, но не от информации в итоговой модели. Если в раунде один клиент, сумма равна его обновлению. Нужен минимальный размер группы и анализ угроз.

Differential privacy

Участие одного клиента не должно сильно менять распределение результата. User-level differential privacy ограничивает норму каждого обновления

Δ~k=Δkmin(1,CΔk)\widetilde\Delta_k= \Delta_k\min\left(1,\frac C{\|\Delta_k\|}\right)

и добавляет шум к агрегату. Параметры (ε,δ)(\varepsilon,\delta) описывают приватностный бюджет; многократные раунды расходуют его по правилам композиции.

Clipping создаёт bias, шум ухудшает качество, особенно для малых групп. Зато появляется формальная гарантия против широкого класса атак. Это отличается от обещания «сырые данные не передаются».

Утечки из обновлений

Градиент может раскрывать редкие слова или позволять приблизительно восстановить обучающий пример. Злонамеренный сервер способен отправить разным клиентам разные модели и сравнить ответы. Клиенты могут отравлять агрегат, внедряя backdoor.

Защита включает secure aggregation, DP, robust aggregation, проверку аномальных норм, доверенную среду и ограничение серверного протокола. Robust median труднее совместить с secure sum, потому что сервер не видит отдельные векторы. Безопасность — система компромиссов, а не один флаг.

LEAF и реалистичная оценка

Федеративный benchmark должен сохранять естественное разбиение по клиентам и неодинаковые объёмы. Случайное перемешивание всех строк уничтожает главную трудность. Нужны метрики среднего клиента, квантилей, worst-group, коммуникационных байтов и числа раундов.

Разделение train/test выполняют по времени внутри клиента и по новым клиентам отдельно. Это два сценария: продолжение персональной истории и cold start. Методы оптимизации из уроков 61 и 62 оцениваются при равном бюджете раундов и локальных вычислений. Изменение доли отказов и появление новых типов клиентов стоит включить в карту неопределённости, а не прятать внутри среднего loss.

Архитектура честного проекта

Нужно назвать:

  1. клиента и единицу приватности;
  2. глобальную objective и веса;
  3. механизм выборки доступных устройств;
  4. локальный optimizer и число шагов;
  5. протокол агрегации и угроз;
  6. privacy budget, байты и качество групп;
  7. сценарий нового клиента и мониторинг.

Федеративное обучение полезно, когда централизация данных неприемлема, а распределённое вычисление реально доступно. Оно не заменяет согласие, минимизацию собираемых данных и безопасность устройства. Его формулы начинаются со среднего, но инженерная задача заканчивается балансом качества, связи, справедливости и приватности.

Два способа усреднить двух клиентов

У клиента A тысяча записей, и его локальная квадратичная потеря минимальна при wA=0w_A=0. У клиента B десять записей с минимумом wB=10w_B=10. Если global objective усредняет все строки, оптимум равен

wrecords=10000+101010100,099.w_{\text{records}} =\frac{1000\cdot0+10\cdot10}{1010} \approx0{,}099.

Если каждому клиенту дать одинаковый вес, получим wclients=(0+10)/2=5w_{\text{clients}}=(0+10)/2=5. Ни один ответ не ошибочен арифметически. Первый оптимизирует среднюю запись и почти игнорирует маленького клиента; второй оптимизирует среднего клиента и заметно ухудшает большинство строк A.

Теперь допустим, что B — редкое медицинское устройство с критической ценой ошибки. Простого равного веса может быть мало: objective должна включить предметную потерю или ограничение worst-group. Серверу также нужно регулярно видеть B; если устройство редко доступно, заявленная цель не совпадёт с реальными раундами.

Этот пример показывает, почему формула FedAvg начинается с выбора весов. Количество записей, справедливость между клиентами и цена ошибки задают разные задачи, которые нельзя спрятать под словом «среднее».

Задачи