Глава 179: Communication-Efficient Federated Learning
Обзор
В глобальных торговых сетях пропускная способность — ценный ресурс. Передача полных 32-битных обновлений моделей от тысяч клиентов через международные границы — это медленно и дорого.
Communication-Efficient Federated Learning направлено на уменьшение объема передаваемых данных при синхронизации без потери предсказательной способности модели.
Основные методы
1. Квантование градиентов (Quantization)
Вместо передачи точных 32-битных чисел с плавающей запятой, мы сопоставляем значения с меньшим набором дискретных уровней (например, 8-битным, 4-битным или даже 1-битным).
- SignSGD: Передается только знак градиента (+1 или -1). Это сокращает обновление каждого параметра до одного бита.
2. Разрежение (Sparsification / Top-K)
Торговые модели часто имеют разреженные обновления. Вместо отправки всей модели мы передаем только самые значимые изменения (градиенты Top-K), а остальные считаем нулевыми.
3. Компенсация ошибок (Error Feedback)
Чтобы предотвратить потерю информации при сжатии, клиенты накапливают «разницу» между сжатыми и исходными градиентами и добавляют её к следующему обновлению.
Структура проекта
179_communication_efficient_fl/├── README.md # Обзор на английском├── README.ru.md # Обзор на русском├── docs/ru/theory.md # Математические основы├── python/│ ├── model.py # Базовая нейронная сеть│ ├── compression_core.py # Логика сжатия и квантования│ └── train.py # Симуляция: Dense vs. Compressed└── rust/src/ └── lib.rs # Оптимизированный движок упаковки бит