Virtual Embryo Challenge更新于 10-03 18:47(北京时间) / 每 5 分钟更新

总览 · ← 返回运行 20261003-094241-search-t2-heart-interp-g24-D-s2

节点 n28

T2HI-05 自适应β:逐类型 β_eff=β·w(n)(w 为细胞数对数斜坡)实现并网格验证;proxy 上 PLAN 方向(小类型减恢复)一致更差,反向(小类型加恢复)在噪声内持平,按预注册回退提交默认=父17逐位(ADAPTIVE=0,均匀β=1.3)。

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261003-094241-search-t2-heart-interp-g24-D-s2
父节点n17
子节点—
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 66.58(+0.0) · proxy 66.58(+0.0)
审查未审查
用时?从运行开始到结束(或到现在)的挂钟时间。21 分
程序版本e926ee153758f019db8e6fcefa059ff8e3f77ba5 (programs.git)

方法说明?节点程序自带的 METHOD.md:这个程序做了什么、为什么。

来自 programs.git e926ee1537:solution/METHOD.md

T2HI-05 自适应β:逐类型 β_eff=β·w(n)(w 为细胞数对数斜坡)实现并网格验证;proxy 上 PLAN 方向(小类型减恢复)一致更差,反向(小类型加恢复)在噪声内持平,按预注册回退提交默认=父17逐位(ADAPTIVE=0,均匀β=1.3)。

方法族与机制(family_id T2HI-05)

在父 17 管线(logit 组成配额混抽 + 同型 kNN 收缩 k=20, α=1.25 + 逐类型各向异性方差恢复 β=1.3)的 anisotropic_restore 步骤中,把全局 β 替换为逐类型有效值:

  • PLAN 方向(up):β_eff = β_global · w(n),w(n) = clip((log2 n − log2 n_floor)/(log2 n_ceil − log2 n_floor), 0, 1)。n < n_floor 的类型跳过恢复,n ≥ n_ceil 用满 β_global。env:T2HI_ANISO_ADAPTIVE(提交默认 0)、T2HI_ANISO_NFLOOR(10)、T2HI_ANISO_NCEIL(50)。
  • 反向探索(down,数据提示后加测):β_eff = β_global · (1 + boost·(1 − w(n))),小类型恢复更强、大类型保持 β_global。env:T2HI_ANISO_WMODE=down、T2HI_ANISO_BOOST。

每型日志打印 (n, beta_eff, per-axis ratios)([aniso] 段)。只动坐标,表达从不触碰;每型 β_eff 不同、每轴缩放因子不同、方向沿该型自身 PCA 主轴——不是常数位移或统一缩放(vs_constant_shift 成立)。

关键事实:PLAN 网格在 proxy 上近乎空转

proxy 抽到的 50 个类型细胞数为 60–2698,全部 ≥ n_ceil∈{30,50,80}(n_floor=8/10/15 时 w≡1,已验证 ADAPTIVE=1+10/50 输出与父 17 逐位相同)。要让机制在 proxy 上真正生效,n_floor/n_ceil 必须落在观测到的类型尺寸范围内(60–500 等),网格据此扩展。

机制生效证据与网格结果(proxy,E8.25+E9.5→E8.75,seed 0,同会话 vec-score A 半,共 15 次查询)

日志证据:up 模式 60/500 时 49 型恢复、1 型(n=60)跳过;小类型 β_eff 明显更低(n=73→0.12、n=91→0.26、n≥500→1.3),缩放因子更接近 1(形变更少);down 模式小类型 β_eff 升至 ~1.7–2.3、多条轴触到 clip=2.0 上限。表达四指标 raw/skill/points 在所有配置间逐位相同(机制只动坐标),cell_state 与 expression_change 组严格不变——与 PLAN 预期一致。

配置总榜分shape组nbd组d2 rawocc rawnbd raw
父17 = 均匀 β=1.3(基线,本会话)66.52852.5*70.0*0.039150.82460.04145
均匀 β=1.5 / 1.866.502 / 66.42752.5 / 52.369.9 / 69.70.03835 / 0.037430.821 / 0.8150.04158 / 0.04191
up 60/300 β=1.366.36251.670.20.041400.8180.04103
up 60/500 β=1.3 / 1.5 / 1.866.280 / 66.197 / 66.17351.1 / 51.0 / 51.070.3 / 70.2 / 70.00.04265 / 0.04210 / 0.041310.814 / 0.809 / 0.8060.04068 / 0.04108 / 0.04127
up 100/700 β=1.5;up 150/1000 β=1.866.194;66.12550.6;50.370.5;70.60.04384;0.044780.809;0.8060.04034;0.04021
down 60/500 boost 0.4 / 0.8 / 1.2(β=1.3)66.527 / 66.567 / 66.53452.5 / 52.9 / 52.869.9 / 69.8 / 69.70.03845 / 0.03799 / 0.037870.823 / 0.826 / 0.8250.04152 / 0.04184 / 0.04197
down 60/300 b0.8;down 60/500 b0.8 β=1.466.466;66.49152.4;52.669.8;69.70.03864;0.037710.820;0.8210.04165;0.04193

*基线行的组分为 final_default_s0 查询值(与父 17 逐位同一文件内容,总分/全部 raw 相同)。

结论:

  1. PLAN 假设(小类型 PCA 噪声过恢复有害)被否证:所有 up 配置的 d2 raw 单调变差(0.0392→0.041–0.045)、occ 变差,nbd 只小幅改善,总分 −0.15 至 −0.40,且减恢复越多越差(对应 PLAN 风险 2 的判据:小类型恢复虽噪声大但平均方向正确)。
  2. 反向(小类型加恢复)方向一致地抬 shape 组(52.5→52.9)、压 nbd 组(70.0→69.8),最佳点 down/boost=0.8 总分 66.567,仅 +0.04——远低于 T2 约 1 分的噪声线,且 boost 0.4/0.8/1.2 与 β=1.4 变体构成 66.47–66.57 的平坦带,无可信收益。
  3. 均匀 β 已是平台顶点(1.3→1.5→1.8 单调降),坐标侧恢复强度维度在此管线上饱和。

关闭机制对照(mechanism_off_control)

T2HI_ANISO_ADAPTIVE=0(提交默认)时 β_eff≡β_global,输出与父 17 逐位相同(X 与 obsm array_equal 验证通过;本会话基线查询 66.528 与父 17 文件的查询完全一致)。开启 up 后小类型坐标变化量减小(日志 ratios→1)、大类型不变(w=1 时 ratios 与父逐位一致),符合 PLAN 的预期差别描述。

验证过的

  • 提交默认(无 env)seed 0 两次运行逐位相同;seed 7 输出不同(无 seed 特判);vec-check 通过;n=17616 在 [min,max] 内;纯 CPU ~3 s、内存 <0.5 GB;EXECUTION.json {"gpu": false} 保留。
  • 视图无关:只用时间差 t、标签、细胞数、坐标、manifest 上下限;n_floor/n_ceil/boost 是固定超参数(对所有视图同一常数),不读 board/mode/路径/阶段名/绝对时间;单输入或不构成括号走 copy_last 分支(在机制之前返回)。
  • 查分 15 次(额度 20,剩 3 未用满;一次因文件名笔误被 refused 不计费)。

没验证的 / 风险

  • 提交默认逐位等于父 17,正式 B 半预期 ≈66.58(3 种子均值 66.60),本节点自身不产生榜分收益;价值在于否证了坐标侧「恢复强度按类型细胞数缩放」这一维度(up 有害、down 平坦),为后续节点排除一个搜索方向。
  • down 方向最佳点(+0.04)在噪声内,未做 3 种子复核,不作为提交默认(避免把噪声当收益写进 B 半)。
  • final 视图(E8.25+E8.75,31 共有类型、类型尺寸分布不同)未测;up 机制在 final 上若有 <60 细胞的类型才会与父不同,但 proxy 证据已显示该方向有害,故默认关闭。
  • 知识来源:仅通用统计/几何(协方差特征值、PCA 主轴、对数斜坡加权),无任何保留阶段/保留基因型测量信息;未使用文献或数据库数值。

调研员的计划

名称自适应逐类型恢复强度:按细胞数缩放β,消除小类型PCA噪声过恢复
动机父节点17的shape_scale组51.86仍是最弱组(d2 skill 0.537, occ 0.507, scale 0.512,均贴近地板0.5)。METHOD.md承认小类型(5–20细胞)的PCA特征值噪声大、仅靠clip[0.5,2]兜底、未逐型核验。当前所有≥5细胞的类型统一用β=1.3,但5细胞型的3维协方差只有2个自由度,特征值估计极不稳定,过恢复(β>1)在此类上可能是随机的有害形变。父节点ANALYSIS明确建议'把恢复强度按类型细胞数自适应(n≥50用更大β,小类型用更小β或跳过)'。兄弟节点19(质心恢复)和22(表达插值)均已失败,坐标侧逐型自适应恢复是剩余未试的结构改进。
做法在父17管线的aniso_restore步骤中,把全局β替换为逐类型有效值 β_eff = β_global * w(n_type),其中 w(n) = clip((log2(n) - log2(n_floor)) / (log2(n_ceil) - log2(n_floor)), 0, 1)。n_floor默认10(低于此跳过恢复),n_ceil默认50(达到此用满β)。即:5–9细胞的类型跳过;10–49细胞的类型按对数比例线性增加恢复强度;≥50细胞的类型用完整β_global。关键参数初值与搜索范围:β_global ∈ {1.3, 1.5, 1.8}(父节点β=1.3是在统一β下的最优,自适应后大类型可能需要更强恢复);n_floor ∈ {8, 10, 15};n_ceil ∈ {30, 50, 80}。网格共27个配置,每配置~3s,总计<2分钟。用vec-score A半快速筛选:先跑n_floor=10, n_ceil=50, β_global=1.3作为基线对比父17,确认方向后扫β_global,再扫n_floor/n_ceil。单输入阶段退路不变(copy_last分支在机制之前返回)。最终提交配置必须在β_eff全部为0时(即n_floor设为无穷大或加env开关T2HI_ANISO_ADAPTIVE=0)逐位复现父17输出。
风险1) 收益可能仍在噪声内(<1分):父节点统一β已获+0.37,自适应只是消除小类型的随机有害形变,净增益可能很小。Engineer应观察d2_shape和occupancy_dice的raw值是否一致改善(方向一致才可信)。2) 小类型被跳过后,这些类型的形状完全由收缩决定(压缩态),可能反而更差——如果n_floor=15比n_floor=10差,说明小类型的恢复虽噪声大但平均方向正确。3) 大类型β提高后nbd可能劣化(型内展开过度):监控nbd raw,若>0.042则β_global不超过1.3。4) 30分钟时限充裕(网格<2分钟),风险低。

代码改动?这个节点的程序和父节点程序的逐行差别:绿色是新增,红色是删除。

对比:父节点版本 d82734b615。改动的文件:solution/METHOD.md +37 −33、solution/run.py +64 −12

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex 24b1ee6..bd80edb 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,48 +1,52 @@-T2HI-05:同型 kNN 收缩(k=20, α=1.25)后,按类型沿收缩后 PCA 主轴以 (λ_pre/λ_post)^(β/2)(β=1.3, clip[0.5,2])逐轴恢复方差比,只动坐标,解耦 neighborhood↔shape 折中;β=0 对照逐位等于父管线。+T2HI-05 自适应β:逐类型 β_eff=β·w(n)(w 为细胞数对数斜坡)实现并网格验证;proxy 上 PLAN 方向(小类型减恢复)一致更差,反向(小类型加恢复)在噪声内持平,按预注册回退提交默认=父17逐位(ADAPTIVE=0,均匀β=1.3)。 -## 方法族与机制+## 方法族与机制(family_id T2HI-05) -PLAN 指定 family_id T2HI-05「收缩后逐类型各向异性形状恢复」,按 PLAN 原文实现:+在父 17 管线(logit 组成配额混抽 + 同型 kNN 收缩 k=20, α=1.25 + 逐类型各向异性方差恢复 β=1.3)的 `anisotropic_restore` 步骤中,把全局 β 替换为逐类型有效值: -1. 收缩前记录每个类型(≥ T2HI_ANISO_MIN=5 个细胞)的坐标协方差特征值 λ_pre(降序);-2. 执行现有同型 kNN 收缩 contract(mode=type, α=1.25),本节点默认 k 从 10 改为 **20**(父节点网格已测 k=20 单独用 nbd 更好但 shape 更差;与恢复机制组合后两者同时占优,见下表);-3. 对每个类型:以**收缩后**的质心和 PCA 主轴为准(PLAN 风险 4:只恢复特征值比例、不旋转),把偏差投影到主轴、逐轴乘 clip((λ_pre_j/λ_post_j)^(β/2), 0.5, 2.0),重建坐标;-4. 全云 _jitter + scale_to_rms(target_rms) 不变。+- **PLAN 方向(up)**:β_eff = β_global · w(n),w(n) = clip((log2 n − log2 n_floor)/(log2 n_ceil − log2 n_floor), 0, 1)。n < n_floor 的类型跳过恢复,n ≥ n_ceil 用满 β_global。env:`T2HI_ANISO_ADAPTIVE`(**提交默认 0**)、`T2HI_ANISO_NFLOOR`(10)、`T2HI_ANISO_NCEIL`(50)。+- **反向探索(down,数据提示后加测)**:β_eff = β_global · (1 + boost·(1 − w(n))),小类型恢复更强、大类型保持 β_global。env:`T2HI_ANISO_WMODE=down`、`T2HI_ANISO_BOOST`。 -环境变量:`T2HI_ANISO_BETA`(默认 1.3;=0 时提前返回,逐位无操作)、`T2HI_ANISO_MIN`(默认 5)。只动坐标,表达从不触碰;每型、每轴缩放因子不同,依赖该型收缩前后方差比,不是常数位移或统一缩放。+每型日志打印 `(n, beta_eff, per-axis ratios)`(`[aniso]` 段)。只动坐标,表达从不触碰;每型 β_eff 不同、每轴缩放因子不同、方向沿该型自身 PCA 主轴——不是常数位移或统一缩放(vs_constant_shift 成立)。 -## 机制生效证据(proxy,E8.25+E9.5→E8.75,seed 0)+## 关键事实:PLAN 网格在 proxy 上近乎空转 -- 收缩确实压缩方差:λ_post/λ_pre<1,β=0.5 时 50 个类型被恢复,逐轴实测缩放比 1.00–1.80(日志 `[aniso] types=50`,每型 ratios 打印);-- 四组分变化(同一会话内查询,表达四指标 raw 在所有配置间逐位相同、points 恒 35.91,故差异全部来自坐标):-  - shape_scale:d2_shape raw 0.04529→0.03915、skill 0.499→0.517;occupancy_dice 0.8163→0.8246;scale_log_ratio 不变(全云 RMS 被 scale_to_rms 钉住);组分 points 12.69→12.96(+0.27,其中 d2 单项 +0.32);-  - local_spatial:nbd raw 0.04176→0.04145(持平略好,k=20 的致密化收益被 β=1.3 的再展开抵消后仍不低于父);-  - cell_state / expression_change:不变(机制只动坐标)。+proxy 抽到的 50 个类型细胞数为 **60–2698**,全部 ≥ n_ceil∈{30,50,80}(n_floor=8/10/15 时 w≡1,已验证 ADAPTIVE=1+10/50 输出与父 17 逐位相同)。要让机制在 proxy 上真正生效,n_floor/n_ceil 必须落在观测到的类型尺寸范围内(60–500 等),网格据此扩展。 -## 关闭机制对照与网格(全部 vec-score A 半,同会话)+## 机制生效证据与网格结果(proxy,E8.25+E9.5→E8.75,seed 0,同会话 vec-score A 半,共 15 次查询) -| 配置 | 总榜分 | shape+nbd points | d2 raw | occ raw | nbd raw |-|---|---:|---:|---:|---:|---:|-| k=10, β=0(=父 13/15 管线,对照) | 66.05 | 30.14 | 0.04529 | 0.8163 | 0.04176 |-| k=10, β=0.3 / 0.5 / 0.7 | 66.05 / 66.04 / 65.99 | 30.14 / 30.12 / 30.09 | 0.0442 / 0.0435 / 0.0428 | 0.818 / 0.816 / 0.814 | 0.0423 / 0.0425 / 0.0428 |-| k=20, β=0.5 / 0.7 / 1.0 | 66.27 / 66.33 / 66.45 | 30.37 / 30.42 / 30.54 | 0.0438 / 0.0426 / 0.0407 | 0.816 / 0.819 / 0.823 | 0.0405 / 0.0408 / 0.0411 |-| k=30, β=1.0 / 1.3 | 66.44 / 66.40 | 30.53 / 30.49 | 0.0404 / 0.0388 | 0.821 / 0.809 | 0.0412 / 0.0408 |-| **k=20, β=1.3(提交默认)** | **66.53** | **30.62** | **0.03915** | **0.8246** | **0.04145** |-| k=20, β=1.6 | 66.47 | 30.56 | 0.0380 | 0.820 | 0.04182 |+日志证据:up 模式 60/500 时 49 型恢复、1 型(n=60)跳过;小类型 β_eff 明显更低(n=73→0.12、n=91→0.26、n≥500→1.3),缩放因子更接近 1(形变更少);down 模式小类型 β_eff 升至 ~1.7–2.3、多条轴触到 clip=2.0 上限。表达四指标 raw/skill/points 在所有配置间逐位相同(机制只动坐标),cell_state 与 expression_change 组严格不变——与 PLAN 预期一致。 -- β=0 对照与父管线输出**逐位相同**(anndata X 与 obsm array_equal 验证通过);-- k=10 时恢复无净收益(nbd 损失≈shape 收益);k=20 时组合净赚:更强的收缩提供 nbd 富余,恢复把被压掉的形状补回,验证了 PLAN 的解耦假设;-- β 曲线在 1.3 处见顶(1.6 时 nbd 回升到父水平、总分回落),非单点尖峰:β∈[1.0,1.6] 均 ≥66.44。+| 配置 | 总榜分 | shape组 | nbd组 | d2 raw | occ raw | nbd raw |+|---|---:|---:|---:|---:|---:|---:|+| 父17 = 均匀 β=1.3(基线,本会话) | **66.528** | 52.5* | 70.0* | 0.03915 | 0.8246 | 0.04145 |+| 均匀 β=1.5 / 1.8 | 66.502 / 66.427 | 52.5 / 52.3 | 69.9 / 69.7 | 0.03835 / 0.03743 | 0.821 / 0.815 | 0.04158 / 0.04191 |+| up 60/300 β=1.3 | 66.362 | 51.6 | 70.2 | 0.04140 | 0.818 | 0.04103 |+| up 60/500 β=1.3 / 1.5 / 1.8 | 66.280 / 66.197 / 66.173 | 51.1 / 51.0 / 51.0 | 70.3 / 70.2 / 70.0 | 0.04265 / 0.04210 / 0.04131 | 0.814 / 0.809 / 0.806 | 0.04068 / 0.04108 / 0.04127 |+| up 100/700 β=1.5;up 150/1000 β=1.8 | 66.194;66.125 | 50.6;50.3 | 70.5;70.6 | 0.04384;0.04478 | 0.809;0.806 | 0.04034;0.04021 |+| down 60/500 boost 0.4 / **0.8** / 1.2(β=1.3) | 66.527 / **66.567** / 66.534 | 52.5 / 52.9 / 52.8 | 69.9 / 69.8 / 69.7 | 0.03845 / 0.03799 / 0.03787 | 0.823 / 0.826 / 0.825 | 0.04152 / 0.04184 / 0.04197 |+| down 60/300 b0.8;down 60/500 b0.8 β=1.4 | 66.466;66.491 | 52.4;52.6 | 69.8;69.7 | 0.03864;0.03771 | 0.820;0.821 | 0.04165;0.04193 |++*基线行的组分为 final_default_s0 查询值(与父 17 逐位同一文件内容,总分/全部 raw 相同)。++**结论**:+1. PLAN 假设(小类型 PCA 噪声过恢复有害)**被否证**:所有 up 配置的 d2 raw 单调变差(0.0392→0.041–0.045)、occ 变差,nbd 只小幅改善,总分 −0.15 至 −0.40,且减恢复越多越差(对应 PLAN 风险 2 的判据:小类型恢复虽噪声大但平均方向正确)。+2. 反向(小类型**加**恢复)方向一致地抬 shape 组(52.5→52.9)、压 nbd 组(70.0→69.8),最佳点 down/boost=0.8 总分 66.567,仅 +0.04——远低于 T2 约 1 分的噪声线,且 boost 0.4/0.8/1.2 与 β=1.4 变体构成 66.47–66.57 的平坦带,无可信收益。+3. 均匀 β 已是平台顶点(1.3→1.5→1.8 单调降),坐标侧恢复强度维度在此管线上饱和。++## 关闭机制对照(mechanism_off_control)++`T2HI_ANISO_ADAPTIVE=0`(提交默认)时 β_eff≡β_global,输出与父 17 **逐位相同**(X 与 obsm array_equal 验证通过;本会话基线查询 66.528 与父 17 文件的查询完全一致)。开启 up 后小类型坐标变化量减小(日志 ratios→1)、大类型不变(w=1 时 ratios 与父逐位一致),符合 PLAN 的预期差别描述。  ## 验证过的 -- 默认配置 seed 0 两次运行逐位相同;seed 7 输出不同(无 seed 特判);`vec-check` 通过;纯 CPU ~3 s、内存 <1 GB。-- 视图无关:只用时间差 t、标签、坐标、manifest 上下限;不读 board/mode/路径/阶段名/绝对时间;单输入或不构成括号走 copy_last 分支(在机制之前返回)。-- 查分共 13 次(额度 20)。+- 提交默认(无 env)seed 0 两次运行逐位相同;seed 7 输出不同(无 seed 特判);`vec-check` 通过;n=17616 在 [min,max] 内;纯 CPU ~3 s、内存 <0.5 GB;`EXECUTION.json {"gpu": false}` 保留。+- 视图无关:只用时间差 t、标签、细胞数、坐标、manifest 上下限;n_floor/n_ceil/boost 是固定超参数(对所有视图同一常数),不读 board/mode/路径/阶段名/绝对时间;单输入或不构成括号走 copy_last 分支(在机制之前返回)。+- 查分 15 次(额度 20,剩 3 未用满;一次因文件名笔误被 refused 不计费)。  ## 没验证的 / 风险 -- 收益 +0.48(66.05→66.53,同会话)低于 T2 的 1 分噪声线,正式 B 半上可能与父不可区分;但方向由 8 个配置的一致趋势支撑(d2 raw 单调降、occ 升、nbd 不劣),不是单点尖峰。-- β=1.3 超出 PLAN 的 {0.3,0.5,0.7} 搜索范围(PLAN 范围在 k=10 下全部无收益,k=20 组合下曲线单调升至 1.3);β>1 意味着过恢复到超过收缩前的轴长比,配合 scale_to_rms 的全局钉扎是"整体尺度不变、型内更细长"的形变。-- final 视图(E8.25+E8.75,31 个共有类型、细胞数不同)未测;小类型(5–20 细胞)的 PCA 特征值噪声大,靠 clip[0.5,2.0] 与 min=5 门槛兜底,未逐型核验其形变是否合理。-- 知识来源:仅通用统计/几何做法(PCA、协方差特征值、kNN 收缩),未使用任何保留阶段或保留基因型的测量信息。+- 提交默认逐位等于父 17,正式 B 半预期 ≈66.58(3 种子均值 66.60),本节点自身不产生榜分收益;价值在于否证了坐标侧「恢复强度按类型细胞数缩放」这一维度(up 有害、down 平坦),为后续节点排除一个搜索方向。+- down 方向最佳点(+0.04)在噪声内,未做 3 种子复核,不作为提交默认(避免把噪声当收益写进 B 半)。+- final 视图(E8.25+E8.75,31 共有类型、类型尺寸分布不同)未测;up 机制在 final 上若有 <60 细胞的类型才会与父不同,但 proxy 证据已显示该方向有害,故默认关闭。+- 知识来源:仅通用统计/几何(协方差特征值、PCA 主轴、对数斜坡加权),无任何保留阶段/保留基因型测量信息;未使用文献或数据库数值。diff --git a/solution/run.py b/solution/run.pyindex b249115..d77f236 100644--- a/solution/run.py+++ b/solution/run.py@@ -10,18 +10,29 @@ T2HI_COMPOSITION=linear). Shared types split their quota between the sides as (1-t, t); single-side types draw from that side only, capped by availability with proportional redistribution. -Additions in this node (T2HI-05):+Additions in this node (T2HI-05, adaptive beta): - env T2HI_ANISO_BETA (default 1.3, control 0.0): per-type anisotropic shape   restore applied AFTER the same-type kNN contraction. For each type with >=   T2HI_ANISO_MIN (5) cells, the pre-contraction covariance eigenvalues lam_pre   are recorded; post-contraction the points are projected onto the POST   principal axes and each axis deviation is scaled by-  clip((lam_pre_j/lam_post_j)^(beta/2), 0.5, 2.0) (no rotation). This undoes-  the axis-ratio compression of the contraction, improving d2_shape and+  clip((lam_pre_j/lam_post_j)^(beta_eff/2), 0.5, 2.0) (no rotation). This+  undoes the axis-ratio compression of the contraction, improving d2_shape and   occupancy_dice while keeping the densification gain in neighborhood_mmd.   beta=0 is a bit-for-bit no-op (parent behaviour). Default contraction k is-  now 20 (was 10 in the parent); the off-control reproduces the parent with-  T2HI_CONTRACT_K=10 T2HI_ANISO_BETA=0.+  20; the off-control reproduces the grandparent with T2HI_CONTRACT_K=10+  T2HI_ANISO_BETA=0.+- env T2HI_ANISO_ADAPTIVE (default 0 = parent behaviour) + T2HI_ANISO_NFLOOR /+  T2HI_ANISO_NCEIL (defaults 10 / 50): beta_eff = beta * w(n_type), where+  w(n) = clip((log2 n - log2 n_floor)/(log2 n_ceil - log2 n_floor), 0, 1).+  Types below n_floor skip the restore; types at/above n_ceil get the full+  beta. Measured on the proxy: every up-ramp configuration is WORSE than+  uniform beta (small-type restore helps d2_shape), and the inverted ramp+  (T2HI_ANISO_WMODE=down + T2HI_ANISO_BOOST, beta_eff = beta*(1+boost*(1-w)),+  more restore for small types) is a wash within noise (+0.04 at boost=0.8).+  Submitted default is therefore ADAPTIVE=0: uniform beta=1.3, bit-for-bit+  identical to the parent (node 17) pipeline. ADAPTIVE=0 with any other+  setting also reproduces the parent exactly (beta_eff = beta).  Earlier additions (kept, inactive by default): - env T2HI_SCALE_DAMP (default 1.0): damping of the log-linear RMS target,@@ -159,6 +170,14 @@ def type_eigen(coords: np.ndarray, labels: np.ndarray, min_cells: int) -> dict:     return out  +def adaptive_weight(n: int, n_floor: float, n_ceil: float) -> float:+    """w(n) = clip((log2 n - log2 n_floor) / (log2 n_ceil - log2 n_floor), 0, 1)."""+    if n_ceil <= n_floor or n_floor <= 0:+        return 1.0+    w = (np.log2(max(n, 1)) - np.log2(n_floor)) / (np.log2(n_ceil) - np.log2(n_floor))+    return float(np.clip(w, 0.0, 1.0))++ def anisotropic_restore(     coords: np.ndarray,     labels: np.ndarray,@@ -167,12 +186,19 @@ def anisotropic_restore(     min_cells: int = 5,     clip_lo: float = 0.5,     clip_hi: float = 2.0,+    adaptive: bool = True,+    n_floor: float = 10.0,+    n_ceil: float = 50.0,+    wmode: str = "up",+    boost: float = 0.0, ):     """Per-type axis-wise variance restoration after isotropic-ish contraction.      For each type with >= min_cells cells, project the contracted points onto     the POST-contraction principal axes (centroid_post + axes), scale each axis-    deviation by clip((lam_pre_j / lam_post_j)^(beta/2), lo, hi), and rebuild.+    deviation by clip((lam_pre_j / lam_post_j)^(beta_eff/2), lo, hi), and rebuild.+    beta_eff = beta * w(n_type) when adaptive (w = log-linear ramp in cell count,+    0 below n_floor, 1 at/above n_ceil); beta_eff = beta when adaptive=False.     No rotation is applied; only the eigenvalue ratios are partially restored.     beta=0 returns coords unchanged (bit-for-bit).     """@@ -184,6 +210,17 @@ def anisotropic_restore(         idx = np.flatnonzero(labels == ty)         if idx.size < min_cells:             continue+        if adaptive:+            w = adaptive_weight(int(idx.size), n_floor, n_ceil)+            if wmode == "down":+                beta_eff = beta * (1.0 + boost * (1.0 - w))+            else:+                beta_eff = beta * w+        else:+            beta_eff = beta+        if beta_eff <= 0.0:+            report.append((ty, int(idx.size), 0.0, [1.0, 1.0, 1.0]))+            continue         sub = out[idx]         cent = sub.mean(axis=0)         dev = sub - cent@@ -197,11 +234,11 @@ def anisotropic_restore(         ratios = np.ones(3)         for j in range(m):             if w[j] > 1e-12 and lp[j] > 0:-                r = (lp[j] / w[j]) ** (beta / 2.0)+                r = (lp[j] / w[j]) ** (beta_eff / 2.0)                 ratios[j] = float(np.clip(r, clip_lo, clip_hi))         proj = dev @ V         out[idx] = cent + (proj * ratios[: proj.shape[1]]) @ V.T-        report.append((ty, int(idx.size), ratios.tolist()))+        report.append((ty, int(idx.size), beta_eff, ratios.tolist()))     return out, report  @@ -431,13 +468,28 @@ def run(view: str, out: str, seed: int) -> None:         before = rms_radius(coords)         aniso_beta = float(os.environ.get("T2HI_ANISO_BETA", "1.3"))         aniso_min = int(os.environ.get("T2HI_ANISO_MIN", "5"))+        aniso_adaptive = os.environ.get("T2HI_ANISO_ADAPTIVE", "0").strip().lower() not in ("0", "false", "no")+        aniso_nfloor = float(os.environ.get("T2HI_ANISO_NFLOOR", "10"))+        aniso_nceil = float(os.environ.get("T2HI_ANISO_NCEIL", "50"))+        aniso_wmode = os.environ.get("T2HI_ANISO_WMODE", "up").strip().lower()+        aniso_boost = float(os.environ.get("T2HI_ANISO_BOOST", "0.0"))         lam_pre = type_eigen(coords, lab_sel, aniso_min) if aniso_beta != 0.0 else {}         coords = contract(coords, lab_sel, cmode, calpha, ck)         print(f"[contract] mode={cmode} alpha={calpha} k={ck} rms {before:.1f}->{rms_radius(coords):.1f}", flush=True)-        coords, aniso_rep = anisotropic_restore(coords, lab_sel, lam_pre, aniso_beta, aniso_min)-        print(f"[aniso] beta={aniso_beta} min={aniso_min} types={len(aniso_rep)} rms={rms_radius(coords):.1f}", flush=True)-        for ty, cnt, ratios in aniso_rep:-            print(f"  {ty}: n={cnt} ratios={[f'{r:.3f}' for r in ratios]}", flush=True)+        coords, aniso_rep = anisotropic_restore(+            coords, lab_sel, lam_pre, aniso_beta, aniso_min,+            adaptive=aniso_adaptive, n_floor=aniso_nfloor, n_ceil=aniso_nceil,+            wmode=aniso_wmode, boost=aniso_boost,+        )+        print(+            f"[aniso] beta={aniso_beta} adaptive={aniso_adaptive} nfloor={aniso_nfloor} "+            f"nceil={aniso_nceil} min={aniso_min} types_restored="+            f"{sum(1 for r in aniso_rep if r[2] > 0.0)} types_skipped="+            f"{sum(1 for r in aniso_rep if r[2] <= 0.0)} rms={rms_radius(coords):.1f}",+            flush=True,+        )+        for ty, cnt, beta_eff, ratios in aniso_rep:+            print(f"  {ty}: n={cnt} beta_eff={beta_eff:.3f} ratios={[f'{r:.3f}' for r in ratios]}", flush=True)     coords = _jitter(coords, rng)     coords = scale_to_rms(coords, target_rms)     print(f"[out] n={expr.shape[0]} out_rms={rms_radius(coords):.1f}", flush=True)

调研来源?调研员查到并用到的知识条目和文献检索结果(只列标题和编号)。

用到的知识库条目

编号标题出处
k007Interval staging and held-out-window filtering of external datanotes/official/来件/virtualembryo.ai/rules.md
k026Canonicalise predicted 3D coordinates before submissionnotes/pitfalls/04_scorer_invariance.md
k010Flux Matching: learning non-score generative vector fieldsarXiv:2605.07319

分析结果?分析员写的 ANALYSIS.json:改了什么、各组分数怎么变、假设是否成立、经验和下一步建议。

改了什么在父17的各向异性恢复步骤里实现逐类型自适应β_eff=β·w(n)(细胞数对数斜坡,env开关+反向boost变体),proxy网格测完后按预注册回退:提交默认T2HI_ANISO_ADAPTIVE=0,输出与父17逐位相同,故榜分完全不变。
各组分数的变化cell_state:不变:72.43→72.43(mmd_u 0.02337、variogram 0.0206 逐位相同)
expression_change:不变:71.71→71.71(de_score 0.5213/skill 0.684、de_direction 0.6625/skill 0.750 与父逐位相同,机制只动坐标且提交时关闭)
local_spatial:不变:70.32→70.32(neighborhood_mmd 0.04153/skill 0.703 逐位相同)
shape_scale:不变:51.86→51.86(d2_shape 0.03989、occupancy_dice 0.8143、scale_log_ratio 0.4688 逐位相同;proxy内部实验中up方向d2 raw 0.039→0.041-0.045变差,down方向最佳+0.04在噪声内,均未提交)
family_idT2HI-05
假设是否成立否
经验
  1. 在T2 heart插值proxy上,混抽后每类型细胞数为60-2698,PLAN名义网格n_floor/n_ceil≤80时w恒=1、机制空转逐位等于父——设计逐类型机制前必须先打印类型尺寸分布,把网格范围对准观测值
  2. 对同型kNN收缩+各向异性恢复(β=1.3)管线,减小小类型恢复强度(up方向)一致有害:d2 raw从0.039单调升到0.041-0.045、总分降0.15-0.40,说明小类型恢复虽PCA噪声大但平均方向正确,'小样本过恢复有害'假设被否证
  3. 反向给小类型加恢复(down boost=0.8)最佳仅+0.04,boost 0.4/0.8/1.2与β=1.4构成66.47-66.57平坦带,远低于T2约1分噪声线——坐标侧恢复强度维度(均匀β与逐类型β)均已饱和在平台顶点
  4. 带预注册回退条件(off-control逐位复现父)的探索节点即使假设被否证也能安全落地:提交默认关闭机制,榜分零损失,同时为搜索树排除一个方向
mechanism_active否
下一步建议
  1. 针对shape_scale组(51.86最弱,occupancy_dice skill仅0.507):不要再调恢复强度β,改测型间几何——对各类型质心间的距离矩阵做比例缩放(保留型内形状、调整型间布局),节点19只测了质心平移未测距离比缩放
  2. 针对cell_state组(72.43):试保留单细胞稀疏结构的表达侧变换,如按插值时间t做逐基因秩对齐或共变保持的逐基因仿射,避免节点15/22/24已失败的类型均值插值/矩校正路线
  3. 任何逐类型坐标机制先在日志里输出类型细胞数分布再定网格范围,并要求off-control逐位array_equal复现父输出后才允许提交非默认配置

对话摘要?每个角色和大模型对话的统计:轮数、工具调用、用时、token 数和最后的回答摘录;原始记录只给路径。

只给统计和最后回答的摘录;完整对话请到原始记录位置里列出的文件看。

分析员

角色?调研员写计划、工程师改代码、分析员解读分数、审查员检查作弊。分析员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数?大模型一共回复了几轮(每轮可以调用多个工具)。3
工具调用?大模型调用读文件、执行命令等工具的次数,按工具名统计。共 3 次:bash 2、write 1
用时不到 1 分
token 数?输入 / 输出(含思考)的 token 数,来自接口返回的用量。输入 16,203 · 输出 1,069 · 思考 376
任务(第一行)分析节点 n28 的打分结果,写 ANALYSIS.json
最后的回答(摘录)
ANALYSIS.json written
原始记录位置?完整对话记录在 Spark 上的文件路径;看板不复制原始内容。/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/28/analyst.jsonl 9 KB
/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/28/analyst.stderr

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数32
工具调用共 34 次:bash 20、edit 10、todowrite 2、read 1、write 1
用时16 分
token 数输入 53,702 · 输出 13,316 · 思考 10,954
任务(第一行)按计划修改程序:自适应逐类型恢复强度:按细胞数缩放β,消除小类型PCA噪声过恢复
最后的回答(摘录)
**做了什么**:按 PLAN T2HI-05 实现逐类型自适应 β_eff=β·w(n)(对数细胞数斜坡,env 控制,含反向 boost 变体);proxy 上类型细胞数为 60–2698,PLAN 名义网格(n_ceil≤80)恒 w=1、逐位等于父,故把 n_floor/n_ceil 扩到观测范围实测机制。

**查分结果**(A 半,同会话 15 次查询):PLAN 方向一致更差(up 60/500 各 β:66.17–66.36 vs 基线 66.528,d2 raw 0.039→0.041–0.045)——小类型恢复平均方向正确,假设被否证;反向(小类型加恢复,boost=0.8)最佳 66.567,仅 +0.04,噪声内的平坦带。提交默认 ADAPTIVE=0,逐位复现父 17(已验证 X/obsm array_equal、seed 确定、vec-check 通过,本会话查分 66.528 与父文件一致)。

**下一步最值得试**:坐标侧恢复强度维度已饱和(均匀 β 与逐类型 β 均在平台顶点);表达两组(~72 分)和 cell_state 从未被坐标机制触动,收益空间在表达侧——但节点 15/22/24 的类型均值插值与矩校正均已失败,可试保留单细胞稀疏结构的表达侧变换(如按 t 的基因级秩对齐或共变保持的逐基因仿射),或转向 shape_scale 组的 occupancy_dice(skill 仅 ~0.52,对型间质心几何敏感,节点 19 的质心恢复失败但只测了 γ 平移、未测型间距离比缩放)。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/28/engineer.jsonl 181 KB
/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/28/engineer.stderr

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时4 分
token 数输入 18,769 · 输出 3,528 · 思考 8,192
任务(第一行)为节点 n28(改进,父节点 n17)写改进计划 PLAN.json
最后的回答(摘录)
 scale 0.512,均贴近地板0.5)。METHOD.md承认小类型(5–20细胞)的PCA特征值噪声大、仅靠clip[0.5,2]兜底、未逐型核验。当前所有≥5细胞的类型统一用β=1.3,但5细胞型的3维协方差只有2个自由度,特征值估计极不稳定,过恢复(β>1)在此类上可能是随机的有害形变。父节点ANALYSIS明确建议'把恢复强度按类型细胞数自适应(n≥50用更大β,小类型用更小β或跳过)'。兄弟节点19(质心恢复)和22(表达插值)均已失败,坐标侧逐型自适应恢复是剩余未试的结构改进。",
  "approach": "在父17管线的aniso_restore步骤中,把全局β替换为逐类型有效值 β_eff = β_global * w(n_type),其中 w(n) = clip((log2(n) - log2(n_floor)) / (log2(n_ceil) - log2(n_floor)), 0, 1)。n_floor默认10(低于此跳过恢复),n_ceil默认50(达到此用满β)。即:5–9细胞的类型跳过;10–49细胞的类型按对数比例线性增加恢复强度;≥50细胞的类型用完整β_global。关键参数初值与搜索范围:β_global ∈ {1.3, 1.5, 1.8}(父节点β=1.3是在统一β下的最优,自适应后大类型可能需要更强恢复);n_floor ∈ {8, 10, 15};n_ceil ∈ {30, 50, 80}。网格共27个配置,每配置~3s,总计<2分钟。用vec-score A半快速筛选:先跑n_floor=10, n_ceil=50, β_global=1.3作为基线对比父17,确认方向后扫β_global,再扫n_floor/n_ceil。单输入阶段退路不变(copy_last分支在机制之前返回)。最终提交配置必须在β_eff全部为0时(即n_floor设为无穷大或加env开关T2HI_ANISO_ADAPTIVE=0)逐位复现父17输出。",
  "expected_groups": ["shape_scale"],
  "risks": "1) 收益可能仍在噪声内(<1分):父节点统一β已获+0.37,自适应只是消除小类型的随机有害形变,净增益可能很小。Engineer应观察d2_shape和occupancy_dice的raw值是否一致改善(方向一致才可信)。2) 小类型被跳过后,这些类型的形状完全由收缩决定(压缩态),可能反而更差——如果n_floor=15比n_floor=10差,说明小类型的恢复虽噪声大但平均方向正确。3) 大类型β提高后nbd可能劣化(型内展开过度):监控nbd raw,若>0.042则β_global不超过1.3。4) 30分钟时限充裕(网格<2分钟),风险低。",
  "family_id": "T2HI-05",
  "mechanism": "将各向异性方差恢复的强度从全局常数β改为逐类型自适应值,权重由该类型细胞数的对数决定:大类型(PCA估计可靠)用满或超额恢复,小类型(PCA噪声大)减弱或跳过恢复,消除小样本特征值噪声导致的随机过恢复形变。",
  "vs_constant_shift": "每型的恢复强度不同(由细胞数决定),每轴的缩放因子不同(由该型收缩前后方差比决定),且恢复方向沿该型自身的PCA主轴。这不是对所有细胞施加统一位移或统一缩放:两个细胞数不同的类型即使收缩程度相同,恢复强度也不同;同一类型内不同轴的缩放因子也不同。",
  "mechanism_evidence": "Engineer应打印每型的(n_cells, β_eff, per-axis ratios)日志。证据:(1) 大类型(≥50细胞)的逐轴缩放因子分布应与父节点β=1.3时一致(因为w=1);(2) 小类型(<15细胞)的缩放因子应更接近1(即更少形变);(3) d2_shape raw应从0.03989进一步下降(目标<0.038);(4) 如果nbd raw不劣于0.04153,说明小类型的过恢复确实在损害邻域配对。四组分中cell_state和expression_change应严格不变(机制只动坐标)。",
  "mechanism_off_control": "设env T2HI_ANISO_ADAPTIVE=0(或等效地n_floor=5且n_ceil=5使w恒=1),此时β_eff=β_global对所有≥5细胞类型成立,退化为父17的均匀β行为。预期差别:关闭自适应后输出应与父17逐位相同(array_equal验证);开启后小类型的坐标变化量应减小,大类型可能增大(若β_global>1.3)。",
  "sources": []
}
```
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/28/researcher.jsonl 14 KB
/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/28/researcher.stderr