Kronos は 金融市場のK線(ローソク足=OHLCV)データに特化した時系列予測の基盤モデル(AAAI 2026 採択)。世界45以上の取引所から収集したデータで事前学習されており、株式・暗号通貨・先物など多様なアセットに適用できる。
アーキテクチャは 2段階構成:
| ステージ | 役割 | 手法 |
|---|---|---|
| Tokenizer | 連続的なOHLCVデータを離散トークンに変換 | Encoder-Decoder Transformer + Binary Spherical Quantization (BSQ) |
| Predictor | トークン列から未来のトークンを自己回帰的に生成 | Decoder-only Transformer(RoPE・時間埋め込み付き) |
トークンは 階層構造(s1: 粗い粒度 → s2: 細かい粒度)で表現され、Predictor は s1 を先に予測してから s2 を条件付きで生成する「粗→精」戦略を取る。モデルサイズは mini (4.1M) ~ large (499.2M) の4種が Hugging Face (NeoQuasar/) で公開されている。
| 観点 | 汎用時系列基盤モデル (TimesFM, Chronos 等) | Kronos |
|---|---|---|
| 対象ドメイン | 天気・需要予測など汎用 | 金融K線に特化(ノイズが多く非定常な金融データ向けに設計) |
| 入力形式 | 単変量 or 多変量の数値系列 | OHLCV+出来高の構造化されたK線をネイティブに扱う |
| トークン化 | パッチ分割やスカラー量子化 | 階層的 BSQ により粗→精の2段階で情報を圧縮・復元 |
| 時間情報 | 位置埋め込みのみが多い | 分・時・曜日・日・月の明示的な時間埋め込みで季節性・市場カレンダーを反映 |
| 学習データ | 公開ベンチマーク中心 | 45以上の取引所の実市場データで事前学習済み |
| 確率的予測 | モデルによる | Temperature / Top-p サンプリングで複数の予測パスを生成し、不確実性を表現 |
要するに、「汎用TSFMを金融に転用する」のではなく、金融K線のドメイン知識をアーキテクチャ・学習データの両面に組み込んだ初の基盤モデルという点が最大の差別化ポイント。
pip install torch>=2.0.0 einops huggingface_hub safetensors pandas numpy matplotlib tqdm
from model import KronosTokenizer, Kronos, KronosPredictor
import pandas as pd
# ① モデルをHugging Faceからロード
tokenizer = KronosTokenizer.from_pretrained("NeoQuasar/Kronos-Tokenizer-base")
model = Kronos.from_pretrained("NeoQuasar/Kronos-small")
predictor = KronosPredictor(model, tokenizer, max_context=512)
# ② CSVデータを準備(列: open, high, low, close, volume, amount)
df = pd.read_csv("data/XSHG_5min_600977.csv")
df['timestamps'] = pd.to_datetime(df['timestamps'])
x_df = df.iloc[:400][['open','high','low','close','volume','amount']]
# ③ 予測実行
pred_df = predictor.predict(
df=x_df,
x_timestamp=df['timestamps'][:400],
y_timestamp=df['timestamps'][400:520],
pred_len=120,
T=1.0, top_p=0.9, sample_count=1
)
examples/ 配下にバッチ予測・出来高なし予測のサンプルもある。
2つのルートが用意されている:
| 方式 | 対象 | コマンド |
|---|---|---|
CSV ベース (finetune_csv/) |
任意のCSVデータ | python train_sequential.py --config config.yaml |
Qlib ベース (finetune/) |
A株市場データ (Qlib経由) | torchrun ... train_tokenizer.py → train_predictor.py |
いずれも Tokenizer → Predictor の順に段階的に学習する。マルチGPU (DDP) 対応。
cd webui && python run.py # → http://localhost:7070
K線チャート上で予測結果と実績を重ねて確認でき、パラメータ(Temperature, Top-p, サンプル数)をインタラクティブに調整可能。