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

Глава 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 # Оптимизированный расчет коэффициентов