feat(all): seed_step_stab 稳定化种子链与同族种子轮换、ladder/自适应 Teff/丰度轴延拓三级回退与梯级种子入库复用、热启动首末比豁免、workflow 完成翻转回退链阻塞修复、大气收敛权威统计与 M14 回填

收敛攻坚(81/400 失败点根因与实测,见 docs/failed81_cno_seed_popzer_dpsilg_2026_08_18.md):
- runner: 新增 seed_step_stab 策略链——同物理族(同 Teff/logg/logHe)CNO 邻居种子
  + DPSILG=3.0 λ 算子欠松弛 + POPZER=1E-10 微布居置零(联动 POPZR2/RADZER 同值
  + NITZER=1),针对 20kK He 富大气 He I/II 电离前沿布居极限环
- runner: 三级链内延拓回退(主链与 nl_direct 全败后自动触发):
  · 固定 ladder 步进——plan_ladder_steps 按归一化间隔选轴,Δlogg≤0.25/ΔTeff≤2.5kK,≤4 步
  · 自适应 Teff 延拓——步长 1250K 起、成功 ×1.5 恢复、失败二分至 25K 折叠墙,≤48 步
  · C/N 丰度轴延拓——高温域(Teff>30kK)专用,严格同族种子沿 C(优先)/N 轴 0.2 dex 起步
  延拓阶段 NITER 下限提至 300(慢收敛 waypoint 迭代饥饿误判修复)
- runner: 稳定化多档回退(DPSILG/POPZER 三档互补,联合回收 41/65);
  域门控 Teff≤30kK——高温高金属域实测旋钮致散(17 拍爆至 4e16),域外跳过
- 梯级种子持久化: 收敛中间模型登记 ladder_seeds 随上报落 server seeds 表
  (任务失败也上传,合成名 _ladder 与真实网格点零冲突),簇内相邻失败点自动复用

调度与执行:
- scheduler: 策略解析新增 seed_step_stab 臂——find_exact_family_seed_from_db 严格
  同物理族判定(不做 global 退化,防 ladder 中间种子 ΔTeff≤5000K 误命中),
  排除本点历史已用种子实现重试轮换;链在 stab 耗尽时轮换未试过同族邻居重派
- executor: seed_step_stab 补种子下载(漏列曾致 78 任务假失败,seed_nc 无 fort.8 崩溃);
  Teff>30kK 域外自动降级普通种子链

收敛判据:
- conv_check: 热启动豁免——首拍 max_relc<1(种子已近解)时首末比 1e3 判据数学上
  不可达,豁免后交五重物理硬门槛裁决(修复 nl_ladder 0.038→6e-4 物理全过被误杀);
  冷启动仍受判据门控

workflow 生命周期:
- workflows/tasks: 完成 flip 增加「未消费回退链」阻塞子句——failed 点策略链未耗尽
  或链尾 seed_step_stab 尚有未试过同族种子时不得置 completed(修复最后活跃点 cold
  失败上报抢先 flip、still_running 守卫拦截后续策略永不派发);按 failed_stage 归因
  (synspec 失败行只看 synspec 链,防 stale 审计副本永久卡死)+ json_valid 脏行防护

统计与前端:
- 统计新增权威口径 tlusty_converged(不按策略拆)与 seed_step_stab_converged 分项,
  前端详情页色带/概览卡消费权威总数并新增稳定化青色段(修复 stab 收敛点漏计,
  生产 9137/9216 差额);M14 迁移回填历史 completed 点的 tlusty_status

文档:
- 新增 failed81 POPZER/DPSILG 制胜配方根因分析、Windows 节点经跳板 RDP 运维手册;
  failed400 增补 ladder 生产化实现与第二轮 121 残点实测矩阵
This commit is contained in:
fmq
2026-09-02 19:37:25 +08:00
parent b058e66722
commit f2700031ce
30 changed files with 3045 additions and 49 deletions
@@ -82,16 +82,70 @@ salvage .7),direct-nl= nl_direct 回退的等价路径):
连续步进即完全收敛**。机理:单步 Δ 超出 Newton 收敛域时,把参数空间距离
切分为多段,每段以段首收敛解热启动段尾。
### 5.4 生产化建议
### 5.4 生产化ladder 策略已实现(2026-08-17
1. 部署本修复(NaN 伪收敛否决 + nl_tight 回退)重试 400 点:预期回收 261 簇
>65%/种子×多候选)+ 7 个能量边际点;
2. 为剩余硬核实现 ladder 策略:失败点自动生成 2–3 个中间参数步进链
(优先 logg 维度,其次 Teff;步长 Δlogg≤0.25 / ΔTeff≤2.5kK),
每步独立 nl + require_converged 串联,最后一步产出目标点模型。
实测两簇代表点总耗时 <6 分钟/点(3 步 × ~2 分钟)。
三层回退架构(runner 内自动触发,零配置/调度器改动):
## 六、遗留问题
```
主链(nst 修复后) → nl_direct(污染种子跳过) → nl_ladder(连续步进) → nl_tight(能量边际)
```
- 20k/6.5 富氦簇解分支跳变:同一点不同种子在好解/坏解(emflux 0.69)间跳变
ladder 步进天然规避(每步验证收敛与物理性后才前进)
- **规划**`plan_ladder_steps(seed, target)`——归一化间隔更大的轴
步长 Δlogg≤0.25 / ΔTeff≤2.5kK,≤4 个中间步;双轴均在单步域内不触发
种子参数由 executor 从权威 `seed_point_name` 解析(`parse_point_name`)。
- **执行**:每中间步 clone 终阶段 ChainSteprequire_converged),前步收敛解作
后步 fort.8;链尾 `nl_ladder` 用目标参数收尾。任一步发散即中止。
- **持久化**:中间步「收敛 + fort.7 无 NaN」即登记 `ModelSummary.ladder_seeds`
node executor 读快照字节随 TaskReport 上报(**任务失败也上传**)→ server
`POST /api/task/report``seeds_dir/<name>_ladder/` + seeds 表(ON CONFLICT
仅刷新 file_path`_ladder` 后缀名与真实网格点零冲突;bucket 查找按数值列
匹配天然覆盖中间参数点)。簇内相邻失败点自动复用已收敛梯级。
- **重复网格点**:未来工作流若含与中间种子同参数的网格点,照常计算(种子≠结果),
seed_step 命中同参数种子后 ~1–2 迭代收敛——重验五重门槛,成本可忽略。
- 测试:`test_plan_ladder_steps`(规划纯函数)、`unit_ladder_fallback_wiring`
(假 tlusty 六调用接线:seed_nc/nl/nl_direct 失败→ladder_g5.75/ladder_g6/
nl_ladder 收敛 + ladder_seeds 登记)、`test_parse_point_name`
物理有效性由手工 ladder 实测证明(§5.3,与生产同一 ChainStep 配置与种子)。
workspace 全测试 10 套件通过。
部署:server + node 重建重部署后,对 400 失败点发起重试即可(ladder 自动生效)。
## 七、第二轮重跑后 121 残点分析与 ladder 实测(2026-08-18
### 7.1 121 残点分类(最新 DB,每点最新任务)
| 类别 | 数量 | 归因 |
|---|---:|---|
| NaN 伪收敛(否决未生效) | **32** | **全部来自 node-fmq-ubuntu-01 旧二进制**(其他节点同期已有 nl_tight 记录证明新二进制)——重新部署该节点即解决,随重试进入 nl_direct/正常链路 |
| 真发散(20kK/logg≥6 富氦簇) | ~62 | nl/nl_direct 均 1e16 STOP |
| 真发散(60kK/logg5.0 最贫 CNO 簇) | ~19 | 同上,且对一切种子/轴免疫 |
| 能量边际残留 | 2 | nl_tight 已触发(其一 tight 数值收敛但模型含 NaN 被否决) |
### 7.2 ladder 实测矩阵(12 点分层抽样 + 变体,test/20260817_failed400/
| 变体 | 配置 | 结果 |
|---|---|---|
| ladder121 | 生产语义(nl 步进,Δlogg 0.25 / ΔTeff 2.5k | **1/12** |
| ladder121_teff | 换 Teff 轴(同 CNO ±5kK rung | +2/7 |
| ladder121_nc | 中间步 seed_nc 式(ilvlin=0 + ORELAX=0.3 + NITER=20 | 0/9(发散转"卡住" |
| ladder121_nc100 | 同上 + NITER=100 + 2× 细化(0.125/1.25k | 0/9(单步可达 1e-4@34it,但链条后段单深度 POP 振荡 ~0.2 或 NITER 耗尽;每步最长达 1h+) |
| he_seed | 60k 簇换 he0 种子直接 nl | 1/4t55000 完整收敛 83it/3.7e-4/emflux 1.0008 |
| ladder20k_final | 20k 簇 nc+细化+7200s/步 | 0/3step3 处 iter100 单深度 0.199 振荡) |
### 7.3 结论
1. **部署项收益最大**:重新部署 ubuntu-01 → 直接回收 32 点(确定性)。
2. **ladder 对本轮残点增益有限**:全部变体合计 ~4-6/87。已实现的 ladder 保留
(自动触发、零额外成本、对上一轮 5 个验证点有效),但不应期望它清掉这批残点。
3. **残点本质**:20kK 富氦高重力簇在阻尼下不雪崩但呈**单深度 POP 极限环**
iter 100 时个别深度 |ΔPOP|≈0.2 不衰减);60kK 贫 CNO 低重力簇从任何
CNO/He/logg/Teff 种子均在前几迭代雪崩。两者均已超出"步进/种子"工程层
可解范围,属 TLUSTY Newton 求解器在这些极端参数组合下的固有收敛域缺失。
4. **可行后续**(求解器层,需另行立项):针对极限环深度的逐深度阻尼/POPZER
策略调优;或物理上接受这 ~85 点为"不可收敛角"并在工作流中显式标记。
### 7.4 测试工件
`test/20260817_failed400/``ladder121/``ladder121_teff/``ladder121_nc/`
`ladder121_nc100/``ladder20k_final/``he_seed/``batch_ladder.py`(支持
`--nc-int`/`--fine=N` 变体的通用 ladder 驱动)。