Открыть сервис

GluonTS

GluonTS — это библиотека с открытым исходным кодом на языке Python для вероятностного прогнозирования временных рядов, разработанная компанией Amazon Web Services (AWS). Она предоставляет набор инструментов для построения, обучения и оценки моделей глубокого обучения, предназначенных для задач прогнозирования, таких как предсказание спроса, продаж, нагрузки на серверы или финансовых показателей.

История и развитие

GluonTS была впервые представлена в 2019 году как часть экосистемы Apache MXNet, фреймворка для глубокого обучения. Название происходит от интерфейса Gluon (часть MXNet, упрощающая построение нейросетей) и аббревиатуры TS (Time Series — временные ряды). Основной целью проекта было создание стандартизированной платформы, которая объединила бы лучшие практики и модели в области вероятностного прогнозирования, упростив их внедрение исследователями и инженерами.

В 2021 году, в связи с переходом основного сообщества разработчиков на PyTorch, GluonTS была адаптирована для работы с этим фреймворком. Начиная с версии 0.10.0, библиотека поддерживает как MXNet, так и PyTorch в качестве бэкендов, при этом основной упор делается на PyTorch. Развитие проекта продолжается под руководством AWS, а также при участии академических исследователей и инженеров из других компаний.

Ключевые особенности

Вероятностное прогнозирование

В отличие от классических методов, выдающих точечную оценку (одно число), GluonTS генерирует вероятностные прогнозы — распределение возможных будущих значений. Это позволяет оценивать неопределённость прогноза, что критически важно для принятия решений в бизнесе и логистике.

Модульная архитектура

Библиотека построена на принципе компонуемости: пользователь может собирать модели из готовых блоков (энкодеры, декодеры, распределения, функции потерь). Это ускоряет эксперименты и адаптацию под конкретные задачи.

Поддержка многомерных рядов

GluonTS эффективно работает с наборами данных, содержащими тысячи временных рядов (например, продажи по всем товарам в сети магазинов). Она поддерживает обучение на всех рядах одновременно, что позволяет моделям выявлять общие закономерности.

Основные компоненты

Модели

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

  • DeepARрекуррентная нейронная сеть (RNN) с авторегрессионным механизмом, одна из самых популярных моделей для вероятностного прогнозирования.
  • Transformerадаптация архитектуры Transformer для временных рядов, использующая механизм внимания.
  • DeepStateмодель, сочетающая RNN с линейным состоянием (state-space model).
  • CNN — свёрточные нейронные сети для обработки временных рядов.
  • TFT (Temporal Fusion Transformer) — модель, специально разработанная для интерпретируемого прогнозирования с учётом внешних факторов.
  • WaveNet — модель на основе дилатированных свёрток, изначально созданная для генерации аудио.

Кроме того, библиотека предоставляет базовые статистические методы (например, сезонное разложение, метод Хольта-Уинтерса) для сравнения и бенчмаркинга.

Оценка и метрики

GluonTS содержит встроенные средства для оценки качества прогнозов:

  • CRPS (Continuous Ranked Probability Score)метрика, оценивающая точность вероятностного прогноза.
  • MAE, MAPE, RMSE — стандартные метрики для точечных прогнозов.
  • Coverageпроцент попадания реальных значений в предсказанные доверительные интервалы.

Утилиты для работы с данными

  • Загрузка и предобработка популярных датасетов (например, M4, Electricity, Traffic).
  • Преобразование сырых данных в формат, пригодный для обучения нейросетей (создание окон, нормализация).
  • Визуализация прогнозов и исходных рядов с помощью matplotlib.

Применение

GluonTS используется в различных отраслях:

  • Ритейл и логистика: прогнозирование спроса на товары, оптимизация запасов.
  • Финансы: предсказание волатильности, доходности активов.
  • Энергетика: прогнозирование потребления электроэнергии и нагрузки на сети.
  • Интернет-услуги: предсказание трафика, нагрузки на серверы, числа пользователей.
  • Производство: прогнозирование отказов оборудования (predictive maintenance).

Пример использования

Ниже приведён упрощённый пример кода для обучения модели DeepAR на синтетических данных:

```python import gluonts from gluonts.dataset.artificial import constant_dataset from gluonts.model.deepar import DeepAREstimator from gluonts.trainer import Trainer

Загрузка искусственного датасета

dataset = constant_dataset() train_ds, test_ds = dataset.train, dataset.test

Создание и обучение модели

estimator = DeepAREstimator( freq="H", # часовая частота prediction_length=24, # прогноз на 24 шага вперёд trainer=Trainer(epochs=10) ) predictor = estimator.train(train_ds)

Прогнозирование

forecasts = predictor.predict(test_ds) ```

Ограничения и критика

Несмотря на широкие возможности, GluonTS имеет ряд недостатков:

  • Сложность настройки: для получения качественных результатов требуется глубокое понимание как теории временных рядов, так и архитектуры нейросетей.
  • Вычислительные ресурсы: обучение моделей на больших датасетах требует мощных GPU.
  • Зависимость от качества данных: модели чувствительны к выбросам, пропускам и нестационарности рядов.
  • Документация: хотя документация улучшается, некоторые разделы остаются фрагментарными, особенно для продвинутых сценариев.

Сравнение с аналогами

БиблиотекаЯзыкФреймворкОсновное назначение
GluonTSPythonPyTorch / MXNetВероятностное прогнозирование с глубоким обучением
ProphetPython / RАвтоматическое прогнозирование с учётом сезонности
statsmodelsPythonКлассические статистические методы (ARIMA, SARIMA)
KatsPythonPyTorchАнализ временных рядов от Meta (организация признана экстремистской и запрещена в РФ)
sktimePythonУнифицированный интерфейс для прогнозирования

GluonTS выделяется ориентацией на глубокое обучение и вероятностный подход, в то время как Prophet и statsmodels больше подходят для классических задач с менее сложными данными.

Интересные факты

  • GluonTS используется в промышленных решениях Amazon, в частности для прогнозирования спроса в Amazon Forecast.
  • Библиотека активно применяется в академических исследованиях: на её основе опубликовано несколько десятков статей на конференциях NeurIPS, ICML и KDD.
  • В 2020 году GluonTS была включена в список рекомендуемых инструментов для прогнозирования временных рядов по версии журнала «Nature».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →