Глава 185: Периферийное федеративное обучение для трейдинга
1. Введение: Периферийные вычисления и федеративное обучение для низколатентного трейдинга
В современном количественном трейдинге задержка является первостепенной проблемой. Каждая микросекунда имеет значение при исполнении стратегий, зависящих от быстрых движений цены, изменений книги заявок и межбиржевого арбитража. Традиционные централизованные конвейеры машинного обучения вносят неизбежные задержки на пересылку данных: необработанные рыночные данные должны быть переданы с бирж в центральный дата-центр, обработаны, пропущены через модель, и полученный сигнал должен быть отправлен обратно. Такая архитектура принципиально противоречит требованиям скорости высокочастотного и среднечастотного трейдинга.
Периферийные вычисления (edge computing) предлагают убедительную альтернативу. Развёртывая лёгкие узлы инференса и обучения непосредственно в колокационных центрах бирж, в инфраструктуре брокеров или даже на мобильных торговых устройствах, мы можем кардинально сократить задержку между наблюдением и действием. Однако периферийное развёртывание создаёт собственные проблемы: ограниченные вычислительные ресурсы, гетерогенное оборудование, прерывистое соединение и риск фрагментации модели между изолированными узлами.
Федеративное обучение (FL) решает эту проблему. Вместо централизации всех данных для обучения, FL позволяет каждому периферийному устройству обучаться локально на собственном потоке данных и периодически передавать обновления модели координатору. Координатор агрегирует эти обновления для создания глобальной модели, которая использует коллективный интеллект всех периферийных узлов без централизации исходных данных.
В этой главе мы исследуем пересечение периферийных вычислений и федеративного обучения для торговых приложений. Мы спроектируем архитектуру, в которой периферийные устройства в колокациях бирж обучаются на локальном потоке ордеров, делятся сжатыми обновлениями моделей и коллективно строят надёжную модель торговых сигналов. Мы используем FedProx для обработки присущей гетерогенности периферийных устройств и реализуем сжатие градиентов для минимизации коммуникационных затрат.
2. Периферийная архитектура для трейдинга
2.1 Периферийные устройства в колокациях бирж
Основной целью развёртывания периферийного FL в трейдинге является колокационный центр. Крупные биржи, такие как Binance, Bybit, CME и NYSE, предлагают услуги колокации, где трейдеры могут размещать свои серверы физически рядом с сервером сопоставления ордеров биржи. В нашей архитектуре каждый колокационный узел запускает:
- Локальный конвейер приёма данных, который захватывает снимки книги заявок в реальном времени, тиковые данные сделок и обновления ставок финансирования непосредственно с биржевого потока данных.
- Лёгкую ML-модель (обычно небольшую нейронную сеть или ансамбль на основе градиентного бустинга), которая генерирует торговые сигналы на основе локальных данных.
- Клиент федеративного обучения, который периодически обучает модель на недавних локальных данных и создаёт обновления модели для координатора.
Ключевая идея заключается в том, что каждый колокационный узел видит немного отличающуюся картину рынка. Узел на Bybit видит паттерны потока ордеров, специфичные для Bybit, а узел на Binance видит паттерны, специфичные для Binance. Объединяя данные с этих узлов через федерацию, глобальная модель улавливает межбиржевую динамику, которую ни один отдельный узел не мог бы изучить самостоятельно.
2.2 Мобильные и удалённые торговые узлы
Помимо колокаций, периферийное FL распространяется на мобильные торговые приложения и удалённые торговые терминалы. Эти устройства обладают значительно меньшей вычислительной мощностью и менее стабильным соединением, но они привносят ценное разнообразие сигналов. Мобильный трейдер в Азии может наблюдать иные паттерны микроструктуры рынка, чем колокационный узел в Нью-Йорке.
2.3 Иерархическая периферийная топология
Мы используем двухуровневую архитектуру:
- Уровень 1 (Колокационные периферии): Высокопроизводительные узлы с GPU-ускорением, низколатентными биржевыми потоками данных и надёжным соединением. Эти узлы выполняют полное обучение модели и частые обновления.
- Уровень 2 (Мобильные/Удалённые периферии): Узлы с ограниченными ресурсами, которые выполняют частичные обновления модели и обмениваются данными реже.
Координатор располагается в облачном дата-центре и оркестрирует агрегацию на обоих уровнях, взвешивая вклады по возможностям устройств и качеству данных.
3. Математические основы
3.1 FedProx для гетерогенных периферийных устройств
Стандартный FedAvg предполагает, что все участвующие устройства выполняют одинаковый объём локальных вычислений (например, одинаковое количество локальных эпох). Это предположение нарушается на периферии, где устройства имеют совершенно разные вычислительные бюджеты. Колокационный сервер с GPU может выполнить 50 локальных эпох за время, пока мобильное устройство завершит 2.
FedProx (Federated Proximal) решает эту проблему, добавляя проксимальный член к локальной целевой функции. Для устройства $k$ в раунде коммуникации $t$ локальная целевая функция принимает вид:
$$h_k(w; w^t) = F_k(w) + \frac{\mu}{2} |w - w^t|^2$$
где:
- $F_k(w)$ — локальная эмпирическая функция потерь на данных устройства $k$
- $w^t$ — текущие параметры глобальной модели
- $\mu \geq 0$ — коэффициент проксимального члена
- $|w - w^t|^2$ — штрафует локальные модели, которые слишком отклоняются от глобальной модели
Проксимальный член имеет два критических эффекта:
- Стабилизирует обучение на гетерогенных устройствах: Устройства, выполняющие меньше локальных шагов, естественно остаются ближе к $w^t$, в то время как устройства, выполняющие много шагов, регуляризуются к $w^t$.
- Улучшает сходимость: Проксимальный член обеспечивает ограниченное расхождение между локальными и глобальными целевыми функциями.
3.2 Частичные обновления модели
Не все периферийные устройства могут позволить себе обновлять всю модель. Мы поддерживаем частичные обновления, при которых устройство $k$ обновляет только подмножество $S_k$ параметров модели:
$$w_{k,i}^{t+1} = \begin{cases} w_{k,i}^{t} - \eta \nabla_{w_i} h_k(w_k^t; w^t) & \text{если } i \in S_k \ w_i^t & \text{если } i \notin S_k \end{cases}$$
Координатор отслеживает, какие параметры обновило каждое устройство, и выполняет взвешенное усреднение только по параметрам, которые были фактически обучены.
3.3 Гарантия сходимости
При стандартных предположениях (L-липшицева гладкость, ограниченная дисперсия $\sigma^2$, ограниченное расхождение $B$) FedProx с частичными обновлениями сходится со скоростью:
$$\mathbb{E}[F(w^T)] - F^* \leq \mathcal{O}\left(\frac{1}{\sqrt{T}} + \frac{B + \sigma^2}{\mu T}\right)$$
где $T$ — количество раундов коммуникации. Проксимальный член $\mu$ предоставляет регулятор для компромисса между скоростью сходимости и гибкостью локальных вычислений.
4. Эффективность коммуникации: Сжатие и квантование градиентов
4.1 Узкое место коммуникации
В периферийном FL для трейдинга пропускная способность коммуникации — ценный ресурс. Колокационные узлы могут делить сетевую инфраструктуру с чувствительными к задержке торговыми системами, а мобильные узлы работают через сотовые сети. Мы не можем позволить себе передавать полные обновления модели в каждом раунде.
4.2 Разреживание градиентов Top-K
Мы передаём только K наибольших по модулю компонентов градиента:
$$\text{TopK}(\nabla F, K) = {(\nabla F)_i : |(\nabla F)_i| \text{ входит в число K наибольших}}$$
Обычно K устанавливается равным 1-10% от общего числа параметров. Остальные компоненты градиента накапливаются в локальном буфере остатков и добавляются к градиенту следующего раунда, что гарантирует отсутствие безвозвратной потери информации.
4.3 Стохастическое квантование
Каждый передаваемый компонент градиента квантуется для уменьшения битовой ширины:
$$Q(v) = |v| \cdot \text{sign}(v_i) \cdot \xi_i(v, s)$$
где $\xi_i(v, s)$ — стохастическая функция округления с $s$ уровнями квантования. При $s = 256$ (8-битное квантование) мы уменьшаем объём коммуникации в 4 раза по сравнению с 32-битными числами с плавающей запятой, сохраняя качество модели практически без потерь.
4.4 Комбинированный коэффициент сжатия
При использовании Top-5% разреживания с 8-битным квантованием общий коэффициент сжатия составляет:
$$\text{Сжатие} = \frac{1}{0.05} \times \frac{32}{8} = 80\times$$
Это означает, что модель с 1 миллионом параметров (4 МБ в формате float32) требует лишь около 50 КБ на обновление, что укладывается в ограничения пропускной способности даже мобильных сетей.
5. Пошаговое описание реализации
Наша реализация на Rust состоит из нескольких основных компонентов:
5.1 Симуляция периферийных устройств
Каждая структура EdgeDevice представляет узел с:
- Вычислительной способностью: Определяет, сколько локальных эпох обучения устройство может выполнить за раунд.
- Локальным буфером данных: Хранит недавние рыночные данные для локального обучения.
- Параметрами модели: Локальная копия модели, которая обновляется в процессе обучения.
- Буфером остатков: Накапливает компоненты градиента, не переданные из-за разреживания Top-K.
5.2 Цикл обучения FedProx
Локальный цикл обучения реализует проксимальную целевую функцию. На каждой локальной эпохе:
- Вычисляется стандартный градиент функции потерь на мини-пакете локальных данных.
- Добавляется проксимальный градиент: $\mu (w - w^t)$.
- Параметры обновляются с помощью SGD.
- Если вычислительный бюджет устройства исчерпан, обучение прекращается досрочно (частичная работа допустима при FedProx).
5.3 Конвейер сжатия градиентов
После завершения локального обучения:
- Вычисляется дельта обновления: $\Delta w = w_{\text{local}} - w^t$.
- Добавляются остатки из предыдущих раундов.
- Применяется разреживание Top-K для выбора наибольших компонентов.
- Выбранные компоненты квантуются в 8-битное представление.
- Невыбранные компоненты сохраняются в буфере остатков.
- Сжатое обновление передаётся координатору.
5.4 Агрегация координатором
Координатор получает сжатые обновления от участвующих устройств и:
- Распаковывает и деквантует каждое обновление.
- Вычисляет взвешенное среднее на основе объёма данных устройств и вычислительного вклада.
- Применяет агрегированное обновление к глобальной модели.
- Рассылает новую глобальную модель всем устройствам.
5.5 Интеграция данных Bybit
Реализация включает клиент API Bybit, который получает реальные данные свечей (kline) BTCUSDT. Каждое периферийное устройство обрабатывает эти данные в признаки (доходность, волатильность, индикаторы моментума) и целевые переменные (направление или доходность следующего периода). Это обеспечивает реалистичные данные для обучения в симуляции федеративного обучения.
6. Интеграция данных Bybit
6.1 Конечные точки API
Мы используем публичный API рыночных данных Bybit:
- Свечи:
GET /v5/market/kline?category=linear&symbol=BTCUSDT&interval=5 - Книга заявок:
GET /v5/market/orderbook?category=linear&symbol=BTCUSDT
6.2 Инженерия признаков
На основе необработанных данных свечей каждое периферийное устройство вычисляет:
| Признак | Формула | Описание |
|---|---|---|
| Доходность | $(close_t - close_{t-1}) / close_{t-1}$ | Ценовая доходность |
| Волатильность | $\text{std}(returns_{t-n:t})$ | Скользящее стандартное отклонение доходностей |
| Моментум | $(close_t - close_{t-n}) / close_{t-n}$ | N-периодный моментум |
| Коэфф. объёма | $volume_t / \text{mean}(volume_{t-n:t})$ | Относительный объём |
| Диапазон | $(high_t - low_t) / close_t$ | Нормализованный диапазон свечи |
6.3 Распределение данных между периферийными узлами
Для моделирования реалистичной гетерогенности данных каждое периферийное устройство получает различный временной срез или подвыборку данных. Это создаёт не-IID распределения данных, отражающие реальный сценарий, в котором разные периферийные узлы наблюдают различные рыночные условия.
7. Ключевые выводы
-
Периферийное FL снижает задержку: Обучая и выполняя инференс на периферии, мы устраняем необходимость пересылки данных в центральный дата-центр. Модели могут реагировать на рыночные события за микросекунды, а не миллисекунды.
-
FedProx элегантно справляется с гетерогенностью: Проксимальный член позволяет устройствам с совершенно различными вычислительными возможностями вносить значимый вклад. Мобильное устройство, выполняющее 2 локальные эпохи, работает наравне с колокационным GPU, выполняющим 50 эпох.
-
Сжатие градиентов необходимо на периферии: При 80-кратном сжатии через разреживание Top-K и квантование обновления модели укладываются в жёсткие ограничения пропускной способности без значимой потери качества модели.
-
Частичные обновления позволяют участвовать устройствам с ограниченными ресурсами: Устройства, которые не могут позволить себе обновлять всю модель, могут обновлять подмножество параметров. Координатор ведёт необходимый учёт.
-
Межбиржевая федерация улавливает уникальные сигналы: Объединяя узлы на различных биржах через федерацию, глобальная модель обучается межбиржевой динамике (например, лидирующе-запаздывающие ценовые отношения, паттерны ликвидности), которые ни один отдельный узел не мог бы обнаружить.
-
Конфиденциальность и соответствие регуляторным требованиям: Необработанные торговые данные никогда не покидают периферийное устройство, что может упростить соответствие регуляторным требованиям по размещению данных и защитить проприетарные торговые стратегии.
-
Раунды коммуникации должны быть адаптивными: На волатильных рынках более частая агрегация улавливает быстрые смены режимов. На спокойных рынках менее частая агрегация экономит пропускную способность.
-
Реализация на Rust демонстрирует готовность к продакшену: Использование Rust для среды выполнения периферийного FL обеспечивает гарантии производительности (отсутствие пауз сборщика мусора, предсказуемая задержка), необходимые для торговых систем, а система типов выявляет множество ошибок на этапе компиляции.
Предпросмотр следующей главы: В главе 186 мы рассмотрим федеративное обучение с дифференциальной приватностью для трейдинга, добавляя формальные гарантии конфиденциальности к процессу федеративного обучения для защиты чувствительных торговых стратегий от атак на основе инференса.