논문

[논문리뷰] LLM4TS : Two-Stage Fine-Tuning for Time-Series Forecasting with Pre-Trained LLMs

pullwall 2024. 1. 9. 15:51
728x90

[논문 링크]

https://arxiv.org/abs/2308.08469

 

LLM4TS: Aligning Pre-Trained LLMs as Data-Efficient Time-Series Forecasters

Multivariate time-series forecasting is vital in various domains, e.g., economic planning and weather prediction. Deep train-from-scratch models have exhibited effective performance yet require large amounts of data, which limits real-world applicability.

arxiv.org

시계열 데이터를 LLM으로 예측하여 높은 성능을 보인 흥미로운 논문이다.

아래의 논문 리뷰를 통해 그 내용을 살펴보겠다.

 

 

Summary

LLM4TS란?

  • Large Language Model (LLM) 을 이용하여 시계열 데이터를 예측한다.
  • Time-series Patching, Channel-independence 를 통해 모델의 input을 구성하여 LLM이 효과적으로 시계열 데이터를 다룰 수 있도록 한다.
  • LLM을 fine tuning 하는 과정은 supervised fine-tuning, downstream fine-tuning을 통해 이루어진다.
  • 광범위한 parameter의 조절 없이 연산량 감소 및 LLM 성능 향상을 위해 Parameter-Efficient Fine-Tuning (PEFT) 를 사용한다.
  • 매우 제한된 훈련 데이터 (few-shot) 에서도 높은 성능을 보인다.
  • 이러한 방법을 통하여 다른 모델 대비 MSE가 평균 6.2% 감소하는 성능을 보여준다.

 

 

Background

Time-Series Forecasting

일련의 시간 순서대로 기록된 데이터를 기반으로 미래의 값을 예측하는 작업.
일반적으로 다음과 같은 수식으로 나타낼 수 있다.
y ̂_(t+k) : 시간 t에서 k시간 이후 예측값
f_k : k시간 이후의 값을 예측하기 위한 함수
x_(t-w),…,x_(t-1) : 현재 시간 t에서 w시간 전부터 t-1시간 전까지의 x
y_(t-w),…,y_(t-1) : 현재 시간 t에서 w시간 전부터 t-1시간 전까지의 y.
 

 

Sliding Window

Long-term Time-Series 예측을 위해 사용되는 기법

 
Input Window (w) : t시간으로부터 과거 w시간 만큼까지의 데이터를 이용 (w = 4)
 
Forecasting Hrizon (k) : t시간으로부터 미래 k시간까지 예측 (k = 1)

 

https://cloud.google.com/blog/products/ai-machine-learning/how-to-quickly-solve-machine-learning-forecasting-problems-using-pandas-and-bigquery?hl=en

 

 

 

 

Method

Motivation

  • 기존의 시계열 데이터 자기 지도 학습에서는 CNN, RNN 기반의 백본 모델이 선호되고 있다.
  • 이전 연구에서 사전 훈련된 LLM이 이미지, 오디오 및 시계열 데이터에서 충분한 잠재력이 있음을 보여줌에 따라 LLM4TS 모델로 시계열 데이터를 향상된 성능으로 예측하고자 한다.

Questions

  1. Time-Series 데이터를 이용하여 LLM을 어떻게 Fine-Tuning 할 것인가?
  2. Time-Series 데이터를 어떻게 LLM의 입력으로 넣을 것인가?
  3. LLM을 어떤 방식으로 학습시킬 것인가?

Model Architecture

  1. Time-Series 데이터를 이용하여 LLM을 어떻게 Fine-Tuning 할 것인가?
    1. Supervised, Downstream 2-Stage의 Fine-Tuning
  2. Time-Series 데이터를 어떻게 LLM의 입력으로 넣을 것인가?
    1. Patching, Channel Independence
  3. LLM을 어떤 방식으로 학습시킬 것인가?
    1. Layer Normalization tuning + Low-Rank Adaptation

 

 

1. Time-Series 데이터를 이용하여 LLM을 어떻게 Fine-Tuning 할 것인가?

-> Supervised Fine-Tuning (a)

Pre-train GPT-2 모델을 Backbone 모델로 사용하지만, 이는 자연어로 Pre-Training 되었기 때문에, 이를 Time-Series 데이터의 특성에 맞게 Fine-Tuning 하는 과정이 필요하다.
이는 GPT Pre-Training 단계와 동일하게 자기회귀적 훈련을 통하여 학습한다.
*자귀회귀적 훈련 : 현재의 값을 이전 값들의 조합으로 예측하는 방식
아래의 그림에서, input으로 1번, 2번, 3번 Patch가 들어가면 출력으로는 2번, 3번, 4번 Patch를 예측하게 된다.

 

-> Downstream Fine-Tuning (b)
앞선 Supervised Fine-Tuning 과정으로 Time-Series 데이터의 특성을 학습시킨 후, Backbone 모델이 예측 이라는 작업을 잘 수행할 수 있도록 Downstream Fine-Tuning을 진행한다.
학습의 전체 Epoch중 절반은 Linear Probing만을 수행하고, 이후에는 Full Fine-Tuning을 진행.
LP -> FT 순서의 과정이 더 효과적인 Fine-Tuning 방법이라고 이전 연구에서 제시하고 있기 때문에 해당 순서로 진행한다.

 

Linear Probing이란 무엇인가?
-> 출력층과 관련 있는 마지막 linear layer만 수정
-> 이와 반대되게 모든 layer를 수정하는 Full Fine-Tuning도 존재한다.

 

 

2. Time-Series 데이터를 어떻게 LLM의 입력으로 넣을 것인가?

-> Instance Normalization

Time-Series 예측에서는 z-score normalization 이 일반적이다. 이를 통해 데이터의 상대적인 위치를 이해하고, 이상치를 식별하는 작업에서 유용하게 사용될 수 있기 때문이다.
2022년 제안된 RevIN은 간단한 Batch-specific instance normalization 후 최종 Output 단계에서의 denormalization을 통해 예측 성능을 상승시켰다.
하지만 LLM은 일반적으로 Supervised Learning 방법이 사용되기 때문에 다음 두 가지 제약이 있어 LLM4TS 에서는 Standard Instance Normalization을 사용한다.
  1. Output이 Patch 형태이기 때문에 Denormalization 불가능.
  2. RevIN은 가중치, 편향 등의 파라미터를 사용하여 입력 데이터를 변환시킨다. 이는 원본 데이터를 왜곡시키고, 시간적 특성을 파괴하기 때문에 적합하지 않다.

위 사진에서 볼 수 있듯, Output이 Patch 형태이다.

 

 

-> Patching & Channel Independence - Tokenization

Patching & Channel Independence 통하여 Time-Series 데이터를 Token화 한다.
모델의 입력 제한을 극복하고 언어를 이해 가능한 단위로 변환하여 모델이 텍스트를 효과적으로 처리하고 학습할 수 있도록 하기 위해 Token화 과정이 필수적이다.
 
Tokenization
Time-Series 데이터를 일정한 크기로 Patching 한다. 이를 통해 모델이 지역성을 띄는 정보를 잘 반영할 수 있다.
다변량 Time-Series 데이터를 여러 단변량 시계열 데이터로 나눈 후, 각각에 해당하는 단일 모델로 처리하는 Channel Independence 이용한다.
 
Channel-Independence

 

-> Token, Positional, Temporal Encoding

Token Encoding : Table을 통하여 input Token을 고차원 공간에 Mapping 한다.
Positional Encoding : Encoding Table을 통하여 Patch의 위치 또한 Mapping한다.

Temporal Encoding : 하나의 Patch 안에는 여러 timestamp 에 해당하는 데이터가 존재하는데 이를 하나의 통합된 표현으로 나타내기 위해 초기 timestamp 해당 patch의 대표 timestamp로 지정.

 
, 시간, 요일, 날짜, 월과 같은 다양한 속성을 가질 수 있기 때문에 이를 고차원 공간에 Mapping 후 합산하여 단일 Temporal Embedding 생성

 

 

 

 

3. LLM을 어떤 방식으로 학습시킬 것인가?

Backbone model이 가지는 내재적인 knowledge 유지하기 위해 LLM Feed Forward 계층과 Attention 계층의 파라미터들을 동결시킨다.
Layer Normalization Tuning을 활용하여 Layer Normalization 계층을 Learnable 하게 만든다.
모델을 효과적으로 개선하면서도 내재된 표현 능력을 손상시키지 않는 LoRA 사용한다.
이러한 방법으로 모델의 총 파라미터 중 1.5%만 훈련 가능하도록 만들었다.
Downstream Fine-Tuning 방식에서 Output Patch된 상태로 나오기 때문에 이를 일반 시계열 데이터로 변환하기 위해 Linear Layer 이후 Flatten, 후 재배열 하여 Patching되지 않은 시계열 데이터로 만든다.

 

 

Experiments

Dataset

Dataset

Metric
  • MSE, MAE
Implementation Details
  • ”A Time Series is Worth 64 Words : Long-term Forecasting with Transformers” 논문의 실험 구성과 동일.
  • GPT4TS의 구성과 동일하게 GPT-2의 12개 layer중 처음 6개 layer를 사용.

Default Setting

  • Window Size : 336 or 512
  • Patch length : 16
  • Stride : 8

Self-supervised Learning Setting

  • Window Size :  512
  • Patch length : 12
  • Stride : 12

Baseline

  • Pre-trained LLM Model
    • GPT4TS
  • Transformer based Model
    • PatchTST, FEDformer, Autoformer, Informer
  • MLP based Model
    • DLinear

Long-term forecasting for multivariate time-series data

Prediction Length = 96, 192, 336, 720 으로 실험 진행
LLM4TS가 대부분의 Long-term time-series 예측에 있어서 좋은 성능을 보인다.
 
앞서 Pre-trained LLM은 극히 제한적인 학습 데이터 환경에서도 뛰어난 성능을 보일 수 있다고 언급하였는데, PLM based Model LLM4TS GPT4TS는 좋은 성능을 보임.
 

 

Supervised Fine-Tuning, Temporal Encoding, PEFT가 모델에 미치는 영향을 확인하기 위해 해당 항목을 각각 제외시키고 실험해본 결과 few-shot learning에서 MSE가 평균 6.2% 감소하는 성과를 보였다.
 
Linear Probing  Full Fine Tuning을 적용하는 것이 Full Fine Tuning만 적용시키거나, Linear Probing만 적용시켰을 때 보다 few-shot learning에서 MSE가 평균 2.51% 감소하는 성능을 보인다.
 
 
 
 

Conclusion

  • Pre-Train LLM (PLM) 을 사용하여 time-series 예측을 진행하는 LLM4TS 모델을 소개한다.
  • Time-series 데이터를 LLM의 input으로 만들기 위해 Patching과 Channel Independence, token, positional, temporal encoding을 이용하였다.
  • Time-Series 데이터의 특성을 모델이 잘 이해할 수 있게 Self-supervised fine-tuning을 진행하였다.
  • ”예측” 이라는 목표에 모델이 맞춰지도록 Downstream fine-tuning을 진행하였다.
  • Fine-tuning시, 연산 비용 감소와 성능을 향상을 위해 Layer Normalization Tuning과 LoRA를 이용하였다.
  • 실험 결과, LLM4TS는 Long-term time-series forecasting과 입력 데이터로부터 유용하고 의미 있는 표현을 추출하여 학습하는 Representation learning에서 좋은 성능을 보이며 few-shot 상황에서도 좋은 성능을 보임을 증명하였다.
728x90