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

Обзор

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

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

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

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

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

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

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

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

В наборы данных входят:

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

  • Федеративный EMNIST . Федеративная предварительная обработка набора данных символов и цифр EMNIST, где каждый клиент соответствует разному записывающему устройству. Полный обучающий набор содержит 3400 пользователей и 671 585 примеров из 62 меток.

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

  • CIFAR-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 исследования алгоритмов федеративной оптимизации могут проводиться различными способами, в зависимости от желаемого уровня индивидуализации.

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

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

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

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

Чтобы воспроизвести результаты недавней статьи , см. этот исследовательский проект . Для реализации пользовательского алгоритма сжатия см. пример базовых алгоритмов в разделе comparison_methods проекта, а также руководство по агрегаторам 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 ). Более подробная информация содержится в каталоге targeted_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 .

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