Перейти к содержимому

Глава 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 # Оптимизированный движок упаковки бит