Федеративный вычислительный сервер (FC Server) является частью федеративного обучения, предлагаемого в рамках решения On-Device Personalization (ODP). Цель данного документа — представить федеративный вычислительный сервер (FC Server), его компоненты и используемые технологии. В документе представлен общий обзор архитектуры, а затем подробно рассматривается каждый компонент. Также обсуждается, как компоненты взаимодействуют для создания среды федеративного обучения, и предлагаются стратегии масштабирования и сегментирования рабочих нагрузок.
Процесс обучения
Обучение состоит из потоков данных между клиентом FC и сервером FC. Клиент FC — это основной модуль Android, который обучает модели машинного обучения на устройстве и взаимодействует с сервером FC. Сервер FC обрабатывает и агрегирует результаты от клиента FC в безопасной среде доверенного выполнения (TEE).
Обучение состоит из следующих этапов:
- Клиент FC на устройстве загружает открытый ключ шифрования из службы ключей.
- Клиент FC связывается с сервером FC и получает задание на обучение.
- Клиент FC загружает план тренировок, а также последнюю версию модели, версию N.
- Клиент ФК тренируется, используя локальные данные и план.
- Клиент FC шифрует данные, поступающие от этого устройства, с помощью открытого ключа, полученного на шаге 0, и загружает его на сервер FC.
- Клиент FC уведомляет сервер FC о завершении обучения.
- Сервер FC ожидает, пока достаточное количество клиентов не отправит свои взносы.
- Запускается раунд агрегации.
- Зашифрованные данные загружаются агрегатором в доверенную среду выполнения (TEE).
- Агрегатор подтверждает свою подлинность координаторам в соответствии с RFC 9334 NIST RFC 9334 «Процедура удаленной аттестации (RATS)» . После успешной аттестации службы ключей предоставляют ему ключи расшифровки. Эти ключи могут быть распределены между несколькими поставщиками ключей в рамках схемы разделения секрета Шамира .
- Агрегатор выполняет агрегацию данных между устройствами, обрабатывает фрагменты и шумы в соответствии с соответствующими механизмами дифференциальной конфиденциальности (DP) и выдает результаты с шумом.
- Агрегатор запускает средство обновления модели .
- Программа обновления моделей загружает агрегированный вклад и применяет его к версии модели N для создания версии модели N + 1. Новая модель загружается в хранилище моделей.
Сервер FC можно развернуть на любом облачном сервисе (или сервисах), поддерживающем TEE и связанные с ними функции безопасности. Мы оцениваем поставщиков общедоступных облачных услуг и базовые технологии, но пока в следующем разделе представлен пример реализации в Google Cloud с использованием Confidential Space .
Архитектура высокого уровня
Сервер FC включает в себя следующие компоненты, развернутые в облаке Google:
| Компонент | Описание |
| Сервис управления задачами | Веб-сервис для управления задачами обучения. Партнеры должны использовать API управления задачами для создания задачи обучения, отображения всех существующих задач обучения, отмены задачи и получения всех статусов обучения. |
| Служба распределения заданий | Веб-сервис на основе HTTPS, в котором клиентские устройства периодически подключаются для получения заданий для обучения и сообщают о статусе обучения. |
| Агрегатор | Фоновая служба, работающая в конфиденциальном пространстве. Она выполняет рабочие нагрузки, созданные в рамках ODP. Она должна пройти верификацию у координаторов, которые контролируют доступ к ключам расшифровки. Только успешно прошедшие верификацию агрегаторы могут расшифровывать данные, предоставленные клиентскими устройствами, и осуществлять агрегацию данных между устройствами. |
| Обновление модели | Фоновая служба, работающая в конфиденциальном пространстве, которая применяет агрегированные градиенты к модели. |
Подробная информация о компоненте
В следующих разделах высокоуровневая архитектура представлена в более подробном виде:
Сервис управления задачами
Служба управления задачами содержит два подкомпонента: веб-службу управления задачами и службу планировщика задач, оба развернутые в GKE .
Управление задачами
Это набор веб-сервисов для внешнего интерфейса, которые принимают HTTPS-запросы и создают или получают задачи из базы данных задач.
Планировщик задач
Фоновая служба, которая непрерывно сканирует базу данных задач. Она управляет процессом обучения, например, создает новые раунды и итерации обучения.
База данных задач
База данных, соответствующая стандарту ANSI SQL, хранит информацию о задачах, итерациях и назначениях. В данной реализации в качестве базовой службы базы данных используется Google Cloud Spanner .
Служба распределения заданий
Сервис назначения заданий — это веб-сервис для внешнего интерфейса, размещенный в GKE . Он принимает запросы от клиентов FC и распределяет учебные задания, когда это необходимо.
В данном случае база данных задач представляет собой тот же экземпляр базы данных, что и база данных задач в службе управления задачами.
Сервис агрегатора
Агрегатор и средство обновления моделей
Агрегатор и средство обновления моделей похожи. Это фоновые службы, которые безопасно обрабатывают данные в конфиденциальном пространстве . Связь между задачами, выполняемыми в автономном режиме, осуществляется через PubSub .
Градиенты, агрегированные градиенты, модель и план
- Хранилище градиентов для градиентов, загруженных на клиентское устройство (зашифрованных).
- Сводное хранилище градиентов для агрегированных, обрезанных и зашумленных градиентов.
- Хранилище моделей и планов тренировок, тренировочных программ и весов.
Коллекционер
Служба Collector — это фоновый сервис, который периодически подсчитывает количество отправленных данных с клиентских устройств во время обучающего раунда. Она уведомляет Aggregator о необходимости запуска агрегации, как только будет получено достаточное количество данных.
Хосты сервисов
Все сервисы, не имеющие доступа к конфиденциальной информации, размещены на GKE .
Все сервисы, которые могут работать с конфиденциальной информацией, размещаются в Confidential Space .
Все конфиденциальные данные шифруются с помощью ключей шифрования, управляемых несколькими сторонними службами ключей. Доступ к ключам расшифровки имеют только успешно подтвержденные, разработанные в рамках ODP (Outdoor Data Process) версии Confidential Space, поддерживающие конфиденциальные вычисления .
В одном сервисном подразделении вычислительные ресурсы выглядят следующим образом:
Масштабируемость
Описанная ранее инфраструктура ориентирована на один сервисный блок.
Для работы одного сервисного блока используется один Cloud Spanner. См. раздел «Квоты и ограничения для Spanner» для получения информации о существенных ограничениях.
Каждый компонент этой архитектуры может масштабироваться независимо. Это достигается путем масштабирования мощности либо в рамках Конфиденциального пространства, либо в кластере GKE с использованием стандартных механизмов масштабирования. Фактически, вычислительная мощность может быть увеличена за счет добавления большего количества экземпляров:
- Веб-сервис назначения заданий
- Веб-сервис управления задачами
- Экземпляры агрегаторов
- Экземпляры обновления модели
Устойчивость
Устойчивость FC-сервера обеспечивается за счет аварийного восстановления с использованием реплицированного хранилища. Если вас интересует аварийное восстановление, следует включить межрегиональную репликацию данных. Это гарантирует, что в случае возникновения катастрофы (например, из-за погодных явлений, нарушающих работу центра обработки данных) работа сервиса возобновится с последнего этапа обучения.
Гаечный ключ
В стандартной реализации FC Server в качестве базы данных для хранения статуса задач, используемой для управления процессом обучения, используется Google Cloud Spanner . Перед выбором многорегиональной конфигурации следует оценить компромисс между согласованностью и доступностью в соответствии с потребностями вашего бизнеса.
В экземплярах Spanner не хранятся никакие пользовательские данные или их производные, ни в необработанном, ни в зашифрованном виде. Вы можете свободно использовать любые доступные функции аварийного восстановления, предлагаемые Spanner .
Spanner записывает историю изменений. Агрегатор и средство обновления модели хранят данные для каждого раунда обучения, и результаты каждого раунда сохраняются отдельно, не перезаписывая друг друга. Благодаря этому, в случае сбоя сервис может возобновить работу с последнего раунда обучения.
Google Облачное хранилище
В стандартной реализации FC Server для хранения больших двоичных данных, таких как модели, планы обучения и зашифрованные данные, предоставленные устройствами, используется Google Cloud Storage .
В проекте используются три экземпляра GCS:
- Вклад устройств: зашифрованные данные, загруженные с устройств.
- Модели: планы тренировок, модели и их веса.
- Агрегированные градиенты: Совокупные градиенты, полученные с помощью агрегатора.
В системе GCS хранятся следующие данные:
- Данные, предоставленные разработчиком, например, план обучения ИЛИ
- Потенциально конфиденциальные данные, поскольку они получены из пользовательских сигналов (защищенных шифрованием с использованием нескольких координаторов), таких как градиенты, загруженные с устройства, и агрегированные градиенты ИЛИ
- Неконфиденциальные данные, полученные на основе пользовательских сигналов, но после применения принципа дифференциальной конфиденциальности, например, веса модели.
Вам следует оценить компромисс между согласованностью и доступностью и выбрать соответствующие функции обеспечения доступности и надежности данных в системе GCS . Вам также следует определить собственные политики хранения данных.
Репликация и резервное копирование
Помимо механизмов репликации данных, предоставляемых Google Cloud, вы также можете периодически создавать резервные копии данных в Spanner и GCS. Например, вы можете использовать сервисы и предложения межоблачной репликации. ODP не предоставляет пример, поскольку эти конфигурации в значительной степени зависят от потребностей бизнеса. Текущая архитектура учитывает потенциальные потребности разработчиков в таких репликациях и резервных копиях. В результате она совместима с сервисами и продуктами репликации и резервного копирования, предоставляемыми сторонними компаниями.