Обсуждение статьи "Фундаментальные модели для торговли (Часть II): Декодирование, авторегрессия и точный KV-кэш"

Опубликована статья Фундаментальные модели для торговли (Часть II): Декодирование, авторегрессия и точный KV-кэш:

Мы завершаем нативную реализацию Kronos на MQL5: создаем декодировщик, этапы decode_s1 и decode_s2 предиктора с подводными камнями перекрестного внимания и авторегрессионный цикл, формирующий прогноз на несколько баров. Затем мы проводим профилирование и ускоряем реализацию примерно в 4,5 раза с помощью точного KV-кэша и предварительно транспонированных весов, сверяя результаты каждого этапа с результатами PyTorch.

В этой части мы переходим ко второй половине модели. Мы создаем декодировщик, преобразующий токены обратно в свечи, предиктор, пошагово генерирующий новые токены, и авторегрессионный цикл, объединяющий их работу в прогноз на несколько баров. По ходу работы мы сталкиваемся с неочевидными подводными камнями, требующими серьезной отладки: блок перекрестного внимания с иным числом голов, чем в остальной модели, ротационным эмбеддингом, поворачивающим все ключи с использованием одной и той же позиции, и эмбеддингом, который в одном месте масштабируется, а в другом остается немасштабированным. Каждая из этих ошибок не вызывает сбоев при выполнении, но незаметно искажает результат.

Затем мы ускоряем реализацию. Первая рабочая реализация формировала прогноз настолько медленно, что ее использование в реальном исследовании было непрактичным. Две доработки вместе сократили время одного шага примерно в 4,5 раза: кэш ключей и значений, устраняющий повторные вычисления в цикле, и исправление транспонирования весов. Последнюю проблему профилировщик выявил там, где интуиция не подсказала бы искать. К концу этой части весь пайплайн работает от начала до конца, а результаты каждого этапа сверены с эталонными результатами PyTorch: на вход подается окно свечей, на выходе получается прогноз на несколько баров в исходных ценовых единицах.

Foundation Models for Trading (Part II): Decoding, Autoregression, and an Exact KV-Cache"


Автор: Muhammad Minhas Qamar