Что такое secure aggregation для федеративного обучения LLM?

Краткий тезис

Secure aggregation — это криптографический протокол, который позволяет серверу федеративного обучения вычислить сумму (или среднее) градиентов от клиентов, не имея доступа к индивидуальным градиентам каждого клиента. Это решает проблему атак восстановления данных по градиентам: даже если сервер скомпрометирован, он не может извлечь приватные данные клиентов. Основные технологии — Secure Multi-Party Computation (MPC) и Encryption|гомоморфное шифрование (Encryption|homomorphic encryption).


1. Термины и контекст

Федеративное обучение (Federated Learning, FL) — парадигма машинного обучения, в которой модель обучается на децентрализованных данных без их централизации. Клиенты (например, мобильные устройства или больницы) локально вычисляют градиенты на своих данных и отправляют их на сервер, который усредняет их и обновляет глобальную модель.

Градиенты (gradients) — производные функции потерь по параметрам модели. Они содержат информацию о данных клиента: исследования показали, что по градиентам можно восстановить исходные данные (атака инверсии градиентов, gradient inversion attack).

Сервер агрегации (aggregation server) — центральный узел, который собирает градиенты от клиентов и вычисляет среднее. В наивной реализации сервер видит все индивидуальные градиенты, что создаёт угрозу приватности.

Secure aggregation — набор протоколов, которые позволяют серверу получить только агрегированный результат (сумму или среднее), не узнавая индивидуальные вклады.


2. Проблема: атаки на градиенты

Если сервер видит градиенты каждого клиента, злоумышленник (или сам сервер) может:

  • Восстановить тренировочные данные клиента (например, изображения или текст) с помощью оптимизации: минимизировать разницу между градиентами, вычисленными на восстановленных данных, и полученными градиентами.
  • Определить, присутствует ли конкретный образец в данных клиента (inference attack|атака членства, membership inference).
  • Извлечь чувствительные признаки (например, диагноз пациента из градиентов медицинской модели).

Пример атаки (Zhu et al., 2019): по градиентам от модели на изображениях можно восстановить исходное изображение с высоким качеством.

Aggregation|Secure aggregation предотвращает эти атаки, скрывая индивидуальные градиенты от сервера.


3. Определение secure aggregation

Secure aggregation — это протокол, в котором:

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

Ключевое свойство: сервер не может узнать градиент отдельного клиента, даже если он сговорится с другими клиентами (в рамках модели безопасности).


4. Технологии реализации

4.1. Secure Multi-Party Computation (MPC)

MPC — это криптографический протокол, позволяющий нескольким сторонам совместно вычислить функцию от их приватных входов, не раскрывая эти входы друг другу. Для Aggregation|secure aggregation используется секретное разделение (secret sharing):

  • Каждый клиент разбивает свой градиент на несколько «долей» (shares) и отправляет их другим клиентам.
  • Клиенты локально суммируют полученные доли и отправляют результат серверу.
  • Сервер собирает частичные суммы и восстанавливает итоговую сумму.

Преимущества: не требует доверенной третьей стороны, устойчив к сговору до определённого порога клиентов. Недостатки: высокая коммуникационная сложность (каждый клиент общается с каждым), задержки.

4.2. Гомоморфное шифрование (Homomorphic Encryption, HE)

Гомоморфное шифрование позволяет выполнять операции (например, сложение) над зашифрованными данными, получая зашифрованный результат, который после расшифровки совпадает с результатом операций над открытыми данными.

  • Каждый клиент шифрует свой градиент публичным ключом сервера.
  • Сервер складывает зашифрованные градиенты (гомоморфное сложение).
  • Сервер расшифровывает сумму своим секретным ключом.

Преимущества: простая архитектура (сервер делает всю работу), низкая коммуникация. Недостатки: вычислительно дорого (особенно для полного гомоморфного шифрования), требуется управление ключами.

4.3. Комбинированные подходы

На практике часто используют гибрид: MPC для маскирования градиентов (masking|additive masking) с последующей агрегацией на сервере. Например, протокол SecAgg (Bonawitz et al., 2017) использует секретные маски, которые клиенты обмениваются попарно, чтобы сервер мог вычислить сумму, но не отдельные градиенты.


5. Сравнение методов secure aggregation

ХарактеристикаMPC (secret sharing)Гомоморфное шифрованиеSecAgg (маскирование)
Коммуникационная сложностьO(n²) (каждый с каждым)O(n) (клиент-сервер)O(n) (клиент-сервер + обмен ключами)
Вычислительная сложностьНизкая (только сложение)Высокая (шифрование/дешифрование)Средняя (генерация масок)
Устойчивость к выпадению клиентовТребует реконструкции долейПросто: пропустить выпавшихТребует механизмов восстановления
Модель угрозЧестное большинствоСервер честен, но любопытенЧестное большинство клиентов
Применимость к LLMТяжело из-за размера градиентовОчень тяжело (гигантские градиенты)Наиболее практично (используется в промышленности)

6. Практические реализации

  • SecAgg (TensorFlow Federated): протокол от Google, использует попарные маски и секретные доли для восстановления при выпадении клиентов.
  • SecAgg+: улучшенная версия с меньшей коммуникацией и поддержкой большего числа клиентов.
  • FATE (Federated AI Technology Enabler): open-source платформа, поддерживает MPC и HE для secure aggregation.
  • PySyft и OpenMined: библиотеки для безопасного FL, включают secure aggregation.

Для LLM с миллиардами параметров градиенты огромны (гигабайты). Secure aggregation становится узким местом из-за накладных расходов. Поэтому часто применяют компромиссы: агрегируют только часть градиентов или используют дифференциальную приватность в дополнение.


7. Ограничения и компромиссы

  • Вычислительная нагрузка: шифрование и дешифрование больших градиентов (например, для LLM с 7B параметров) может занимать часы.
  • Коммуникационные задержки: обмен масками между клиентами увеличивает время раунда.
  • Выпадение клиентов (dropout): если клиент отключается во время протокола, его маска может быть потеряна; требуется механизм восстановления (например, секретные доли маски).
  • Модель угроз: secure aggregation защищает от сервера, но не от других клиентов (если они сговариваются). Для полной защиты нужна дополнительная дифференциальная приватность (DP).
  • Совместимость с оптимизацией: некоторые методы (например, сжатие градиентов, gradient compression) могут нарушать гомоморфные свойства.

8. Применение к LLM

Для больших языковых моделей secure aggregation особенно актуальна в сценариях:

  • Медицина: несколько больниц совместно обучают LLM для анализа медицинских записей, не раскрывая данные пациентов.
  • Финансы: банки обучают модели обнаружения мошенничества на своих транзакциях.
  • Мобильные устройства: улучшение клавиатурных предикторов без сбора личных сообщений.

Из-за размера LLM (сотни миллионов параметров) прямое применение гомоморфного шифрования непрактично. Поэтому в индустрии чаще используют MPC с маскированием (SecAgg) или дифференциальную приватность для шумового зашумления градиентов перед агрегацией. Secure aggregation часто комбинируют с сжатием градиентов (например, Top-K sparsification), чтобы уменьшить объём передаваемых данных.


9. Пример концептуального протокола (псевдокод)

# Упрощённый протокол SecAgg (additive masking)
# Предполагается, что клиенты обменялись секретными ключами заранее

def client_update(model, data, client_id, shared_keys):
    gradients = compute_gradients(model, data)
    mask = sum(shared_keys[client_id][j] for j in range(num_clients) if j != client_id)
    masked_gradients = gradients + mask  # добавляем маску
    send_to_server(masked_gradients)

def server_aggregate(masked_gradients_list, client_ids):
    # Сервер получает маскированные градиенты
    # Он не знает маски, поэтому не может восстановить отдельные градиенты
    # Но если все клиенты честны, сумма масок равна 0 (попарно уничтожаются)
    total = sum(masked_gradients_list)
    # total = sum(gradients) + sum(masks) = sum(gradients) + 0
    return total / len(client_ids)

Реальный протокол сложнее: включает генерацию масок, обработку выпадений, аутентификацию.


10. Пет-проект для закрепления

Задача: Реализовать симуляцию федеративного обучения с secure aggregation на небольшой модели (например, логистическая регрессия на датасете Iris) с использованием библиотеки crypten (PyTorch) или tenseal (гомоморфное шифрование).

Инструменты:

Шаги:

  1. Разделите данные на 3 клиента (по 50 образцов).
  2. Реализуйте локальное обучение: каждый клиент вычисляет градиенты.
  3. Используйте crypten для secure aggregation: клиенты шифруют градиенты, сервер суммирует, расшифровывает.
  4. Сравните точность модели с обычной агрегацией (без шифрования) — точность должна совпадать (с точностью до ошибок округления).
  5. Добавьте атаку инверсии градиентов (например, с помощью gradient_inversion из OpenMined) и покажите, что secure aggregation предотвращает восстановление данных.

Ожидаемый результат: Рабочий прототип FL с secure aggregation, демонстрирующий, что сервер не может увидеть индивидуальные градиенты, но модель обучается корректно. Вывод: secure aggregation эффективно защищает приватность без потери качества модели.


11. Связь с другими вопросами

ВопросТема
620Федеративное обучение: основы и архитектура
621Дифференциальная приватность в FL
622Атаки инверсии градиентов и методы защиты
624Гомоморфное шифрование: принципы и применение
625Secure Multi-Party Computation (MPC)
626Безопасность LLM: уязвимости и контриеры

12. Навигация


Навигация