Использование TFF для исследований в области федеративного обучения

Обзор

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

Типичная структура исследовательского кода в TFF

Исследовательское моделирование FL, реализованное в TFF, обычно состоит из трех основных типов логики.

  1. Отдельные фрагменты кода TensorFlow, обычно tf.function , которые инкапсулируют логику, выполняемую в одном месте (например, на клиентах или на сервере). Этот код обычно пишется и тестируется без каких-либо ссылок tff.* и может быть повторно использован за пределами TFF. Например, на этом уровне реализован цикл обучения клиента в Federated Averaging .

  2. Логика федеративной оркестровки TensorFlow, которая связывает вместе отдельные tf.function из 1. путем их упаковки в tff.tensorflow.computation и последующей оркестровки с использованием таких абстракций, как tff.federated_broadcast и tff.federated_mean внутри tff.federated_computation . См., например, эту оркестровку для Federated Averaging .

  3. Скрипт внешнего драйвера, который моделирует логику управления производственной системы FL, выбирает моделируемых клиентов из набора данных и затем выполняет на этих клиентах объединенные вычисления, определенные в пункте 2. Например, драйвер эксперимента Federated EMNIST .

Наборы данных федеративного обучения

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

Наборы данных включают в себя:

  • Переполнение стека . Реалистичный набор текстовых данных для языкового моделирования или задач обучения с учителем, с 342 477 уникальными пользователями и 135 818 730 примерами (предложениями) в обучающем наборе.

  • Федерация ЭМНИСТ . Объединенная предварительная обработка набора символов и цифр EMNIST, где каждый клиент соответствует отдельному писателю. Полный набор поездов содержит 3400 пользователей с 671 585 примерами из 62 ярлыков.

  • Шекспир . Меньший набор текстовых данных на уровне символов, основанный на полном собрании произведений Уильяма Шекспира. Набор данных состоит из 715 пользователей (персонажей пьес Шекспира), где каждый пример соответствует непрерывному набору строк, произнесенных персонажем данной пьесы.

  • СИФАР-100 . Федеративное разделение набора данных CIFAR-100 на 500 обучающих клиентов и 100 тестовых клиентов. У каждого клиента 100 уникальных примеров. Разделение выполнено таким образом, чтобы создать более реалистичную гетерогенность между клиентами. Более подробную информацию смотрите в API .

  • Набор данных Google Landmark v2. Набор данных состоит из фотографий различных мировых достопримечательностей, изображения которых сгруппированы по фотографам для обеспечения федеративного разделения данных. Доступны два варианта набора данных: меньший набор данных с 233 клиентами и 23080 изображениями и больший набор данных с 1262 клиентами и 164172 изображениями.

  • CelebA Набор данных примеров (изображений и атрибутов лица) лиц знаменитостей. В объединенном наборе данных примеры каждой знаменитости сгруппированы вместе, чтобы сформировать клиента. Имеется 9343 клиента, каждый из которых имеет не менее 5 примеров. Набор данных может быть разделен на группы обучения и тестирования либо клиентами, либо примерами.

  • iNaturalist Набор данных состоит из фотографий различных видов. Набор данных содержит 120 300 изображений 1203 видов. Доступны семь разновидностей набора данных. Один из них сгруппирован по фотографу и состоит из 9257 клиентов. Остальные наборы данных сгруппированы по географическому местоположению, где была сделана фотография. Эти шесть разновидностей набора данных состоят из 11–3606 клиентов.

Высокопроизводительное моделирование

Хотя время моделирования FL не является подходящим показателем для оценки алгоритмов (поскольку аппаратное обеспечение моделирования не является репрезентативным для реальных сред развертывания FL), возможность быстрого запуска моделирования FL имеет решающее значение для продуктивности исследований. Таким образом, TFF вложила значительные средства в обеспечение высокопроизводительной среды выполнения на одной и нескольких машинах. Документация находится в разработке, а пока смотрите инструкцию по симуляции TFF с ускорителями , и инструкцию по настройке симуляции с TFF на GCP . Высокопроизводительная среда выполнения TFF включена по умолчанию.

TFF для разных областей исследований

Алгоритмы федеративной оптимизации

Исследование алгоритмов федеративной оптимизации в TFF можно проводить по-разному, в зависимости от желаемого уровня настройки.

Минимальная автономная реализация алгоритма Federated Averaging представлена ​​здесь . Код включает в себя функции TF для локальных вычислений, вычисления TFF для оркестрации и сценарий драйвера для набора данных EMNIST в качестве примера. Эти файлы можно легко адаптировать для индивидуальных приложений и алгоритмических изменений, следуя подробным инструкциям в README .

Более общую реализацию Federated Averaging можно найти здесь . Эта реализация позволяет использовать более сложные методы оптимизации, включая использование различных оптимизаторов как на сервере, так и на клиенте. Другие алгоритмы федеративного обучения, включая федеративную кластеризацию k-средних, можно найти здесь .

Сжатие обновления модели

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

Чтобы воспроизвести недавнюю статью , см. этот исследовательский проект . Чтобы реализовать собственный алгоритм сжатия, см. пример сравнения_методов в проекте для базовых показателей и руководство по агрегаторам TFF, если оно еще не знакомо.

Дифференциальная конфиденциальность

TFF совместим с библиотекой TensorFlow Privacy, что позволяет проводить исследования новых алгоритмов федеративного обучения моделей с дифференциальной конфиденциальностью. Пример обучения с DP с использованием базового алгоритма DP-FedAvg и расширений см. в этом драйвере эксперимента .

Если вы хотите реализовать собственный алгоритм DP и применить его к совокупным обновлениям федеративного усреднения, вы можете реализовать новый алгоритм среднего DP как подкласс tensorflow_privacy.DPQuery и создать tff.aggregators.DifferentiallyPrivateFactory с экземпляром вашего запроса. Пример реализации алгоритма DP-FTRL можно найти здесь.

Федеративные сети GAN (описанные ниже ) — это еще один пример проекта TFF, реализующего дифференциальную конфиденциальность на уровне пользователя (например, здесь, в коде ).

Надежность и атаки

TFF также можно использовать для моделирования целевых атак на системы федеративного обучения и дифференциальной защиты на основе конфиденциальности, рассмотренных в разделе «Можете ли вы действительно использовать бэкдор федеративного обучения?» . Это делается путем построения итерационного процесса с потенциально вредоносными клиентами (см. build_federated_averaging_process_attacked ). Каталог target_attack содержит более подробную информацию.

  • Новые алгоритмы атаки можно реализовать, написав функцию обновления клиента, которая является функцией Tensorflow, пример см. ClientProjectBoost .
  • Новую защиту можно реализовать путем настройки tff.utils.StatefulAggregateFn, который объединяет выходные данные клиента для получения глобального обновления.

Пример сценария для моделирования см. в emnist_with_targeted_attack.py .

Генеративно-состязательные сети

GAN создают интересный шаблон федеративной оркестровки , который немного отличается от стандартного федеративного усреднения. Они включают в себя две отдельные сети (генератор и дискриминатор), каждая из которых обучается на своем этапе оптимизации.

TFF можно использовать для исследования федеративного обучения GAN. Например, представленный в недавней работе алгоритм DP-FedAvg-GAN реализован в TFF . Эта работа демонстрирует эффективность сочетания федеративного обучения, генеративных моделей и дифференциальной конфиденциальности .

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

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

Один из подходов заключается в том, чтобы позволить каждому клиенту точно настроить единую глобальную модель (обученную с использованием федеративного обучения) с использованием его локальных данных. Этот подход имеет отношение к метаобучению, см., например, эту статью . Пример такого подхода приведен в emnist_p13n_main.py . Чтобы изучить и сравнить различные стратегии персонализации, вы можете:

  • Определите стратегию персонализации, реализовав tf.function , которая начинается с исходной модели, обучает и оценивает персонализированную модель, используя локальные наборы данных каждого клиента. Пример дан build_personalize_fn .

  • Определите OrderedDict , который сопоставляет имена стратегий с соответствующими стратегиями персонализации, и используйте его в качестве аргумента personalize_fn_dict в tff.learning.build_personalization_eval_computation .

Другой подход заключается в том, чтобы избежать обучения полностью глобальной модели, обучая часть модели полностью локально. Реализация этого подхода описана в этом сообщении блога . Этот подход также связан с метаобучением, см. эту статью . Чтобы изучить частично локальное федеративное обучение, вы можете: