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

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

Дизайн федеративной системы обучения

Давайте начнем с проектирования масштабируемой федеративной системы обучения. Здесь мы обсудим эту статью (Ссылка: Федеративное обучение в масштабе)

Основная идея: Высокоуровневое проектирование масштабируемой производственной системы FL для обучения моделей TensorFlow на мобильных устройствах.

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

Для лучшего понимания любую системную архитектуру можно разбить на следующие части:

  1. Протокол
  2. Конфигурация устройства
  3. Серверная архитектура
  4. Обработка режимов отказа

Протокол

Сервер FL (облачная распределенная служба, объединяющая градиенты) и устройства-участники (телефоны Android) в раунде обучения FL следуют определенному протоколу для выполнения раундов обучения FL.

Простыми словами, для каждого тренировочного раунда:

  1. Сервер FL выбирает подмножество устройств в соответствии с критериями приемлемости (зарядка и подключение к безлимитной сети).
  2. Затем сервер отправляет необходимые инструкции, такие как график и инструкция TensorFlow, параметры конфигурации и текущее состояние глобальной модели. Сборник инструкций этого тренировочного раунда называется FL Plan.
  3. Участники выполняют локальные вычисления и отправляют обратно градиенты
  4. Сервер FL объединяет эти градиенты с помощью алгоритма федеративного усреднения, обновляет контрольную точку FL последней обновленной моделью и отправляет обновленную глобальную модель обратно на устройства.

Точнее говоря, вышеуказанные шаги выполняются в 3 этапа:

  1. Отбор.
    Периодически устройства, соответствующие критериям приемлемости, регистрируются на сервере, открывая двунаправленный поток. Поток используется для отслеживания активности и организации многоэтапной коммуникации. Сервер выбирает подмножество подключенных устройств на основе определенных целей: оптимального количества участвующих устройств, т. е. количества целей, тайм-аута и минимального процента количества целей, необходимого для успешного раунда.
  2. Конфигурация:
    Сервер отправляет каждому устройству план FL и контрольную точку FL с глобальной моделью.
  3. Отчетность:
    сервер ожидает, пока участвующие устройства сообщат об обновлениях. По мере получения обновлений сервер агрегирует их с помощью федеративного усреднения и сообщает устройствам, создающим отчеты, когда необходимо повторно подключиться. Если достаточное количество устройств сообщит вовремя, раунд будет завершен, и сервер обновит свою глобальную модель; в противном случае раунд будет прерван.

Следующая диаграмма подробно объясняет протокол

Конфигурация устройства

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

  1. Поддерживайте репозиторий локально собранных данных для обучения и оценки. Мы называем это хранилище данных SQLite Example Store, где хранятся прогнозируемые следующие слова и действия пользователя (независимо от того, были ли эти предложения приняты) для этого слова.
  2. Программная конфигурация
    Приложение настраивает среду выполнения FL (раунд выполнения задания обучения FL) с именем совокупности FL (некоторый идентификатор) и связывает эту среду выполнения FL с хранилищем данных SQLite. Кроме того, зарегистрируйте эту среду выполнения в Android JobScheduler.
  3. Вызов задания:
    Когда JobScheduler вызывает среду выполнения FL, устройство открывает двунаправленный поток связи с сервером FL, чтобы сообщить серверу FL: "Эй, я доступен для раунда обучения FL. Пришлите мне что-нибудь сделать!». Затем сервер FL решает, следует ли выделять какие-либо задачи для этого устройства и его совокупности (помните, мы обсуждали в программной конфигурации, что среда выполнения знает, частью какой совокупности она является). Если сервер FL выбирает этот набор популяций, он отправляет план FL всем в популяции FL; в противном случае предлагается время для регистрации позже. Эта вернуться позжеинструкция показана на рис. 1. Фаза выбора со знаком ❌
  4. Выполнение задачи:
    Если устройство было выбрано, среда выполнения FL получает план FL, запрашивает в хранилище примеров приложения данные, запрошенные планом, и вычисляет обновления модели, т. е. градиенты модели прогнозирования следующего слова Tensorflow RNN. и метрики.
  5. Отчеты.
    После выполнения плана FL среда выполнения FL сообщает о вычисленных градиентах и ​​метриках на сервер и очищает все временные ресурсы.

Серверная архитектура

Что это за сервер FL?

Сервер FL — это мозг этой масштабируемой распределенной системы FL. FL-сервер должен удовлетворять следующим требованиям:

  1. Оперировать на многих порядках численности населения
  2. Управляйте тренировочными раундами с количеством участников от десятков устройств до десятков тысяч
  3. Управлять размером обновлений, собираемых и передаваемых в каждом раунде, который может варьироваться от килобайт до десятков мегабайт.
  4. Поддержка переменного трафика, входящего или исходящего из любого заданного географического региона.

Сервер FL разработан на основе модели программирования
акторов (Hewitt et al., 1973).

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

В FL есть три типа участников: координаторы, селекторы и главные агрегаторы.

Координаторы:

Участники высшего уровня, по одному на каждую выборку населения FL, для достижения синхронизации. Они взаимодействуют с селекторами и мастер-агрегаторами. Координаторы хранят свой адрес и население FL в общей службе блокировки, к которой также могут получить доступ участники Selector. Они инструктируют Селекторов о том, сколько устройств принять для участия. Координаторы порождают новых главных агрегаторов для управления раундами каждой задачи FL.

Селекторы:

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

Мастер-агрегаторы:

Агрегаторы обрабатывают тренировочные раунды FL. Главные агрегаторы управляют динамическим масштабированием. Мастер-агрегаторы принимают динамические решения о создании одного или нескольких агрегаторов в зависимости от количества участников.

Режимы отказа

  1. Если координатор умирает, слой селектора обнаружит это и возродит его, потому что селекторы и координаторы напрямую связаны и хранят информацию о населении FL. Координаторы зарегистрированы в общей службе блокировки, и Селекторы также имеют доступ к этой общей службе блокировки.
  2. В случае сбоя агрегатора или селектора будут потеряны только устройства, подключенные к этому актору. Координатор перезапускает их по результатам ранее зафиксированного раунда.

Это основная идея масштабируемой системы федеративного обучения. Есть несколько базовых улучшений безопасности/конфиденциальности и CI/CD.

  1. Secure Aggregation (Bonawitz et al. (2017)):
    протокол безопасных многосторонних вычислений, который использует шифрование, чтобы сделать обновления отдельных устройств недоступными для проверки сервером. Мы можем развернуть безопасную агрегацию в качестве повышения конфиденциальности службы FL, чтобы поддерживать зашифрованные обновления отдельных устройств даже в памяти.
  2. Рабочий процесс инженера-моделиста:

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

Федеративное обучение для прогнозирования мобильной клавиатуры

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

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

Мы обсудим эту статью (Hard et al., 2019), в которой обсуждается языковая модель RNN в подходе распределенного федеративного обучения для предсказания следующего слова на виртуальной клавиатуре смартфона.

Центральная позиция в полосе предложений зарезервирована для самой высокой вероятности, а второй и третий наиболее вероятные кандидаты
занимают левую и правую позиции соответственно.

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

Базовая модель:

Базовая модель основана на n-граммах. Статический первичный LM в Gboard — это 5-граммовый LM со сглаженной Кацем байсовской интерполяцией с корпусом 1,25 миллиона n-грамм, включая 164 000 униграмм. Усовершенствованная версия LM на основе n-грамм создается путем добавления персонализированной пользовательской истории, контактов и электронной почты к корпусу основного LM.

Модель РНН:

Было показано, что RNN хорошо справляются с задачами языкового моделирования. LSTM заботится о взрывающихся и исчезающих градиентах при обратном распространении во времени. Вариант LSTM, используемый в задаче прогнозирования следующего слова Gboard, — это сопряженный ввод и пропуск шлюза (CIFG).

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

Для начала мы ограничим максимальный размер словаря до 10000, что соответствует 96-мерным плотным вложениям для уменьшения объема памяти. Модель CIFG представляет собой одноуровневую модель. Кроме того, эта заархивированная модель поставляется на мобильные устройства размером около 1,4 МБ.

Это наша модель RNN. Мы тренируем это в двух разных условиях с разным распределением обучающих данных. Один из них — традиционное обучение на базе сервера, а другой — федеративное обучение.

Краткий обзор федеративного обучения:
имеется один FL-сервер и несколько пограничных устройств. Сервер FL отправляет план FL для выполнения обучающих раундов на пограничных устройствах. После этого этапа обучения пограничные устройства отправляют градиенты на сервер FL, объединяют их, обновляют глобальную модель и отправляют эту обновленную модель ВСЕМ участникам этой задачи FL. И процесс повторяется.

A. клиентские устройства вычисляют обновления SGD для локально сохраненных данных.
B. Сервер объединяет обновления клиентов для создания новой глобальной модели,
C. Новая модель отправляется обратно клиентам, и процесс повторяется. .

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

Федеративное усреднение простыми словами:

  1. При t = 0 клиентские устройства начинают с одной и той же глобальной модели, которая была либо случайным образом инициализирована, либо предварительно обучена на прокси-данных.
  2. Каждый клиент вычисляет градиенты на своих локальных данных. Более того, выполняет один или несколько шагов SGD со скоростью обучения клиента, которая может быть разной для разных клиентов. Клиент отправляет веса модели на сервер FL.
  3. Затем сервер выполняет взвешенное агрегирование клиентских
    моделей для получения новой глобальной модели.

Где n_k — размер локального набора данных k-го клиента, а w_t и w_t+1 — веса модели на этапе обучения t и t+1. .

Эксперименты:

Настройки тренировки:

Модель CIFG обучается с использованием SGD

Федеративный подход к обучению

Алгоритм федеративного усреднения используется для агрегирования обновлений модели клиента. При этом на каждый тур обучения из населения отбирается от 100 до 500 клиентов. Для гиперпараметров используется импульс Нестерова 0,9 и скорость обучения 1,0. Во время обучения каждый клиент обрабатывает 400 предложений и 3000 тренировочных раундов для конвергенции 600 миллионов предложений по 1,5 миллионам клиентов.

Обучение на основе сервера:
традиционный асинхронный стохастический градиентный спуск со скоростью обучения
0,001 без уменьшения веса или импульса. Размер партии 50 шт.

Наборы данных:

Данные журналов, размещенные на сервере

Эти данные собираются у пользователей Gboard, которые решили поделиться фрагментами текста при наборе текста в приложениях Google. Эти фрагменты усекаются, чтобы содержать только короткие фразы, и начинаются с маркера начала предложения. Также обратите внимание, что эти данные анонимны и лишены личной информации. Эти данные собираются у англоязычных пользователей Gboard в США.
Данные для обучения: 7,5 миллиарда предложений.
Данные для тестирования и разработки: 25 000 предложений.

Данные клиентского кеша:

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

Конвергенция:

Обучение на основе сервера требует 150 миллионов шагов SGD для конвергенции, как показано на рисунке 8, в то время как федеративное обучение обычно
занимает 4–5 дней.

Полученные результаты:

Параметром оценки является отзыв Top1 и отзыв Top3, т. е. отзыв при выдаче 1 и 3 предсказаний соответственно.

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

Производительность всех трех моделей в журналах, размещенных на сервере:

Наблюдения

  1. CIFG работает лучше, чем N-gram в обоих случаях, даже несмотря на то, что он обучен на гораздо большем корпусе.
  2. Обратите внимание, что федеративный CIFG обеспечивает гораздо лучшую безопасность и конфиденциальность и обеспечивает производительность, сравнимую с моделью, обученной сервером.

Производительность всех трех моделей на данных клиентского кеша:

Наблюдения:

  1. CIFG работает лучше, чем N-gram в обоих случаях, даже несмотря на то, что он обучен на гораздо большем корпусе.
  2. Federated CIFG работает немного лучше, чем CIFG, обученный сервером, потому что Federated CIFG обучается с распределенными более богатыми данными.

Производительность всех трех моделей на живом пользовательском трафике

Наблюдения:

  1. Федеративный CIFG улучшает запоминаемость первых 1 и 3 прогнозируемых впечатлений на 1 % по сравнению с CIFG, обученным на сервере, для живого пользовательского трафика.
  2. CIFG работает лучше, чем n-gram, в живом пользовательском трафике.

Это одно из первых приложений федеративного языкового моделирования в коммерческих условиях.

Общий вывод

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

Мы обсудили высокоуровневый дизайн федеративной системы обучения в масштабе, которая справляется с задачами переменного размера совокупности и размерами обновлений в диапазоне от нескольких КБ до десятков МБ. Мы кратко обсудили архитектуру сервера на основе актеров и различные этапы тренировочного раунда.

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

Однако остается несколько проблем:

  1. Предвзятость в федеративном обучении: в некоторых странах у большинства людей редко есть доступ к безлимитной сети. Следовательно, их участие в выборке населения FL невелико.
  2. Компромисс между конфиденциальностью и пропускной способностью: небольшие объемы необработанных данных иногда приводят к большим обновлениям веса. Всегда существует компромисс между обновлениями модели и необработанными данными. Даже небольшие объемы необработанных данных могут привести к передаче больших объемов информации (обновлений веса).

Пища для размышлений:

  1. Можете ли вы объяснить, почему агрегаторы и главные агрегаторы эфемерны? Эфемерные средства недолговечны.
  2. В чем разница между MapReduce и FL? Можем ли мы интерпретировать FL-сервер как Reducer, а FL-устройства как Mappers? Каковы фундаментальные технические отличия по сравнению с общей структурой MapReduce?

Ресурсы:

  1. К ФЕДЕРАТИВНОМУ ОБУЧЕНИЮ В МАСШТАБЕ: ПРОЕКТИРОВАНИЕ СИСТЕМЫ (Бонавиц и др., 2019)
  2. ФЕДЕРАТИВНОЕ ОБУЧЕНИЕ ДЛЯ ПРОГНОЗИРОВАНИЯ МОБИЛЬНОЙ КЛАВИАТУРЫ
    (Hard et al., 2019)
  3. Федерация изучает Википедию
  4. Универсальный модульный формализм ACTOR для искусственного интеллекта
    (Hewitt et al., 1973)