Skip to content

模型训练与回测结果持久化存储 #1

@shihao-Liiiii

Description

@shihao-Liiiii

模型训练与回测结果持久化存储

背景

当前存储方式

  • 训练产物:Qlib R (Experiment Recorder) 默认写入本地目录(如 mlruns/
  • 回测产物run_grid.py 输出至 reports/grid_runs/<timestamp>/
    • summary.json:本次网格参数与窗口配置
    • results.jsonl:每个 job 的 recorder_id、HTML 报告路径、日志路径、状态
    • logs/*.log:训练/回测日志
  • 模型/预测/回测 artifact:通过 R.save_objects() 等写入本地

问题

  • 本地磁盘易占满,难以在多机/多环境共享
  • 无统一元数据索引,不易检索、对比历史实验
  • 缺乏结构化存储,无法高效做报表与可视化分析

目标

将模型训练与回测结果进行持久化存储,实现可扩展、可检索、可复现的实验管理:

  • 文件存储(MinIO):模型权重、checkpoint、HTML 回测报告、日志等二进制/大文件,支持多机共享与版本追溯
  • 元数据存储(PostgreSQL):实验配置、训练参数、回测指标(IC/IR、年化收益、最大回撤等)、关联路径索引,支持结构化查询与对比分析

计划

基础设施

  • 1.1 封装 MinIO 客户端:支持上传/下载/列举,配置 endpoint/bucket/凭证(环境变量或 config)
  • 1.2 设计 PostgreSQL 表结构:experiments、train_runs、backtest_runs、grid_jobs 等

训练流程接入

  • 2.1train_lgb_alpha158_pit.py 中,训练结束后将模型 artifact 上传至 MinIO
  • 2.2 将训练元数据(recorder_id、market、label、pit 配置、时间窗口等)写入 PostgreSQL

回测流程接入

  • 3.1generate_html_report.py 中,回测完成后将 HTML 报告、日志上传至 MinIO
  • 3.2 将回测指标(IC、IR、年化收益、最大回撤等)及 MinIO 路径写入 PostgreSQL
  • 3.3run_grid.py 中串联上述逻辑,确保每个 job 完成后自动持久化

查询

  • 4.1 搭建前端项目(如 React/Vue 等),对接后端查询接口
  • 4.2 实验列表页:展示实验列表,支持按市场/时间/状态筛选
  • 4.3 训练与回测详情页:展示单次实验的配置、指标、关联的 MinIO 报告/日志链接
  • 4.4 指标对比与可视化:支持多实验指标对比、图表展示(IC、IR、收益曲线等)

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions