Google TimesFM — 오픈소스 시계열 예측 파운데이션 모델 정리

개인 프로젝트 몇 개가 시계열 예측에 묶여 있음. 국내·미국 주식 스크리닝, 코인 가격 브리핑, 야구 안타 예측, 스포츠 토토 승무패 분석까지 — 전부 과거 데이터로 다음을 맞추는 작업임.

매번 문제마다 XGBoost를 새로 학습시키는 게 귀찮아서 파운데이션 모델 쪽을 뒤지다가 Google이 오픈소스로 풀어둔 TimesFM을 다시 들여다보게 됐음. 4월 중순 기준 최신 버전인 TimesFM 2.5가 Hugging Face와 BigQuery에 모두 올라와 있음.

TimesFM이 뭔지 정리

TimesFM은 Google Research가 만든 시계열 전용 파운데이션 모델임. NLP 쪽의 Llama나 Gemma처럼, 다양한 도메인의 시계열을 대규모로 사전학습시켜 놓고 새로운 데이터에는 그대로 갖다 쓰는 접근을 시계열로 옮긴 것으로 보면 됨.

  • 라이선스: Apache 2.0. 상업 이용 포함 자유.
  • 제로샷 예측: 타겟 도메인에서 재학습 없이 바로 예측 가능.
  • 학습 데이터: 약 100B 규모의 실제 시계열 포인트로 사전학습.
  • 체크포인트: 1.0(200M), 2.0(500M), 2.5(200M) 등 Hugging Face에서 제공.
  • BigQuery 통합: Google Cloud에서 SQL로 바로 호출 가능.

요점은 XGBoost처럼 피처 엔지니어링에 고생하지 않아도 되는 프리트레인 모델이라는 것. 도메인 특성이 강하면 파인튜닝이 필요하겠지만, 베이스라인을 빠르게 잡을 때 쓰기 좋은 시작점임.

어떻게 쓰는지

파이썬 환경에서 설치는 단순함. 저장소 클론 후 editable 설치 방식임.

git clone https://github.com/google-research/timesfm.git
cd timesfm
pip install -e .

입력은 numpy 배열 또는 pandas DataFrame을 받음. 주기 설정이 중요한데, 이건 카테고리 숫자로 넘김. 0은 일 단위 이하 고빈도, 1은 주·월 단위 중빈도, 2는 분기·연 단위 저빈도임.

HuggingFace에 google/timesfm-2.5-200m-pytorch 체크포인트가 올라와 있어서 transformers·torch 스택에 익숙하면 5분 안에 첫 예측은 띄울 수 있음. BigQuery 쪽은 SQL 함수로 바로 호출 가능하고, Vertex AI 운영 가이드도 공식 문서에 정리돼 있음.

내 프로젝트에 쓸 수 있을까

써 볼 계획이 있는 프로젝트는 세 개임.

  • btl — 야구 안타 예측 브리핑. 기존 XGBoost 피처셋과 TimesFM zero-shot 성능을 나란히 비교해 볼 생각.
  • toto-briefing — 스포츠토토 승무패 분석. 경기 간격이 비규칙적이라 frequency 설정이 변수가 될 듯.
  • black-cow — 주식·코인 스크리닝. 종목 수가 많아 배치 추론 효율이 관건.

세 프로젝트 모두 지금은 종목·시나리오마다 따로 모델을 학습시키는 구조임. TimesFM으로 베이스라인을 통일하면 학습 파이프라인이 훨씬 가벼워질 가능성이 있음. 다만 스포츠 데이터처럼 비주기적이거나 이벤트성이 강한 시계열에는 파운데이션 모델이 잘 맞지 않을 수 있어서 실제 벤치는 돌려 봐야 답이 나옴.

총평

시계열 쪽에도 파운데이션 모델이 본격적으로 자리잡는다면, 개인 개발자 입장에서는 모델 학습보다 데이터 정의와 결과 해석에 시간 쓰는 쪽이 정답에 가까워질 것 같음. TimesFM은 그 흐름의 대표주자임.

일단 btl부터 붙여서 실사용 후기를 따로 올릴 예정. 이 글은 써 보기 전 정리 단계임.

댓글 남기기