Language-TPP: Integrating Temporal Point Processes with Language Models for Event Analysis (11 Feb 2025)
paper | code (весов на момент написания поста ещё нет)
И ещё одна работа, похожая как брат близнец на TPP-LLM из прошлого поста. Причём TPP-LLM в списке литературы упоминается, но сравнения с ней нет 🤷🏻 Только с более старыми NHP, SAHP и THP.
Всё так же, как и в TPP-LLM поток событий описывается как <описание события, тип события, время события> (см Figure 2).
Отличия от TPP-LLM:
1. Задачу описывает специальный Task Token, который ставят в конец последовательности. Поддерживаются “<|description prediction|>”, “<|type prediction|>” и “<|time prediction|>”.
2. Temporal tokenization: Время из Float32 превращают в четыре hex digits, которые уже и кодируются токенами (для этого 256 byte tokens добавили в словарь).
3. В качестве базовой LLM используется base (НЕ instruct) Qwen2.5-0.5B.
Тренировка
Тренируют в три стадии:
1) претрен на последовательностях;
2) файнтюнинг на предсказание следующего события;
3) тренировка projection layer для генерации intensity distribution.
В отличие от "классических" TPP, тренируют на смеси всех датасетов сразу, чтобы получить универсальный предсказатель.
Ещё один интересный момент - размер имеет значение. А точнее - модель 0.5B внезапно показывает результаты лучше, чем бОльшая 1.5B (см Table 3). Авторы объясняют это тем, что датасет маловат и большая моделька успевает на нём научиться генерализации,подайте датасетов бедным ресёрчерам, а то аж переночевать негде.
Ну и конечно же, заявляют уверенную SOTA по сравнению с "классикой", иначе как жы.
paper | code (весов на момент написания поста ещё нет)
И ещё одна работа, похожая как брат близнец на TPP-LLM из прошлого поста. Причём TPP-LLM в списке литературы упоминается, но сравнения с ней нет 🤷🏻 Только с более старыми NHP, SAHP и THP.
Всё так же, как и в TPP-LLM поток событий описывается как <описание события, тип события, время события> (см Figure 2).
Отличия от TPP-LLM:
1. Задачу описывает специальный Task Token, который ставят в конец последовательности. Поддерживаются “<|description prediction|>”, “<|type prediction|>” и “<|time prediction|>”.
2. Temporal tokenization: Время из Float32 превращают в четыре hex digits, которые уже и кодируются токенами (для этого 256 byte tokens добавили в словарь).
3. В качестве базовой LLM используется base (НЕ instruct) Qwen2.5-0.5B.
Тренировка
Тренируют в три стадии:
1) претрен на последовательностях;
2) файнтюнинг на предсказание следующего события;
3) тренировка projection layer для генерации intensity distribution.
В отличие от "классических" TPP, тренируют на смеси всех датасетов сразу, чтобы получить универсальный предсказатель.
Ещё один интересный момент - размер имеет значение. А точнее - модель 0.5B внезапно показывает результаты лучше, чем бОльшая 1.5B (см Table 3). Авторы объясняют это тем, что датасет маловат и большая моделька успевает на нём научиться генерализации,
Ну и конечно же, заявляют уверенную SOTA по сравнению с "классикой", иначе как жы.
👍2
From News to Forecast: Integrating Event Analysis in LLM-Based Time Series Forecasting with Reflection (26 Sept 2024, NeurIPS 2024)
paper | code
Я часто говорю, что без понимания контекста и смысла происходящего, невозможно по настоящему качественно предсказывать ряды. И вот интересная работа о том, как отбирать события (в данном случае - новости), влияющие на предсказания. Если всё, написанное в статье - правда, то авторы провели серьёзную работу по доведению (достаточно очевидной) идеи до работающего PoC.
В основе системы лежит (Figure 1):
1. Обогащение данных вспомогательной информацией типа погодных условий, курсов валют, национальных праздников и т.п. на момент измерений.
2. Обогащение избранными новостями и цикл обратной связи по отбору этих новостей из всего потока.
Новости делятся на три типа: (а) Short-Term Effect, (б) Long-Term Effect, и (в) бесполезные (Figure 2).
В цикле обратной связи предсказанная кривая сравнивается с оригинальной, и модель просят найти "пропущенные новости", которые не были включены в изначальный список новостей для предсказания, но могут влиять на предсказания (см Prompt 3). Больше примеров - в статье.
В качестве модели для предсказаний используется обычная llama-2-7b, затюненная на предсказания за сутки на 1xA100.
В авторских экспериментах показатели с каждой из 3-4 итерацией улучшались (Table 2) и в конце модель с существенным перевесом обходила deep learning модели предсказания (Table 3).
Мы недавно обсуждали внутри, что не очень понятно, как строить CoT рассуждения для тренировки рассуждающих моделей на рядах, и подобный подход возможно даст возможность такие цепочки генерировать в достаточном для обучения количестве.
PS Все промпты и весь код опубликованы, можно экспериментировать 🙂
paper | code
Я часто говорю, что без понимания контекста и смысла происходящего, невозможно по настоящему качественно предсказывать ряды. И вот интересная работа о том, как отбирать события (в данном случае - новости), влияющие на предсказания. Если всё, написанное в статье - правда, то авторы провели серьёзную работу по доведению (достаточно очевидной) идеи до работающего PoC.
В основе системы лежит (Figure 1):
1. Обогащение данных вспомогательной информацией типа погодных условий, курсов валют, национальных праздников и т.п. на момент измерений.
2. Обогащение избранными новостями и цикл обратной связи по отбору этих новостей из всего потока.
Новости делятся на три типа: (а) Short-Term Effect, (б) Long-Term Effect, и (в) бесполезные (Figure 2).
В цикле обратной связи предсказанная кривая сравнивается с оригинальной, и модель просят найти "пропущенные новости", которые не были включены в изначальный список новостей для предсказания, но могут влиять на предсказания (см Prompt 3). Больше примеров - в статье.
В качестве модели для предсказаний используется обычная llama-2-7b, затюненная на предсказания за сутки на 1xA100.
В авторских экспериментах показатели с каждой из 3-4 итерацией улучшались (Table 2) и в конце модель с существенным перевесом обходила deep learning модели предсказания (Table 3).
Мы недавно обсуждали внутри, что не очень понятно, как строить CoT рассуждения для тренировки рассуждающих моделей на рядах, и подобный подход возможно даст возможность такие цепочки генерировать в достаточном для обучения количестве.
PS Все промпты и весь код опубликованы, можно экспериментировать 🙂
👍1
Когда ждать динамические патчи для временных рядов? 🤪
https://t.me/gonzo_ML_podcasts/447
https://t.me/gonzo_ML_podcasts/447
Telegram
gonzo_ML_podcasts
Dynamic Chunking for End-to-End Hierarchical Sequence Modeling
Sukjun Hwang, Brandon Wang, Albert Gu
Статья: https://arxiv.org/abs/2507.07955
Код: https://github.com/goombalab/hnet
Модель: https://huggingface.co/cartesia-ai
Англ версия: https://arxiviq.…
Sukjun Hwang, Brandon Wang, Albert Gu
Статья: https://arxiv.org/abs/2507.07955
Код: https://github.com/goombalab/hnet
Модель: https://huggingface.co/cartesia-ai
Англ версия: https://arxiviq.…
Time to Embed: Unlocking Foundation Models for Time Series with Channel Descriptions (CHannel-Aware Representation Model, CHARM)
paper | blog p1 | blog p2 | blog p3
Недавно вышла очень интересная и подробная статья про фундаментальную модель для эмбеддингов многомерных временных рядов. Это кажется первая архитектура фундаментальной модели с прицелом на понимание рядов, а не на предсказание, - через выразительные эмбеддинги и интерпретируемость. В блоге компании основные примеры как раз про анализ аномалий, поиск похожих ситуаций и т.п. - очень похожие кейсы на то, что делаем мы.
Веса и исходные коды не доступны, но статья настолько подробная, что мы взяли её за основу и сделали свою модель с блекджеком и поддержкой нерегулярных временных рядов. Когда завершим тренировку - скорее всего выложим модель в открытый доступ.
Если у вас есть задачи, где такая модель может пригодиться - напишите мне, пожалуйста. Мы ищем больше downstream tasks, на которых можно проверить качество натренированной модели на реальных кейсах.
Теперь к сути. Архитектура модели (Figure 1):
- Contextual ТCN (Temporal Convolutional Network) + Contextual Attention. Инновация в contextual части (см ниже).
- Модель-encoder (non-causal attention).
- Вместе с рядами в модель подаются текстовые описания каждого ряда (тот самый контекст).
- Новомодная JEPA тренировка (Self-Supervised Learning)
- Эмбеддинги на каждую точку, но хорошо агрегируются в общие эмбеддинги.
Параметры модели:
7М параметров, 8 слоёв, 128 размерность эмбеддингов
Почему JEPA?
1. Намного проще масштабировать, так как не нужны размеченные данные, не нужны негативные примеры как в contrastive learning. Только обычные неразмеченные данные, которых на порядки больше в доступе.
2. Устойчивость к шуму. Утверждается, что в отличие от моделей, натренированных на восстановление последовательности, при обучении JEPA модель не переобучается на шум, всегда присутствующий в данных с реальных датчиков.
3. Так как при тренировке задача JEPA - предсказание (хоть и в латентном пространстве эмбеддингов), то модель отлично работает как для задач классификации, так и для задач предсказания.
Contextual Temporal Convolutional Network (TCN)
Построены на основе обычных иерархических свёрточных сетей (dilated TCNs), с двумя "но" (Figure 2):
1. Свёрточные ядра генерируются простым линейным преобразованием из эмбеддингов описаний каждого канала временного ряда.
2. Веса для каждого канала и уровня свёртки тоже генерируются из описаний каналов временного ряда.
Contextual Attention Layer
Построен на механизме self-attention с двумя дополнениями на основе эмбеддингов описаний каналов:
1. Для каждой пары каналов по описаниям генерируется вес, определяющий, насколько эти каналы между собой связаны.
2. Для каждой пары каналов и задержки между ними генерируется вес, определяющий, насколько эти два канала связаны между собой Δt между отсчётами. Он отвечает на вопрос: «Если значение на канале A изменилось сейчас, как сильно это повлияет на канал B через Δt шагов во времени?» Например, для датчиков «Давление в насосе» и «Температура двигателя» логично предположить, что резкий скачок давления приведёт к повышению температуры, но не мгновенно, а спустя какое-то время (сдвиг Δt).
Визуализируя эти веса, можно наглядно наблюдать, как модель выучивает, какие каналы взаимодействую друг с другом, и как (Figure 7).
И главное - этот механизм позволяет подавать каналы на вход модели в разном порядке и в разном количестве, что очень удобно в практике и без чего не может быть по-настоящему фундаментальной time series модели. До сих пор моделям приходилось "догадываться", какой канал что означает. Теперь же, у модели по сути есть понимание, как разные физические величины в мире взаимодействуют, и для каждой величины есть свой шаблон взаимодействия.
Кроме того, утверждается, что это позволяет существенно повысить качество как для предсказаний, так и для классификафии на основе эмбеддингов модели (Figure 14).
paper | blog p1 | blog p2 | blog p3
Недавно вышла очень интересная и подробная статья про фундаментальную модель для эмбеддингов многомерных временных рядов. Это кажется первая архитектура фундаментальной модели с прицелом на понимание рядов, а не на предсказание, - через выразительные эмбеддинги и интерпретируемость. В блоге компании основные примеры как раз про анализ аномалий, поиск похожих ситуаций и т.п. - очень похожие кейсы на то, что делаем мы.
Веса и исходные коды не доступны, но статья настолько подробная, что мы взяли её за основу и сделали свою модель с блекджеком и поддержкой нерегулярных временных рядов. Когда завершим тренировку - скорее всего выложим модель в открытый доступ.
Если у вас есть задачи, где такая модель может пригодиться - напишите мне, пожалуйста. Мы ищем больше downstream tasks, на которых можно проверить качество натренированной модели на реальных кейсах.
Теперь к сути. Архитектура модели (Figure 1):
- Contextual ТCN (Temporal Convolutional Network) + Contextual Attention. Инновация в contextual части (см ниже).
- Модель-encoder (non-causal attention).
- Вместе с рядами в модель подаются текстовые описания каждого ряда (тот самый контекст).
- Новомодная JEPA тренировка (Self-Supervised Learning)
- Эмбеддинги на каждую точку, но хорошо агрегируются в общие эмбеддинги.
Параметры модели:
7М параметров, 8 слоёв, 128 размерность эмбеддингов
Почему JEPA?
1. Намного проще масштабировать, так как не нужны размеченные данные, не нужны негативные примеры как в contrastive learning. Только обычные неразмеченные данные, которых на порядки больше в доступе.
2. Устойчивость к шуму. Утверждается, что в отличие от моделей, натренированных на восстановление последовательности, при обучении JEPA модель не переобучается на шум, всегда присутствующий в данных с реальных датчиков.
3. Так как при тренировке задача JEPA - предсказание (хоть и в латентном пространстве эмбеддингов), то модель отлично работает как для задач классификации, так и для задач предсказания.
Contextual Temporal Convolutional Network (TCN)
Построены на основе обычных иерархических свёрточных сетей (dilated TCNs), с двумя "но" (Figure 2):
1. Свёрточные ядра генерируются простым линейным преобразованием из эмбеддингов описаний каждого канала временного ряда.
2. Веса для каждого канала и уровня свёртки тоже генерируются из описаний каналов временного ряда.
Contextual Attention Layer
Построен на механизме self-attention с двумя дополнениями на основе эмбеддингов описаний каналов:
1. Для каждой пары каналов по описаниям генерируется вес, определяющий, насколько эти каналы между собой связаны.
2. Для каждой пары каналов и задержки между ними генерируется вес, определяющий, насколько эти два канала связаны между собой Δt между отсчётами. Он отвечает на вопрос: «Если значение на канале A изменилось сейчас, как сильно это повлияет на канал B через Δt шагов во времени?» Например, для датчиков «Давление в насосе» и «Температура двигателя» логично предположить, что резкий скачок давления приведёт к повышению температуры, но не мгновенно, а спустя какое-то время (сдвиг Δt).
Визуализируя эти веса, можно наглядно наблюдать, как модель выучивает, какие каналы взаимодействую друг с другом, и как (Figure 7).
И главное - этот механизм позволяет подавать каналы на вход модели в разном порядке и в разном количестве, что очень удобно в практике и без чего не может быть по-настоящему фундаментальной time series модели. До сих пор моделям приходилось "догадываться", какой канал что означает. Теперь же, у модели по сути есть понимание, как разные физические величины в мире взаимодействуют, и для каждой величины есть свой шаблон взаимодействия.
Кроме того, утверждается, что это позволяет существенно повысить качество как для предсказаний, так и для классификафии на основе эмбеддингов модели (Figure 14).
Эмбеддинги
Интересно, что авторы сделали ablation study (Table 12) и показали, что хотя использование эмбеддингов для каждой точки даёт лучшие результаты для downstream tasks (предсказание и классификафия), использование только последней точки даёт результаты лишь на единицы процентов хуже. Причём результаты практически одинаковы как при использовании linear слоя, так и при использовании MLP, что говорит и высоком качестве самих эмбеддингов.
А вот использовать усреднение не стоит - все характеристики резко (на десятки процентов) ухудшаются. Что соответствует интуации об усреднении температуры по больнице.
Более подробное описание статьи на русском в GonzoML Podcasts (https://t.me/gonzo_ML_podcasts/513) - спасибо @che_shr_cat за генерацию выжимки статьи!
Интересно, что авторы сделали ablation study (Table 12) и показали, что хотя использование эмбеддингов для каждой точки даёт лучшие результаты для downstream tasks (предсказание и классификафия), использование только последней точки даёт результаты лишь на единицы процентов хуже. Причём результаты практически одинаковы как при использовании linear слоя, так и при использовании MLP, что говорит и высоком качестве самих эмбеддингов.
А вот использовать усреднение не стоит - все характеристики резко (на десятки процентов) ухудшаются. Что соответствует интуации об усреднении температуры по больнице.
Более подробное описание статьи на русском в GonzoML Podcasts (https://t.me/gonzo_ML_podcasts/513) - спасибо @che_shr_cat за генерацию выжимки статьи!
Telegram
gonzo_ML_podcasts
Time to Embed: Unlocking Foundation Models for Time Series with Channel Descriptions
Authors: Utsav Dutta, Sina Khoshfetrat Pakazad, Henrik Ohlsson
Paper: https://arxiv.org/abs/2505.14543
Code: Not available
Model: Not available
# TL;DR
🧠 Что сделали?
Авторы…
Authors: Utsav Dutta, Sina Khoshfetrat Pakazad, Henrik Ohlsson
Paper: https://arxiv.org/abs/2505.14543
Code: Not available
Model: Not available
# TL;DR
🧠 Что сделали?
Авторы…
🔥7
Time Series going MoE
Изучаю разные подходы с масштабированию time series моделей и вижу, что наметился переход на MoE архитектуры. Пока что вышло всего две такие модели, но судя по результатам, скоро ждать больше:
1. Moirai-MoE (blog / arxiv:2410.10469)
2. Time-MoE (arxiv:2409.16040)
Интересна мотивация, которая в обоих работах независимо друг от друга совершенно одинаковая:
1. Модели нужно масштабировать и тренировать на всё большем объёме данных (не новость), а для этого нужна эффективность при тренировке. MoE в декодерных трансформерах существенно ускоряет как обучение, так и инференс. И это позволяет закидывать в топку существенно большие объёмы данных. Например Time-MoE тренировались на датасете на 300B точек на 128 ×
A100-80G (4.8 x10^8 TFLOPS).
2. Но главное даже не это - в обоих работах показано, что переход от плотных моделей к разреженным (MoE) даёт прирост в качестве при том же количестве параметров. И это уже интересная мысль, которая не была мне очевидна.
Salesforce репортит 17% прирост за счёт перехода на MoE (Extensive experiments on 39 datasets reveal that Moirai-MoE delivers up to 17% performance improvements over Moirai at the same level of model size).
Авторы Time-MoE точные цифры не приводят, но на графиках видна заметная разница (см картинки), при том, что переход на MoE одновременно на 78% снизил стоимость трена и на 39% - стоимость инференса.
Изучаю разные подходы с масштабированию time series моделей и вижу, что наметился переход на MoE архитектуры. Пока что вышло всего две такие модели, но судя по результатам, скоро ждать больше:
1. Moirai-MoE (blog / arxiv:2410.10469)
2. Time-MoE (arxiv:2409.16040)
Интересна мотивация, которая в обоих работах независимо друг от друга совершенно одинаковая:
1. Модели нужно масштабировать и тренировать на всё большем объёме данных (не новость), а для этого нужна эффективность при тренировке. MoE в декодерных трансформерах существенно ускоряет как обучение, так и инференс. И это позволяет закидывать в топку существенно большие объёмы данных. Например Time-MoE тренировались на датасете на 300B точек на 128 ×
A100-80G (4.8 x10^8 TFLOPS).
2. Но главное даже не это - в обоих работах показано, что переход от плотных моделей к разреженным (MoE) даёт прирост в качестве при том же количестве параметров. И это уже интересная мысль, которая не была мне очевидна.
Salesforce репортит 17% прирост за счёт перехода на MoE (Extensive experiments on 39 datasets reveal that Moirai-MoE delivers up to 17% performance improvements over Moirai at the same level of model size).
Авторы Time-MoE точные цифры не приводят, но на графиках видна заметная разница (см картинки), при том, что переход на MoE одновременно на 78% снизил стоимость трена и на 39% - стоимость инференса.
🔥4