TimesFM (Time Series Foundation Model), Google Research tarafından geliştirilen ve zaman serisi tahminlemesi (time-series forecasting) için tasarlanmış oldukça güçlü bir “Vakıf Modeli” (Foundation Model)‘dir. Tıpkı dil modellerinin (LLM) kelimeleri tahmin etmesi gibi, TimesFM de geçmiş veri noktalarını (“context”) analiz ederek gelecekteki değerleri (“horizon”) tahmin eder.
Milyarlarca gerçek dünya veri noktasıyla önceden eğitildiği için Zero-Shot yeteneğine sahiptir; yani modelinizi kendi özel verilerinizle sıfırdan eğitmenize gerek kalmadan, doğrudan geçmiş verinizi vererek yüksek doğrulukta gelecek tahminleri alabilirsiniz. En güncel sürümleriyle (TimesFM 2.5), frekans belirteçlerine gerek duymadan çok daha uzun geçmiş pencerelerini (16k’ya kadar) desteklemektedir.
Bu detaylı rehberde, TimesFM’in ne olduğunu, bilgisayarınıza veya sunucunuza nasıl kurulacağını ve temel olarak nasıl çalıştırılacağını bulabilirsiniz.
1. Kurulum Öncesi Hazırlık (Gereksinimler)
TimesFM, arka planda JAX tabanlı bir altyapı (veya Hugging Face entegrasyonu ile PyTorch/Ecosystem araçları) kullanır. Kuruluma başlamadan önce sisteminizde şunların yüklü veya hazır olduğundan emin olun:
- Python 3.10 veya 3.11 (Uumluluk açısından en kararlı sürümlerdir).
- Sanal Ortam (Virtual Environment): Çakışmaları önlemek için
venvveyacondakullanılması şiddetle önerilir. - Donanım: Küçük veri setleri için CPU yeterlidir ancak büyük tahmin pencereleri ve performans için GPU (CUDA) veya TPU ortamı tavsiye edilir.
2. Adım Adım Kurulum
En temiz kurulum yöntemlerinden biri doğrudan GitHub reposunu kaynak alarak veya pip paket yöneticisi ile sanal ortama yüklemektir.
Adım 1: Sanal Ortam Oluşturun ve Aktive Edin
Bash
# venv ile (Linux/Mac)
python3 -m venv timesfm_env
source timesfm_env/bin/activate
# Windows için:
# timesfm_env\Scripts\activate
Adım 2: Gerekli Temel Kütüphaneleri ve TimesFM’i Yükleyin
Doğrudan en güncel yapıyı GitHub üzerinden çekerek yüklemek en sağlıklı yoldur:
Bash
pip install --upgrade pip
pip install git+https://github.com/google-research/timesfm.git
Not: Eğer sadece CPU üzerinde çalışacaksanız varsayılan kurulum yeterlidir. JAX’ı GPU üzerinde koşturmak istiyorsanız, sisteminizdeki CUDA sürümüne uygun jax[cuda] kurulumunu ayrıca yapmanız gerekebilir.
3. Temel Kullanım ve İlk Tahmin (Kod Örneği)
TimesFM’i kurduktan sonra Hugging Face üzerindeki hazır eğitilmiş checkpoint’leri (örneğin Google’ın yayınladığı google/timesfm-2.5-200m veya ilgili sürümleri) otomatik olarak indirip kullanabilirsiniz.
Aşağıda, elinizdeki geçmiş verilere dayanarak geleceği tahmin eden örnek bir Python betiği yer almaktadır:
Python
import numpy as np
import timesfm
# 1. Modeli Başlatın ve Ağırlıkları Yükleyin
# Model ilk çalışmada Hugging Face'den gerekli checkpoint'i otomatik indirecektir.
tfm = timesfm.TimesFM(
context_len=512, # Modelin bakacağı maksimum geçmiş veri noktası sayısı
horizon_len=96, # Tahmin etmek istediğiniz gelecekteki nokta sayısı
backend="cpu", # Donanımınıza göre "cpu", "gpu" veya "tpu" seçebilirsiniz
)
# Modeli indirmek ve yüklemek için fonksiyonu çağırıyoruz
tfm.load_from_checkpoint(repo_id="google/timesfm-2.5-200m")
# 2. Örnek Geçmiş Zaman Serisi Verisi Hazırlayalım (Örn: Mağaza Satışları veya Trafik)
# Veri yapısı: [Batch Size, Context Length] şeklinde olmalıdır.
# Burada 2 farklı zaman serimiz olduğunu varsayalım, her biri 512 uzunluğunda:
input_data = np.random.rand(2, 512).astype(np.float32)
# 3. Tahminleme (Forecasting) İşlemini Çalıştırın
# TimesFM 2.5 sürümüyle birlikte artık frekans (frequency) belirtme zorunluluğu kalkmıştır.
forecast, _ = tfm.forecast(
inputs=input_data,
errors=None
)
# 4. Sonuçları İnceleyin
# Çıktı boyutu: [Batch Size, Horizon Length] olacaktır (Yani bizim örneğimizde 2, 96)
print("Tahmin Çıktısı Boyutu:", forecast.shape)
print("İlk Zaman Serisi için İlk 5 Gelecek Tahmini:", forecast[0, :5])
4. TimesFM Kullanırken Dikkat Edilmesi Gereken İpuçları
- Context ve Horizon Dengesi: Modelin en iyi performansı vermesi için girdi olarak verdiğiniz geçmiş verinin (
context_len), tahmin etmek istediğiniz gelecek süresinden (horizon_len) daha uzun olması önerilir. - Veride Eksik Nokta Olmamalıdır: TimesFM, ardışık ve kesintisiz zaman serisi verileri bekler. Verinizde eksik günler veya saatler (boşluklar) varsa, modele beslemeden önce Linear Interpolation veya Forward Fill gibi yöntemlerle bu boşlukları doldurmalısınız.
- Quantile (Olasılıksal) Tahminler: TimesFM sadece nokta tahmini (point forecast) yapmaz; yeni sürümleriyle birlikte opsiyonel olarak belirli güven aralıklarında (quantiles) olasılıksal tahmin başlıklarını da destekler.
- Büyük Ölçekli Kullanım: Google Cloud ekosistemindeyseniz, TimesFM’i manuel kurmak yerine BigQuery ML veya Vertex AI Model Garden üzerinde hazır bir servis olarak da doğrudan SQL veya API’ler yardımıyla çağırabilirsiniz.







