Часть 1. Как создавался Chronos
Привет, Хабр. Для начала, разрешите представиться. Меня зовут Елисеев Сергей, работаю аналитиком в лаборатории ИИ компании ООО «ОЦРВ». В рамках корпоративной деятельности нам часто приходится иметь дело с временными рядами. Нужно отметить, что мы исследуем не только решения и результаты применения классических методов машинного обучения, но и изучаем новые технологии и подходы к работе с большими данными. В процессе анализа SOTA решений, наткнулся на очень интересный фреймворк для прогнозирования временных рядов Chronos, который компания Amazon выкатила в опенсорс в мае 2024 года. С удивлением обнаружил, что на Хабре пока ничего про него нет и решил поделиться, так как инструмент вполне годный. Поскольку информации о нашем исследовании собралось довольно много, я решил разбить статью на две части: теоретическую и практическую. Сразу оговорюсь, изложенная в первой части информация это конспект переведенной мной официальной документации по Chronos, а во второй – результаты экспериментов с Chronos как на общедоступных данных с Kaggle (знаменитый Dow Jones Index), так и на корпоративных данных (предсказание инцидентов на различных участках железной дороги).
Итак, погнали…
Прогнозирование временных рядов
Прогнозирование временных рядов является важным компонентом принятия решений в различных областях, включая розничную торговлю, энергетику, финансы, здравоохранение и климатологию. Традиционно в прогнозировании доминировали статистические модели, такие как ARIMA и ETS. Эти модели служили надежными инструментами, по крайней мере, до недавнего перехода к методам глубокого обучения (Hyndman & Athanasopoulos, 2018; Benidis et al., 2022). Этот переход можно объяснить доступностью больших и разнообразных источников данных временных рядов, а также возникновением операционных задач прогнозирования (Kolassa & Januschowski, 2019), которые подчеркивают сильные стороны моделей глубокого обучения, как пример, способность извлекать шаблоны из большого количества временных рядов. Несмотря на их впечатляющую производительность, модели глубокого обучения все еще работают в стандартном режиме обучения и прогнозирования на одном и том же наборе данных. Хотя были проведены работы, посвященные трансферному обучению (Ye & Dai, 2018) и адаптации к доменам (Jin et al., 2022), область еще не пришла к единой, универсальной модели прогнозирования, что остается важной целью для исследователей временных рядов.
Появление больших языковых моделей (LLMs) с возможностями нулевого обучения вызвало интерес к разработке "фундаментальных моделей" для временных рядов. В контексте LLM этот интерес развивался через два основных направления: прямое обращение к предобученным LLM на естественном языке (Gruver et al., 2023; Xue & Salim, 2023) и дообучение LLM для задач временных рядов (Zhou et al., 2023a; Jin et al., 2024). Однако эти методы сталкиваются с серьезными ограничениями, в частности, необходимостью проектирования подсказок или дообучения для каждой новой задачи, или зависимостью от больших языковых моделей (GPT-3 (Brown et al., 2020), Llama 2 (Touvron et al., 2023) и т.д.), которые требуют значительных вычислительных ресурсов и времени для вывода.
Кто ты, воин?
В этой работе разработчики делают шаг назад и задаются вопросом: в чем фундаментальные различия между языковой моделью, которая предсказывает следующий токен, и моделью прогнозирования временных рядов, которая предсказывает следующие значения? Несмотря на очевидное различие — токены из конечного словаря против значений из неограниченной, обычно непрерывной области — обе задачи в своей основе направлены на моделирование последовательной структуры данных для предсказания будущих паттернов. Разве хорошие языковые модели не должны "просто работать" с временными рядами? Этот наивный вопрос побуждает оспорить необходимость специфических модификаций для временных рядов, и его обсуждение привело исследователей к разработке Chronos, фрейморка языковой модели, минимально адаптированной для прогнозирования временных рядов. Chronos токенизирует временные ряды в дискретные ячейки с помощью простого масштабирования и квантования реальных значений. Таким образом, мы можем обучать стандартные языковые модели на этом "языке временных рядов", без изменений в архитектуре модели (см. Рисунок 1). Удивительно, но этот простой подход оказывается эффективным и действенным, подчеркивая потенциал архитектур языковых моделей для решения широкого спектра задач временных рядов с минимальными модификациями.
Chronos — простой, но эффективный фрэймворк для предобученных вероятностных моделей временных рядов.
Chronos токенизирует значения временных рядов с помощью масштабирования и квантования в фиксированный словарь и обучает существующие архитектуры языковых моделей на основе трансформеров на этих токенизированных временных рядах с использованием функции потерь кроссэнтропии.
Chronos был предобучен на основе семейства T5 (размеры от 20M до 710M параметров) на большом количестве общедоступных наборов данных, дополненных синтетическим набором данных, который сгенерировали с помощью гауссовских процессов для улучшения обобщения.
Бэкграунд
Прогнозирование временных рядов можно условно разделить на прогнозирование классическими методами ML и глубоким обучением:
– Классические - ETS, ARIMA (Hyndman et al., 2008), Theta (Assimakopoulos & Nikolopoulos, 2000)
– Глубокое обучение - RNNs используемые DeepState (Rangapuram et al., 2018), DeepFactor (Wanget al., 2019), DeepAR (Salinas et al., 2020), TimeGrad (Rasul et al., 2021), и трансформеры, используемые TFT (Lim et al., 2021) and PatchTST (Nie et al., 2023)
LLM модели показывают впечатляющие результаты для предсказания следующего токена при обработке естественного языка. Большинство языковых моделей основаны на архитектуре трансформеров. Изначально модели энкодинга-декодинга были созданы для перевода текста. Энкодер принимает на вход предложение, а декодер преобразует его токен за токеном на основании входных данных и предыдущих декодированных токенов. BART (Lewis et al., 2019) , T5 (Raffel et al., 2020; Chung et al., 2022)
Есть и другая архитектура LLM моделей - GPT-3 (Brown et al., 2020) and Llama 2 (Touvron et al., 2023). LLM-based forecasters. Вдохновленные успехами работы LLM моделей, были разработаны методы адаптации LLM моделей для работы с временными рядами.
PromptCast (Xue &Salim, 2023) , он интерпретирует данные временного ряда как текстовую пару вход/выход, меняя задачу на предсказание вопрос/ответ. Однако PromptCast требует шаблонов, специфичных для набора данных, для преобразования числовых данных в текстовые подсказки.
Возможно, самой простой моделью прогнозирования на основе LLM является LLMTime (Gruver et al., 2023), которая демонстрирует четкие доказательства способности предобученных LLM к прогнозированию с хорошей точностью на различных наборах данных временных рядов. LLMTime предлагает новую схему токенизации, которая кодирует реальные данные как строку цифр после фиксации числовой точности и соответствующего масштабирования данных. Однако, использование таких требовательных к вычислениям моделей как GPT-3 (Brown et al., 2020) и Llama 2 (Touvronet al., 2023) затрудняет масштабируемость и практическую полезность LLMTime.
На чем обучался?
Chronos следует минималистскому подходу, токенизируя значения временных рядов в фиксированный словарь и обучая существующие архитектуры языковых моделей на этих токенах без какого-либо дизайна или особенностей, специфичных для временных рядов. То есть Chronos использует категориальное распределение для моделирования наблюдений, выполняя регрессию через классификацию.
Для обучения и оценки моделей Chronos был собран широкий спектр общедоступных датасетов, охватывающих различные области применения, включая энергетику, транспорт, здравоохранение, розничную торговлю, интернет, погоду, финансы, с дискретностью от 5 минут до года. Всего коллекция наборов данных включает 55 датасетов из нескольких источников, включая Monash Time Series Forecasting Repository (Godahewa et al., 2021), M-competitions (Makridakis et al., 1979; Makridakis & Hibon, 2000; Makridakis et al.,2020; 2022) и общедоступные наборы данных из Kaggle.
Коллекция была поделена на 3 части, основываясь на том, как их использовали для обучения и оценки моделей Chronos:
(a) датасеты, используемые исключительно для обучения (13 датасетов);
(b) Benchmark I, датасеты используемые как для обучения, так и для оценки, представляющие внутридоменную оценку (15 датасетов);
(c) Benchmark II, датасеты используемые исключительно для оценки, составляющие оценку с нулевым обучением (27 датасетов).
При классификации наборов данных таким образом, пытались найти хороший баланс между сохранением как можно большего количества наборов данных для оценки работы моделей Chronos без обучения, среди наиболее часто используемых в литературе, и достаточным разнообразием доменов и частот выборки в обучающих данных. В целом, мы использовали 28 наборов данных для обучения моделей Chronos, состоящих из примерно 890 тыс. одномерных временных рядов с примерно 84 млрд наблюдений (токенов) в общей сложности. Все модели оцениваются по точности их прогноза на таком отложенном наборе, к которому ни одна модель не имела доступа для обучения.
Временные ряды, содержащие менее 50 ненулевых наблюдений, были удалены !!!
Что под капотом?
T5 (Raffel et al., 2020) был выбран в качестве основной архитектуры для Chronos , поскольку она доступна в различных размерах, от 16M (Tiny) до 11B (XXL) параметров (Tay et al., 2021).
Также были проведены эксперименты с моделью GPT-2 только для декодера, чтобы продемонстрировать применимость фреймворка Chronos к моделям только для декодера.
Модель T5 была обучена 4 размеров:
Mini (20M), Small (46M), Base (200M) и Large (710M), и базовую модель GPT-2 (90M), на 10M дополнениях TSMixup , сгенерированных из 28 датасетов, с 1M синтетических временных рядов, сгенерированных с использованием гауссовых процессов .
Каждая модель обучается батчами по 256 последовательностей, используя распределенный параллелизм данных и накопление градиента, когда это необходимо. Эти последовательности построены путем нарезки случайных окон из временного ряда, а затем масштабирования и квантования их в равные по размеру. Контекстная длина последовательностей была установлена на 512, значение по умолчанию для моделей T5, а длина прогнозирования установлена на 64.
Модели были оптимизированы для 200 тыс. шагов с использованием оптимизатора AdamW с уменьшением веса 0,01. Скорость обучения была линейно снижена от ее начального значения 0,001 до 0 на этапах обучения. Другие гиперпараметры были установлены по умолчанию, используемые в библиотеке трансформеров (Wolf et al., 2020). Был использован AWS EC2 с 8 графическими процессорами A100 (40 ГБ) для обучения всех моделей Chronos, а также более быстрые форматы с плавающей точкой (TF32) и компиляция модели для ускорения обучения.
Токенизация временного ряда
Проблема применения языковых моделей для предсказания временных рядов состоит в том, что LLM оперируют токенами конечного словаря, в то время как понятие временной ряд бесконечно. Для использования LLM требуется привести наблюдения временного ряда к конечному набору токенов. Для этого необходимо сначала масштабировать данные и потом их квантовать для создания определенного количества бинов.
Нормализация временных рядов является важным этапом в предобработке данных для глубокого обучения.
В случае Chronos цель нормализации заключается в том, чтобы сопоставить значения временных рядов с подходящим диапазоном для квантизации. Один из распространенных методов нормализации включает применение аффинного преобразования к временным рядам, которое можно выразить формулой:
Существует несколько популярных методов нормализации, таких как средняя нормализация, стандартная нормализация и нормализация по минимуму и максимуму, которые могут быть получены путем соответствующего выбора m и s. В данной работе была выбрана средняя нормализация, которая доказала свою эффективность в моделях глубокого обучения, используемых в практических приложениях временных рядов (Salinas et al., 2020). Средняя нормализация нормализует отдельные значения временного ряда по среднему значению абсолютных значений в историческом контексте.
Таким образом, нормализация временных рядов позволяет улучшить производительность моделей глубокого обучения, обеспечивая более стабильное и предсказуемое поведение при обучении.
Квантизация
Нормализованные временные ряды остаются вещественными значениями и не могут быть обработаны напрямую языковыми моделями. Для преобразования этих вещественных значений в дискретные токены применяется квантизация. Формально мы выбираем В центров бинов с1<…<cВ на вещественной оси и В-1 границ bi, разделяющих их так, что ci < bi<c i+1 для i {1, …, B-1}. Функция квантизации q определяется следующим образом:
Позиционирование центров бинов и границ может быть либо зависимым от данных, либо равномерным. Квантилизация, являющаяся типом квантизации, использует кумулятивную функцию распределения (CDF) обучающих данных для построения бинов так, чтобы приблизительно равное количество данных было отнесено к каждому бину. В отличие от этого, равномерная квантизация выбирает центры бинов равномерно в пределах некоторого интервала [l, r]. Поскольку распределение значений для невидимых наборов данных может значительно отличаться от обучающего распределения, в экспериментах с Chronos была выбрана равномерная квантизация.
Потенциальным ограничением данного подхода является то, что диапазон предсказаний ограничен между [c1, cB], что теоретически делает невозможным моделирование временных рядов с сильным трендом.
Кроме токенов временных рядов {1,2,…,B}, добавляются два специальных токена, обычно используемых в языковых моделях, в словарь временных рядов Vts: PAD и EOS. Токен PAD используется для дополнения временных рядов различной длины до фиксированной длины для формирования пакетов для замены отсутствующих значений. Токен EOS добавляется к квантизированным и дополненным временным рядам, чтобы обозначить конец последовательности. Хотя использование токена EOS не является строго необходимым в случае временных рядов, оно упрощает обучение и вывод с использованием популярных библиотек языкового моделирования.
Chronos в основном сосредотачивается на вариантах модели Т5 с энкодером-декодором. Кроме того, проводился эксперимент с моделью GPT-2 (Radford et al., 2019), чтобы продемонстрировать что такой подход можно легко расширить на модели только с декодером. Для архитектуры языковой модели не требуются модификации, кроме настройки размера словаря до Vts, который зависит от количества бинов, используемых для квантизации и может отличаться от размера словаря оригинальной языковой модели. Конкретно, настройка размера словаря включает обрезку (или расширение) слоев встраивания входных и выходных данных языковой модели.
Метрики
Для оценки точности модели использовались метрики WQL и MASE.
Weighted Quantile Loss (WQL) - это метрика точности модели для заданного квантиля. WQL измеряет совместимость между прогнозным распределением и истинным наблюдением на равномерно разнесенной сетке уровней квантилей; мы вычисляем WQL на 9 равномерно разнесенных уровнях квантилей {0,1, 0,2, . . . , 0,9}.
Для оценки точечных прогнозов использовалась MASE - средняя абсолютная масштабированная ошибка (MASE, Hyndman & Koehler (2006)). Для каждой серии это просто средняя абсолютная ошибка (MAE), деленная на эмпирическую ошибку сезонной наивной модели:
Во всех экспериментах используются квантили на уровне α ∈ {0,1, 0,2, . . . , 0,9} для вычисления WQL, так что K = 9. Будучи средневзвешенным значением, WQL аппроксимирует непрерывно ранжированные оценки вероятности (CRPS), широко используемой метрики для оценки вероятностных прогнозов (Gneiting & Raftery, 2007; Gasthaus et al., 2019). В отличие от MASE, где ошибки масштабируются пропорционально масштабу каждой серии, WQL агрегирует абсолютные ошибки: его значение зависит от масштаба всех series в наборе данных.
Файнтюнинг модели
Вдохновленные выдающимися результатами нулевого обучения моделей Chronos, разработчики провели предварительное исследование по дообучению моделей Chronos на отдельных наборах данных из Benchmark II. Была выбрана модель Chronos-T5 (Small) для этого эксперимента из-за её хорошей производительности при относительно низких затратах на обучение. Модель была дообучена с начальным learning rate 0.001, которая линейно уменьшалась до 0 за 1000 шагов.
Дообучение значительно улучшает общую производительность модели на Benchmark II. Теперь дообученная модель Chronos-T5 (Small) занимает первое место в общем зачете Benchmark II, обгоняя как более крупные модели Chronos (нулевое обучение), так и лучшие модели, специфичные для задач. Примечательно, что Chronos-T5 (Small) даже не является самой точной версией Chronos на Benchmark II, что предполагает, что дальнейшие улучшения могут быть достигнуты путем дообучения более крупных вариантов Chronos-T5.
Анализ гиперпараметров
Исследуется влияние различных проектных решений на производительность модели, начиная с сравнения различных размеров моделей и инициализаций. Затем анализируется влияние количества шагов обучения, пропорции синтетических данных, длины контекста и размера словаря на производительность модели Chronos-T5 (Small). Мы изменяем только интересующий параметр, оставляя все остальные фиксированными на значениях, использованных в основных результатах.
Размер модели
Были проведены эксперименты с четырьмя размерами модели, варьирующими от 20M до 710M параметров. Неудивительно, что потери при обучении улучшаются с увеличением ёмкости модели, как показано на рисунке 3a. Эта тенденция также наблюдается в производительности модели на downstream-задачах — она улучшается с увеличением размера модели как для in-domain, так и для zero-shot тестов, как показано на рисунке 3b. Эти тенденции предполагают, что даже более крупные модели могут улучшить производительность. Однако более крупные модели не были исследованы из-за медленного времени вывода, что сделало бы их непрактичными для реальных приложений.
Разработчики исследовали, влияет ли инициализация моделей Chronos соответствующими предобученными языковыми моделями T5, разработанными Тэем и др. (2021) на наборе данных (Raffel et al., 2020) на динамику обучения или производительность на downstream-задачах. Рисунок 2 показывает кривую потерь при обучении для моделей, инициализированных случайным образом и тех, что инициализированы весами языковой модели. Примечательно, что модели, инициализированные случайным образом, как правило, сходятся к более низким потерям при обучении по сравнению с их аналогами, инициализированными весами языковой модели.
Для более крупных моделей (Base и Large) модели, инициализированные весами языковой модели, изначально демонстрируют более быстрое снижение функции потерь на трэйне, но в конечном итоге сходятся к более высоким конечным потерям.
Выводы
Модели, инициализированные весами языковой модели, показывают более быстрое снижение потерь на начальных этапах, но в итоге сходятся к более высокому конечному значению потерь по сравнению с моделями со случайной инициализацией.
Наблюдения показывают, что веса языковых моделей не являются особенно примечательными в контексте прогнозирования временных рядов и не дают улучшения по сравнению со случайной инициализацией.
На всех размерах моделей производительность моделей, инициализированных весами языковых моделей, либо совпадает, либо немного уступает по сравнению со случайно инициализированными моделями.
Эти результаты свидетельствуют о том, что инициализация LLM предлагает относительно небольшое преимущество в контексте прогнозирования временных рядов, и вместо этого предпочтительнее может быть случайная инициализация.
С какими моделями сравнивали Chronos?
- Naive,
- Seasonal Naive,
- AutoETS,
- AutoARIMA (Hyndman et al., 2008)
- AutoTheta (Assimakopoulos & Nikolopoulos, 2000).
А также несколько нейросетевых бэйзлайнов:
- WaveNet (Oord et al., 2016),
- DeepAR (Salinas et al., 2020),
- N-BEATS (Oreshkin et al., 2020),
- TFT (Lim et al., 2021),
- DLinear (Zeng et al., 2023),
- PatchTST (Nie et al., 2023),
- N-HiTS (Challu et al., 2023),
- GPT4TS (Zhou et al., 2023a).
- Lag-Llama (Rasul et al., 2023)
- Moirai-1.0-R (Woo et al., 2024).
На Бенчмарке II также оценили два метода нулевого обучения: ForecastPFN (Dooley и др., 2023), который является трансформерной моделью, предварительно обученной только на синтетических временных рядах, и LLMTime (Gruver и др., 2023), использующую большие языковые модели для прогнозирования.
Результаты
Оценки WQL и MASE различных моделей для наборов данных в Benchmark I, II, III, включающих 55 датасетов. Модели, показавшие лучшие первый, второй и третий результаты, выделены.
Benchmark I (15 datasets)
Benchmark II (27 datasets)
Во второй части статьи (Chronos от Amazon: революция в обработке временных рядов. ЧАСТЬ 2. Как мы применяли Chronos) я покажу, как мы применяли Chronos на общедоступных данных с Kaggle, а также на своих корпоративных данных.