Глава 178: Asynchronous Federated Learning для трейдинга
Обзор
В предыдущих главах мы использовали синхронную агрегацию (FedAvg). Несмотря на надежность, у нее есть критический недостаток для трейдинга: система ждет самого медленного участника.
Asynchronous Federated Learning (AFL) позволяет центральному серверу обновлять глобальную модель сразу же, как только поступает обновление от любого клиента.
Проблема: Устаревание модели (Staleness)
В AFL клиент может начать обучение на версии $N$ глобальной модели, но к моменту, когда его обновление дойдет до сервера, тот уже перейдет к версии $N+10$. Это называется Staleness. Если мы будем учитывать устаревшие данные так же, как свежие, модель начнет расходиться.
Наше решение: Staleness-Aware Aggregation
Мы внедрим правило агрегации, которое автоматически снижает вес “устаревших” обновлений с помощью функции затухания:
- Свежие обновления: Оказывают большое влияние на глобальную модель.
- Устаревшие обновления: Имеют низкий вес, используются только для сохранения долгосрочных паттернов.
Структура проекта
178_asynchronous_fl_trading/├── README.md # Обзор на английском├── README.ru.md # Обзор на русском├── docs/ru/theory.md # Математические основы├── python/│ ├── model.py # Базовая нейронная сеть│ ├── afl_core.py # Логика асинхронного сервера│ └── train.py # Симуляция AFL против Sync FL└── rust/src/ └── lib.rs # Оптимизированный расчет коэффициентов