Журнал · Rit.work

В прогнозе временных рядов длину блока отделили от числа вызовов модели

ATD сохраняет обученный переход авторегрессионной модели, но выдаёт несколько блоков за вызов, ускоряя длинные прогнозы без заметной потери качества.

Rit.work
Студия разработки
22 сентября 2026 г.4 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

В блочном прогнозировании временных рядов удалось разделить способ представления данных, обученный переход и число блоков, которые модель выдаёт за один вызов. В препринте, который не проходил рецензирование и где все числа получили сами авторы, режим ATD-8 ускорил полный прогноз в 5,54 раза при стабильном качестве. Это позволяет оптимизировать выполнение уже обученной модели, не меняя её основной переход.

Один временной блок скрывает три архитектурных решения

Авторегрессионная модель получает историю, предсказывает следующий временной блок, добавляет его к истории и повторяет процесс. Обычно длина блока одновременно задаёт три вещи: как вход превращается в токены, какой фрагмент будущего служит целью при обучении и сколько точек модель записывает обратно перед следующим вызовом.

Из-за этой связки ускорение затрагивает всю модель. Если увеличить выходной блок, вызовов станет меньше, но изменятся цель обучения и путь, по которому накапливается ошибка. Поэтому нельзя считать, что более длинный выход автоматически даст тот же прогноз быстрее.

Работа разделяет эти решения по очереди. В эксперименте с представлением каждый входной блок собирали из небольших общих фрагментов, сохраняли их порядок и передавали дальше через линейную проекцию. На проверенной сетке результат сильнее зависел от ширины модели, чем от способа группировки фрагментов. Значит, размер входного блока и вычислительную ёмкость стоит подбирать отдельно, хотя этот опыт не доказывает, что один кодировщик подойдёт всем рядам.

Основной метод ATD работает с выполнением. Сначала выбирают и замораживают исходную авторегрессионную модель — в статье её называют родительской. Затем она рекурсивно строит прогнозы на обучающих историях, а дополнительные лёгкие выходы учатся воспроизводить несколько следующих блоков этой траектории сразу.

Первый блок всегда выдаёт сама родительская модель. Поэтому режим с одним блоком полностью совпадает с исходным прогнозом и остаётся точным резервным путём. Более широкие режимы используют тот же обученный переход, но реже вызывают основную модель и записывают в историю сразу несколько предсказанных блоков.

Сжатая траектория сохраняет ошибки родительской модели

Траекторию исходной модели оказалось проще воспроизвести, чем непосредственно наблюдаемое будущее. Обучение на родительской траектории улучшило точность её имитации во всех 21 запусках, но по качеству прогноза обошло обучение на реальном будущем только в 15. Близость к учителю и близость к правильному ответу здесь оказались разными задачами.

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

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

На горизонте 720 точек Spectrum Tangent снизил среднеквадратичную ошибку на 2,54% и сохранил ускорение в 3,24 раза относительно рекурсивного выполнения. При этом средний уровень ряда и его форма иногда указывали в разные стороны: пользу давало их совместное направление, а не одна универсальная сезонная поправка.

Командам стоит разделить ускорение и исправление прогноза

Работа меняет архитектурный план прежде всего там, где длинный авторегрессионный прогноз упирается в последовательные вызовы. Вместо обучения отдельной модели под каждый размер выхода можно оставить проверенный переход, добавить к нему выходы ATD и сохранить исходный режим как точный резервный вариант.

Такой слой не достаётся бесплатно. Для него нужно заранее построить родительские траектории, сохранить промежуточные состояния и обучить дополнительные выходы. Эти затраты имеет смысл амортизировать на повторяющихся прогнозах; для редких запусков выигрыш может не окупить подготовку.

Метрики также придётся разделить. Первая показывает, насколько хорошо широкий режим повторяет исходную траекторию. Вторая — насколько прогноз близок к реальным данным. Высокий результат по первой нельзя использовать как замену второй, особенно если родительская модель заметно ошибается на длинном горизонте.

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

Эксперименты охватывают семь наборов данных и три публичные авторегрессионные модели. Они относятся к точечному блочному прогнозированию; локальные модели не смешивали переменные между собой. Замеры скорости проводили с единичным пакетом на конкретном оборудовании, поэтому при пакетной обработке соотношение может измениться.

Практический вывод узкий: длину выхода больше не обязательно считать свойством самой обученной модели. Её можно вынести в слой выполнения, но ускорение и исправление ошибок всё равно останутся двумя разными инженерными задачами.

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

Ко всем материалам
Понравилось? Обсудим вашу задачу