工程

这一篇讲量化研究之后的一环:把”改个参数跑一遍”的散乱研究,变成可追踪、可复现、可上线的工程流水线。适合已经会做因子/模型/回测、但一到复现和上线就发怵的人。
本篇对应课程:MLflow × 量化工程流程化(25 讲)。系列总纲见 量化工程能力知识图谱与学习路线。 顶层总路径见 量化投资学习路径图

参考教材 / 源码

为什么要学这块

量化研究员的真实日常大概是这样:改个参数跑一遍回测,夏普 1.3,不错;又改一版,忘了上一版参数是啥;结果图存在桌面 未命名7.png;三个月后老板说”那个夏普 1.3 的策略再跑一遍”——复现不出来了。

前面几门课解决的是”怎么做研究”(因子、模型、回测)和”怎么读框架”(qlib、RD-Agent)。但”研究做完之后怎么办”一直是散的:实验记在脑子里,环境靠回忆,上线的策略和当初回测的到底是不是同一个,说不清。这一层不解决,研究做得再好也留不下、传不出、上不了线。MLflow 就是补这一块的标准工具——它开源、纯 Python、本地即装即跑。

这一篇的角度:把研究工程化,不止跑出夏普

市面上的量化内容大多止步于”回测跑出夏普 1.3″。这套课接着往下讲研究之后怎么工程化——这是绝大多数人缺的一环:

  • 每一环都真跑。25 讲用 qlib 的 CN 真数据,从因子实验到监控,几乎每讲都产出真实硬数字(IC / ICIR / 夏普 / 回撤 / PSI / 复现一致性),而不是书里过时股票 API 的示意。
  • 贯穿一条主线:”一个量化策略的一生”——数据 → 因子实验 → 模型训练 → 回测 → 评估对比 → 打包 → 进 Registry(研究→纸上→实盘)→ 部署 → 监控。每一环都被 MLflow 记成一个可追溯的 run,串成完整流水线。
  • 按 MLflow 3.14 现状讲,顺带纠偏教材。两本参考书是 1.x / 2.x 写法,很多点已经过时。本课全部真跑,发现并按现状讲清(见下文”版本纠偏”一节)。

你会学到什么(对应课程讲次)

按”量化策略全流程”分五组:

实验追踪(Tracking,第 02–07 讲)

讲次 内容
02 第一个 tracked 实验:log_param/metric/artifact,开 UI 看一个因子实验被记下来
03 Tracking 概念模型:Experiment / Run / params / metrics / artifacts / tags 映射到量化实验
04 记录一个完整因子研究:lookback 当 param、IC/IR 当 metric、IC 曲线当 artifact
05 Autologging:sklearn/lightgbm 零侵入自动追踪
06 对比·检索·嵌套 run:search_runs 按 metric 自动找最优策略
07 🔬 Tracking 内核:backend store(sqlite)+ artifact store 到底把实验存哪了

可复现(第 08–10 讲)

讲次 内容
08 MLflow Projects:MLproject + 环境声明,一次回测打包成”一条命令复现”
09 代码 + 数据版本化:git commit 自动记 + 数据 md5/快照,根治”复现不了”
10 参数扫描/HPO tracked:Optuna 每个 trial 一个子 run,超参搜索全程可追溯

Models & Registry(策略治理,第 11–14 讲)

讲次 内容
11 MLflow Models:flavor / signature / log_model,把模型打包成标准件
12 自定义 pyfunc:把”一个策略”(因子 + 信号逻辑,不只是模型)包成标准件
13 Model Registry:一个策略 研究→纸上→实盘 的生命周期治理
14 版本 · 别名(champion/challenger)· 治理:安全换上线策略、可回滚

评估与监控(第 15–17、23 讲)

讲次 内容
15 mlflow.evaluate + 自定义 metric:把夏普/最大回撤/换手率做成统一口径
16 模型解释追踪:SHAP × MLflow,把特征归因当 artifact 记录
17 ⭐ 端到端量化流水线 tracked:数据→因子→模型→回测→报告 每步一个 run,父 run 汇总
23 ⭐ 性能监控:数据/模型漂移、PSI/KS、告警——补上量化”上线后”的缺口

部署与编排(第 18–22、24–25 讲)

讲次 内容
18 数据与特征库(factor store):因子怎么存、复用、防训练-推理偏差
19 ML 平台架构:MLflow 在平台里的位置(对比 Michelangelo/Kubeflow/qlib)
20 部署与推理:本地服务 / 批量打分 / 在线 API——”信号即服务”
21 规模化:MLflow × Spark/Ray/GPU,跑大回测、大规模超参搜索
22 编排调度:Airflow/Prefect 定时重训与滚动
24 MLflow for LLM/GenAI(traces/prompt)+ 和 qlib 深度整合(QlibRecorder→mlruns)
25 收官:一套”量化研究流程化”最佳实践脚手架(目录/命名/该 log 清单/checklist)

几个亮点(真跑硬数据)

下面的数字都是在 qlib 的 .venv(mlflow 3.14 + qlib + lightgbm + CN 数据)里真跑出来的,出处在对应讲的课件:

  • search_runs 自动选最优 lookback=20,IC=+0.0451(第 06 讲)。扫一批 lookback 参数、每个一个子 run,search_runs 按 IC 排序直接把最优那次捞出来——不用翻记忆、不用比对桌面截图。这就是”实验追踪”最直接的价值:选最优是一句查询,不是靠脑子记。
  • mlflow run 一条命令,IC 复现一致(第 08 讲)。把一次回测写成 MLproject + 环境声明,换个时间、换个人跑,IC 和原来对得上。这一条是”三个月后复现不出来”这个痛点的正面解法——参数、代码、环境全被钉死在一次可复现的 run 里。
  • alias 切换/回滚,champion 一键换上线策略(第 14 讲)。给策略版本打 champion / challenger 别名,上线是把 champion 指到新版本,出问题是把它指回旧版本——秒级、可审计。团队管几十个策略版本靠的就是这套别名治理,而不是口头约定”现在用 v7″。
  • PSI 漂移:整体 0.15 汇总掩盖,季度拆开 6–7 爆表(第 23 讲)。用整段样本算 PSI 得 0.15,看着”轻微漂移、还能用”;按季度拆开算,某几个季度直接冲到 6–7,严重漂移被年度汇总平均掉了。这是监控里最常见的坑:汇总口径会掩盖分段的剧烈漂移,上线后不分段看漂移,等于没看。
  • 端到端流水线一眼定位过拟合(第 17 讲)。数据→因子→模型→回测五步各记一个子 run、父 run 汇总,真跑跑出一次过拟合翻车——训练集漂亮、回测拉胯,run 树上逐步对比就能一眼看出病因出在哪一步。

这些不是段子,是”工程化到底值不值”的可核对证据。看懂它们,你对”研究之后该做什么”的判断,会和只会跑回测的人明显不同。

顺带一提:MLflow 3.14 版本纠偏(比书新)

两本参考书是 MLflow 1.x / 2.x 时代写的,本课全部真跑,发现不少地方已经和书对不上,按现状讲清并写进坑里:

  • 元数据默认进 sqlite,不是旧的 file 布局(第 07 讲实测 sqlite 表结构)。
  • Registry 用 alias,不用旧的 stageStaging/Production 那套已弃用)。champion/challenger 别名是 3.x 的正解(第 14 讲)。
  • 模型默认存 skops,不是 pkl(第 11 讲),更安全。
  • autolog 只记训练指标,不认业务指标(第 05 讲实测):IC、夏普这类量化 metric autolog 不会自动记,得自己 log_metric——这是量化场景最容易踩的一个坑。

建议的阅读顺序

按”量化策略全流程”从前往后走,每一讲都能真跑:

  1. 第 02 讲 · 跑通第一个 tracked 实验 —— 先把”记一次实验”跑通
  2. 第 04 讲 · 记录一个完整因子研究
  3. 第 06 讲 · 对比检索与嵌套 run —— search_runs 自动选最优
  4. 第 08 讲 · MLflow Projects:一条命令复现 —— 正面解决”复现不了”
  5. 第 11 讲 · MLflow Models:打包成标准件
  6. 第 13 讲 · Model Registry:生命周期治理、第 14 讲 · 版本别名与治理 —— alias 切换/回滚
  7. 第 17 讲 · 端到端量化流水线 tracked —— 把前面串成一条 pipeline
  8. 第 23 讲 · 性能监控:漂移检测 —— PSI 分段看漂移
  9. 第 25 讲 · 收官:流程化脚手架 —— 该 log 清单 + 研究→实盘 checklist

时间紧的话,至少读第 02、06、08、14、23 这五讲,”追踪→复现→治理→监控”这条工程主线就串起来了。想深挖内核的补第 07 讲(store 与溯源)。

承上启下

上一层 【工程·平台篇】解剖 qlib 与读框架方法论 把读懂并驾驭框架的能力练出来;这一篇教你把做出来的研究留得下、复现得了、上得了线——研究做得再好,复现不了、上不了线,价值就打折。往上一层是 【工程·进阶篇】LLM 自动化研究与后续方向:既有已经落地的前沿(LLM 自动研究),也有还没走完的路(执行/风控/实盘/衍生品)。完整地图见 量化工程能力知识图谱与学习路线


本篇课程