День сообщества ML - 9 ноября! Присоединяйтесь к нам для обновления от TensorFlow, JAX, и многое другое Подробнее

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

Обзор

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

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

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

  1. Отдельные куски TensorFlow кода, как правило , tf.function s, что Encapsulate логика , которая работает в одном месте (например, на клиентах или на сервере). Этот код , как правило , написаны и протестированы без tff.* Ссылки, и могут быть повторно использованы вне TFF. Например, цикл обучения клиента в Федеративном Усреднении осуществляется на этом уровне.

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

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

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

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

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

  • 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 для локального вычисления, ПТФ вычисления для оркестровки, и скрипт драйвера на EMNIST наборе данных в качестве примера. Эти файлы могут быть легко адаптированы для индивидуальных applciations и алгоритмических изменений следующих подробных инструкций в файле README .

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

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

ПТФ использует tensor_encoding API для включения алгоритмов сжатия с потерями , чтобы снизить затраты на communicatation между сервером и клиентом. Для примера обучения с сервером к клиенту и клиент-серверу сжатию с использованием усреднения Федеративного алгоритма см этого эксперимент .

Чтобы реализовать собственный алгоритм сжатия и применить его к циклу обучения, вы можете:

  1. Реализовать новый алгоритм сжатия как подкласс EncodingStageInterface или его более общего вариант, AdaptiveEncodingStageInterface следующего данного примера .
  2. Построить свой новый Encoder и специализироваться его для модели вещания или модель усреднения обновлений .
  3. Используйте эти объекты , чтобы построить весь расчет обучения .

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

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

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

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

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

ПТФ также может быть использован для имитации целевых атак на федеративных систем обучения и дифференциальной защиты на основе конфиденциальности , рассмотренные в Can You Really Задняя дверь Федеративные обучения? . Это делается путем построения итерационного процесса с потенциально вредоносными клиентами (см build_federated_averaging_process_attacked ). Targeted_attack каталог содержит более подробную информацию.

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

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

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

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

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

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

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

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

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

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