본문 바로가기
AI 튜토리얼

TimesFM 튜토리얼 구글 시계열 예측 모델 5분 시작 (2026)

by 정부우르사 2026. 6. 21.
반응형

"시계열 예측 한다고 ARIMA·Prophet 만지작거리다 시간 다 가는데, 모델 학습 없이 그냥 한 번에 안 될까?"


📌 핵심 3줄 요약

  • 구글 TimesFM은 2억 파라미터급 시계열 파운데이션 모델로, 사전 학습된 가중치만으로 제로샷 예측이 가능하다.
  • HuggingFace에서 가중치를 받아 단변량 시계열 한 줄만 넘기면 최대 horizon 길이까지 한 번에 예측이 떨어진다.
  • 한국 공공데이터 전력 수요·검색 트렌드 CSV에 그대로 적용해도 Prophet 대비 셋업 시간이 압도적으로 짧다.

1. TimesFM이 뭐고 왜 쓰는가

TimesFM(Time-series Foundation Model)은 구글 리서치가 공개한 디코더 전용 트랜스포머 기반 시계열 예측 모델이다. 1,000억 개 이상의 실제·합성 시계열 포인트로 사전 학습되어, 새로운 데이터셋에 학습을 다시 돌리지 않고도 곧장 예측값을 뽑을 수 있는 게 핵심이다. 전력 수요, 매출, 트래픽 같은 단변량 시계열에서 ARIMA/Prophet을 대체하거나 베이스라인으로 쓰기에 좋다.

💡 핵심 한 줄

TimesFM은 "도메인 학습이 끝난 시계열용 GPT"라고 보면 된다. 사용자가 할 일은 데이터를 정렬·결측 처리해서 넘기는 것뿐이다.


2. 공식 스펙 한눈에 정리

실전에서 가장 자주 막히는 지점이 입력 길이·예측 horizon·메모리다. 공식 저장소·HuggingFace 카드 기준 핵심 수치를 표로 정리했다.

항목 timesfm-1.0-200m timesfm-2.0-500m
파라미터 약 2억 약 5억
최대 입력 컨텍스트 512 포인트 2,048 포인트
예측 horizon 최대 128 최대 128
변수 유형 단변량 단변량(공변량은 외부 래퍼)
CPU 추론 가능(분 단위) GPU 권장
라이선스 Apache-2.0 Apache-2.0

실험·블로그용이면 200m으로 충분하다. 매출·전력 데이터처럼 일 단위 1~2년치(약 300~700포인트)는 512 컨텍스트에 잘 들어맞는다.


3. 5분 안에 첫 예측 띄우기

아래 코드는 파이썬 3.10 이상, timesfm 패키지 1.x 기준이다. 가상환경 새로 파고 그대로 붙여 넣으면 된다.

install.sh · Shell

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install "timesfm[torch]" pandas numpy

forecast.py · Python

import numpy as np
import timesfm

tfm = timesfm.TimesFm(
    hparams=timesfm.TimesFmHparams(
        backend="cpu",          # GPU면 "gpu"
        per_core_batch_size=32,
        horizon_len=64,         # 향후 64스텝 예측
        context_len=512,
    ),
    checkpoint=timesfm.TimesFmCheckpoint(
        huggingface_repo_id="google/timesfm-1.0-200m-pytorch"
    ),
)

# 일 단위 더미 시계열 (실제로는 CSV 로드)
series = np.sin(np.linspace(0, 30, 400)) + np.random.normal(0, 0.1, 400)

point_forecast, _ = tfm.forecast(
    inputs=[series],
    freq=[0],   # 0=고빈도(일/시), 1=중빈도(주), 2=저빈도(월)
)
print(point_forecast[0][:5])  # 앞 5스텝 예측값

처음 실행하면 약 800MB 가중치를 받는다. 2회차부터는 캐시에서 즉시 로드되어 CPU에서도 1~3초 안에 응답이 떨어진다.


4. 한국 데이터 적용 — 전력 수요 CSV로 끝내기

전력거래소가 공개하는 시간대별 전력 수요 CSV(date, hour, demand_mw)를 그대로 쓴다고 가정한다. 핵심은 결측 보간과 빈도 인자 freq다.

⚠️ 흔한 실수

  • 결측 시간대를 그냥 비워두면 시퀀스 길이가 어긋나 예측값이 휘어진다 → asfreq("H").interpolate()로 채우기.
  • freq=[0]은 일·시간처럼 빈도 높은 데이터, freq=[2]는 월간 매출 같은 저빈도. 잘못 지정하면 MAE가 20~30% 악화될 수 있다.

kepco_demand.py · Python

import pandas as pd

df = pd.read_csv("kepco_demand_2025.csv", parse_dates=["datetime"])
df = df.set_index("datetime").asfreq("H").interpolate()

history = df["demand_mw"].values[-512:]   # 최근 512시간(약 21일)
forecast, _ = tfm.forecast(inputs=[history], freq=[0])

future_index = pd.date_range(
    start=df.index[-1] + pd.Timedelta(hours=1),
    periods=64, freq="H",
)
result = pd.Series(forecast[0], index=future_index)
print(result.head())

네이버 데이터랩 검색 트렌드 CSV(주 단위)도 동일하게 asfreq("W").interpolate() + freq=[1]로 바꾸기만 하면 된다.


5. TimesFM vs Prophet vs ARIMA

같은 데이터에 세 방법을 돌릴 때 셋업 비용과 운영 특성이 어떻게 갈리는지 정리했다.

기준 TimesFM Prophet ARIMA
학습 단계 불필요(제로샷) 시리즈별 fit 시리즈별 fit + 차수 탐색
계절성 처리 내장(추정) 명시적 설정 SARIMA로 별도
외생 변수 외부 래퍼 필요 add_regressor ARIMAX
최초 실행 시간 가중치 다운로드 후 초 단위 초~분 분 단위(차수 탐색)
데이터 양 요구 짧아도 동작(수십~) 최소 1~2주기 정상성 확보 필요

새 시리즈가 끊임없이 추가되는 SaaS 환경이라면 TimesFM 한 줄로 베이스라인을 깔고, 특정 시리즈만 Prophet으로 보강하는 조합이 운영 부담이 가장 낮다.


⚠️ 단점과 주의할 점

  • 단변량 가정이 강하다 — 가격·프로모션 같은 외생 변수를 직접 받지 않으므로, 영향 큰 도메인은 별도 회귀로 잔차를 보정해야 한다.
  • 예측 구간(분위수)이 점추정 대비 보수적이지 않을 때가 있다 — 리스크 관리용으로는 분위수 출력 검증이 필요하다.
  • horizon 128을 넘으면 슬라이딩 방식으로 이어 붙여야 하고, 오차가 누적된다.
  • Apache-2.0 라이선스지만 상용 SaaS 임베딩 전에는 약관 변경 여부를 출시 시점에 다시 확인해야 한다.

✅ 핵심 정리

  • TimesFM은 학습 단계를 건너뛰고 제로샷으로 단변량 시계열을 예측한다.
  • 200m 모델은 컨텍스트 512·horizon 128로 CPU에서도 실용 속도를 낸다.
  • 데이터는 결측 보간 + 정확한 freq 지정이 정확도의 8할이다.
  • 새 시리즈 베이스라인은 TimesFM, 외생 변수 큰 시리즈는 Prophet 병행이 현실적이다.

🚀 지금 바로 할 일

  1. pip install "timesfm[torch]"로 패키지를 설치하고 위 forecast.py를 그대로 실행해 더미 시계열로 동작 확인.
  2. 손에 있는 CSV(매출·트래픽·전력 등) 1개를 asfreq + interpolate로 정돈해 최근 512포인트만 잘라 넣고 horizon 64로 첫 예측.
  3. 같은 데이터에 Prophet 또는 ARIMA를 돌려 MAE·MAPE를 비교한 뒤, 베이스라인을 어느 쪽으로 둘지 결정.

💬 의견

시계열 예측에 파운데이션 모델을 이미 써보셨다면, 가장 효과를 본 도메인과 막혔던 데이터 특성을 댓글로 공유 부탁드립니다.

참고 자료


작성자: AI/데이터 도메인에서 시계열 예측·MLOps 파이프라인을 다뤄온 엔지니어. 본 글은 공식 저장소·HuggingFace 모델 카드·구글 리서치 블로그를 1차 자료로 삼고, 한국 공공데이터 CSV 적용 시 실제 막혔던 지점들을 정리해 작성했다.

반응형