Posted by NoPanic on Mon, Jan 1, 0001

Ray 加速金融模型训练 — 复现脚本

本目录包含博客《如何用 Ray 加速金融模型训练?》里所有实测脚本的可复现版本。

环境

1python -m venv .venv && source .venv/bin/activate
2pip install "ray[default]>=2.40,<3" lightgbm scikit-learn pandas pyarrow

实测环境:Python 3.13.7 / Ray 2.49.2 / LightGBM 4.6.0 / macOS Apple M2 Pro 10 核 32GB。

第五章脚本(合成数据,可独立复现)

 1# 1. 生成 2000 股 × 1260 日 × 50 特征 的合成面板数据
 2python ch5_00_gen_data.py
 3
 4# 2. 串行基线(4 个滚动窗口)
 5python ch5_01_baseline.py
 6
 7# 3. Ray Tasks 并行版(4 窗口 × 3 线程 / 窗口)
 8python ch5_02_ray_tasks.py
 9
10# 4. Ray Tune 超参搜索(10 配置 × 单窗口对比)
11python ch5_03_tune.py

第六章脚本(Kronos Meta 模型,需要 Kronos 仓库)

需要先准备 Kronos 仓库:

1git clone https://github.com/shiyu-coder/Kronos
2export KRONOS_DIR=/absolute/path/to/Kronos
3# 按 Kronos README 跑回测生成 examples/backtesting/prediction_data/*.parquet

然后跑:

1# 串行特征抽取(50 个 parquet 子集)
2python 01_serial_baseline.py --n-files 50
3
4# Ray 并行特征抽取
5python 02_ray_parallel.py --n-files 50
6
7# 串行 vs Ray Tune 公平对比(24 配置 × 3 折)
8python 04_fair_comparison.py --n-trials 24

输出

所有脚本输出实测耗时到 stdout,部分会落盘到当前目录下。请用 time.time() 实测的数字为准——博客正文里所有"实测"标签的数字都来自这些脚本一次完整运行。