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

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

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

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

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

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

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

Сделать это один раз недостаточно. Мы должны делать это снова и снова, чтобы объединенная модель стала исходной моделью для следующего раунда. И с каждым раундом комбинированная модель становится немного лучше благодаря данным от всех этих клиентов.
Если вы использовали Google Keyboard, Gboard, то вы уже видели и испытали пример использования федеративного обучения. Gboard показывает предложенный запрос, ваш телефон локально хранит информацию о текущем контексте и о том, нажали ли вы на предложение.
Федеративное обучение обрабатывает эту историю на устройстве, чтобы предлагать улучшения для следующей итерации модели предложений запросов Gboard.