Что такое Federated Learning и почему о нём говорят все

Представьте, что десять больниц хотят создать общую модель для диагностики редкого заболевания. У каждой — свои пациенты, свои данные. Объединить их в одном дата-центре нельзя — это нарушит врачебную тайну, GDPR и HIPAA. А обучать модель на данных только одной больницы — значит получить модель, которая работает хуже, чем могла бы. Что делать?

https://chataibot.ru/blog/federated-learning/

Именно для таких ситуаций и был придуман Federated Learning (FL) — федеративное или распределённое обучение. Это подход к машинному обучению, при котором модель обучается на множестве устройств или организаций, но исходные данные никогда не покидают своих владельцев. Вместо того чтобы собирать данные в одном месте, FL приносит модель к данным. Каждый участник обучает модель локально на своих данных, а затем отправляет на центральный сервер только обновления — веса или градиенты нейросети. Сервер агрегирует эти обновления, улучшает глобальную модель и отправляет её обратно участникам. Цикл повторяется.

Звучит как магия? Отчасти так и есть. Эта парадигма была предложена исследователями Google в 2016 году и с тех пор превратилась из академической экзотики в технологию, которую используют в здравоохранении, финансах, производстве и даже на вашем смартфоне — когда Gboard предсказывает следующее слово, он делает это с помощью FL, не отправляя ваши личные сообщения в облако.

В этой статье мы разберём, как именно работает Federated Learning, какие у него бывают разновидности, в чём его сила, с какими проблемами сталкиваются разработчики и как начать использовать FL уже сегодня. Без лишней математики — только то, что действительно нужно знать.

Как работает федеративное обучение: базовый цикл

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

Шаг первый: инициализация модели. Всё начинается с центрального сервера или координатора, который создаёт начальную версию глобальной модели. Это может быть модель, обученная на каком-то открытом датасете, или просто модель со случайными весами. Затем сервер рассылает эту модель всем участникам — клиентам, которые готовы участвовать в обучении. Клиентами могут быть что угодно: смартфоны, больничные серверы, промышленные датчики или банковские системы.

Шаг второй: локальное обучение. Каждый клиент получает копию глобальной модели и начинает обучать её на своих собственных данных. Данные при этом остаются на устройстве — никто их не загружает и не передаёт. Клиент запускает несколько эпох обучения, улучшая модель на основе своей уникальной выборки. Важно: у каждого клиента данные могут быть разными — у одного больше, у другого меньше, у одного одни признаки, у другого другие. FL как раз и создан для работы в таких гетерогенных условиях.

Шаг третий: отправка обновлений. Вместо того чтобы отправлять на сервер свои данные, клиент отправляет только обновлённые параметры модели — веса нейросети или вычисленные градиенты. Для дополнительной защиты эти обновления часто шифруются или обфусцируются с помощью методов вроде дифференциальной приватности или безопасного агрегирования.

Шаг четвёртый: агрегация. Сервер получает обновления от всех (или от части) клиентов и объединяет их в новую версию глобальной модели. Самый распространённый метод агрегации называется Federated Averaging (FedAvg) — по сути, это усреднение весов всех участников, взвешенное по объёму их данных. Полученная улучшенная модель снова рассылается клиентам, и цикл повторяется.

Этот процесс продолжается до тех пор, пока глобальная модель не перестанет улучшаться или не достигнет заданного уровня точности. И всё это время — ни одного байта сырых данных не покидает устройства пользователей.

Федеративное vs распределённое: в чём разница

Часто Federated Learning путают с обычным распределённым обучением (Distributed Training). Это понятно — оба подхода используют несколько устройств для обучения модели. Но разница между ними принципиальная.

Распределённое обучение — это про скорость. Оно работает в контролируемой среде, например, внутри одного дата-центра, где огромный массив данных разбит на части и обрабатывается параллельно на множестве GPU. Все данные уже есть у вас, вы просто хотите ускорить обучение. Сеть между узлами — высокоскоростная, надёжная, с минимальными задержками. Главная цель — ускорить вычисления, а не защитить приватность.

Federated Learning — это про приватность и доступ к данным. Он работает в неконтролируемой среде: миллионы смартфонов с разным временем работы батареи, разной скоростью интернета, разной вычислительной мощностью. Данные физически распределены между разными владельцами, и вы не можете их централизовать — по юридическим, этическим или техническим причинам. Главная цель — обучить модель, не раскрывая данные.

Если упростить: распределённое обучение — это когда вы сами разложили свои данные по разным серверам, чтобы обучить модель быстрее. Federated Learning — это когда данные лежат у разных людей или организаций, и вы договариваетесь с ними обучить общую модель, не трогая их данные.

Виды федеративного обучения: не всё так однозначно

Federated Learning — это не один алгоритм, а целое семейство подходов. В зависимости от того, как распределены данные между участниками, выбирается та или иная стратегия.

Горизонтальное федеративное обучение (Horizontal FL). Самый распространённый случай. У всех участников одинаковый набор признаков (фич), но разные объекты. Например, две больницы собирают одни и те же данные о пациентах (возраст, симптомы, диагноз), но пациенты у них разные. Горизонтальный FL позволяет им обучить общую модель, не делясь записями о пациентах.

Вертикальное федеративное обучение (Vertical FL). Здесь всё наоборот: участники имеют данные об одних и тех же объектах, но с разными наборами признаков. Например, банк и интернет-магазин обслуживают одних и тех же клиентов, но у банка — финансовые данные, а у магазина — история покупок. Вертикальный FL позволяет безопасно объединить эти наборы признаков и обучить более точную модель.

Федеративный трансфер обучения (Federated Transfer Learning). Этот подход используется в самых сложных сценариях, когда у участников различаются и объекты, и признаки. Например, когда нужно передать знания из одной предметной области в другую. Это особенно актуально для межотраслевых коллабораций, где данные сильно отличаются.

Кроме того, FL делится по масштабу на два типа: cross-device (миллионы мобильных устройств, ненадёжные, с ограниченными ресурсами) и cross-silo (несколько крупных организаций вроде больниц или банков, мощные, но требующие высокого уровня доверия и безопасности). У каждого из этих сценариев — свои инструменты и свои вызовы.

Главные преимущества: почему FL — это будущее

Federated Learning даёт ряд преимуществ, которые делают его особенно привлекательным в эпоху ужесточения законов о защите данных.

Приватность по дизайну. Это самое очевидное и самое важное. Данные никогда не покидают устройство владельца. В эпоху GDPR и HIPAA — это не просто фича, а необходимость. FL позволяет обучать модели на данных, которые иначе были бы недоступны — например, на медицинских записях, которые нельзя выносить за пределы больницы.

Снижение коммуникационных затрат. Вместо того чтобы пересылать терабайты сырых данных, FL передаёт лишь компактные обновления модели — веса или градиенты. Это значительно экономит трафик и ускоряет процесс.

Персонализация. Поскольку каждый клиент обучает модель на своих данных, FL позволяет учитывать локальные особенности. Модель может адаптироваться под поведение конкретного пользователя или под специфику конкретной организации, оставаясь при этом частью глобальной системы.

Соответствие регуляторным требованиям. FL позволяет организациям соблюдать законы о защите данных, продолжая при этом извлекать пользу из совместного обучения. Неслучайно Испанское агентство по защите данных и Европейский надзорный орган по защите данных выпустили совместный доклад, в котором назвали FL «стратегической технологией» для баланса между инновациями и защитой данных.

Проблемы и вызовы: не всё так гладко

Federated Learning — мощная технология, но у неё есть свои слабые места. И если вы планируете внедрять FL, о них стоит знать заранее.

Неоднородность данных (Non-IID). Это главная головная боль. В идеальном мире данные на всех устройствах были бы распределены одинаково (IID — independent and identically distributed). В реальности — у каждого пользователя свой набор приложений, свои привычки, свои фотографии. Модель может «перекосить» в сторону тех клиентов, у которых данных больше, или тех, чьи данные оказались более «типичными». Борьба с этим — одно из самых активных направлений исследований.

Гетерогенность устройств. Участники FL — это не одинаковые серверы в дата-центре. Это смартфоны с разной производительностью, разным временем работы батареи, разной скоростью интернета. Кто-то может отвалиться в середине цикла, кто-то — прислать обновление с опозданием. FL должен быть устойчив к таким сбоям.

Коммуникационные издержки. Обмен моделями между сервером и клиентами — это не бесплатно. Чем больше модель и чем больше участников, тем выше нагрузка на сеть. Особенно это критично для cross-device сценариев с миллионами устройств.

Безопасность и атаки. Отправка обновлений модели — это тоже канал, через который можно утечь информацию. Злоумышленник может попытаться восстановить данные по градиентам (это называется атака по инверсии градиента). Или подменить свои обновления, чтобы испортить глобальную модель. Поэтому FL почти всегда комбинируют с дополнительными методами защиты: дифференциальной приватностью, безопасным агрегированием, гомоморфным шифрованием.

Где применяется Federated Learning уже сегодня

Federated Learning перестал быть чисто академической историей. Вот несколько реальных сценариев, где он уже работает.

Здравоохранение. Это, пожалуй, самая горячая точка. Больницы и исследовательские центры по всему миру используют FL для обучения диагностических моделей на данных, которые нельзя централизовать из-за законов о врачебной тайне. Например, модель для раннего выявления болезни Альцгеймера обучалась на данных из 83 международных центров с помощью FL. Другой проект использовал FL для создания карт риска COVID-19 в реальном времени, работая с данными от операторов связи.

Мобильные устройства. Google использует FL в клавиатуре Gboard для улучшения предсказания следующего слова — без отправки ваших сообщений на сервер. Это классический пример cross-device FL: миллионы смартфонов, каждый обучает модель на своих данных, а сервер агрегирует улучшения.

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

Промышленный интернет вещей (IIoT). На заводах и промышленных объектах FL позволяет обучать модели на данных с датчиков, не отправляя чувствительную информацию о производственных процессах в облако. Проект MLEDGE, например, использовал FL для оптимизации энергопотребления на четырёх промышленных площадках.