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