Time Series Foundation Models (시계열 파운데이션 모델)¶
메타 정보¶
| 항목 | 내용 |
|---|---|
| 분류 | Time Series / Foundation Models / Zero-Shot Forecasting / Pre-trained Models |
| 핵심 논문 | "A Decoder-Only Foundation Model for Time-Series Forecasting" (Das et al., ICML 2024, TimesFM), "Chronos: Learning the Language of Time Series" (Ansari et al., ICML 2024), "Unified Training of Universal Time Series Forecasting Transformers" (Woo et al., ICML 2024 Oral, Moirai), "MOMENT: A Family of Open Time-Series Foundation Models" (Goswami et al., ICML 2024), "Lag-Llama: Towards Foundation Models for Probabilistic Time Series Forecasting" (Rasul et al., NeurIPS 2023 Workshop), "Timer: Generative Pre-trained Transformers Are Large Time Series Models" (Liu et al., ICML 2024), "Tiny Time Mixers: Fast Pre-trained Models for Enhanced Zero/Few-shot Forecasting" (Ekambaram et al., NeurIPS 2024, TTMs) |
| 주요 저자 | Abhimanyu Das (Google, TimesFM), Abdul Fatir Ansari (Amazon, Chronos), Gerald Woo (Salesforce, Moirai), Mononito Goswami (CMU, MOMENT), Kashif Rasul (Lag-Llama), Yong Liu (Tsinghua, Timer), Vijay Ekambaram (IBM, TTMs) |
| 핵심 개념 | 대규모 시계열 데이터(수십억~수천억 시점)로 사전학습된 Transformer 기반 범용 예측 모델로, 특정 도메인/태스크 학습 없이 zero-shot 또는 few-shot 예측이 가능한 패러다임 |
| 관련 분야 | Transfer Learning, Self-Supervised Learning, Probabilistic Forecasting, AutoML, In-Context Learning |
정의¶
Time Series Foundation Model (TSFM)은 대규모의 다양한 도메인 시계열 데이터로 사전학습되어, 새로운 시계열에 대해 추가 학습 없이(zero-shot) 또는 최소한의 적응(few-shot)으로 예측을 수행하는 범용 모델이다. 이는 NLP에서 GPT, BERT가 보여준 "사전학습-미세조정" 패러다임을 시계열 영역으로 확장한 것이다.
TSFM이 해결하고자 하는 핵심 도전 과제:
- 도메인 다양성: 에너지, 금융, 기상, 교통 등 이질적인 시계열을 하나의 모델로 처리
- 주파수 다양성: 초 단위부터 연 단위까지 다양한 샘플링 빈도 대응
- 변수 수 다양성: 단변량부터 수천 차원 다변량까지 유연한 처리
- 레이블 부재: 시계열 데이터는 NLP/CV 대비 대규모 레이블 코퍼스가 부재
Time Series Foundation Model 패러다임:
[사전학습 단계]
다양한 도메인의 대규모 시계열 코퍼스
(에너지, 금융, 기상, 교통, 의료, IoT ...)
|
v
+-----------------------------------------------+
| 사전학습 (Pre-training) |
| |
| 입력 표현 학습 목표 |
| - Patch 기반 - Next-token prediction |
| - Tokenization - Masked reconstruction |
| - Continuous - Cross-entropy (discrete) |
| - MSE (continuous) |
+-----------------------------------------------+
|
v
사전학습된 Foundation Model
|
+-------------------+-------------------+
| | |
v v v
[Zero-Shot] [Few-Shot] [Fine-Tuning]
추가 학습 없이 소량 데이터로 도메인 특화
바로 예측 in-context 적응 전이 학습
핵심 설계 축¶
TSFM의 설계는 세 가지 축으로 분류된다:
1. 입력 표현 (Input Representation)¶
시계열의 연속 값을 모델이 처리할 수 있는 형태로 변환하는 방식.
| 전략 | 설명 | 대표 모델 |
|---|---|---|
| Patch Embedding | 연속 시점을 고정 길이 패치로 묶어 선형 투영 | TimesFM, MOMENT, Timer |
| Discrete Tokenization | 스케일링 후 양자화하여 이산 토큰으로 변환 | Chronos |
| Lag Features | 과거 시차 값을 피처 벡터로 구성 | Lag-Llama |
| Multi-Resolution Patch | 다양한 패치 크기를 동시 사용 | Moirai |
Patch 기반 접근의 핵심 이점: - 시퀀스 길이 감소 (L -> L/P): attention 비용 O(L^2) -> O((L/P)^2) - 지역적 시간 패턴(local temporal patterns)을 패치 단위로 포착 - PatchTST (Nie et al., ICLR 2023)에서 최초 제안, TSFM에서 표준화
2. 아키텍처 (Architecture)¶
| 유형 | 설명 | 대표 모델 |
|---|---|---|
| Decoder-Only | GPT 스타일, autoregressive next-token prediction | TimesFM, Timer, Lag-Llama |
| Encoder-Decoder | T5 스타일, 양방향 인코더 + 자기회귀 디코더 | Chronos |
| Encoder-Only | BERT 스타일, masked patch reconstruction | MOMENT |
| Masked Encoder | Masked Transformer, any-variate attention | Moirai |
3. 학습 목표 (Training Objective)¶
| 목표 | 수식/설명 | 대표 모델 |
|---|---|---|
| MSE (Continuous) | min (1/N) sum(y_hat - y)^2 | TimesFM |
| Cross-Entropy (Discrete) | 양자화된 토큰의 분류 손실 | Chronos |
| Masked Reconstruction | 마스킹된 패치 복원 | MOMENT, Moirai |
| Next-Token Prediction | GPT 스타일 자기회귀 | Timer, Lag-Llama |
| Distributional Output | 혼합 분포 파라미터 예측 | Moirai (Student-t mixture) |
주요 모델 상세¶
TimesFM (Google, ICML 2024)¶
Decoder-only Transformer 기반으로, 100B(1000억) 실제 시점 + 합성 데이터로 사전학습.
아키텍처 핵심: - Patch 크기: 32 (입력), 128 (출력) - Input Patch: 연속 값을 패치 단위로 선형 투영 - Output Patch: 한 번에 128 시점 예측 (속도 향상) - 학습 목표: MSE (연속 값 직접 예측) - 모델 크기: 200M 파라미터
TimesFM 2.5 (2025 업데이트): - Quantile Head 추가: 확률적 예측 지원 (10th~90th 분위) - 외생 변수(covariates) 지원 - Flip Invariance: 시계열 반전 불변성
# TimesFM 2.5 사용 예시
import torch
import numpy as np
import timesfm
torch.set_float32_matmul_precision("high")
# 모델 로드
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained(
"google/timesfm-2.5-200m-pytorch"
)
# 설정
model.compile(
timesfm.ForecastConfig(
max_context=1024, # 최대 컨텍스트 길이
max_horizon=256, # 최대 예측 구간
normalize_inputs=True,
use_continuous_quantile_head=True, # 확률적 예측
force_flip_invariance=True,
infer_is_positive=True,
fix_quantile_crossing=True,
)
)
# 예측 (zero-shot)
point_forecast, quantile_forecast = model.forecast(
horizon=24,
inputs=[
sales_data, # 매출 시계열
energy_data, # 에너지 소비 시계열
],
freq=[0, 0], # 0: 고빈도, 1: 중빈도, 2: 저빈도
)
# point_forecast.shape: (2, 24)
# quantile_forecast.shape: (2, 24, 10) - mean + 9개 분위수
Chronos (Amazon, ICML 2024)¶
기존 T5 언어 모델 아키텍처를 시계열에 재사용. 연속 값을 이산 토큰으로 변환하여 언어 모델의 cross-entropy 학습을 그대로 활용.
토큰화 과정: 1. Mean Absolute Scaling: 각 시계열을 절대 평균으로 나누어 스케일 정규화 2. Quantization: 스케일링된 값을 [-15, +15] 구간의 4096개 균등 빈(bin)으로 양자화 3. 이산 토큰 시퀀스를 T5에 입력
학습 데이터 증강: - TSMix: 서로 다른 시계열을 선형 결합하여 새로운 훈련 샘플 생성 - KernelSynth: Gaussian Process 커널 조합으로 합성 시계열 생성 - 합성 데이터가 zero-shot 성능에 크게 기여 (특히 unseen 도메인)
모델 크기: Tiny(8M), Mini(20M), Small(46M), Base(200M), Large(710M)
# Chronos 사용 예시
from chronos import ChronosPipeline
import torch
pipeline = ChronosPipeline.from_pretrained(
"amazon/chronos-t5-base",
device_map="cuda",
torch_dtype=torch.bfloat16,
)
# 확률적 예측 (20개 샘플)
forecast = pipeline.predict(
context=torch.tensor(historical_data),
prediction_length=24,
num_samples=20,
)
# forecast.shape: (1, 20, 24)
# 중앙값과 구간 추정
median = forecast.median(dim=1).values
low = forecast.quantile(0.1, dim=1).values
high = forecast.quantile(0.9, dim=1).values
Moirai (Salesforce, ICML 2024 Oral)¶
"Any-variate, any-frequency" 범용 예측을 목표로 설계. LOTSA(Large-scale Open Time Series Archive) 데이터셋 27B 관측치로 학습.
핵심 혁신:
-
Multi-Patch Size Projection: 5개 패치 크기(8, 16, 32, 64, 128)에 대해 각각 입출력 투영층을 학습. 데이터 주파수에 따라 최적 패치 크기 자동 선택.
-
Any-Variate Attention: 다변량 시계열의 모든 변수를 하나의 시퀀스로 flatten하되, variate ID와 time ID를 통해 구분. 변수 수에 제한 없이 처리 가능.
-
Mixture Distribution Output: Student-t 혼합 분포의 파라미터(weight, loc, scale, df)를 출력하여 유연한 확률적 예측 제공.
모델 크기: Small(14M), Base(91M), Large(311M)
# Moirai 사용 예시 (uni2ts 라이브러리)
from uni2ts.model.moirai import MoiraiForecast, MoiraiModule
model = MoiraiModule.from_pretrained("Salesforce/moirai-1.0-R-large")
predictor = model.create_predictor(
prediction_length=24,
context_length=512,
patch_size="auto", # 자동 패치 크기 선택
num_samples=100,
)
# GluonTS 데이터셋과 호환
from gluonts.dataset.repository import get_dataset
dataset = get_dataset("electricity")
forecasts = list(predictor.predict(dataset.test))
MOMENT (CMU, ICML 2024)¶
Masked Autoencoder 방식으로 사전학습된 encoder-only TSFM. 예측뿐 아니라 분류, 이상 탐지, 결측치 보간 등 다목적(multi-task) 활용을 목표.
핵심 설계: - Time Series Pile: 공개 데이터셋을 큐레이션한 사전학습 코퍼스 - Patch 기반 입력 (패치 크기 8) - 학습: 랜덤 마스킹된 패치를 복원하는 self-supervised 목표 - 추론: 마스킹 위치를 예측 구간으로 설정하여 forecasting 수행 - 모델 크기: Small(40M), Base(125M), Large(385M)
다목적 활용:
| 태스크 | 방법 |
|---|---|
| Forecasting | 미래 패치를 마스킹하고 복원 |
| Classification | [CLS] 토큰 + linear head |
| Anomaly Detection | 복원 오차를 anomaly score로 활용 |
| Imputation | 결측 패치를 마스킹하고 복원 |
# MOMENT 사용 예시
from moment import MOMENTPipeline
model = MOMENTPipeline.from_pretrained(
"AutonLab/MOMENT-1-large",
model_kwargs={"task_name": "forecasting", "forecast_horizon": 24},
)
model.init()
# 입력: (batch, n_channels, context_length)
output = model(x_enc=context_tensor)
forecast = output.forecast # (batch, forecast_horizon, n_channels)
Lag-Llama (Mila / ServiceNow, NeurIPS 2023 Workshop)¶
LLaMA 아키텍처를 기반으로 한 단변량 확률적 예측 모델. 시차 피처(lag features)를 활용하여 시간 의존성을 명시적으로 포착.
핵심 설계: - 입력: 시차 피처 벡터 [x_{t-1}, x_{t-2}, ..., x_{t-L}] + 시간 피처 - 아키텍처: LLaMA decoder (RMSNorm, RoPE, SwiGLU) - 출력: 분포 파라미터 (Student-t distribution) - 학습: Negative log-likelihood 최소화 - 강점: fine-tuning 시 빠른 도메인 적응
Timer (Tsinghua, ICML 2024)¶
GPT 스타일의 생성형 사전학습 시계열 모델. Single-Series Sequence (S3) 형식으로 이질적 시계열을 통합.
핵심 설계: - S3 Format: 다양한 도메인의 시계열을 하나의 긴 시퀀스로 연결 - 학습: Next-token prediction (패치 단위) - 1B 시점 규모의 사전학습 데이터 - 다목적: 예측, 결측치 보간, 이상 탐지에 동일 모델 적용
TTMs (IBM, NeurIPS 2024)¶
경량화에 초점을 맞춘 Tiny Time Mixers. MLP-Mixer 아키텍처 기반으로 파라미터 수를 극단적으로 줄이면서도 경쟁력 있는 성능 달성.
핵심 설계: - 파라미터: 1M 미만 (기존 TSFM의 1/100 이하) - Multi-level modeling: 시간축 + 채널축 MLP mixing - Adaptive patching: 입력 길이에 따른 패치 크기 조정 - CPU에서도 실시간 추론 가능
벤치마크 및 성능 비교¶
TSFM-Bench (KDD 2025)¶
통합 벤치마크에서의 zero-shot 예측 성능 (MASE 기준, 낮을수록 좋음):
| 모델 | Monash (Avg) | Weather | Traffic | 특징 |
|---|---|---|---|---|
| Moirai-Large | 0.85 | 0.72 | 0.68 | Any-variate, 확률적 |
| Chronos-Large | 0.87 | 0.78 | 0.71 | 언어모델 재활용 |
| TimesFM-200M | 0.89 | 0.74 | 0.73 | Google, 빠른 추론 |
| MOMENT-Large | 0.92 | 0.81 | 0.75 | 다목적 활용 |
| Lag-Llama | 0.95 | 0.85 | 0.79 | 단변량 확률적 |
| Seasonal Naive | 1.00 | 1.00 | 1.00 | 기준선 |
(참고: 수치는 여러 벤치마크 논문의 상대적 경향을 종합한 근사값. 데이터셋/설정에 따라 순위 변동.)
주요 발견 (NeurIPS/ICML 2025 워크숍)¶
- 도메인 의존성: TSFM의 zero-shot 성능은 사전학습 도메인 구성에 크게 의존 (NeurIPS 2025)
- PCA+Linear 도전: 단순 PCA+Linear 모델이 일부 zero-shot 벤치마크에서 TSFM과 경쟁 (ICML 2025)
- In-Context Fine-Tuning: few-shot 예시를 컨텍스트로 제공하면 zero-shot 대비 성능 향상 (TimesFM-ICF, Google 2025)
사전학습 데이터¶
| 데이터셋/코퍼스 | 규모 | 도메인 | 사용 모델 |
|---|---|---|---|
| Google Internal + Synthetic | 100B 시점 | 다양한 도메인 | TimesFM |
| Public TS + KernelSynth | ~10B 시점 | 27개 공개 데이터셋 + 합성 | Chronos |
| LOTSA | 27B 관측치 | 9개 도메인 | Moirai |
| Time Series Pile | ~1B 시점 | 공개 데이터셋 큐레이션 | MOMENT |
| UTSD (Unified TS Dataset) | 1B 시점 | S3 형식 통합 | Timer |
실무 활용 가이드¶
모델 선택 기준¶
TSFM 선택 가이드
데이터 특성
├── 단변량 + 확률적 예측 필요?
│ └── Lag-Llama (fine-tuning) 또는 Chronos
│
├── 다변량 + 변수 간 상관 중요?
│ └── Moirai (any-variate attention)
│
├── 다목적 (예측 + 분류 + 이상탐지)?
│ └── MOMENT (encoder-only, multi-task)
│
├── 추론 속도 / 엣지 배포?
│ └── TTMs (<1M params) 또는 TimesFM (빠른 output patch)
│
├── 확률적 예측 + 불확실성 정량화?
│ └── Chronos (샘플링), Moirai (mixture dist)
│
└── 빠른 프로토타입 / API?
└── TimesFM (pip install, 간단한 API)
전통 모델 대비 사용 시점¶
| 상황 | 권장 접근 |
|---|---|
| 소량 데이터 (<1000 시점) | 통계 모델 (ARIMA, ETS) 우선 |
| 도메인 데이터 풍부 + GPU | 도메인 특화 DL (PatchTST, iTransformer) |
| 새 도메인, 데이터 부족 | TSFM zero-shot |
| 빠른 baseline 필요 | TimesFM / Chronos zero-shot |
| 프로덕션 + 다양한 시계열 | TSFM zero-shot -> fine-tuning |
| 해석 필요 | N-BEATS, Prophet |
End-to-End 파이프라인 예시¶
"""
Time Series Foundation Model 실전 파이프라인
1. 데이터 준비
2. Zero-shot 베이스라인
3. 선택적 fine-tuning
4. 평가 및 비교
"""
import numpy as np
import pandas as pd
from sklearn.metrics import mean_absolute_error
# --- 1. 데이터 준비 ---
df = pd.read_csv("sales_data.csv", parse_dates=["date"])
df = df.sort_values("date")
train = df[df["date"] < "2025-01-01"]["value"].values
test = df[df["date"] >= "2025-01-01"]["value"].values
horizon = len(test)
# --- 2. Zero-shot 예측 (TimesFM) ---
import timesfm
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained(
"google/timesfm-2.5-200m-pytorch"
)
model.compile(
timesfm.ForecastConfig(
max_context=1024,
max_horizon=horizon,
normalize_inputs=True,
use_continuous_quantile_head=True,
)
)
point_fc, quantile_fc = model.forecast(
horizon=horizon,
inputs=[train],
freq=[0],
)
# --- 3. 전통 모델 비교 (Baseline) ---
import pmdarima as pm
arima = pm.auto_arima(train, seasonal=True, m=12, stepwise=True)
arima_fc = arima.predict(n_periods=horizon)
# --- 4. 평가 ---
from gluonts.ev.metrics import MASE
print(f"TimesFM MAE: {mean_absolute_error(test, point_fc[0]):.4f}")
print(f"ARIMA MAE: {mean_absolute_error(test, arima_fc):.4f}")
# --- 5. Chronos 확률적 예측 (선택) ---
from chronos import ChronosPipeline
import torch
chronos = ChronosPipeline.from_pretrained(
"amazon/chronos-t5-base",
device_map="cuda",
torch_dtype=torch.bfloat16,
)
samples = chronos.predict(
context=torch.tensor(train, dtype=torch.float32),
prediction_length=horizon,
num_samples=50,
)
median_fc = samples.median(dim=1).values.numpy()
p10 = samples.quantile(0.1, dim=1).values.numpy()
p90 = samples.quantile(0.9, dim=1).values.numpy()
print(f"Chronos MAE: {mean_absolute_error(test, median_fc[0]):.4f}")
print(f"90% 구간 포함률: {np.mean((test >= p10[0]) & (test <= p90[0])):.2%}")
한계 및 열린 문제¶
현재 한계¶
-
도메인 편향: 사전학습 데이터 구성이 zero-shot 성능을 좌우. 학습 데이터에 없는 도메인에서 성능 저하 가능.
-
단순 모델과의 경쟁: ICML 2025에서 PCA+Linear이 일부 zero-shot 벤치마크에서 TSFM과 경쟁하는 결과가 보고됨. TSFM의 "필요성"에 대한 근본적 질문 제기.
-
다변량 한계: 대부분의 TSFM이 단변량 또는 channel-independent 방식. 변수 간 복잡한 상호작용 포착에 한계 (Moirai 제외).
-
Exogenous 변수 처리: 외생 변수(휴일, 프로모션 등)의 통합이 제한적. TimesFM 2.5에서 부분 지원 시작.
-
Long-Horizon 정확도: 예측 구간이 길어질수록 성능 저하가 급격. 특히 non-stationary 시계열에서 두드러짐.
연구 방향¶
- In-Context Learning: few-shot 예시를 컨텍스트로 제공하여 성능 향상 (TimesFM-ICF)
- Multi-Modal TSFM: 텍스트 설명 + 시계열을 함께 처리하는 모델
- Efficient TSFM: TTMs처럼 1M 이하 파라미터로 경쟁력 확보
- Domain-Adaptive Pre-training: 범용 사전학습 후 도메인별 추가 학습 체계화
- Unified Multi-Task: 예측, 분류, 이상탐지, 생성을 하나의 모델로
참고 문헌¶
핵심 논문 (2024 ICML)¶
- Das, A. et al. (2024). "A Decoder-Only Foundation Model for Time-Series Forecasting". ICML.
- Ansari, A.F. et al. (2024). "Chronos: Learning the Language of Time Series". ICML.
- Woo, G. et al. (2024). "Unified Training of Universal Time Series Forecasting Transformers". ICML (Oral).
- Goswami, M. et al. (2024). "MOMENT: A Family of Open Time-Series Foundation Models". ICML.
- Liu, Y. et al. (2024). "Timer: Generative Pre-trained Transformers Are Large Time Series Models". ICML.
후속 연구 (2025)¶
- Ekambaram, V. et al. (2024). "Tiny Time Mixers: Fast Pre-trained Models for Enhanced Zero/Few-shot Forecasting". NeurIPS.
- Das, A. et al. (2025). "Time Series Foundation Models Can Be Few-Shot Learners". Google Research.
- TSFM-Bench (2025). "A Comprehensive and Unified Benchmark of Foundation Models for Time Series Forecasting". KDD.
선행 연구¶
- Rasul, K. et al. (2023). "Lag-Llama: Towards Foundation Models for Probabilistic Time Series Forecasting". NeurIPS Workshop.
- Nie, Y. et al. (2023). "A Time Series is Worth 64 Words: Long-term Forecasting with Transformers". ICLR. (PatchTST)
- Liu, Y. et al. (2024). "iTransformer: Inverted Transformers Are Effective for Time Series Forecasting". ICLR.
라이브러리¶
- TimesFM: https://github.com/google-research/timesfm
- Chronos: https://github.com/amazon-science/chronos-forecasting
- Moirai (Uni2TS): https://github.com/SalesforceAIResearch/uni2ts
- MOMENT: https://github.com/moment-timeseries-foundation-model/moment
- GluonTS: https://github.com/awslabs/gluonts
- NeuralForecast: https://github.com/Nixtla/neuralforecast