Федеративное обучение в условиях дефицита памяти на Edge-устройствах

Федеративное обучение в условиях дефицита памяти на Edge-устройствах

Как обучить ML-модели на Edge-устройствах с памятью менее 256 МБ? В этой статье рассматривается реализация федеративного обучения (FL) на ресурсоограниченных устройствах — точках доступа, где доступна лишь небольшая оперативная память. Рассказываем об экспериментальной платформе, архитектуре, выборе моделей, результатах и практических рекомендациях.

Экспериментальная платформа

Разработка прошла в три этапа: симуляция концепции, тестирование на реальных точках доступа и нагрузочное тестирование. Целевые метрики были строгими: точность выше 90% относительно базовой линии, задержка инференса до 100 мс, потребление памяти — до 256 МБ, сетевой трафик — не более 10 МБ в день на устройство.

Поскольку модель весит 65 МБ, прямая синхронизация создала бы 130 МБ трафика на раунд — это превышает лимит. Чтобы уложиться в 10 МБ, была применена экстремальная спарсификация градиентов (Extreme Sparsification): на сервер отправляется только 1% самых значимых обновлений (top-k), остальные накапливаются локально.

Альтернативно — использование HeteroFL, который формирует урезанные подсети для слабых устройств. Например, уровень E — всего 25 КБ, в то время как полная версия (уровень A) — 5,9 МБ.

Для тестирования использовался Docker-контейнер, эмулирующий точку доступа. В нём работают системные сервисы AP, а радиоинтерфейс и беспроводная среда симулируются программно — это цифровой двойник сети.

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

Реализация и архитектура

Архитектура построена на нескольких фреймворках. Координацией FL управляет Flower — гибкий инструмент, совместимый с разными ML-движками. Цифровые двойники работают в TensorFlow Federated. На самих устройствах для инференса используется LiteRT (ранее TensorFlow Lite) с C++ API. Запуск полноценных сред на устройствах с жёсткими лимитами памяти нецелесообразен.

Сбор метрик выполняется через eBPF. Управляющие команды передаются по NETCONF, телеметрия — через WebSocket. Данные из eBPF фильтруются и валидируются до попадания в модель, чтобы избежать искажений от аномальных значений.

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

Выбор моделей

Модель на точке доступа анализирует статистику и прогнозирует рост трафика для превентивного расширения полосы. Были протестированы четыре архитектуры: ARIMA, TCN (Temporal Convolutional Network), GCN (Graph Convolutional Network) и TimesFM от Google. Базовой стала ARIMA.

Выбор модели зависит от объёма ОЗУ:

  • На устройствах с 128 МБ работает только ARIMA и статистические модели.
  • На 256 МБ — TCN, но при условии коротких окон, батча ≤2 и квантования в INT8.
  • На 512 МБ можно развернуть TCN + локальную GCN с ленивой загрузкой слоёв и матрицей смежности только по соседним узлам.

Тяжёлые модели вроде TimesFM (200 млн параметров) нельзя запускать на самих точках из-за нехватки памяти. Они применимы только в архитектуре Edge-Offloading, где вычисления идут на сервере, а устройство лишь передаёт телеметрию. Для локальной оптимизации выбрана TCN.

Без оптимизаций TCN с тремя слоями требовала 162 МБ только под модель — не считая runtime, данных и активаций. Основная нагрузка на память возникает из-за экспоненциального роста тензоров активаций O(B×L×C), особенно при обработке длинных последовательностей.

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

Применение полной 8-битной квантизации (INT8) даёт строгое сжатие в 4 раза (на 75%) по сравнению с FP32. Это касается не только весов, но и тензоров активаций.

С квантованием и другими оптимизациями модель уменьшена до 65 МБ без потери точности — теперь её можно размещать на точках доступа.

Сравнение подходов к загрузке:

  • Статическая загрузка: до 400 МБ — выходит за пределы возможностей средних устройств.
  • С квантованием: около 200 МБ.
  • С динамической подзагрузкой: пик — 150 МБ, минимум — до 50 МБ в зависимости от этапа.

Динамическая загрузка снижает среднее потребление с 400 МБ до 110 МБ на активные процессы.

Анализ паттернов доступа к памяти (прямой проход, градиенты, обновление в FL) показал почти 60% снижения потребления при оптимизации.

Результаты экспериментов

Сравнение моделей по точности:

  • Скользящая средняя: 65–75%.
  • TCN: 85–90%.
  • GCN и TimesFM: потенциал до 95–100%.

Архитектура процессора влияет на эффективность оптимизаций. На ARM-чипах квантование в INT8 работает с минимальными потерями. На старых MIPS-процессорах — резкое падение точности из-за отсутствия поддержки векторных инструкций.

Для автоматизации настроен базовый MLOps-конвейер: контроллер собирает метрики, при необходимости дообучает модель на сервере и рассылает обновлённые бинарники через NETCONF.

Заключение

Ключевые выводы:

  • Федеративное обучение на ресурсоограниченных устройствах возможно, но требует дополнительных оптимизаций.
  • Стек Flower + TensorFlow Lite (LiteRT) — зрелый и стабильный выбор.
  • Парадигма «память по требованию» с динамической подгрузкой, предзагрузкой и асинхронной обработкой даёт значительный выигрыш в эффективности.
  • Цифровой двойник — обязательный этап MLOps при работе с железом. Он позволяет сравнивать ожидаемое и реальное поведение устройств.

Практические рекомендации

Для архитектурных решений:

  • Используйте иерархическое FL и адаптивное квантование (INT8 → INT4). Эффективность зависит от архитектуры процессора — на MIPS возможна потеря точности без экономии.
  • Реализуйте динамическую подзагрузку слоёв: задержка минимальна, а экономия памяти — максимальна.

Оптимальной комбинацией оказалась связка TCN + FedBN + HeteroFL:

  • TCN — эффективна для прогнозирования трафика.
  • FedBN — решает проблему разных радиоусловий: параметры нормализации остаются на устройстве, не искажая глобальную модель.
  • HeteroFL — адаптирует размер сети под объём ОЗУ, позволяя подключать слабые устройства.

Эта комбинация обеспечивает стабильную работу без перегрузки ресурсов.

Что дальше?

Планируется запуск GCN на физическом оборудовании. Далее — разработка методики тестирования в реальной корпоративной среде. Цель — измерить реальный прирост скорости с учётом фоновых вычислений и синхронизации на точке доступа.

Последний этап — оценка применимости модели TimesFM в архитектуре Edge-Offloading, где основные вычисления выполняются на локальном сервере.

Читать оригинал