Объединенный вычислительный сервер с персонализацией на устройстве

Федеративный вычислительный сервер (FC Server) является частью федеративного обучения, предлагаемого в рамках решения On-Device Personalization (ODP). Цель данного документа — представить федеративный вычислительный сервер (FC Server), его компоненты и используемые технологии. В документе представлен общий обзор архитектуры, а затем подробно рассматривается каждый компонент. Также обсуждается, как компоненты взаимодействуют для создания среды федеративного обучения, и предлагаются стратегии масштабирования и сегментирования рабочих нагрузок.

Процесс обучения

Обучение состоит из потоков данных между клиентом FC и сервером FC. Клиент FC — это основной модуль Android, который обучает модели машинного обучения на устройстве и взаимодействует с сервером FC. Сервер FC обрабатывает и агрегирует результаты от клиента FC в безопасной среде доверенного выполнения (TEE).

Обучение состоит из следующих этапов:

Блок-схема, показывающая процесс обучения между федеративным вычислительным клиентом и сервером в Privacy Sandbox для Android.
  1. Клиент FC на устройстве загружает открытый ключ шифрования из службы ключей.
  2. Клиент FC связывается с сервером FC и получает задание на обучение.
  3. Клиент FC загружает план тренировок, а также последнюю версию модели, версию N.
  4. Клиент ФК тренируется, используя локальные данные и план.
  5. Клиент FC шифрует данные, поступающие от этого устройства, с помощью открытого ключа, полученного на шаге 0, и загружает его на сервер FC.
  6. Клиент FC уведомляет сервер FC о завершении обучения.
  7. Сервер FC ожидает, пока достаточное количество клиентов не отправит свои взносы.
  8. Запускается раунд агрегации.
  9. Зашифрованные данные загружаются агрегатором в доверенную среду выполнения (TEE).
  10. Агрегатор подтверждает свою подлинность координаторам в соответствии с RFC 9334 NIST RFC 9334 «Процедура удаленной аттестации (RATS)» . После успешной аттестации службы ключей предоставляют ему ключи расшифровки. Эти ключи могут быть распределены между несколькими поставщиками ключей в рамках схемы разделения секрета Шамира .
  11. Агрегатор выполняет агрегацию данных между устройствами, обрабатывает фрагменты и шумы в соответствии с соответствующими механизмами дифференциальной конфиденциальности (DP) и выдает результаты с шумом.
  12. Агрегатор запускает средство обновления модели .
  13. Программа обновления моделей загружает агрегированный вклад и применяет его к версии модели N для создания версии модели N + 1. Новая модель загружается в хранилище моделей.

Сервер FC можно развернуть на любом облачном сервисе (или сервисах), поддерживающем TEE и связанные с ними функции безопасности. Мы оцениваем поставщиков общедоступных облачных услуг и базовые технологии, но пока в следующем разделе представлен пример реализации в Google Cloud с использованием Confidential Space .

Архитектура высокого уровня

Сервер FC включает в себя следующие компоненты, развернутые в облаке Google:

Диаграмма, демонстрирующая архитектуру федеративного вычислительного сервера Privacy Sandbox для Android.
Компонент Описание
Сервис управления задачами Веб-сервис для управления задачами обучения. Партнеры должны использовать API управления задачами для создания задачи обучения, отображения всех существующих задач обучения, отмены задачи и получения всех статусов обучения.
Служба распределения заданий Веб-сервис на основе HTTPS, в котором клиентские устройства периодически подключаются для получения заданий для обучения и сообщают о статусе обучения.
Агрегатор Фоновая служба, работающая в конфиденциальном пространстве. Она выполняет рабочие нагрузки, созданные в рамках ODP. Она должна пройти верификацию у координаторов, которые контролируют доступ к ключам расшифровки. Только успешно прошедшие верификацию агрегаторы могут расшифровывать данные, предоставленные клиентскими устройствами, и осуществлять агрегацию данных между устройствами.
Обновление модели Фоновая служба, работающая в конфиденциальном пространстве, которая применяет агрегированные градиенты к модели.

Подробная информация о компоненте

В следующих разделах высокоуровневая архитектура представлена ​​в более подробном виде:

Диаграмма, демонстрирующая компоненты федеративного вычислительного сервера Privacy Sandbox для Android.

Сервис управления задачами

Диаграмма, демонстрирующая топологию службы управления задачами в Privacy Sandbox для Android.

Служба управления задачами содержит два подкомпонента: веб-службу управления задачами и службу планировщика задач, оба развернутые в GKE .

Управление задачами

Это набор веб-сервисов для внешнего интерфейса, которые принимают HTTPS-запросы и создают или получают задачи из базы данных задач.

Планировщик задач

Фоновая служба, которая непрерывно сканирует базу данных задач. Она управляет процессом обучения, например, создает новые раунды и итерации обучения.

База данных задач

База данных, соответствующая стандарту ANSI SQL, хранит информацию о задачах, итерациях и назначениях. В данной реализации в качестве базовой службы базы данных используется Google Cloud Spanner .

Служба распределения заданий

Диаграмма, демонстрирующая топологию службы назначения задач в Privacy Sandbox для Android.

Сервис назначения заданий — это веб-сервис для внешнего интерфейса, размещенный в GKE . Он принимает запросы от клиентов FC и распределяет учебные задания, когда это необходимо.

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

Сервис агрегатора

Диаграмма, демонстрирующая топологию сервиса агрегации Privacy Sandbox для Android.
Агрегатор и средство обновления моделей

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

Градиенты, агрегированные градиенты, модель и план
  • Хранилище градиентов для градиентов, загруженных на клиентское устройство (зашифрованных).
  • Сводное хранилище градиентов для агрегированных, обрезанных и зашумленных градиентов.
  • Хранилище моделей и планов тренировок, тренировочных программ и весов.
Коллекционер

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

Хосты сервисов

Все сервисы, не имеющие доступа к конфиденциальной информации, размещены на GKE .

Все сервисы, которые могут работать с конфиденциальной информацией, размещаются в Confidential Space .

Все конфиденциальные данные шифруются с помощью ключей шифрования, управляемых несколькими сторонними службами ключей. Доступ к ключам расшифровки имеют только успешно подтвержденные, разработанные в рамках ODP (Outdoor Data Process) версии Confidential Space, поддерживающие конфиденциальные вычисления .

В одном сервисном подразделении вычислительные ресурсы выглядят следующим образом:

Диаграмма, показывающая топологию сервисных блоков Privacy Sandbox для Android.

Масштабируемость

Описанная ранее инфраструктура ориентирована на один сервисный блок.

Для работы одного сервисного блока используется один 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 не предоставляет пример, поскольку эти конфигурации в значительной степени зависят от потребностей бизнеса. Текущая архитектура учитывает потенциальные потребности разработчиков в таких репликациях и резервных копиях. В результате она совместима с сервисами и продуктами репликации и резервного копирования, предоставляемыми сторонними компаниями.