В дополнение к TSMix используется метод KernelSynth, генерящий...
В дополнение к TSMix используется метод KernelSynth, генерящий искусственные данные через гауссовские процессы, где задаётся библиотека ядер (линейное ядро для тренда, RBF для гладких локальных изменений, периодические ядра для сезонных трендов). Ядра сэмплятся (с возвращением) из библиотеки и комбинируются через сложение или умножение. Итоговое ядро используется для генерации последовательности заданной длины.
Датасетов собрано много (всего 55 штук) и разной природы. Часть используется для обучения, другие для оценки.
Обучили модели T5 четырёх размеров (в репе есть и пятый Tiny на 8M): Mini (20M), Small (46M), Base (200M) и Large (710M), а также GPT-2 base (90M). Обучено на 10M TSMix аугментаций из 28 обучающих датасетов и 1M синтетических последовательностей, сгенерённых через Gaussian processes. Смешиваются в пропорции 9:1. Оригинальные данные включались в TSMix с вероятностью ⅓. Батч в обучении был 256 последовательностей. Размер контекста у моделей 512, длина предсказания 64. Обучалось 200K шагов, AdamW. Это одна из первых работ, где я вижу репортинг реальной цены за обучение, от ~250$ и ~8 часов на p4d.24xlarge (8xA100 40GB) для малой модели до 2066$ и 63 часов.
Для сравнения много бейзлайнов, статистических и нейросетевых. Бейзлайны разделены на группы:
1) Локальные модели, оценивающие параметры для каждой последовательности индивидуально
2) Задаче-специфичные, обучаемые (или файнтюн) для каждой задачи отдельно
3) Предобученные модели без задаче-специфичного дообучения, одна модель для всего.
Оценивали как вероятностные (weighted quantile loss, WQL) так и точечные предсказания (mean absolute scaled error, MASE). Всего оценивалось на 42 датасетах разбитых на Benchmark I (In-domain, 15 датасетов) и Benchmark II (Zero-shot, 27 датасетов).
На in-domain Chronos прям хорош. Не только лучше локальных моделей, но и лучше задаче-специфичных. На zero-shot тоже хорош, 2-3 места. Бьёт модели, которые видели в обучении эти задачи. Это прям круто для zero-shot, когда модель такого вообще не видела. А если ещё и зафайнтюнить на эти задачи, то вообще хорошо, лучше остальных.
Интересно, кстати, что декодерная Chronos GPT-2 с 90М параметров отстаёт по качеству от энкодер-декодерных Small (46M) и Mini (20M). Незначительно, но стабильно.
Судя по кривым лосса и метрик, ещё большие модели ещё улучшат результаты. Рандомная инициализация чуть получше старта с предобученных на языке (датасет C4) весов. TSMix + KernelSynth в обучении лучше, чем без одного или обоих, особенно на zero-shot. С увеличением контекста модель предсказывает лучше. С увеличением размера словаря тоже.
Качественно модель неплохо предсказывает различные паттерны: шумовой процесс, тренд, сезонность, комбинированный паттерн, AR-процесс.
Может быть потеря точности из-за квантования или скейлинга (например, на разреженных данных, где среднее низкое, но есть выбросы; или на сильно сдвинутых данных с малой дисперсией), но на реальных данных модель работает хорошо.
Есть ограничения: модель фокусируется на univariate time series и не учитывает никакую дополнительную информацию, которая может иметься. Также отдельная проблема -- скорость инференса. Здесь Chronos ощутимо проигрывает специализированным лёгким моделькам. Зато нет необходимости деплоить 100500 отдельных моделей если что.
В общем интересная модель получилась, надо попробовать на какой-нибудь реальной задаче. Выглядит полезно. Классно что любые свежие архитектурные наработки из NLP могут быть легко перенесены сюда, ибо архитектурных изменений не требуется. Отдельно интересно, что там ценного в выученных репрезентациях, и где они могут быть полезны.
Напоминаю, что поддержать проект можно тут patreon.com/GonzoML
Датасетов собрано много (всего 55 штук) и разной природы. Часть используется для обучения, другие для оценки.
Обучили модели T5 четырёх размеров (в репе есть и пятый Tiny на 8M): Mini (20M), Small (46M), Base (200M) и Large (710M), а также GPT-2 base (90M). Обучено на 10M TSMix аугментаций из 28 обучающих датасетов и 1M синтетических последовательностей, сгенерённых через Gaussian processes. Смешиваются в пропорции 9:1. Оригинальные данные включались в TSMix с вероятностью ⅓. Батч в обучении был 256 последовательностей. Размер контекста у моделей 512, длина предсказания 64. Обучалось 200K шагов, AdamW. Это одна из первых работ, где я вижу репортинг реальной цены за обучение, от ~250$ и ~8 часов на p4d.24xlarge (8xA100 40GB) для малой модели до 2066$ и 63 часов.
Для сравнения много бейзлайнов, статистических и нейросетевых. Бейзлайны разделены на группы:
1) Локальные модели, оценивающие параметры для каждой последовательности индивидуально
2) Задаче-специфичные, обучаемые (или файнтюн) для каждой задачи отдельно
3) Предобученные модели без задаче-специфичного дообучения, одна модель для всего.
Оценивали как вероятностные (weighted quantile loss, WQL) так и точечные предсказания (mean absolute scaled error, MASE). Всего оценивалось на 42 датасетах разбитых на Benchmark I (In-domain, 15 датасетов) и Benchmark II (Zero-shot, 27 датасетов).
На in-domain Chronos прям хорош. Не только лучше локальных моделей, но и лучше задаче-специфичных. На zero-shot тоже хорош, 2-3 места. Бьёт модели, которые видели в обучении эти задачи. Это прям круто для zero-shot, когда модель такого вообще не видела. А если ещё и зафайнтюнить на эти задачи, то вообще хорошо, лучше остальных.
Интересно, кстати, что декодерная Chronos GPT-2 с 90М параметров отстаёт по качеству от энкодер-декодерных Small (46M) и Mini (20M). Незначительно, но стабильно.
Судя по кривым лосса и метрик, ещё большие модели ещё улучшат результаты. Рандомная инициализация чуть получше старта с предобученных на языке (датасет C4) весов. TSMix + KernelSynth в обучении лучше, чем без одного или обоих, особенно на zero-shot. С увеличением контекста модель предсказывает лучше. С увеличением размера словаря тоже.
Качественно модель неплохо предсказывает различные паттерны: шумовой процесс, тренд, сезонность, комбинированный паттерн, AR-процесс.
Может быть потеря точности из-за квантования или скейлинга (например, на разреженных данных, где среднее низкое, но есть выбросы; или на сильно сдвинутых данных с малой дисперсией), но на реальных данных модель работает хорошо.
Есть ограничения: модель фокусируется на univariate time series и не учитывает никакую дополнительную информацию, которая может иметься. Также отдельная проблема -- скорость инференса. Здесь Chronos ощутимо проигрывает специализированным лёгким моделькам. Зато нет необходимости деплоить 100500 отдельных моделей если что.
В общем интересная модель получилась, надо попробовать на какой-нибудь реальной задаче. Выглядит полезно. Классно что любые свежие архитектурные наработки из NLP могут быть легко перенесены сюда, ибо архитектурных изменений не требуется. Отдельно интересно, что там ценного в выученных репрезентациях, и где они могут быть полезны.
Напоминаю, что поддержать проект можно тут patreon.com/GonzoML
Источник: gonzo-обзоры ML статей
2024-04-27 23:13:52