0002-Sprint5回顾会议 » 历史记录 » 版本 2
Huarui Lin, 2026-04-29 09:58
| 1 | 2 | Huarui Lin | ### Sprint 5 回顾会议 Agenda |
|---|---|---|---|
| 2 | 1 | Huarui Lin | |
| 3 | 2 | Huarui Lin | **会议主题**:Sprint 5 回顾与物理交付验收 —— S5 标准化、Spearman 降维与训练流水线闭环 |
| 4 | 1 | Huarui Lin | **参会角色**:架构师、研发工程师、QA |
| 5 | 2 | Huarui Lin | **会议基调**:物理交付一票否决。严格对照《Sprint 5 规划会议 Agenda》及规约 5.6 节逐项核验实施偏差,禁止任何“逻辑上等价但物理行为偏移”的妥协通过。 |
| 6 | 1 | Huarui Lin | |
| 7 | --- |
||
| 8 | #### 【会前需决策/确认事项】(请提前准备,会议上直接出示) |
||
| 9 | |||
| 10 | 1. **文档契约更新证明**:请出示修改后的 `2-dry_module_list.md` 截图或 Diff,证明 `core.standardization_math` 模块已明确标注“S5 训练阶段因内存红线豁免复用”。 |
||
| 11 | 2 | Huarui Lin | 2. **物理交付物清单**:请出示 CI 流水线归档目录下,本 Sprint 实际产出的所有物理文件清单,必须包含: |
| 12 | - `standardization_params_wide.parquet` |
||
| 13 | - `standardization_params.parquet` |
||
| 14 | - `calendar_dim.parquet` |
||
| 15 | - `final_feature_list.json` |
||
| 16 | - 带时间戳发布目录下的 `model.txt` |
||
| 17 | - `model.txt` 的 MD5 摘要文件 |
||
| 18 | 3. **配置实例确认**:请出示本次训练实际使用的 `config.yaml` 中 `s5.train_start_year`、`s5.train_end_year`、`spearman.load_mode` 的具体配置值。 |
||
| 19 | 1 | Huarui Lin | 4. **CI 门禁执行报告**:请出示本次 Sprint Merge Request 中,Schema 对称差拦截、EWM/OLS 金色单测、工程治理正则扫描的 CI 执行日志截图。 |
| 20 | 2 | Huarui Lin | 5. **训练评估指标日志**:请出示 Time-Series 5 折评估阶段输出的 NDCG@10 指标日志(5 个折的具体数值)。 |
| 21 | 1 | Huarui Lin | |
| 22 | --- |
||
| 23 | #### 议题 1:架构基线与 DRY 豁免决议复盘(5 分钟) |
||
| 24 | |||
| 25 | * **对照基线**:回顾规划会议议题 1 的豁免决议。 |
||
| 26 | * **验收动作**:审查 S5.2 标准化 Apply 阶段的 Git 提交记录,**绝对封杀**任何调用 `core.standardization_math` 的代码路径。 |
||
| 27 | * **文档闭环**:确认待办事项“更新 `2-dry_module_list.md`”已物理落地,未完成则本项一票否决。 |
||
| 28 | |||
| 29 | #### 议题 2:数据流加载边界与配置契约复盘(5 分钟) |
||
| 30 | |||
| 31 | * **对照基线**:回顾规划会议议题 2。 |
||
| 32 | * **验收动作**: |
||
| 33 | * 审查代码中是否存在硬编码的年份区间,必须强制源自 `config.yaml` 的 Pydantic 校验实体。 |
||
| 34 | * 审查 Spearman 阶段是否严格通过 `core.stream_engine` 进行按年流式加载,确认无裸 `scan_parquet` 循环。 |
||
| 35 | |||
| 36 | #### 议题 3:S5.1 截面聚合与双形态参数物理时序隔离复盘(15 分钟) |
||
| 37 | |||
| 38 | * **对照基线**:回顾规划会议议题 3 与规约 5.1/5.2 节。 |
||
| 39 | * **物理验收(需出示文件)**: |
||
| 40 | * **`standardization_params_wide.parquet`**:抽查内部数据,验证是否已在稀疏的 `net_value_date` 上执行了 `.shift(1)` 实现 T-1 对齐。 |
||
| 41 | * **`calendar_dim.parquet`**:验证是否基于 S3 全量时间极值动态生成了绝对自然日频连续日历表。 |
||
| 42 | * **`standardization_params.parquet`**:使用 PyArrow 读取 Footer Metadata,**强制验证**物理排序键是否绝对为 `["feature_name", "date"]`,验证是否存在因自然日 Ffill 产生的时序错位空洞。 |
||
| 43 | * **生产就绪哨兵**:在参数表中过滤出 `std==0` 或 `mad==0` 的截面,验证对应的 `is_production_ready` 是否绝对为 `False`。 |
||
| 44 | |||
| 45 | #### 议题 4:S5.2 标准化 Apply 物理防线复盘(10 分钟) |
||
| 46 | |||
| 47 | * **对照基线**:回顾规划会议议题 4 与规约第二部分第 5 节。 |
||
| 48 | * **物理验收(代码级审查)**: |
||
| 49 | * **死刑级红线排查**:全局搜索 `unpivot` 关键字,确认 3000 万行宽表未被解构。 |
||
| 50 | * **IEEE 754 拦截器**:审查标准化 Apply 的 Polars 表达式树,确认强制存在 `pl.when(pl.col("std_xxx") == 0).then(pl.lit(None))` 逻辑,验证是否有隐式的 `Inf` 产生路径。 |
||
| 51 | |||
| 52 | #### 议题 5:S5.3 训练 Join 三键死锁与毒样本截断复盘(10 分钟) |
||
| 53 | |||
| 54 | * **对照基线**:回顾规划会议议题 5 与规约 5.4 节。 |
||
| 55 | * **物理验收(代码级审查)**: |
||
| 56 | * **三键死锁**:审查特征宽表与标签表 Join 的 AST(抽象语法树),确认 `on` 参数必须且仅为 `["fund_id", "net_value_date", "segment_id"]`。 |
||
| 57 | * **截断时序验证**:确认“将 `is_feature_complete == False` 的行 `label` 覆写为 `0`”这一动作的物理执行顺序,必须在 Join 之后、传入 Spearman 计算之前。严禁在 S4 阶段或 Join 前执行此覆写。 |
||
| 58 | |||
| 59 | #### 议题 6:S5.4 Spearman 秩相关内存防爆防线复盘(15 分钟) |
||
| 60 | |||
| 61 | * **对照基线**:回顾规划会议议题 6 与规约 5.5 节。 |
||
| 62 | * **物理验收(代码级与数学级审查)**: |
||
| 63 | * **防漂移锁定**:审查代码,确认 `scipy.stats.rankdata` 调用处显式传入了 `method="average"`。 |
||
| 64 | * **对称化截断**:确认累加完成后,强制存在 `matrix = (matrix + matrix.T) / 2` 物理截断语句。 |
||
| 65 | * **降维产物契约**:审查输出的 `final_feature_list.json`,确认被剔除的特征对之间的 Spearman 系数确实 >= `0.90`(需出示验证脚本输出或日志)。 |
||
| 66 | |||
| 67 | 2 | Huarui Lin | #### 议题 7:S5.3 训练流水线复盘(20 分钟) |
| 68 | 1 | Huarui Lin | |
| 69 | 2 | Huarui Lin | * **对照基线**:回顾规约 5.6 节与 `3-steps.md` Step 5.1-5.3。 |
| 70 | * **物理验收(代码级与产物级审查)**: |
||
| 71 | * **LambdaRank 样本平衡重构**:审查代码,验证按单基金维度差异化等距抽样的实现(正样本上限 50 条、负样本上限 15 条);验证标签语义断崖消化(`ordinal rank`)的执行时机必须在抽样之后、喂入模型之前;验证 `group` 边界数组的构建逻辑。 |
||
| 72 | * **Time-Series 5 折评估防线**:审查代码,验证累积扩展窗口策略的物理实现;验证评估阶段强制锁定 `NDCG@10` 指标;验证 5 折期间绝对无特征剔除或超参修改动作。 |
||
| 73 | * **闭环全量重训与超参死锁**:审查代码,验证最终重训使用了全量抽样数据与 `final_feature_list`;**强制验证** LightGBM 超参硬编码锁定为 `max_depth=3, num_leaves=7, min_data_in_leaf=20, learning_rate=0.02`,严禁通过配置文件外置或依赖引擎默认值。 |
||
| 74 | * **产物契约与 MD5 校验**:验证 `model.txt` 与双形态参数表是否打入同一带时间戳发布目录;验证 MD5 摘要文件是否生成且与模型文件物理匹配。 |
||
| 75 | |||
| 76 | #### 议题 8:CI 门禁执行与工程治理闭环(5 分钟) |
||
| 77 | |||
| 78 | 1 | Huarui Lin | * **对照基线**:对照 `2-dry_module_list.md` 红线清单。 |
| 79 | * **验收动作**: |
||
| 80 | 2 | Huarui Lin | * 确认新增的 `calendar_dim.parquet`、`standardization_params.parquet`、`model.txt`、`final_feature_list.json` 等文件是否已纳入 Schema 对称差拦截器或产物存在性校验的硬编码契约中。 |
| 81 | 1 | Huarui Lin | * 确认本次新增代码未触发“工程治理正则扫描”中的任何拦截(如魔法数字硬编码、违规 API 调用)。 |
| 82 | |||
| 83 | 2 | Huarui Lin | #### 议题 9:遗留问题与技术债清理(5 分钟) |
| 84 | 1 | Huarui Lin | |
| 85 | 2 | Huarui Lin | * 确认在 Sprint 5 实施过程中,是否产生任何为了绕过 50GB cgroup 或规避 LightGBM 内部限制而引入的“临时 Hack”。 |
| 86 | 1 | Huarui Lin | * 若存在,必须在此环节转化为明确的 Tech-Depot Ticket,严禁带入 Sprint 6。 |
| 87 | |||
| 88 | --- |
||
| 89 | 2 | Huarui Lin | **会议出口条件**:以上 9 个议题全部通过物理验收,且无未决 Tech-Depot,方可签署 Sprint 5 交付确认书,解锁 Sprint 6(S6 推理服务)的代码拉取权限。 |