В новой статье авторы делают следующий шаг и предлагают метод кодирования чисел, который (а) основан на внутреннем представлении чисел в трансформерах и (б) занимает ровно один токен/эмбеддинг (см Figure 1)
То, что всё число занимает один токен - важный момент, потому что при тренировке классических авторегрессионных трансформеров функция потерь не считается одинаково для каждого токена, а значит ошибка в первом и последнем разряде числа будет для модели "весить" одинаково. Т.е. если нужно вывести число 3197, а модель написала 4197, то для неё это будет ошибка такого же порядка как 3198, хотя на самом деле это три десятичных порядка разницы. Для решения этой проблемы предлагались разные подходы, в том числе добавляющие специальную функцию потерь для чисел, но не трогающие токенизатор. Например, недавний (28 Feb 2025) PDCE - Position-Dependent Cross-Entropy, который я попытался запустить на наших экспериментах с рядами, но устал синхронизировать его функцию потерь с функцией потерь и забил. Использование одного токена/эмбеддинга для всего числа интуитивно выглядит более правильным подходом.
Итак, FoNE:
Позволяет кодировать/декодировать числа в десятичной системе счисления с заранее заданным количеством знаков до и после запятой в один токен/эмбеддинг. А числа произвольной длины кодируются простым объединением нескольких токенов/эмбеддингов подряд. Числа 100% точно кодируются и декодируются без потери точности.
СFoNE трансформеры "магически" научаются точно складывать и умножать вещественные числа при размере датасета 64x меньше.
Эксперименты в статье приводятся как для тренировки небольших LLM с нуля, так и для тюнинга предобученной Llama-3.2-1B. Предобученная Llama учится медленнее, но в большинстве случаев достигает такой же точности (тёмно-синяя линия "finetune" на графиках) - см Figure 2, 3.
Что НЕ сделано в статье - полноценная интеграция в LLM на стороне декодирования эмбедингов в токены, чтобы научить модель определять, где в выводе вставлять FoNE токен, а где обычный. В своих экспериментах с предобученной Llama авторы "срезали углы" и при тренировке/эвалах ожидают на выходе модели всегда только FoNE токены (на вход подают смесь текста и закодированных FoNEчисел). В переписке авторы говорят, что "наверное надо тренировать отельный слой-классификатор... мы не пробовали, но вы попробуйте!" 😄
Результаты - фантастические (см последние две картинки).
Эксперименты авторов воспроизводятся и совпадают с опубликованными данными. На практических примерах попробуем завести.
Если вы тоже будете экспериментировать и получите позитивные или негативные результаты - дайте знать, сверим показания. 🤝
То, что всё число занимает один токен - важный момент, потому что при тренировке классических авторегрессионных трансформеров функция потерь не считается одинаково для каждого токена, а значит ошибка в первом и последнем разряде числа будет для модели "весить" одинаково. Т.е. если нужно вывести число 3197, а модель написала 4197, то для неё это будет ошибка такого же порядка как 3198, хотя на самом деле это три десятичных порядка разницы. Для решения этой проблемы предлагались разные подходы, в том числе добавляющие специальную функцию потерь для чисел, но не трогающие токенизатор. Например, недавний (28 Feb 2025) PDCE - Position-Dependent Cross-Entropy, который я попытался запустить на наших экспериментах с рядами, но устал синхронизировать его функцию потерь с функцией потерь и забил. Использование одного токена/эмбеддинга для всего числа интуитивно выглядит более правильным подходом.
Итак, FoNE:
Позволяет кодировать/декодировать числа в десятичной системе счисления с заранее заданным количеством знаков до и после запятой в один токен/эмбеддинг. А числа произвольной длины кодируются простым объединением нескольких токенов/эмбеддингов подряд. Числа 100% точно кодируются и декодируются без потери точности.
СFoNE трансформеры "магически" научаются точно складывать и умножать вещественные числа при размере датасета 64x меньше.
Эксперименты в статье приводятся как для тренировки небольших LLM с нуля, так и для тюнинга предобученной Llama-3.2-1B. Предобученная Llama учится медленнее, но в большинстве случаев достигает такой же точности (тёмно-синяя линия "finetune" на графиках) - см Figure 2, 3.
Что НЕ сделано в статье - полноценная интеграция в LLM на стороне декодирования эмбедингов в токены, чтобы научить модель определять, где в выводе вставлять FoNE токен, а где обычный. В своих экспериментах с предобученной Llama авторы "срезали углы" и при тренировке/эвалах ожидают на выходе модели всегда только FoNE токены (на вход подают смесь текста и закодированных FoNEчисел). В переписке авторы говорят, что "наверное надо тренировать отельный слой-классификатор... мы не пробовали, но вы попробуйте!" 😄
Результаты - фантастические (см последние две картинки).
Эксперименты авторов воспроизводятся и совпадают с опубликованными данными. На практических примерах попробуем завести.
Если вы тоже будете экспериментировать и получите позитивные или негативные результаты - дайте знать, сверим показания. 🤝
FoNE: Precise Single-Token Number Embeddings via Fourier Features
paper 13 Feb 2025 | blog | source code
У LLM традиционно проблемы с операциями с числами. И если с целочисленными значениями они ещё справляются, то с вещественными числами всё становится сильно хуже, что делает работу с временными рядами при помощи LLM проблематичной. Новая статься показывает, что это не обязательно принципиальная проблема LLM, а скорее - ограничение токенизации.
В своей прошлой работе (Pre-trained Large Language Models Use Fourier Features to Compute Addition, NeurIPS 2024) авторы показывают, что трансформер, прошедший широкий претрейнинг использует "фурье-представление" чисел и сложение по модулю для выполнения сложения чисел, где MLP-слои используют низкие "частоты" (моды) для примерной оценки области, в которой должен находиться ответ, а attention-слои используют высокие "частоты" - для получения точных десятичных цифр ответа (первые две картинки, Figure 1 и 4).
paper 13 Feb 2025 | blog | source code
У LLM традиционно проблемы с операциями с числами. И если с целочисленными значениями они ещё справляются, то с вещественными числами всё становится сильно хуже, что делает работу с временными рядами при помощи LLM проблематичной. Новая статься показывает, что это не обязательно принципиальная проблема LLM, а скорее - ограничение токенизации.
В своей прошлой работе (Pre-trained Large Language Models Use Fourier Features to Compute Addition, NeurIPS 2024) авторы показывают, что трансформер, прошедший широкий претрейнинг использует "фурье-представление" чисел и сложение по модулю для выполнения сложения чисел, где MLP-слои используют низкие "частоты" (моды) для примерной оценки области, в которой должен находиться ответ, а attention-слои используют высокие "частоты" - для получения точных десятичных цифр ответа (первые две картинки, Figure 1 и 4).
This Time is Different: An Observability Perspective on Time Series Foundation Models (20 May 2025)
blog | paper | HF model | HF Dataset | GitHub
DataDog, один из крупнейших облачных obervability сервисов, выпустил open weight TSFM модель Toto и большой тренировочный observability датасет BOOM, собранный из их данных.
Модель Toto
* 151млн параметров.
* Decoder-only архитектура.
* Probabilistic output (Student-T).
* Обещают существенно лучшие характеристики в области observability (см картинки).
Датасеты:
* Observability Metrics: ~1 trillion points from Datadog internal systems (no customer data)
* Public Datasets:
- GIFT-Eval Pretrain
- Chronos datasets
* Synthetic Data: ~1/3 of training data
Подробнее не успел посмотреть, но выглядит интересно. Жаль, что датасет не размеченный кажется.
blog | paper | HF model | HF Dataset | GitHub
DataDog, один из крупнейших облачных obervability сервисов, выпустил open weight TSFM модель Toto и большой тренировочный observability датасет BOOM, собранный из их данных.
Модель Toto
* 151млн параметров.
* Decoder-only архитектура.
* Probabilistic output (Student-T).
* Обещают существенно лучшие характеристики в области observability (см картинки).
Датасеты:
* Observability Metrics: ~1 trillion points from Datadog internal systems (no customer data)
* Public Datasets:
- GIFT-Eval Pretrain
- Chronos datasets
* Synthetic Data: ~1/3 of training data
Подробнее не успел посмотреть, но выглядит интересно. Жаль, что датасет не размеченный кажется.
🔥1
IGC: Integrating a Gated Calculator into an LLM to Solve Arithmetic Tasks Reliably and Efficiently
paper 1 Jan 2025
Ещё одна (после FoNE) необычная работа по повышению точности математических операций в LLM. В этот раз заходят не со стороны токенизации, а со стороны того, как эффективно проводить операции внутри самой LLM. Точнее - математические операции выносятся в "сопроцессор", встроенный между слоями LLM (между 1м и 2м в примере), и который выполняет операции на GPU напрямую.
Так как калькулятор не дифференцируем и прерывает поток градиентов, то для тренировки Input Mapping модуля используется специальный подход к тренировке.
Код не опубликован, а жаль. Результаты в статье выглядят неплохо, модель 8B бьёт по показателям модели на два порядка больше (585B). Но почему-то всё-равно не достигает 100%.
У FoNE результаты вроде бы не хуже. Интересно, какая архитектура окажется более широко распространённой?
paper 1 Jan 2025
Ещё одна (после FoNE) необычная работа по повышению точности математических операций в LLM. В этот раз заходят не со стороны токенизации, а со стороны того, как эффективно проводить операции внутри самой LLM. Точнее - математические операции выносятся в "сопроцессор", встроенный между слоями LLM (между 1м и 2м в примере), и который выполняет операции на GPU напрямую.
Так как калькулятор не дифференцируем и прерывает поток градиентов, то для тренировки Input Mapping модуля используется специальный подход к тренировке.
Код не опубликован, а жаль. Результаты в статье выглядят неплохо, модель 8B бьёт по показателям модели на два порядка больше (585B). Но почему-то всё-равно не достигает 100%.
У FoNE результаты вроде бы не хуже. Интересно, какая архитектура окажется более широко распространённой?
Кто готов законтрибьютить данных в новый мощный датасет для time series forecasting?
Наш science advisor в партнёрстве с ещё несколькими видными научными группами собирает новый датасет для тренировки и бенчмарка time series forecasting моделей и ищет больше индустриальных партнёров, которые готовы поделиться (анонимизированными) данными. В проекте уже участвуют Amazon, Salesforce, Alibaba и Bytdance и он имеет все шансы стать новым стандартом бенчмарков для time series forecasting ресёрча. Но нужно большеада данных из разных областей.
Чем это полезно вашей компании (питч для руководства)
Например тем, что вы будете сразу знать, какие новые модели подходят для ваших задач, а какие - нет. И в целом больше шансов, что появятся модели, которые работают на ваших данных.
Текущие датасеты, ставшие стандартными, вроде ETT, (а) слишком малы и многие модели на них просто оверфитятся, (б) слишком узкоспецифичны и часто не совершенно не отражают реальные задачи, так что судить о качестве той или иной новой модели по статьям невозможно.
Ну и в целом, опубликоваться в такой компании - хороший пиар. 🙂
Кто готов подключиться? Напишите в личку
Наш science advisor в партнёрстве с ещё несколькими видными научными группами собирает новый датасет для тренировки и бенчмарка time series forecasting моделей и ищет больше индустриальных партнёров, которые готовы поделиться (анонимизированными) данными. В проекте уже участвуют Amazon, Salesforce, Alibaba и Bytdance и он имеет все шансы стать новым стандартом бенчмарков для time series forecasting ресёрча. Но нужно больше
Чем это полезно вашей компании (питч для руководства)
Например тем, что вы будете сразу знать, какие новые модели подходят для ваших задач, а какие - нет. И в целом больше шансов, что появятся модели, которые работают на ваших данных.
Текущие датасеты, ставшие стандартными, вроде ETT, (а) слишком малы и многие модели на них просто оверфитятся, (б) слишком узкоспецифичны и часто не совершенно не отражают реальные задачи, так что судить о качестве той или иной новой модели по статьям невозможно.
Ну и в целом, опубликоваться в такой компании - хороший пиар. 🙂
Кто готов подключиться? Напишите в личку
❤2😱1
Retrieval of Temporal Event Sequences from Textual Descriptions (17 Oct 2024)
paper | datasets | code
Для архива. Искал работы по использованию трансформеров/LLM для работы с event sequences, такими как логи софта, события в телеком сетях и т.п. Это второй важный тип временных рядов в нашей области, после регулярных (типа метрик), и важно уметь как делать для них RAG, так и рассуждать о происходящем.
В статье предлагается простой способ получения эмбеддингов для RAG для event sequences, где к каждому события прикреплена метка времени.
1. В качестве backbone берут стандартную LLM (TinyLlama-1.1B-Intermediate-Step-1431k-3T и TinyLlama-1.1B-Chat-v1.0) в 4-битовой квантизации.
2. На LLM добавляют LoRA адаптер (rank of 16).
3. Последовательности описывают как обычные эмбеддинги описания + Temporal Embeddings для привязки ко времени.
4. Тренируют при помощи contrastive loss.
иии..... получают SOTA по целому набору стандартных датасетов.
Минусы
Модель большая, так как это полноценная LLM (см таблицу со сравнением размеров). Тренируемых параметров почти ничего, но инференс скорее всего будет сильно медленнее более мелких моделей. Жаль, что измерений скорости инференса в статье не привели.
Насколько я понимаю, основная мысль в том, что таким нехитрым способом можно получить универсальную модель, которая достаточно хорошо (пусть и медленно) работает на самых разнообразных датасетах и не требует каждый раз обучения с нуля.
PS Работа основана на более ранней работе тех же авторов TPP-LLM (paper, 2 Oct 2024), где они использую ровно такую же архитектуру + текстовый промпт, чтобы предсказывать вероятности событий в тех же самых event streams (Temporal Point Processes по-научному).
paper | datasets | code
Для архива. Искал работы по использованию трансформеров/LLM для работы с event sequences, такими как логи софта, события в телеком сетях и т.п. Это второй важный тип временных рядов в нашей области, после регулярных (типа метрик), и важно уметь как делать для них RAG, так и рассуждать о происходящем.
В статье предлагается простой способ получения эмбеддингов для RAG для event sequences, где к каждому события прикреплена метка времени.
1. В качестве backbone берут стандартную LLM (TinyLlama-1.1B-Intermediate-Step-1431k-3T и TinyLlama-1.1B-Chat-v1.0) в 4-битовой квантизации.
2. На LLM добавляют LoRA адаптер (rank of 16).
3. Последовательности описывают как обычные эмбеддинги описания + Temporal Embeddings для привязки ко времени.
4. Тренируют при помощи contrastive loss.
иии..... получают SOTA по целому набору стандартных датасетов.
Минусы
Модель большая, так как это полноценная LLM (см таблицу со сравнением размеров). Тренируемых параметров почти ничего, но инференс скорее всего будет сильно медленнее более мелких моделей. Жаль, что измерений скорости инференса в статье не привели.
Насколько я понимаю, основная мысль в том, что таким нехитрым способом можно получить универсальную модель, которая достаточно хорошо (пусть и медленно) работает на самых разнообразных датасетах и не требует каждый раз обучения с нуля.
PS Работа основана на более ранней работе тех же авторов TPP-LLM (paper, 2 Oct 2024), где они использую ровно такую же архитектуру + текстовый промпт, чтобы предсказывать вероятности событий в тех же самых event streams (Temporal Point Processes по-научному).
👍1
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