다크팩토리
← 목록으로
헤르츠··6분 읽기

Google이 만든 시계열 예측 기반 모델 TimesFM, 오늘 왜 폭발했나

학습 없이 바로 쓰는 zero-shot 예측 + BigQuery·Google Sheets 프로덕션 통합까지

Google이 만든 시계열 예측 기반 모델 TimesFM, 오늘 왜 폭발했나

오늘 하루 별 +858개. google-research/timesfm이 GitHub 트렌딩 상단을 점령했다. 단순한 알고리즘 호기심이 아니다. 세 가지 업데이트가 6주 안에 연달아 터지면서 "써볼 수 있는 모델"이 됐고 시장이 반응했다.

이게 뭔가

시계열 데이터란 '시간 순서로 나열된 숫자'다. 일별 매출, 시간별 서버 트래픽, 월별 기온이 모두 해당한다. 지금까지 이런 데이터를 예측하려면 ARIMA나 LSTM 같은 모델을 내 데이터에 맞춰 처음부터 학습시켜야 했다. 데이터가 적으면 정확도가 떨어지고 새 도메인마다 작업이 반복됐다.

TimesFM은 다른 길을 택한다. ChatGPT가 별도 학습 없이 번역·요약에 바로 쓰이듯, TimesFM은 대규모 시계열 데이터로 사전 학습을 마친 파운데이션 모델이다. 데이터를 넣으면 파인튜닝 없이 즉시 예측한다—이를 "zero-shot 예측"이라 부른다. ICML 2024에 채택된 논문에서 학술적 검증까지 마쳤다.

왜 지금 뜨는가

접근성 장벽이 한꺼번에 무너졌다.

  • PyPI 2.0.0 릴리스 (2026.06.05): 기존에는 Docker 이미지나 소스 빌드가 필요했다. 이제 pip install timesfm 한 줄로 끝난다. 이 혼자만으로도 화제가 됐을 변화다.
  • Google 1P 통합 확대: BigQuery ML에서 SQL 쿼리로, Google Sheets에서 스프레드시트로 TimesFM을 호출할 수 있다. 코드를 모르는 실무자도 진입 가능한 경로가 열렸다.
  • LoRA 파인튜닝 지원 (2026.04.09): HuggingFace PEFT 기반 파인튜닝 예제가 공개됐다. zero-shot이 부족한 도메인에서 가벼운 튜닝으로 보완할 수 있게 됐다.

세 업데이트가 '연구용 모델에서 실무 도구로'라는 전환을 동시에 완성한 셈이다.

핵심 기능

  • 200M 파라미터, 16k 컨텍스트 (TimesFM 2.5): 전 버전(2.0, 500M)보다 가볍고 더 긴 과거 이력을 한 번에 처리한다.
  • 최대 1,000 스텝 예측: 옵션 30M 모듈을 추가하면 불확실성 구간(분위수 예측)까지 출력된다.
  • XReg 공변량 지원: 프로모션 여부, 날씨, 휴일 등 외부 변수를 함께 입력해 정확도를 높인다.
  • 에이전트 통합: AGENTS.mdSKILL.md가 추가돼 AI 에이전트 워크플로우 안에서 도구로 호출 가능하다.

누구에게 쓸모 있나

대상활용 시나리오
데이터 분석가학습 없이 판매량·재고 수요 빠르게 예측
ML 엔지니어베이스라인 즉시 확보, 필요 시 LoRA로 도메인 특화
기업 IT·운영팀BigQuery SQL 또는 Google Sheets에서 코드 없이 사용
AI 에이전트 개발자예측 도구로 TimesFM을 에이전트 파이프라인에 연결

시작하기

PyPI 설치 (권장, timesfm 2.0.0 기준)

pip install timesfm

체크포인트는 HuggingFace 컬렉션에서 첫 실행 시 자동 다운로드된다. GPU 없이 CPU 모드로도 동작한다. 구버전 체크포인트(1.x·2.0)가 필요하면:

pip install timesfm==1.3.0

사용 예시

① Zero-shot 예측 — 학습 없이 즉시

과거 데이터를 넣으면 미래 N 스텝을 바로 반환한다.

import numpy as np
import timesfm

tfm = timesfm.TimesFm(
    hparams=timesfm.TimesFmHparams(
        backend="cpu",     # GPU 환경이면 "gpu"
        horizon_len=24,    # 예측할 미래 스텝 수
    ),
    checkpoint=timesfm.TimesFmCheckpoint(
        huggingface_repo_id="google/timesfm-2-5-200m-pytorch"
    ),
)

historical = [np.array([500, 520, 480, 610, 590, 570, 630])]  # 과거 7일 매출
point_forecast, _ = tfm.forecast(historical, freq=[1])  # freq=1: 일별
print(point_forecast)  # 향후 24일 예측값

② 분위수(Quantile) 예측 — 불확실성 범위 포함

점 예측 외에 낙관·비관 시나리오 범위를 함께 출력한다.

point_forecast, quantile_forecast = tfm.forecast(
    historical,
    freq=[1],
    quantiles=[0.1, 0.5, 0.9],  # 10·50·90 백분위
)
# quantile_forecast[0][0] → 첫 번째 스텝의 [p10, p50, p90]
print("예측 범위 (p10~p90):", quantile_forecast[0][0])

③ pandas DataFrame 입력 — 실무 패턴

CSV에서 읽은 데이터프레임을 직접 넘기는 가장 일반적인 사용 방식이다.

import pandas as pd

df = pd.read_csv("sales.csv")  # 'date', 'value' 열 포함
forecast_df = tfm.forecast_on_df(
    inputs=df,
    freq="D",          # "D"=일별, "H"=시간별, "M"=월별
    value_name="value",
    num_jobs=-1,       # 병렬 처리
)
print(forecast_df.head())

한계·주의

  • 공식 지원 제품 아님: README에 명시된 대로 *"not an officially supported Google product"*다. 프로덕션 SLA가 필요하면 BigQuery ML 또는 Vertex AI 경로를 써야 한다.
  • 도메인 특화 한계: zero-shot이 편리하지만 강한 계절성(유통 할인 시즌, 에너지 수요 등)이 있는 데이터에서는 LoRA 파인튜닝 없이 특화 모델을 이기기 어렵다.
  • GPU 권장: 200M으로 가벼워졌지만 대용량 배치 추론은 여전히 GPU가 유리하다. CPU 모드는 소규모 실험 수준에 적합하다.
  • 버전 비호환: timesfm>=2.0.0은 2.5 체크포인트 전용이다. 구버전 체크포인트 사용 시 반드시 별도 환경(pip install timesfm==1.3.0)을 구성해야 한다.

zero-shot 예측이 '만능'처럼 보이지만 실제로는 데이터 특성 파악 → zero-shot 기준 측정 → 필요 시 LoRA 튜닝의 순서로 접근하는 것이 현실적이다. 빠른 베이스라인 도구로는 지금 당장 시도해볼 가치가 충분하다.

출처

댓글 0

비밀번호를 정하면 나중에 본인 댓글을 삭제할 수 있어요.

첫 댓글을 남겨보세요.