Обзор некоторых «экзистенциальных» вопросов об обучении, проверке и тестировании в федеративном обучении.

Введение

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

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

Что такое федеративное обучение (FL)? Поворот сюжета: Сказка

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

После прочтения большого количества работ по FL и после того, как мне пришлось присмотреться повнимательнее, чтобы установить гиперпараметры для моей первой модели FL, обучить ее, проверить и протестировать все это самостоятельно, у меня возникли некоторые «экзистенциальные» вопросы по FL. голова. Тогда я был настоящим новичком, и не только я задавал вопросы, которые меня успокаивали. После некоторых исследований я решил поделиться вопросами и ответами, которые я нашел на них в этой статье, для всех начинающих FL (насколько претенциозно это выглядит?👀)

Чем ближе вы смотрите, тем меньше вы видите

Большая часть несоответствия между симуляцией и реальностью в FL вызвана виртуальным развертыванием FL в симуляции, которая сильно отличается от реальности: сотни разнородных встроенных устройств с не-IID (гетерогенными распределениями) данных. Это делает производительность моделирования (с точки зрения времени сходимости, потребляемой полосы пропускания, качества модели и т. д.) далекой от реальной производительности. Однако в этих сериях я хочу сосредоточиться не на разрыве в производительности, а на разрыве в процессе. В частности, я сосредоточусь на том, как обучение, проверка и тестирование выполняются в FL, в моделировании и в реальности.

Федеративное обучение в моделировании

Причина, по которой FL-моделирование преобладает, заключается в том, что в основном реальные FL-системы дороги в настройке (до сотен владельцев данных, реальная сеть, географическое распределение, неоднородность данных и оборудования и т. д.). Лишь в ряде статей, обычно публикуемых крупными компаниями, такими как Google, их процесс FL (или его часть, например вывод) развертывается на реальных производственных системах. Примером таких работ является [1], где авторы представили применение FL для прогнозирования мобильной клавиатуры.

Давайте наденем плащ разработчика FL, который полагается на симуляции для построения модели FL. Прежде всего, это настройка данных. Все данные, помеченные для обучения, хранятся в одном наборе данных. Некоторые известные наборы данных, используемые в исследованиях ML, также используются в исследованиях FL, например MNIST. Затем данные распределяются по сегментам способом, отличным от IID, для имитации неоднородности данных в среде FL. Сегмент представляет данные одного клиента, при этом все клиенты работают на одном компьютере. Для создания проверочных и тестовых наборов данных либо части данных вырезаются из глобального набора данных перед распределением по сегментам, либо части данных вырезаются из каждого виртуального клиента для объединения и формирования проверочных/тестовых наборов. Данные, оставшиеся на виртуальных клиентах, представляют собой обучающие данные. После того, как данные настроены, можно начинать обучение. После обучения работоспособность модели проверяется на тестовом наборе. В исследовательских работах отсутствуют подробности проверки гиперпараметров/моделей. В лучшем случае упоминаются гиперпараметры, используемые для локального обучения.

Хотя в FL существуют три этапа: обучение, проверка и тестирование, большинство исследовательских работ сосредоточено на этапе обучения. Более того, исследовательские работы полностью игнорируют роль разработчика ИЯ, который должен следить за обучением, валидировать модель и запускать тест. [2] является исключением из этих работ.

Описанный выше процесс поднимает некоторые интуитивные вопросы, на которые мы можем легко ответить в контексте машинного обучения, но на которые сложно ответить в контексте реального ИЯ.

  • В реальном FL данные уже распределены и приватны между разными клиентами. Нельзя извлекать наборы для проверки и тестирования, как в моделировании. Кто выполняет эти действия в реальных системах FL, сервер или клиенты? и какие данные используются для этой цели?
  • В реальном FL маркировка данных является проблемой. Это нельзя сделать вручную, как в FL, так как у нас нет доступа к обучающим данным. Как данные помечаются в контролируемом FL?
  • И, наконец, как на самом деле выполняется настройка в реальных сценариях FL?

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

Продолжение следует

!РЕДАКТИРОВАТЬ! Не пропустите часть 2, доступную здесь!

Рекомендации

[1] Хард, А., Рао, К., Мэтьюз, Р., Рамасвами, С., Бофейс, Ф., Огенштейн, С., … и Рэймидж, Д. (2018). Федеративное обучение для прогнозирования мобильной клавиатуры. препринт arXiv arXiv:1811.03604.

[2] Лай, Ф., Чжу, X., Мадхьястха, Х.В., и Чоудхури, М. (2021). Oort: Эффективное федеративное обучение посредством управляемого выбора участников. На 15-м симпозиуме {USENIX} по проектированию и внедрению операционных систем ({OSDI} 21) (стр. 19–35).

Полезные ссылки



https://doc.fedml.ai/