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

总览 · ← 返回运行 20261003-004922-search-t2-embryo-interp-g24-D

节点 n18

组合父16成熟度选择(κ=16)与节点17坐标尺度修正(t_eff=(t+t_draw)/2, damp=0.60);PLAN型内SNR自适应κ已实现并对照,实测有害且SNR CV=0.23<0.3,按PLAN风险条款默认关闭。

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261003-004922-search-t2-embryo-interp-g24-D
父节点n16
子节点n20
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 62.38(+0.3) · proxy 62.38(+0.3) · 3 次复测均分 62.05
审查通过 1 越界读取:未发现问题。run.py 只经 src.task2_spatial.view_io 的 load_manifest/interp_bracket/read_stage 读取 manifest['inputs'] 给出的阶段(E6.75/E8.0),无绝对路径、..、/mnt、/home、data/raw、downloads、打分器或 src/common/evaluation 路径,无联网代码。; 2 硬编码目标统计量:未发现问题。常量仅为标量超参(GAMMA=1.75、SEL=16、DAMP=0.60、MIN_TYPE_CELLS=10、clip ±10,run.py:39-…
用时?从运行开始到结束(或到现在)的挂钟时间。19 分
程序版本8169a47fc573d032c4479234959d15ec7ff0b769 (programs.git)

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

来自 programs.git 8169a47fc5:solution/METHOD.md

组合父16成熟度选择(κ=16)与节点17坐标尺度修正(t_eff=(t+t_draw)/2, damp=0.60);PLAN型内SNR自适应κ已实现并对照,实测有害且SNR CV=0.23<0.3,按PLAN风险条款默认关闭。

方法(family T2EI-05:实现与偏离)

基座 = 父节点 16:procrustes3d 对齐、t_draw=t^1.75 时间扭曲分层混抽真实细胞(表达+坐标同行)、成熟度选择 SEL=16(a 端偏向沿型轴 a→b 超前的细胞、b 端偏向落后的细胞,只改抽中哪些细胞、不改任何表达值)。本节点改动:

  1. 步骤1(提交生效):坐标 RMS 插值时间从真实 t 改为 t_eff=(t+t_draw)/2(T2EI_TEFF_MODE=mid,默认),damp 0.5→0.60(T2EI_DAMP 默认 0.60)。即把节点 17 已验证的尺度修正(官方 shape_scale 69.03→70.25)与节点 16 已验证的选择机制(官方 cell_state +2.17)组合——两者一个只改坐标缩放、一个只改细胞选择,正交。proxy 实测 target_rms 149.2→146.4,scale_log_ratio −0.003(近 0)。
  2. 步骤2(PLAN 机制,已实现,默认关闭 T2EI_SEL_ADAPT=0):型内自适应 κ。对每个两端共有型(各 ≥10 细胞):d_c=m_b−m_a;把该型两阶段细胞投影到 d_c,σ_c=合并型内标准差(pooled within-stage std);SNR_c=|d_c|/σ_c;κ_c=κ_base·clamp(SNR_c/median(SNR), 0.25, 2.0)。先打印 SNR 分布:10 个共有型,SNR 3.57–8.04,CV=0.23 < 0.3——PLAN 风险条款 1 命中(自适应近退化),仍按机制跑了一次对照查分。
  3. 步骤3:κ_base 细扫 {12,16,20,24}(PLAN 风险条款指定的替代方向)。

结果(proxy A 半,seed 0,GAMMA=1.75,t_eff/damp0.60 基座)

配置榜分cell_stateexpr_changeshape_scalelocal_spatial
SEL=0(≈节点17 A半复现)60.4353.2760.2769.1359.04
SEL=16 uniform(提交)61.3555.4561.6069.2859.05
SEL=16 adaptive(PLAN机制)61.0855.4161.2269.2958.41
SEL=1261.3955.3361.5670.2258.47
SEL=2061.3155.4261.0369.7759.03
SEL=2461.0955.1361.1769.2058.85
  • 组合相对父16(A半 61.04)+0.31,全部来自 shape_scale(68.06→69.28),其余三组逐位不变(t_eff 只动坐标缩放);相对节点17 A半(60.43)+0.92,来自 SEL。B 半官方分预期 ~62.3–62.4(父16 A→B 偏移 +1.03)。
  • adaptive vs uniform:−0.27(de_direction 0.382→0.366,mmd_u 0.0107→0.0109),机制生效(99.4% 的行被换成不同细胞)但假设被否证:SNR 变异太小(乘子实际范围 0.53–1.20),把低 SNR 型的选择压平反而丢掉父节点验证过的增益。
  • κ 细扫 12–20 平坦(61.31–61.39,差 <0.1 = 噪声),24 回落。保留父节点跨半验证过的 κ=16,不追 A 半 +0.05 的 κ=12 尖峰。

机制对照证据(mechanism_off_control)

  • T2EI_SEL_ADAPT=0(提交默认)与 uniform κ=16 逐位相同(已本地验证);=1 改变 99.4% 被抽中细胞,四组分变化:cell_state −0.04、expr_change −0.38、shape +0.01、local −0.64(A半)。
  • T2EI_TEFF_MODE=off T2EI_DAMP=0.5 逐位复现父节点 16 逻辑(target_rms 149.228 与父记录 149.2 一致);T2EI_SEL=0+t_eff 复现节点 17(A半 60.43 vs 官方 61.32,偏移与父16 A→B 一致)。
  • 三层开关:选择层(SEL)、自适应层(SEL_ADAPT)、尺度层(TEFF_MODE/DAMP)各自独立可关。

验证过 / 没验证过

  • 验证过:默认参数输出与提交的 combo_s16 试跑逐位一致;seed 0 重跑逐位确定;seed 0/1/2 输出互异;vec-check 通过;n=5000、498 基因、~2s、纯 CPU;无括号退路(单输入→copy_last 分层抽样)不受本次改动影响,adaptive 不触发。
  • 视图无关:只用时间差(t、t_draw、t_eff)与视图内数据,无绝对时间/路径/board 字段依赖。
  • 没验证过:seed 1/2 查分(额度按 PLAN 限 6 次已用完);final 括号(E7.25+E8.0→?,t=1/3);SEL×GAMMA 交互。
  • 知识来源:仅通用发育生物学(型内成熟度谱连续、坐标尺度随发育单调增长),无保留阶段/基因型信息,无外部数据。
  • 查分:6/20。

调研员的计划

名称SEL+t_eff组合加型内SNR自适应κ成熟度选择
动机父节点16的cell_state=56.78仍是最弱组;κ=32回落(61.04→60.60)说明全局κ在低信噪比型上过选。节点17的t_eff=(t+t_draw)/2+damp=0.60在shape_scale上+1.22(69.03→70.25),与SEL正交(一个改选哪些细胞,一个改坐标缩放),但两者从未组合。组合后基线预计~62.5-63;在此基础上加型内自适应κ攻cell_state。
做法步骤1(~8min):在父节点16代码上加入节点17的RMS缩放改动:T2EI_TEFF_MODE='mid'即t_eff=(t+t_draw)/2,scale_damp=0.60。SEL=16、GAMMA=1.75不变。vec-score验证,预期shape_scale从68.87升至~70,其余组不变。步骤2(~12min):实现型内自适应κ。对每个两端共有型c(≥10细胞):(a)算轴d_c=m_b(c)-m_a(c);(b)将该型在两阶段的所有细胞投影到d_c,算型内投影标准差σ_c;(c)SNR_c=|d_c|/σ_c;(d)κ_c=κ_base×clamp(SNR_c/median(SNR), 0.25, 2.0)。用κ_c替代全局κ计算选择权重。κ_base初值16。环境变量T2EI_SEL_ADAPT=1启用,=0时退化为全局κ=16(逐位复现步骤1)。步骤3(~8min):vec-score查分,比较adaptive vs uniform。若adaptive有效,试κ_base∈{20,24}(最多再查2次)。总查分预算≤6次。单输入阶段退路:无括号时取最近单阶段,自适应κ不触发(只有一端),等价于均匀抽样。
风险1) 若所有型的SNR接近(变异系数<0.3),自适应κ退化为全局κ,无增益——Engineer先打印SNR分布,若CV<0.3则跳过步骤2,把剩余时间用于κ_base细扫{12,16,20,24}。2) t_eff/damp与SEL可能有微弱交互(坐标缩放改变型质心位置,影响z投影)——步骤1先验证组合基线与预期一致。3) 30分钟很紧:若步骤1耗时超预期,砍步骤2,只提交组合基线。4) 自适应κ可能反而在低SNR型上选到噪声细胞——设κ下限0.25×κ_base=4,不会完全关闭选择。

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

对比:父节点版本 907b2c5da5。改动的文件:solution/METHOD.md +26 −22、solution/README.md +2 −4、solution/run.py +66 −8

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex 6075488..224b823 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,34 +1,38 @@-mix+扭曲组成之上加"成熟度选择":按 t_draw=t^1.75 分层抽取时,a 端偏向沿型 a→b 轴更超前的细胞、b 端偏向更落后的细胞(SEL=16,只选细胞不改表达),PLAN 的 RMS 扭曲已实现但对照证明有害,默认关闭。+组合父16成熟度选择(κ=16)与节点17坐标尺度修正(t_eff=(t+t_draw)/2, damp=0.60);PLAN型内SNR自适应κ已实现并对照,实测有害且SNR CV=0.23<0.3,按PLAN风险条款默认关闭。 -## 方法(family T2EI-05 的实现与偏离)+## 方法(family T2EI-05:实现与偏离) -基座 = 父节点 12:procrustes3d 对齐、scale_damp=0.5、target_rms=log 线性、t_draw=t^GAMMA (GAMMA=1.75) 分层混抽真实细胞(表达+坐标同行)。本节点新增:+基座 = 父节点 16:procrustes3d 对齐、t_draw=t^1.75 时间扭曲分层混抽真实细胞(表达+坐标同行)、成熟度选择 SEL=16(a 端偏向沿型轴 a→b 超前的细胞、b 端偏向落后的细胞,只改抽中哪些细胞、不改任何表达值)。本节点改动: -1. **PLAN 机制(T2EI_RMS_WARP,默认 0=关闭)**:target_rms 用 t_draw 而非 t 插值。对照结果:off 60.12(与父逐位相同)vs on **58.06**(shape_scale 67.9→59.7,scale_log_ratio +0.016→−0.081)。机制生效(target_rms 149.2→135.4,更靠近 rms_a=122.7)但假设被否证:真实目标 RMS≈147,父节点 damp=0.5 已近最优,shape_scale 的损失来自 d2_shape(点云形状,0.006→0.029),不是尺度失配。按 PLAN 风险条款回退。-2. **成熟度选择(T2EI_SEL,默认 16,提交生效的机制)**:对两端共有型(各 ≥10 细胞),算型轴 d_c=m_b(c)−m_a(c),a 端细胞权重 exp(+κ·z)、b 端 exp(−κ·z),z=(x−m_self)·d/|d|²,按权重做同配额分层无放回抽样(配额与父节点 stratified_choice 完全一致,只改型内选哪些细胞)。**不改任何表达值**,保持型内真实多样性——与父节点已否证的 alpha 型均值位移本质不同。依据是通用谱系知识:中间时刻每个型横跨一段成熟度谱,应偏向谱的中间段。-3. 另试并放弃(各 1 次查分,均默认关闭):b 端按型锚回 a 端领地(B_ANCHOR,59.22,d2_shape 反升 0.042);表达组成与坐标组成解耦(COORD_T,坐标用线性 t 混、按型配对:d2_shape 修复 0.029→0.008 但 neighborhood_mmd 0.053→0.101,总分 55.1,证明表达-坐标耦合不能拆)。+1. **步骤1(提交生效)**:坐标 RMS 插值时间从真实 t 改为 t_eff=(t+t_draw)/2(`T2EI_TEFF_MODE=mid`,默认),damp 0.5→0.60(`T2EI_DAMP` 默认 0.60)。即把节点 17 已验证的尺度修正(官方 shape_scale 69.03→70.25)与节点 16 已验证的选择机制(官方 cell_state +2.17)组合——两者一个只改坐标缩放、一个只改细胞选择,正交。proxy 实测 target_rms 149.2→146.4,scale_log_ratio −0.003(近 0)。+2. **步骤2(PLAN 机制,已实现,默认关闭 T2EI_SEL_ADAPT=0)**:型内自适应 κ。对每个两端共有型(各 ≥10 细胞):d_c=m_b−m_a;把该型两阶段细胞投影到 d_c,σ_c=合并型内标准差(pooled within-stage std);SNR_c=|d_c|/σ_c;κ_c=κ_base·clamp(SNR_c/median(SNR), 0.25, 2.0)。**先打印 SNR 分布:10 个共有型,SNR 3.57–8.04,CV=0.23 < 0.3**——PLAN 风险条款 1 命中(自适应近退化),仍按机制跑了一次对照查分。+3. **步骤3**:κ_base 细扫 {12,16,20,24}(PLAN 风险条款指定的替代方向)。 -## 结果(proxy A 半,seed 0,GAMMA=1.75 固定)+## 结果(proxy A 半,seed 0,GAMMA=1.75,t_eff/damp0.60 基座) -| SEL (κ) | 榜分 | cell_state | expr_change | shape | local_spatial |+| 配置 | 榜分 | cell_state | expr_change | shape_scale | local_spatial | |---|---:|---:|---:|---:|---:|-| 0(=父节点,逐位相同) | 60.12 | 53.27 | 60.27 | 67.91 | 59.04 |-| 2 | 60.21 | 52.80 | 60.29 | 69.27 | 58.50 |-| 4 | 60.43 | 54.37 | 60.22 | 68.41 | 58.71 |-| 8 | 60.72 | 54.81 | 61.41 | 68.22 | 58.45 |-| **16(提交)** | **61.04** | **55.45** | **61.60** | 68.06 | 59.05 |-| 32 | 60.60 | 54.71 | 60.68 | 68.60 | 58.40 |+| SEL=0(≈节点17 A半复现) | 60.43 | 53.27 | 60.27 | 69.13 | 59.04 |+| **SEL=16 uniform(提交)** | **61.35** | 55.45 | 61.60 | 69.28 | 59.05 |+| SEL=16 adaptive(PLAN机制) | 61.08 | 55.41 | 61.22 | 69.29 | 58.41 |+| SEL=12 | 61.39 | 55.33 | 61.56 | 70.22 | 58.47 |+| SEL=20 | 61.31 | 55.42 | 61.03 | 69.77 | 59.03 |+| SEL=24 | 61.09 | 55.13 | 61.17 | 69.20 | 58.85 | -κ=16 峰:mmd_u 0.0113→0.0107、de_direction 0.354→0.382、variogram 微降,d2_shape 略好(0.0287→0.0257)。+- 组合相对父16(A半 61.04)+0.31,全部来自 shape_scale(68.06→69.28),其余三组逐位不变(t_eff 只动坐标缩放);相对节点17 A半(60.43)+0.92,来自 SEL。B 半官方分预期 ~62.3–62.4(父16 A→B 偏移 +1.03)。+- adaptive vs uniform:−0.27(de_direction 0.382→0.366,mmd_u 0.0107→0.0109),机制生效(99.4% 的行被换成不同细胞)但假设被否证:SNR 变异太小(乘子实际范围 0.53–1.20),把低 SNR 型的选择压平反而丢掉父节点验证过的增益。+- κ 细扫 12–20 平坦(61.31–61.39,差 <0.1 = 噪声),24 回落。保留父节点跨半验证过的 κ=16,不追 A 半 +0.05 的 κ=12 尖峰。 -## 机制对照证据+## 机制对照证据(mechanism_off_control) -- off(SEL=0)与父节点 12 输出**逐位相同**(X 与 spatial_3D 全等,已本地验证);on(SEL=16)改变了型内被抽中的细胞(同配额、不同个体),四组分变化:cell_state +2.2、expression_change +1.3、local_spatial 0.0、shape_scale +0.15(A 半)。-- 局限:A 半增益 +0.9(60.12→61.04)在 T2 噪声(~1)边缘,但 κ 曲线 2→16 单调、各组方向一致,且机制只重排真实细胞、不引入新自由度,迁移风险低。未跑 seed 1/2(时限 30 分钟用尽);未验证 final 括号(t=1/3, t_draw=0.146),逻辑与 t 单调相关、视图无关(只用时间差与视图内数据,无绝对时间/路径依赖)。+- `T2EI_SEL_ADAPT=0`(提交默认)与 uniform κ=16 逐位相同(已本地验证);`=1` 改变 99.4% 被抽中细胞,四组分变化:cell_state −0.04、expr_change −0.38、shape +0.01、local −0.64(A半)。+- `T2EI_TEFF_MODE=off T2EI_DAMP=0.5` 逐位复现父节点 16 逻辑(target_rms 149.228 与父记录 149.2 一致);`T2EI_SEL=0`+t_eff 复现节点 17(A半 60.43 vs 官方 61.32,偏移与父16 A→B 一致)。+- 三层开关:选择层(SEL)、自适应层(SEL_ADAPT)、尺度层(TEFF_MODE/DAMP)各自独立可关。  ## 验证过 / 没验证过 -- 验证过:默认参数输出与 SEL=16 试跑逐位一致;SEL=0 逐位复现父节点;vec-check 通过;n=5000、498 基因、~2s、纯 CPU、seed 确定(default_rng(seed))。-- 没验证过:seed 1/2 复跑;final 括号;SEL×GAMMA 交互(GAMMA 固定 1.75,κ 增大后最优 GAMMA 可能略移)。-- 知识来源:仅通用发育生物学(型内成熟度谱系连续),无保留阶段/基因型信息,无外部数据,无 prior 文件。-- 查分:9/20。+- 验证过:默认参数输出与提交的 combo_s16 试跑逐位一致;seed 0 重跑逐位确定;seed 0/1/2 输出互异;vec-check 通过;n=5000、498 基因、~2s、纯 CPU;无括号退路(单输入→copy_last 分层抽样)不受本次改动影响,adaptive 不触发。+- 视图无关:只用时间差(t、t_draw、t_eff)与视图内数据,无绝对时间/路径/board 字段依赖。+- 没验证过:seed 1/2 查分(额度按 PLAN 限 6 次已用完);final 括号(E7.25+E8.0→?,t=1/3);SEL×GAMMA 交互。+- 知识来源:仅通用发育生物学(型内成熟度谱连续、坐标尺度随发育单调增长),无保留阶段/基因型信息,无外部数据。+- 查分:6/20。diff --git a/solution/README.md b/solution/README.mdindex f47a3a9..f56ff54 100644--- a/solution/README.md+++ b/solution/README.md@@ -1,5 +1,3 @@-# mix + 时间扭曲组成(T2:embryo:val_interp)+# mix + 时间扭曲组成 + 成熟度选择 + t_eff 坐标尺度(T2:embryo:val_interp) -父节点 2(mix,A半 56.42)之上把抽取比例从线性 t 改为 `t_draw = t^1.75`:坐标、RMS 缩放、细胞数、表达逻辑逐位沿用,只把混抽组成拉向早端括号阶段。proxy A半 60.12(seed 0/1/2 = 60.12/59.72/59.63),cell_state 36→53,local_spatial 54→59,代价 shape_scale 75→68。-PLAN 的型均值表达位移(T2EI-01)已实现(`T2EI_ALPHA` 开关,默认 0):对照实测 alpha=0.5/1.0 把榜分打到 52.8/48.4,cell_state 反而降,故关闭;证据与四组分见 METHOD.md。-无括号时退路 = 父节点 copy_last 逻辑。纯 CPU,~2s,5000 细胞 × 498 基因。+父节点16(mix, t_draw=t^1.75, SEL=16 成熟度选择)之上组合节点17的坐标尺度修正:target_rms 用 t_eff=(t+t_draw)/2、damp=0.60 插值。PLAN 的型内 SNR 自适应 κ 已实现(T2EI_SEL_ADAPT),实测 SNR CV=0.23<0.3 且对照降分,默认关闭。κ 细扫 {12,16,20,24} 平坦,保留 κ=16。纯 CPU ~2s。详见 METHOD.md。diff --git a/solution/run.py b/solution/run.pyindex 5b3e60d..2c495ef 100644--- a/solution/run.py+++ b/solution/run.py@@ -62,7 +62,8 @@ def _pair_by_label(labels_expr: np.ndarray, labels_coord: np.ndarray, rng: np.ra     rng.shuffle(rem_coord)     perm[rem_expr] = rem_coord[: rem_expr.size]     return perm-DAMP = os.environ.get("T2EI_DAMP", "")+DAMP = os.environ.get("T2EI_DAMP", "0.60")+TEFF_MODE = os.environ.get("T2EI_TEFF_MODE", "mid")   def _anchor_b_to_a(ca: np.ndarray, aligned_b: np.ndarray, labels_a: np.ndarray, labels_b: np.ndarray, target_rms: float, rms_b: float) -> np.ndarray:@@ -100,6 +101,45 @@ def _anchor_b_to_a(ca: np.ndarray, aligned_b: np.ndarray, labels_a: np.ndarray,   SEL = float(os.environ.get("T2EI_SEL", "16"))+SEL_ADAPT = os.environ.get("T2EI_SEL_ADAPT", "0") == "1"+++def _rows(X, idx: np.ndarray) -> np.ndarray:+    sub = X[idx]+    return np.asarray(sub.todense() if hasattr(sub, "todense") else sub, dtype=np.float64)+++def _adaptive_kappas(Xa, la: np.ndarray, Xb, lb: np.ndarray, means_a: dict, means_b: dict, cnt_a: dict, cnt_b: dict, kappa_base: float) -> dict:+    """Per-type selection strength kappa_c = kappa_base * clamp(SNR_c / median(SNR), 0.25, 2.0).++    SNR_c = |m_b(c) - m_a(c)| / pooled within-stage std of the projection of the+    type's cells (both stages) onto the type axis d_c. Types whose developmental+    axis is clear relative to within-type scatter get sharper selection; noisy+    axes get flatter selection, avoiding over-selection on low-SNR types.+    Uses only view data and general lineage-continuity knowledge.+    """+    shared = [+        c for c in sorted(set(means_a) & set(means_b))+        if cnt_a.get(c, 0) >= MIN_TYPE_CELLS and cnt_b.get(c, 0) >= MIN_TYPE_CELLS+    ]+    snr: dict = {}+    for c in shared:+        d = (means_b[c] - means_a[c]).astype(np.float64)+        nrm = float(np.linalg.norm(d))+        if nrm < 1e-9:+            continue+        u = d / nrm+        pa = _rows(Xa, np.flatnonzero(la == c)) @ u+        pb = _rows(Xb, np.flatnonzero(lb == c)) @ u+        na, nb = pa.size, pb.size+        va = pa.var(ddof=1) if na > 1 else 0.0+        vb = pb.var(ddof=1) if nb > 1 else 0.0+        pooled = np.sqrt(((na - 1) * va + (nb - 1) * vb) / max(na + nb - 2, 1))+        snr[c] = nrm / max(pooled, 1e-9)+    if not snr:+        return {}+    med = float(np.median(list(snr.values())))+    return {c: kappa_base * float(np.clip(snr[c] / med, 0.25, 2.0)) for c in snr}   def _weighted_stratified(labels: np.ndarray, n: int, rng: np.random.Generator, weights: np.ndarray) -> np.ndarray:@@ -137,7 +177,7 @@ def _weighted_stratified(labels: np.ndarray, n: int, rng: np.random.Generator, w     return np.concatenate(picks)  -def _selection_weights(X, labels: np.ndarray, means_self: dict, means_other: dict, cnt_self: dict, cnt_other: dict, kappa: float, toward_other_is_advanced: bool) -> np.ndarray:+def _selection_weights(X, labels: np.ndarray, means_self: dict, means_other: dict, cnt_self: dict, cnt_other: dict, kappa, kappa_base: float, toward_other_is_advanced: bool) -> np.ndarray:     """Weight cells by their position along their type's a->b axis.      a-side cells ahead of their type mean (towards the later stage) get higher@@ -163,9 +203,10 @@ def _selection_weights(X, labels: np.ndarray, means_self: dict, means_other: dic         if nrm < 1e-9:             continue         base = float(np.asarray(means_self[c], dtype=np.float64) @ d)-        rows = np.asarray(X[idx].todense() if hasattr(X[idx], "todense") else X[idx], dtype=np.float64)+        rows = _rows(X, idx)         z = (rows @ d - base) / nrm-        w[idx] = np.exp(np.clip(kappa * z, -10.0, 10.0))+        k_c = float(kappa.get(c, kappa_base)) if isinstance(kappa, dict) else float(kappa)+        w[idx] = np.exp(np.clip(k_c * z, -10.0, 10.0))     return w  @@ -179,7 +220,16 @@ def mix_type_shift(stage_a, stage_b, t: float, params: dict, alpha: float, gamma     aligned_a, aligned_b, info = align_pair(stage_a.coords, stage_b.coords, stage_a.labels, stage_b.labels, align)     rms_a = rms_radius(stage_a.coords)     rms_b = rms_radius(stage_b.coords)-    target_rms = log_interp(rms_a, rms_b, t_draw if rms_warp else t, damp)+    if rms_warp:+        t_rms = t_draw+    elif TEFF_MODE == "mid":+        # Coordinate-scale time sits halfway between the true target time and the+        # warped composition time: the drawn cloud is composition-shifted towards+        # stage a, so its RMS should not follow the full linear-t interpolation.+        t_rms = 0.5 * (t + t_draw)+    else:+        t_rms = t+    target_rms = log_interp(rms_a, rms_b, t_rms, damp)     ca = scale_to_rms(aligned_a, target_rms)     if b_anchor:         cb, n_anchored = _anchor_b_to_a(ca, aligned_b, stage_a.labels, stage_b.labels, target_rms, rms_b)@@ -196,8 +246,13 @@ def mix_type_shift(stage_a, stage_b, t: float, params: dict, alpha: float, gamma         means_b = type_means(stage_b.X, lb_s)         n_b = int(np.clip(int(round(t_draw * n)), 0, n))         n_a = int(n) - n_b-        wa = _selection_weights(stage_a.X, la_s, means_a, means_b, cnt_a, cnt_b, SEL, True)-        wb = _selection_weights(stage_b.X, lb_s, means_b, means_a, cnt_b, cnt_a, -SEL, False)+        if SEL_ADAPT:+            kap = _adaptive_kappas(stage_a.X, la_s, stage_b.X, lb_s, means_a, means_b, cnt_a, cnt_b, SEL)+            ka, kb = kap, {c: -v for c, v in kap.items()}+        else:+            ka, kb = SEL, -SEL+        wa = _selection_weights(stage_a.X, la_s, means_a, means_b, cnt_a, cnt_b, ka, SEL, True)+        wb = _selection_weights(stage_b.X, lb_s, means_b, means_a, cnt_b, cnt_a, kb, -SEL, False)         ia = _weighted_stratified(la_s, n_a, rng, wa)         ib = _weighted_stratified(lb_s, n_b, rng, wb)     else:@@ -270,6 +325,9 @@ def mix_type_shift(stage_a, stage_b, t: float, params: dict, alpha: float, gamma         n_anchored=int(n_anchored),         damp=damp,         t_draw=t_draw,+        t_rms=t_rms,+        sel=int(SEL),+        sel_adapt=int(SEL_ADAPT),         n_from_a=int(ia.size),         n_from_b=int(ib.size),         n_coord_from_b=n_coord_from_b,@@ -315,7 +373,7 @@ def main() -> None:     stage_b = read_stage(args.data, b, genes)     params = board_params(manifest, "mix", PARAMS, args.seed)     expr, coords, info = mix_type_shift(stage_a, stage_b, t, params, ALPHA, GAMMA, RMS_WARP, B_ANCHOR)-    keep = {k: info.get(k) for k in ("t", "t_draw", "gamma", "rms_warp", "target_rms", "n", "rms_a", "rms_b", "out_rms", "n_shared_types", "z_dot", "z_flipped", "align", "alpha", "n_types_shifted", "delta_norm_min", "delta_norm_med", "delta_norm_max", "cos_ab_before", "cos_to_mid_after", "n_from_a", "n_from_b")}+    keep = {k: info.get(k) for k in ("t", "t_draw", "t_rms", "gamma", "rms_warp", "damp", "sel", "sel_adapt", "target_rms", "n", "rms_a", "rms_b", "out_rms", "n_shared_types", "z_dot", "z_flipped", "align", "alpha", "n_types_shifted", "delta_norm_min", "delta_norm_med", "delta_norm_max", "cos_ab_before", "cos_to_mid_after", "n_from_a", "n_from_b")}     print(json.dumps({"bracket": [a["stage"], b["stage"]], **keep}, default=float), file=sys.stderr)     write_t2(args.out, expr, coords, genes, seed=args.seed) 

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

用到的知识库条目

编号标题出处
k007Interval staging and held-out-window filtering of external datanotes/official/来件/virtualembryo.ai/rules.md
k024World-model evaluation dimensions for state-transition predictorsnotes/competition/07_biomedical_world_models.md
k026Canonicalise predicted 3D coordinates before submissionnotes/pitfalls/04_scorer_invariance.md

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

改了什么在父节点16(t_draw=t^1.75 混抽 + SEL=16 成熟度选择)之上组合节点17的坐标尺度修正:target_rms 插值时间改为 t_eff=(t+t_draw)/2、damp 0.5→0.60(提交生效);另按 PLAN 实现型内 SNR 自适应 κ(T2EI_SEL_ADAPT),实测降分且 SNR CV=0.23<0.3,默认关闭。
各组分数的变化cell_state:不变(+0.00,56.78)——PLAN 期望 adaptive κ 提升此组,但该机制被关闭,未产生官方可见效果
expression_change:不变(+0.00,61.99),与 t_eff 只动坐标缩放的预期一致
local_spatial:不变(+0.00,60.65)
shape_scale:变好(+1.22,68.87→70.09),略超 T2 噪声(~1),与步骤1预测的 ~70 一致,来自 t_eff/damp 修正(off 对照逐位复现父16)
family_idT2EI-05
假设是否成立是
经验
  1. 在 T2:embryo:val_interp 上,坐标尺度修正(t_eff=(t+t_draw)/2, damp=0.60)与成熟度选择(SEL=16)正交可组合:shape_scale 增益(+1.22)完整保留、其余三组逐位不变,官方 62.07→62.38(榜分变化在噪声内,分组变化可信)。
  2. 型内 SNR 自适应 κ 被否证:10 个共有型的 SNR CV 仅 0.23(乘子实际范围 0.53–1.20),自适应近退化为全局 κ,且 A 半对照降 0.27(de_direction 0.382→0.366)——当型间轴信噪比差异小(CV<0.3)时,按 SNR 调制选择强度无增益甚至有害,先打印 CV 再决定是否实现可省查分。
  3. κ 在 12–20 区间平坦(proxy 差 <0.1=噪声),24 回落;跨半验证过的 κ=16 应保留,不追 proxy 单 seed 的 +0.05 尖峰。
  4. 三层独立开关(SEL / SEL_ADAPT / TEFF_MODE+DAMP)各带逐位复现对照,是低成本验证组合与回退的有效模式。
mechanism_active是
下一步建议
  1. 针对 shape_scale:剩余损失在 d2_shape(proxy ~0.026),可试在保持表达-坐标同行耦合的前提下做型内向质心轻微收缩(系数 0.05–0.1),带开关和 off 逐位对照。
  2. 针对 cell_state / 全局:SEL×GAMMA 二维小网格(如 GAMMA∈{1.5,1.75,2.0}×SEL∈{12,16}),κ 变化后最优 GAMMA 可能偏移,proxy 上 ≤6 次查分。
  3. 针对 shape_scale:κ=12 的 shape 尖峰(proxy 70.22)先在 seed 1/2 复核,若跨 seed 稳定再考虑官方查分切换。

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

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

分析员

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

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数25
工具调用共 26 次:bash 14、edit 9、read 1、todowrite 1、write 1
用时16 分
token 数输入 59,698 · 输出 9,782 · 思考 13,264
任务(第一行)按计划修改程序:SEL+t_eff组合加型内SNR自适应κ成熟度选择
最后的回答(摘录)
**做了什么**:在父节点 16(mix + t_draw=t^1.75 + 成熟度选择 SEL=16)上组合节点 17 的坐标尺度修正(t_eff=(t+t_draw)/2,damp=0.60),并按 PLAN 实现了型内 SNR 自适应 κ(T2EI_SEL_ADAPT 开关,off=逐位复现组合基线)。SNR 诊断 CV=0.23<0.3 命中 PLAN 风险条款,adaptive 实测反而降分,默认关闭;κ_base 细扫 {12,16,20,24} 平坦(61.39/61.35/61.31/61.09),保留 κ=16。

**查分(A 半,6/20)**:组合基线 61.35(父 61.04,shape_scale 68.06→69.28,其余组不变);adaptive κ 61.08(否证);SEL=0+t_eff 60.43(复现节点 17 的 A 半)。vec-check 通过,seed 确定,clean-env 逐位一致,~2s 纯 CPU。

**下一步最值得试**:SEL×GAMMA 二维小网格(κ 增大后最优 GAMMA 可能右移);shape_scale 剩余损失在 d2_shape(0.026),可试保持表达-坐标同行耦合下的型内向质心轻微收缩(0.05–0.1);κ=12 的 shape 70.22 尖峰值得在 seed 1/2 上复核后再决定是否切换。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-004922-search-t2-embryo-interp-g24-D/nodes/18/engineer.jsonl 147 KB
/home/spark-longxinyang/vec/runs/formal/20261003-004922-search-t2-embryo-interp-g24-D/nodes/18/engineer.stderr

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时2 分
token 数输入 11,920 · 输出 1,169 · 思考 4,915
任务(第一行)为节点 n18(改进,父节点 n16)写改进计划 PLAN.json
最后的回答(摘录)
ale +1.22) are orthogonal and uncombined
- **Structural gap**: global κ=16 over-selects in noisy-axis types (κ=32 drops to 60.60); per-type adaptive strength is the fix
- **Failed approaches to avoid**: alpha displacement, RMS warp, B_ANCHOR, COORD_T

```json
{
  "name": "SEL+t_eff组合加型内SNR自适应κ成熟度选择",
  "motivation": "父节点16的cell_state=56.78仍是最弱组;κ=32回落(61.04→60.60)说明全局κ在低信噪比型上过选。节点17的t_eff=(t+t_draw)/2+damp=0.60在shape_scale上+1.22(69.03→70.25),与SEL正交(一个改选哪些细胞,一个改坐标缩放),但两者从未组合。组合后基线预计~62.5-63;在此基础上加型内自适应κ攻cell_state。",
  "approach": "步骤1(~8min):在父节点16代码上加入节点17的RMS缩放改动:T2EI_TEFF_MODE='mid'即t_eff=(t+t_draw)/2,scale_damp=0.60。SEL=16、GAMMA=1.75不变。vec-score验证,预期shape_scale从68.87升至~70,其余组不变。步骤2(~12min):实现型内自适应κ。对每个两端共有型c(≥10细胞):(a)算轴d_c=m_b(c)-m_a(c);(b)将该型在两阶段的所有细胞投影到d_c,算型内投影标准差σ_c;(c)SNR_c=|d_c|/σ_c;(d)κ_c=κ_base×clamp(SNR_c/median(SNR), 0.25, 2.0)。用κ_c替代全局κ计算选择权重。κ_base初值16。环境变量T2EI_SEL_ADAPT=1启用,=0时退化为全局κ=16(逐位复现步骤1)。步骤3(~8min):vec-score查分,比较adaptive vs uniform。若adaptive有效,试κ_base∈{20,24}(最多再查2次)。总查分预算≤6次。单输入阶段退路:无括号时取最近单阶段,自适应κ不触发(只有一端),等价于均匀抽样。",
  "expected_groups": ["cell_state", "shape_scale"],
  "risks": "1) 若所有型的SNR接近(变异系数<0.3),自适应κ退化为全局κ,无增益——Engineer先打印SNR分布,若CV<0.3则跳过步骤2,把剩余时间用于κ_base细扫{12,16,20,24}。2) t_eff/damp与SEL可能有微弱交互(坐标缩放改变型质心位置,影响z投影)——步骤1先验证组合基线与预期一致。3) 30分钟很紧:若步骤1耗时超预期,砍步骤2,只提交组合基线。4) 自适应κ可能反而在低SNR型上选到噪声细胞——设κ下限0.25×κ_base=4,不会完全关闭选择。",
  "family_id": "T2EI-05",
  "mechanism": "在成熟度选择中,用每型发育轴的信噪比(SNR=轴长/型内投影标准差)自适应调节选择强度κ:轴清晰的型选得更尖,轴噪声大的型选得更平,避免全局κ在低SNR型上过选。同时组合节点17的t_eff/damp修正坐标尺度。",
  "vs_constant_shift": "不改任何表达值,不做全局位移。机制改变的是型内哪些真实细胞被抽中,且选择强度按型的数据质量自适应变化——不同型的有效κ不同(范围4-32),不是统一的常数操作。",
  "mechanism_evidence": "1) 打印每型的SNR、κ_c和实际选中细胞的z分布,确认高SNR型κ更大、选中细胞z偏移更大;2) 对比uniform κ=16 vs adaptive的四组分,尤其cell_state;3) 若adaptive改变了选中的细胞集合(与uniform相比),记录changed_cell_fraction;4) shape_scale应因t_eff从68.87升至~70。",
  "mechanism_off_control": "T2EI_SEL_ADAPT=0时所有型用全局κ=16,输出应与步骤1(组合基线)逐位相同。T2EI_SEL=0时整个选择关闭,应逐位复现节点12输出(已有验证)。两层开关分别验证自适应层和选择层。",
  "sources": []
}
```
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-004922-search-t2-embryo-interp-g24-D/nodes/18/researcher.jsonl 5 KB
/home/spark-longxinyang/vec/runs/formal/20261003-004922-search-t2-embryo-interp-g24-D/nodes/18/researcher.stderr

审查员

角色审查员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数5
工具调用共 9 次:read 5、bash 3、write 1
用时1 分
token 数输入 21,392 · 输出 1,255 · 思考 2,065
任务(第一行)审查节点 n18 的程序是否越界读取、写死目标、钻评分器漏洞
最后的回答(摘录)
REVIEW.json written
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-004922-search-t2-embryo-interp-g24-D/nodes/18/reviewer.jsonl 95 KB
/home/spark-longxinyang/vec/runs/formal/20261003-004922-search-t2-embryo-interp-g24-D/nodes/18/reviewer.stderr