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