
AutoTimes: Autoregressive Time Series Forecasters via Large Language Models (38th NeurIPS 2024)
코드 링크: https://github.com/thuml/AutoTimes
한줄 요약
LLM은 기본적으로 Autoregressive 구조이므로, 시계열 예측에 LLM을 적용하기 위해서는 이 또한 Autoregressive하게 진행해야 한다는 철학으로 설계된 모델.
기존 LLM4TS가 등한시한 “다음 토큰 예측 능력”을 다시 살려서, 시계열 forecasting에 활용한다 !
TimeCMA와 다른 요소들
1. LLM을 정말 예측에 활용할 수 있음
2. LLM을 다루는 요소들 직접적으로 실험 적용 가능 (in-context learning, LoRA finetuning ..)
3. TimeCMA보다 늦게 나온 논문이지만, 실험 표 기준으로 성능은 더 우세
4. LLM을 직접적으로 다뤄볼 수 있음 (LLama 등 ..)
현재 사용 중인 TimeCMA와 비교하여 또 다른 접근 방향성인 AutoTimes를 소개하고자 한다.
TimeCMA와 같은 LLM 기반 시계열 예측 연구들은, LLM을 encoder처럼 임베딩을 뽑기 위해 활용/사용하거나, 비-autoregressive 방식으로 처리함으로써 LLM의 본질적인 autoregressive, decoder-only 구조를 무시했다는 한계를 가진다.
이에 반해 해당 논문인 AutoTimes는 LLM의 원래 설계 철학인 'Next Token Prediction'과 Autoregressive Decoding 방식을 그대로 시계열 예측에 도입한다.
시계열 데이터를 segment 단위로 tokenize하고, 각 시점의 시간 정보를 자연어 문장으로 구성해 LLM의 input으로 사용, 마치 텍스트 생성하듯이 다음 시점 값을 순차적으로 예측한다.
추가적인 fine-tuning 없이도 강력한 성능을 보이며, LoRA PEFT 적용 시, 전체 파라미터의 0.1%만으로 SOTA 성능을 기록한다.

최근 LLM (대형 언어 모델)을 시계열 예측에 도입하는 시도들이 활발하지만, 다음과 3가지의 문제가 있음
기존 연구들은 LLM을 non-autoregressive하게 사용함.
즉, LLM의 "다음 토큰 예측(next token prediction)"이라는 본질적인 구조를 무시하고, 시계열을 인코더처럼 flatten → project → 예측하는 방식으로 활용함.
또한 언어 프롬프트(language prompts)를 시계열 예측에 활용하려고 할 때 모달리티 불일치(modality disparity) 문제가 발생함
figure 1 (a) Forecasting Approach
- 기존 방식 (Non-Autoregressive): 전체 시계열을 flatten → project해서 LLM에 넣고 한 번에 예측 (1,2,3 → 4,5)
- AutoTimes (Autoregressive): LLM의 원래 방식대로, 토큰 하나씩 순차적으로 생성 (1,2,3 → 4), (1,2,3,4 → 5)
figure 2 (b) Prompting Mechanism
- 기존방식: 언어로 만든 설명(예: "예측을 시작합니다") 같은 텍스트를 프롬프트로 사용 → 모달리티 mismatch 발생
- AutoTimes: 시계열 데이터 자체를 프롬프트로 사용 → "in-context forecasting" 가능
LLM은 시계열도 텍스트처럼 다룰 수 있다면, 굳이 언어 프롬프트를 쓰지 않아도 됨 → Self-prompting, in-context forecasting 가능
TimeCMA는 시계열과 LLM 표현을 정렬(alignment)하는 방식에 집중하지, 언어적 설명을 사용하지 않음.

전통적인 시계열 예측 기법들
- 키워드: Transformer, patch attention, frequency domain, decomposition
- 핵심 내용:
- 기존 시계열 모델들은 시계열의 패턴 구조 (시계성, 주기성 등)를 반영하기 위해 다양한 구조적 개선 시도
- 예: Autoformer, FEDformer, TimesNet, PatchTST 등
LLM을 시계열에 적용한 최근 연구들
- 키워드: Tokenization, in-context learning, LLM-as-encoder, non-autoregressive
- 핵심 내용:
- 시계열을 LLM에 맞게 token화하는 방식 연구됨
- 대부분 LLM을 encoder처럼 사용하며, autoregression을 버림
- 예: Time-LLM, UniTime, OFA, TimeGPT
시계열을 언어 모델에 입력 가능한 형태로 바꾸는 방법
- 키워드: Segment encoding, timestamp prompt, value-as-token
- 핵심 내용:
- 시계열을 토큰 시퀀스로 표현하기 위한 다양한 전략 연구
- Segment 구조, 시간 표현, 정규화 방식 등 포함
- 예: Time2Vec, ValueToken
LLM을 효율적으로 fine-tune 하는 기법들
- 키워드: LoRA, PEFT, adapter tuning, parameter-efficient
- 핵심 내용:
- 전체 LLM을 재학습하는 대신, 작은 부위만 훈련하는 경량 fine-tuning 기법
- AutoTimes는 LoRA를 적용하여 파라미터 0.1% 수준으로 tuning 가능함
LM을 autoregressive 시계열 예측기로 재활용하는 방식
AutoTimes는 기존 LLM이 갖고 있는 “다음 토큰 예측(next token prediction)” 능력을 그대로 시계열 예측에 적용
이를 위해 다음 세 가지 핵심 설계가 사용
1. 시계열 데이터를 자연어처럼 token화 (Segment Embedding)
2. Timestamp를 문장으로 만들어 Positional Embedding으로 활용
3. LLM을 frozen 상태로 사용하며, autoregressive하게 next-token(시계열 값) 생성

언어의 흐름(the → quick → brown...)처럼 시계열 흐름(x₁ → x₂ → x₃...)도 자연어처럼 모델링 가능하다는 시각
자연어 토큰과 시계열 token을 1:1 대응시키며 학습 → 결국 token-wise alignment를 통해 시계열 예측 가능

s₁, s₂, ..., s₇)"This is the series from 2016/7/1 00:00:00 to 2016/7/1 23:00:00"기존 LLM은 텍스트 위치(positional embedding)를 기반으로 학습함 → 시계열도 시간 정보를 자연어로 변환해서 LLM이 이해하게 함
SE₁, SE₂,...)[TE + SE]→ 최종적으로 LLM 입력은 [TE₁+SE₁], [TE₂+SE₂], ... 순서로 구성
[TE+SE] 시퀀스를 LLM에 입력함❄️ LLM은 frozen (즉, 미세조정하지 않음)
ŝ₁, ŝ₂,... 형태의 시계열 segment 예측s₂’, s₃’, ...)의 차이를 통해 MSE/MAE loss 계산
S₁~S₃)S₄'~S₅')을 바로 예측P₁~P₄)을 Prompt처럼 추가[P₁, P₂, ..., P₄, S₁, S₂, S₃] 처럼 구성됨S₄'~S₅') 예측P₁~P₄: target domain에서 과거에 관측된 시계열 (프롬프트 역할)S₁~S₃: 예측할 구간 이전의 lookback 시계열SMAPE (Symmetric Mean Absolute Percentage Error) → 예측값이 실제값과 얼마나 가까운지 %
🔥 In-context forecasting은 모든 구간에서 Zero-shot보다 우수한 성능 → 특히 Year, Others에서 큰 성능 차이


파라미터 수가 큰 모델일수록 성능을 좋아짐

batch size 224로 ETTh1 데이터셋에 대한 training/inference time 비교 및 파라미터 튜닝 수에 대해서 비교했을 때, AutoTimes 모델이 가장 우위에 있다.

AutoTimes는 원래 LLM의 중간층을 고정(frozen)시킨 채로 학습하지만, 성능을 더 높이기 위해 "LoRA"를 추가 도입할 수 있으며, 이는 실제 성능 향상으로 이어진다.


