行为
Sprint 5 规划会议纪要¶
会议主题:Sprint 5(第 4 阶段:S5 - 标准化与 Spearman 降维)架构规划与防线确立
会议时间:2026年04月25日
参会角色:架构师(主讲)、研发负责人(决策)
会议基调:锁定“空间换时间”全局原则与“内存防爆”底线,确立 S5 阶段的绝对物理拓扑。
一、 会议核心决议汇总¶
1. 架构基线修正(DRY 原则向内存红线让步)
-
决议:正式批准 S5 训练阶段(面对 3000 万行数据)豁免复用
core.standardization_math(纯 NumPy 算子),强制采用 Polars 表达式原地 Apply 拓扑,以守住 50GB cgroup 内存红线。 -
闭环动作:作为豁免代价,必须在 Sprint 5 交付前修改
2-dry_module_list.md中该模块的“被依赖方”说明,明确标注 S5 豁免复用的物理原因,确立 S6 推理作为唯一复用事实。
2. 数据流加载边界与配置契约 -
决议:废除任何硬编码年份逻辑。S5 动态时间窗口通过在
config.yaml中新增s5.data_start_year与s5.data_end_year收敛,由core.config_loader.py启动时强校验。 -
决议:S5.4 Spearman 阶段的按年流式加载,强制复用
core.stream_engine模块实现按年流式加载与内存释放。
3. S5.1 截面聚合与双形态参数拓扑 -
决议:推理长表必须基于 S3 全量数据的最小/最大日期极值,在 S5.1 阶段动态生成绝对自然日历表并落盘为
calendar_dim.parquet,严禁硬编码。 -
决议:针对底层物理排序键冲突(默认
["net_value_date", "fund_id"]与推理长表强制要求的["feature_name", "date"]冲突),同意升级core.physical_storage_contract。在其sink_parquet_strict()方法签名中新增override_sort_keys: Optional[List[str]] = None参数,符合开闭原则。
4.core.stream_engine内存断言演进路线 -
决议:废除硬编码 3GB 断言的死锁设计。采用“配置化 + 硬天花板”演进方案:阈值抽离至
config.yaml(如engine.stream_max_memory_peak_gb),但在引擎内部强制设定final_assert_limit = min(config_value, 15.0)。既释放大机器性能红利,又锁死物理毁灭的绝对底线。
5. S5.4 Spearman 环境自适应开关 -
决议:在
config.yaml中落地spearman.load_mode枚举强校验(仅允许yearly_chunked或full_load),生产环境默认值强制锁定为yearly_chunked。
6. 纯业务防线确认(无分歧,全员对齐) - 确认 S5.2 标准化 Apply 严禁将 3000 万行宽表 Unpivot(死刑级禁止项),必须在实体表状态下执行等值 Join。
- 确认 S5.3 训练 Join 必须强制锁死三键
["fund_id", "net_value_date", "segment_id"],且毒样本截断基于is_feature_complete哨兵列在 Join 后强制覆写label=0。
7. 物理产出与持久化契约 - 确认降维后的最终特征子集采用 JSON 格式物理落盘为
final_feature_list.json。
二、 会议待办事项清单¶
| 序号 | 待办事项 | 责任方 | 交付物/验证标准 | 关联决议 |
|---|---|---|---|---|
| 1 | 架构文档降级更新 | 架构师 | 更新后的 2-dry_module_list.md
|
决议 1 |
| 2 | 配置中心扩展 | 研发 |
config.yaml 新增 S5 年份配置、流式引擎峰值配置及 Spearman 模式配置;core/config_loader.py 增加 Pydantic 校验 |
决议 2, 4, 5 |
| 3 | 核心存储模块升级 | 研发 | 升级后的 core.physical_storage_contract.py 及对应单测覆盖 |
决议 3 |
| 4 | 核心流式引擎演进 | 研发 | 演进后的 core.stream_engine.py(包含 15GB 硬天花板拦截逻辑)及对应单测覆盖 |
决议 4 |
| 5 | S5.1 自然日历表生成逻辑 | 研发 | 产出 calendar_dim.parquet 的代码逻辑及 Schema 校验单测 |
决议 3 |
| 6 | S5.2 IEEE 754 拦截防线实施 | 研发 | 封杀 Inf 击穿 LightGBM 的 Polars 表达式逻辑及边界测试 |
决议 6 |
| 7 | S5.4 Spearman 数学防线实施 | 研发 | 按“按年分块算秩 -> 显式锁定平均秩 -> 强制中心化 -> Pearson 展开项累加 -> 对称化截断”链路实施 | 决议 5 |
| 8 | 最终产物交付与 Schema 校验 | 研发/QA | 产出 standardization_params_wide.parquet、standardization_params.parquet、final_feature_list.json,并通过 CI Schema 对称差红线 |
决议 7 |
纪要结语:本次规划会议成功拆解了 S5 阶段在千万级面板下的所有物理内存陷阱与底层冲突。所有核心防线均实现了“单一真实来源(DRY)”或“空间换时间”的企业级兜底,未遗留任何悬而未决的架构缝隙。研发团队可基于本纪要直接开展排期与编码工作。
由 Huarui Lin 更新于 5 个月 之前 · 2 修订