Image

Федеративное обучение и пользовательские схемы агрегации

Практическое руководство по разработке и анализу надежных стратегий агрегации

Делиться

dac81d4e7fc323e07f2343b444a8b408

Кому следует прочитать этот документ?

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

Введение

Машинное обучение (МО) продолжает стимулировать инновации в различных областях, таких как здравоохранение, финансы и оборона. Однако, хотя модели МО в значительной степени опираются на большие объёмы централизованных высококачественных данных, вопросы конфиденциальности данных, права собственности и соответствия нормативным требованиям остаются серьёзными препятствиями.

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

Для полного использования возможностей FL важно понимать и разрабатывать собственные схемы агрегации . Эффективная агрегация не только влияет на точность и надёжность модели, но и решает такие проблемы, как гетерогенность данных, надёжность клиента и состязательное поведение. Таким образом, анализ и разработка адаптированных методов агрегации — ключевой шаг к оптимизации производительности и обеспечению равноправия в федеративных средах.

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

Однако в этой первой статье не рассматривалось, как проектировать, реализовывать и тестировать собственные схемы в реальных распределенных средах.

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

Что такое функции сервера?

Пользовательские агрегаторы — это функции, работающие на стороне сервера в системе федеративного обучения. Они определяют, как обрабатываются обновления модели от клиентов, например, агрегация, проверка или фильтрация, перед созданием следующей глобальной модели. Термин «серверная функция» используется в платформе Scaleout Edge AI для обозначения пользовательских агрегаторов.

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

Серверные функции — это механизм платформы Scaleout Edge AI для реализации пользовательских схем агрегации. Помимо этой гибкости, платформа включает четыре встроенных агрегатора: FedAvg (по умолчанию), FedAdam (FedOpt), FedYogi (FedOpt) и FedAdaGrad (FedOpt). Реализация методов семейства FedOpt соответствует подходу, описанному в статье. Подробнее см. в документации платформы.

Создание пользовательской схемы агрегации

В этой статье я покажу, как создать и протестировать собственную схему противодействия атакам с помощью платформы Edge AI от Scaleout. Одним из ключевых инструментов для этого является функция сервера (Server Function).

В этой статье мы рассмотрим, как разработать и реализовать собственный процесс агрегации в географически распределённой среде. Я пропущу базовую настройку и предположу, что вы уже знакомы с платформой Scaleout. Если вы только начинаете, вот несколько полезных ресурсов:

Пример быстрого старта FL: https://docs.scaleoutsystems.com/en/stable/quickstart.html

Архитектура фреймворка: https://docs.scaleoutsystems.com/en/stable/architecture.html

Справочник по API клиента: https://docs.scaleoutsystems.com/en/stable/apiclient.html Сервер

Руководство по функциям: https://docs.scaleoutsystems.com/en/stable/serverfunctions.html

Пример: атака с подменой меток

Рассмотрим конкретную атаку — подмену меток. В этом сценарии вредоносный клиент намеренно меняет метки в своём локальном наборе данных (например, меняет «кошку» на «собаку»). При отправке этих «отравленных» обновлений на сервер глобальная модель усваивает неверные закономерности, что приводит к снижению точности и надёжности.

Для этого эксперимента мы использовали открытый исходный набор данных MNIST, разделенный на шесть разделов, каждый из которых назначен отдельному клиенту. client-6 действует как злонамеренный участник, меняя метки в своих локальных данных, используя их для обучения и отправляя полученную локальную модель агрегатору.

4fba55f572887cd70832e1e8720f4587
Вредоносный клиент ИДЕНТИФИКАТОР
клиент-6 07505d04-08a5-4453-ad55-d541e9e4ef57

Здесь вы видите пример точки данных (изображение в оттенках серого) от клиента №6, где метки намеренно перевернуты. Изменяя метки, этот клиент пытается испортить глобальную модель в процессе агрегации.

1832738ccfc492d94359224f4fdbaeaf

Смягчение с помощью косинусного подобия

Чтобы противостоять этому, мы используем в качестве примера подход, основанный на косинусном сходстве . Идея проста: сравнить вектор обновления каждого клиента с глобальной моделью (шаг 1). Если степень сходства ниже заданного порогового значения (s̄ᵢ < 𝓣), обновление, вероятно, исходит от вредоносного клиента (шаги 2–4). На последнем шаге (шаг 5) вклад этого клиента исключается из процесса агрегации, который в данном случае использует схему взвешенного федеративного усреднения (FedAVG).

02473bad7dca81e590f075d3f5b07060

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

Реализация Python ниже иллюстрирует рабочий процесс пользовательского агрегатора: идентификация онлайн-клиентов (шаг 1), вычисление оценок косинусного сходства (шаги 2–3), исключение вредоносного клиента (шаг 4) и выполнение федеративного взвешенного усреднения (шаг 5).

Шаг 1

# — Вычислить дельты (клиент — previous_global) — prev_flat = self._flatten_params(previous_global) flat_deltas, norms = [], [] для параметров в client_params: flat = self._flatten_params(params) delta = flat — prev_flat flat_deltas.append(delta) norms.append(np.linalg.norm(delta))

Шаг 2 и 3

# — Матрица косинусного сходства — similarity_matrix = np.zeros((num_clients, num_clients), dtype=float) for i in range(num_clients): for j in range(i + 1, num_clients): denom = norms[i] * norms[j] sim = float(np.dot(flat_deltas[i], flat_deltas[j]) / denom) if denom > 0 else 0.0 similarity_matrix[i, j] = sim similarity_matrix[j, i] = sim # — Среднее сходство на клиента — avg_sim = np.zeros(num_clients, dtype=float) if num_clients > 1: avg_sim = np.sum(similarity_matrix, axis=1) / (num_clients — 1) for cid, s в zip(client_ids, avg_sim): logger.info(f»Округлить {self.round}: Среднее дельта-косинусное сходство для {cid}: {s:.4f}»)

Шаг 4

# — Отметить подозрительных клиентов — suspect_indices = [i for i, s in enumerate(avg_sim) if s < self.similarity_threshold] suspect_clients = [client_ids[i] for i in suspect_indices] if suspect_clients: logger.warning(f"Округлить {self.round}: Исключить подозрительных клиентов: {suspicious_clients}") # --- Оставить только неподозрительных клиентов --- keep_indices = [i for i in range(num_clients) if i not in suspect_indices] if len(keep_indices) < 3: # защитить logger.warning("Слишком много исключений, возвращаемся ко ВСЕМ клиентам.") keep_indices = list(range(num_clients)) held_client_ids = [client_ids[i] for i in keep_indices] logger.info(f"Округлить {self.round}: Клиенты, используемые для FedAvg: {kept_client_ids}")

Шаг 5

# === Weighted FedAvg === weighted_sum = [np.zeros_like(param) for param in previous_global] total_weight = 0 for i in keep_indices: client_id = client_ids[i] client_parameters, metadata = client_updates[client_id] num_examples = metadata.get(«num_examples», 1) total_weight += num_examples for j, param in enumerate(client_parameters): weighted_sum[j] += param * num_examples if total_weight == 0: logger.error(«Ошибка агрегации: total_weight = 0.») return previous_global new_global = [param / total_weight for param in weighted_sum] logger.info(«Модели агрегированы с использованием фильтрации по косинусному сходству FedAvg») return new_global

Полный код доступен на Github: https://github.com/sztoor/server_functions_cosine_similarity_example.git

Пошаговая активация функций сервера

  1. Войдите в Scaleout Studio и создайте новый проект.
  2. Загрузите вычислительный пакет и исходную модель в проект.
  3. Подключите клиентов к Studio, установив клиентские библиотеки Scaleout через pip ( # pip install fedn). Я подключил шесть клиентов.

Примечание: подробные инструкции по выполнению шагов 1–3 см. в кратком руководстве пользователя.

  1. Клонируйте репозиторий Github по предоставленной ссылке. Это даст вам два файла Python:
    1. server_functions.py – содержит схему агрегации на основе косинусного сходства.
    2. scaleout_start_session.py — подключается к Studio, отправляет локальную server_function и запускает сеанс обучения на основе предопределенных настроек (например, 5 раундов, тайм-аут раунда 180 секунд).
  2. Выполните скрипт scaleout_start_session.py.

Полную информацию об этих шагах можно найти в официальном руководстве по функциям сервера.

Результат и обсуждение

Ниже описаны шаги, необходимые для запуска scaleout_start_session.py.

В этой конфигурации к студии были подключены шесть клиентов, причём клиент 6 использовал намеренно перевёрнутый набор данных для имитации вредоносного поведения. Журналы Scaleout Studio предоставляют подробную информацию о выполнении серверной функции и реакции системы во время агрегации. В разделе 1 журналы показывают, что сервер успешно получил модели от всех клиентов, что подтверждает, что связь и загрузка моделей работают должным образом. В разделе 2 представлены оценки сходства для каждого клиента. Эти оценки количественно определяют, насколько точно обновление каждого клиента соответствует общей тенденции, предоставляя метрику для выявления аномалий.

Раздел 1

2025-10-20 11:35:08 [ИНФОРМАЦИЯ] Получен запрос на выбор клиента. 2025-10-20 11:35:08 [ИНФОРМАЦИЯ] Выбраны клиенты: ['eef3e17f-d498-474c-aafe-f7fa7203e9a9', 'e578482e-86b0-42fc-8e56-e4499e6ca553', '7b4b5238-ff67-4f03-9561-4e16ccd9eee7', '69f6c936-c784-4ab9-afb2-f8ccffe15733', '6ca55527-0fec-4c98-be94-ef3ffb09c872', '07505d04-08a5-4453-ad55-d541e9e4ef57'] 2025-10-20 11:35:14 [INFO] Получена предыдущая глобальная модель 2025-10-20 11:35:14 [INFO] Получены метаданные 2025-10-20 11:35:14 [INFO] Получена модель клиента от клиента eef3e17f-d498-474c-aafe-f7fa7203e9a9 2025-10-20 11:35:14 [INFO] Получены метаданные 2025-10-20 11:35:15 [INFO] Получена модель клиента от клиента e578482e-86b0-42fc-8e56-e4499e6ca553 2025-10-20 11:35:15 [INFO] Получены метаданные 2025-10-20 11:35:15 [INFO] Получена модель клиента от клиента 07505d04-08a5-4453-ad55-d541e9e4ef57 2025-10-20 11:35:15 [INFO] Получены метаданные 2025-10-20 11:35:15 [INFO] Получена модель клиента от клиента 69f6c936-c784-4ab9-afb2-f8ccffe15733 2025-10-20 11:35:15 [INFO] Получено метаданные 2025-10-20 11:35:15 [ИНФОРМАЦИЯ] Получена модель клиента от клиента 6ca55527-0fec-4c98-be94-ef3ffb09c872 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Получены метаданные 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Получена модель клиента от клиента 7b4b5238-ff67-4f03-9561-4e16ccd9eee7

Раздел 2

2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Получен запрос на агрегацию: агрегация 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Среднее дельта-косинусное сходство для eef3e17f-d498-474c-aafe-f7fa7203e9a9: 0,7498 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Среднее дельта-косинусное сходство для e578482e-86b0-42fc-8e56-e4499e6ca553: 0,7531 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Среднее дельта-косинусное сходство для 07505d04-08a5-4453-ad55-d541e9e4ef57: -0,1346 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Среднее дельта-косинусное сходство для 69f6c936-c784-4ab9-afb2-f8ccffe15733: 0,7528 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Среднее дельта-косинусное сходство для 6ca55527-0fec-4c98-be94-ef3ffb09c872: 0,7475 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Среднее дельта-косинусное сходство для 7b4b5238-ff67-4f03-9561-4e16ccd9eee7: 0,7460

Раздел 3

2025-10-20 11:35:16 ⚠️ [ВНИМАНИЕ] Раунд 0: Исключение подозрительных клиентов: ['07505d04-08a5-4453-ad55-d541e9e4ef57']

Раздел 4

2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Раунд 0: Клиенты, используемые для FedAvg: ['eef3e17f-d498-474c-aafe-f7fa7203e9a9', 'e578482e-86b0-42fc-8e56-e4499e6ca553', '69f6c936-c784-4ab9-afb2-f8ccffe15733', '6ca55527-0fec-4c98-be94-ef3ffb09c872', '7b4b5238-ff67-4f03-9561-4e16ccd9eee7'] 2025-10-20 11:35:16 [ИНФОРМАЦИЯ] Модели, агрегированные с использованием FedAvg + косинусной фильтрации сходства

В разделе 3 отмечено, что клиент-6 (ID …e4ef57) был идентифицирован как вредоносный. Предупреждающее сообщение указывает на то, что этот клиент будет исключён из процесса агрегации. Это исключение обосновано его крайне низким показателем сходства –0,1346 , самым низким среди всех клиентов, и пороговым значением (𝓣), установленным в серверной функции. Удаление клиента-6 гарантирует, что обновление выбросов не окажет негативного влияния на глобальную модель. В разделе 4 перечислены идентификаторы клиентов, включённые в агрегацию, что подтверждает, что в обновлённую глобальную модель внесли вклад только доверенные клиенты.

В сочетании с сообщениями журнала платформа предоставляет подробную информацию по каждому клиенту, которая улучшает понимание его поведения. К ней относятся потери и точность обучения для каждого клиента, глобальные метрики производительности модели и время обучения для каждого клиента. Ещё одной ключевой функцией является журнал модели, который отслеживает обновления модели с течением времени и позволяет детально анализировать влияние отдельных клиентов на глобальную модель. Разделы и дополнительные данные в совокупности дают полное представление о вкладе клиентов, наглядно иллюстрируя различие между обычными клиентами и вредоносным клиентом-6 (ID …e4ef57) и демонстрируя эффективность функции сервера в противодействии потенциальным атакам.

0159533a9455c73a6ab2453688038447
14af225d55988e8f22f2298802cd60d6
34407ecadbe6fd464fdc2ff9b59dbc3f

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

Краткое содержание

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

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

Полезные ссылки

  • Пользовательские функции сервера в Scaleout Studio
  • Начало работы с Scaleout Studio
  • Объяснение федеративного обучения: концепции, преимущества и практическое применение
  • Кросс-устройствовое федеративное машинное обучение с минимальными ресурсами
  • Масштабируемое федеративное машинное обучение с FEDn, 22-й Международный симпозиум IEEE 2022 по кластерным, облачным и интернет-вычислениям (CCGrid).

Данные автора:

Салман Тур
Технический директор и соучредитель Scaleout.
Доцент
Департамент информационных технологий,
Уппсальский университет, Швеция
LinkedIn Google Академия

Источник: towardsdatascience.com

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

СОСТОЯЛОСЬ ЗАСЕДАНИЕ МЕТОДИЧЕСКОГО СОВЕТА, ПОСВЯЩЕННОЕ ПОКОЛЕНИЮ «РОЖДЕННЫХ ЦИФРОВЫМИ»
СОСТОЯЛОСЬ ЗАСЕДАНИЕ МЕТОДИЧЕСКОГО СОВЕТА, ПОСВЯЩЕННОЕ ПОКОЛЕНИЮ «РОЖДЕННЫХ ЦИФРОВЫМИ»
Биофизический мир внутри переполненной клетки
Появились новые доказательства того, как одиночество влияет на память в пожилом возрасте.
NVIDIA ReSTIR PR Enhanced повышает производительность трассировки пути в три раза
«Слишком сложно и дорого»: могли ли американцы сымитировать полет к Луне с помощью ИИ
«Слишком сложно и дорого»: могли ли американцы сымитировать полет к Луне с помощью ИИ
L-эрготиоин: антиоксидант, содержащийся в грибах, может воздействовать на клетки матки, облегчая менструальные боли.
L-эрготиоин: антиоксидант, содержащийся в грибах, может воздействовать на клетки матки, облегчая менструальные боли.
Image Not Found
СОСТОЯЛОСЬ ЗАСЕДАНИЕ МЕТОДИЧЕСКОГО СОВЕТА, ПОСВЯЩЕННОЕ ПОКОЛЕНИЮ «РОЖДЕННЫХ ЦИФРОВЫМИ»

СОСТОЯЛОСЬ ЗАСЕДАНИЕ МЕТОДИЧЕСКОГО СОВЕТА, ПОСВЯЩЕННОЕ ПОКОЛЕНИЮ «РОЖДЕННЫХ ЦИФРОВЫМИ»

19 февраля 2026 года прошло заседание Методического совета, посвященное теме «“Рожденные цифровыми” как субъекты учения: специфика и ее учет в преподавании». В мероприятии участвовали члены Методсовета, проректор по учебной работе, начальник УМУ, а также коллеги с филологического,…

Апр 21, 2026
СОСТОЯЛОСЬ ЗАСЕДАНИЕ МЕТОДИЧЕСКОГО СОВЕТА, ПОСВЯЩЕННОЕ ПОКОЛЕНИЮ «РОЖДЕННЫХ ЦИФРОВЫМИ»

СОСТОЯЛОСЬ ЗАСЕДАНИЕ МЕТОДИЧЕСКОГО СОВЕТА, ПОСВЯЩЕННОЕ ПОКОЛЕНИЮ «РОЖДЕННЫХ ЦИФРОВЫМИ»

19 февраля 2026 года прошло заседание Методического совета, посвященное теме «“Рожденные цифровыми” как субъекты учения: специфика и ее учет в преподавании». В мероприятии участвовали члены Методсовета, проректор по учебной работе, начальник УМУ, а также коллеги с филологического,…

Апр 21, 2026
NVIDIA ReSTIR PR Enhanced повышает производительность трассировки пути в три раза

NVIDIA ReSTIR PR Enhanced повышает производительность трассировки пути в три раза

Исследователи NVIDIA пытаются найти способы повысить производительность ресурсозатратной трассировки пути, которая по сей день остаётся очень тяжёлой нагрузкой даже для лучших игровых видеокарт. К счастью, им удалось найти один из вариантов, как можно не только поднять FPS,…

Апр 21, 2026
Многоразовая ракета New Glenn компании Blue Origin успешно приземлилась, но доставка полезной нагрузки не удалась.

Многоразовая ракета New Glenn компании Blue Origin успешно приземлилась, но доставка полезной нагрузки не удалась.

Однако ей не удалось доставить полезную нагрузку с космической вышки сотовой связи. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Апр 20, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых