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

总览 · ← 返回运行 20261003-171955-search-t2-embryo-interp-chain-12h

节点 n8 在终选来历上

父节点 mix+类型级常数收敛位移之上,把位移改为逐细胞投影加权:细胞沿 Δ 方向已前伸的少移、极端的多移(w=clip(1∓λp,0.2,2.5),λ=6),型内分布向中间压缩而非刚性平移。

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261003-171955-search-t2-embryo-interp-chain-12h
父节点n5
子节点n11
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 61.75(+0.2) · proxy 61.75(+0.2) · 3 次复测均分 61.77
审查通过 1 越界读取:未发现问题——run.py 仅通过 --data 目录读入(load_manifest/read_stage/panel_genes,run.py:186-196),导入的是框架库 src.task2_spatial,无绝对路径、..、/mnt、下载或评分器路径。; 2 硬编码目标统计量:未发现问题——所有常量(α=5、λ=6、ε=1.0、|Δ|≥0.25、权重 clip [0.2,2.5]、scale_damp=0.5)是超参数而非目标统计量;Δ 与类型均值均由输入阶段现场计算(run.py:91-103),n 的上下限取自 manifest(run.py:80-81, 19…
用时?从运行开始到结束(或到现在)的挂钟时间。11 分
程序版本95a9992ba8ea487693c1e4f1900a39a895fd22d2 (programs.git)
导入自20261003-094242-search-t2-embryo-interp-g24-D-s2#8
备注re-scored at launch (origin 20261003-094242-search-t2-embryo-interp-g24-D-s2 node 8, score there 61.75)

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

来自 programs.git 95a9992ba8:solution/METHOD.md

父节点 mix+类型级常数收敛位移之上,把位移改为逐细胞投影加权:细胞沿 Δ 方向已前伸的少移、极端的多移(w=clip(1∓λp,0.2,2.5),λ=6),型内分布向中间压缩而非刚性平移。

方法(family T2EI-01,PLAN:型内投影加权异质位移)

保留父节点 5 全部管线(procrustes3d 对齐、scale_damp=0.5、按类型分层混抽 (1−t,t)、n=5000、共有类型 Δ=μ_b−μ_a 只保留 |Δ|≥0.25、nnz-only + clip≥0、坐标不动、α=5),只把常数位移改成逐细胞加权:

  1. 对每个共有类型 k、Δ≠0 的基因维度:a 侧细胞 i 计算偏差投影 p_i = dot(x_i − μ_a,k, Δ_k)/(‖Δ_k‖²+ε),ε=1.0;权重 w_i = clip(1 − λ·p_i, 0.2, 2.5);位移 x_i ← clip(x_i + α·t·w_i·Δ_k, 0),只作用于 x_i>0 的项。
  2. b 侧对称:p_i 相对 μ_b,k,w_i = clip(1 + λ·p_i, 0.2, 2.5),位移 −α·(1−t)·w_i·Δ_k。
  3. 直觉:已沿 Δ 方向伸展较远(更接近中间态)的细胞获得更小位移,极端细胞获得更大位移 → 型内端点双峰被压缩而非整块平移。
  4. λ=0 时 w≡1,退化为父节点常数位移(对照,验证逐位相同)。λ 默认 6.0,环境变量 T2_CONVERGE_LAMBDA / T2_CONVERGE_EPS 可覆盖,提交时保持打开。
  5. 单输入阶段退路:同父节点,分层复制最后观测阶段,无位移。坐标完全不动,表达-位置配对不因机制被破坏。

机制生效证据(seed 0,proxy E6.75+E8.0→E7.25,t=0.4,10 个共有类型全部位移)

  • 权重分布:λ=6 时 w_mean=1.096、w_std=0.652(≫0.05,投影有区分力;均值略高于 1 因下界 0.2/上界 2.5 的 clip 不对称)。λ=1/2/3 时 w_std=0.15/0.29/0.40,随 λ 单调。
  • 型内表达标准差比(after/before)0.920、型间均值距离比 0.804;零元结构保持(nnz-only 位移)。
  • λ=0 输出与父节点 run.py 输出逐位相同(X 与坐标 array_equal=True)——关闭对照通过。

对照与查分结果(全部为同一时段 A 半查分;父节点输出同日重查 = 60.55,此前变化量表中的 61.51 属另一次评分锚点,跨日绝对值不可直接比)

配置总分mmd_u skillvariogram skillneighborhood skillcell_state 组
λ=0(对照=父节点,逐位相同)60.550.5850.3710.58347.82
λ=0.560.600.5870.3740.58348.07
λ=1.060.650.5900.3760.58248.29
λ=2.060.670.5960.3730.58148.47
λ=3.060.690.5990.3710.58248.50
λ=6.0(提交)60.720.5990.3680.58548.33
λ=10.060.490.5920.3650.58747.88
λ=1/3, ε=0.160.65/60.690.590/0.5990.376/0.3710.582—
  • 收益来源是 mmd_u skill(0.585→0.599,随 λ 单调到 6 后在 10 回落),variogram 基本持平(0.371→0.368),neighborhood、DE 两项、形状三项不动。
  • 如实说明:同日同锚点下总收益 +0.17(60.55→60.72),低于 T2 约 1 分的查分噪声,PLAN 预期的 variogram 明显上升没有出现;只有 mmd_u 的单调改善是跨 λ 一致的方向性信号(护栏 mmd_u≥0.585、neighborhood≥0.58 均未破)。λ=10 过冲回落,平台在 3–6,取 λ=6。
  • 已验证:λ=0 逐位复现父节点;λ∈{0.5,1,2,3,6,10}、ε∈{0.1,1.0} 网格;vec-check 通过;默认参数输出与 λ=6 网格输出一致;无新增随机源,对 seed 确定。
  • 未验证:λ 与 α 的联合网格(α 固定 5);真实括号(跨度更窄、Δ 更小,投影 p 的尺度随 ‖Δ‖ 变化,λ 的最优值可能移动——ε=1.0 在 ‖Δ‖² 小时会稀释权重,跨括号迁移性存疑);proxy2/final 视图未跑(本节点只挂 proxy 尺子)。

知识来源

未使用新的生物学知识;Δ 向量、类型均值全部由 view 内两个输入阶段现场计算,无硬编码统计量,无保留阶段/基因型信息。

下一步建议

  • variogram 对"沿 Δ 的投影加权"不敏感,说明双峰残差主要不在 Δ 方向上;可试型内沿主成分的分位数压缩,或对 a/b 两侧细胞做型内 OT 配对后向配对中点收缩(保 nnz 结构)。
  • occupancy_dice skill 0.369 仍是形状组主要失分项,与表达机制正交,值得单独做坐标侧改进。

调研员的计划

名称型内投影加权异质位移:按细胞沿Δ方向的位置缩放位移量
动机父节点5的cell_state组49.28是四组最弱,其中variogram skill 0.389远低于地板0.5(得分仅4.86/12.5)。ANALYSIS指出型均值常数位移已接近上限,型内端点双峰未消。原因:同型所有细胞被同一Δ平移,a/b两侧仍是两个平移块,混合后基因共变结构(variogram)仍呈双峰。需要型内异质性使分布从'两块平移'变为'向中间压缩'。
做法在父节点run.py的mix_converge函数中,将常数位移改为逐细胞加权位移:

1. 对每个共有类型k,照旧计算Δ_k(|Δ|≥0.25过滤)。
2. 对a侧每个细胞i:计算偏差 d_i = x_i − μ_a,k(仅取Δ非零基因维度),投影 p_i = dot(d_i, Δ_k)/(dot(Δ_k,Δ_k)+ε),权重 w_i = clip(1 − λ·p_i, 0.2, 2.5)。位移 x_i ← clip(x_i + α·t·w_i·Δ_k, 0),仅作用于x_i>0的项。
3. b侧对称:p_i = dot(x_i−μ_b,k, Δ_k)/(dot(Δ_k,Δ_k)+ε),w_i = clip(1 + λ·p_i, 0.2, 2.5),x_i ← clip(x_i − α·(1−t)·w_i·Δ_k, 0),nnz-only。
4. 直觉:已沿Δ方向伸展较远的细胞(更接近中间态)获得更小位移,极端细胞获得更大位移→分布被压缩而非刚性平移,混合双峰减弱。
5. 参数:α=5(继承父节点),ε=1.0,λ初值1.0,网格λ∈{0, 0.5, 1.0, 2.0, 3.0}。λ=0退化为父节点(对照)。权重上下界[0.2,2.5]防止极端值。
6. 单输入阶段退路:同父节点,分层复制最后观测阶段,无位移。
7. vec-score快速筛选:先跑λ=0确认逐位复现父节点(56.36±噪声),再跑λ=1.0,若variogram skill>0.389则继续网格;若λ=1.0无改善则尝试ε=0.1。
8. 监控护栏:mmd_u skill≥0.585、neighborhood skill≥0.60、零元比例变化<0.02。若mmd_u skill<0.55则λ过大,回退。
风险1) 高维稀疏数据上投影p_i噪声大(多数基因维度为0),权重退化为常数→无改善;尽早发现:检查w_i的标准差,若<0.05则机制未生效,需改用仅对nnz维度计算投影。2) λ过大导致极端权重破坏型内结构→mmd_u/variogram反降;发现:λ=2时若总分<对照则停止增大λ。3) 30分钟内需完成实现+5个λ查分;实现只改_shift函数内几行,风险低。4) 收益可能<1分噪声;需λ=1和λ=2各跑一次确认方向一致性。

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

对比:父节点版本 ce70a2f10a。改动的文件:solution/METHOD.md +31 −39、solution/run.py +36 −6

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex f16e960..4db8403 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,52 +1,44 @@-mix 混抽 + 共有类型时间差向量强收敛:a 侧细胞 +α·t·Δ_type、b 侧 −α·(1−t)·Δ_type(α=5,只移已表达项、只留 |Δ|≥0.25 基因),坐标不动。+父节点 mix+类型级常数收敛位移之上,把位移改为逐细胞投影加权:细胞沿 Δ 方向已前伸的少移、极端的多移(w=clip(1∓λp,0.2,2.5),λ=6),型内分布向中间压缩而非刚性平移。 -## 方法(family T2EI-01,PLAN 指定的类型级表达时间收敛)+## 方法(family T2EI-01,PLAN:型内投影加权异质位移) -在父节点 2 的 mix 管线(procrustes3d 对齐、scale_damp=0.5、按类型分层混抽 (1−t, t)、n=5000)之上,新增一步:+保留父节点 5 全部管线(procrustes3d 对齐、scale_damp=0.5、按类型分层混抽 (1−t,t)、n=5000、共有类型 Δ=μ_b−μ_a 只保留 |Δ|≥0.25、nnz-only + clip≥0、坐标不动、α=5),只把常数位移改成逐细胞加权: -1. 对两个括号阶段都出现(各 ≥10 细胞)的类型,Δ_type = μ_b − μ_a(该类型两阶段伪批量均值差),只保留 |Δ| ≥ 0.25 的基因(与 DE 阈值一致,小变化视为噪声)。-2. 来自 stage_a 的该类型细胞:x ← clip(x + α·t·Δ, 0);来自 stage_b 的:x ← clip(x − α·(1−t)·Δ, 0)。-3. **稀疏保持(关键结构修复)**:只对细胞中已表达(x>0)的项做位移,零项保持零。位移是逐类型常数向量,若不限制到已表达项,零元比例会从 93% 掉到 54%,细胞不再像真实细胞,variogram/mmd_u 崩溃(见下)。-4. 坐标完全不动 → 表达-位置配对(neighborhood_mmd)不因机制本身被破坏。-5. 单输入阶段退路:与父节点一致,分层复制最后观测阶段,不做位移。-6. 参数:α 默认 5.0,环境变量 `T2_CONVERGE_ALPHA` 覆盖(提交时保持打开);α=0 为机制关闭对照。+1. 对每个共有类型 k、Δ≠0 的基因维度:a 侧细胞 i 计算偏差投影 p_i = dot(x_i − μ_a,k, Δ_k)/(‖Δ_k‖²+ε),ε=1.0;权重 w_i = clip(1 − λ·p_i, 0.2, 2.5);位移 x_i ← clip(x_i + α·t·w_i·Δ_k, 0),只作用于 x_i>0 的项。+2. b 侧对称:p_i 相对 μ_b,k,w_i = clip(1 + λ·p_i, 0.2, 2.5),位移 −α·(1−t)·w_i·Δ_k。+3. 直觉:已沿 Δ 方向伸展较远(更接近中间态)的细胞获得更小位移,极端细胞获得更大位移 → 型内端点双峰被压缩而非整块平移。+4. λ=0 时 w≡1,退化为父节点常数位移(对照,验证逐位相同)。λ 默认 6.0,环境变量 `T2_CONVERGE_LAMBDA` / `T2_CONVERGE_EPS` 可覆盖,提交时保持打开。+5. 单输入阶段退路:同父节点,分层复制最后观测阶段,无位移。坐标完全不动,表达-位置配对不因机制被破坏。 -## 机制生效证据(seed 0,proxy E6.75+E8.0→E7.25,t=0.4)+## 机制生效证据(seed 0,proxy E6.75+E8.0→E7.25,t=0.4,10 个共有类型全部位移) -- α=0 输出与父节点 run.py 输出逐位相同(X 与坐标 array_equal=True),管线正确。-- α=5:10 个共有类型全部位移;型内表达标准差比 0.91(变化 <10%,型内结构未坍缩);型间均值距离比 0.79(收缩);零元比例 0.929→0.941(b 侧下移经 clip 略增,结构保持)。-- 加权伪批量几乎不动:抽样比例 (1−t, t) 使两侧位移在全局均值中精确抵消(α 大不改变整体均值,只消解型内端点双峰);de_score 的变化来自 clip 的不对称。+- 权重分布:λ=6 时 w_mean=1.096、w_std=0.652(≫0.05,投影有区分力;均值略高于 1 因下界 0.2/上界 2.5 的 clip 不对称)。λ=1/2/3 时 w_std=0.15/0.29/0.40,随 λ 单调。+- 型内表达标准差比(after/before)0.920、型间均值距离比 0.804;零元结构保持(nnz-only 位移)。+- λ=0 输出与父节点 run.py 输出逐位相同(X 与坐标 array_equal=True)——关闭对照通过。 -## 对照与查分结果(A 半,seed 0,除注明外)+## 对照与查分结果(全部为同一时段 A 半查分;父节点输出同日重查 = 60.55,此前变化量表中的 61.51 属另一次评分锚点,跨日绝对值不可直接比) -| 配置 | 总分 | cell_state | variogram skill | mmd_u skill | neighborhood skill |+| 配置 | 总分 | mmd_u skill | variogram skill | neighborhood skill | cell_state 组 | |---|---:|---:|---:|---:|---:|-| α=0(对照=父节点) | 56.36 | 36.23 | 0.216 | 0.509 | 0.545 |-| α=0.5 稠密位移(无稀疏保持) | 56.02 | 27.33 | 0.097 | 0.450 | 0.496 |-| α=0.2 稠密 | ~55.4 | 30.64 | 0.126 | 0.487 | 0.527 |-| α=0.5 稀疏 | 56.63 | 37.10 | 0.228 | 0.514 | 0.544 |-| α=1.0 稀疏 | 56.95 | 38.33 | 0.243 | 0.524 | 0.544 |-| α=1.5 稀疏 | 57.41 | 40.03 | 0.262 | 0.539 | 0.545 |-| α=2.5 稀疏 | 58.81 | 44.33 | 0.315 | 0.572 | 0.557 |-| α=4 稀疏 | 60.27 | 47.42 | 0.357 | 0.592 | 0.576 |-| **α=5 稀疏(提交)** | **60.55** | **47.82** | **0.371** | **0.585** | **0.583** |-| α=6 稀疏 | 60.43 | 47.26 | 0.381 | 0.565 | 0.584 |-| α=10 稀疏 | 57.93 | 40.82 | 0.392 | 0.424 | 0.543 |-| α=5,seed 1 | 60.34 | 47.82 | - | - | - |--稠密位移(PLAN 原式,不加稀疏保持)在所有 α 上都比对照差:它同时打坏稀疏结构。机制的收益全部来自"稀疏保持 + 大 α"这一修正版。--## 验证过 / 没验证--- 验证:α=0 逐位复现父节点;α 网格 0.2–10(A 半,13 次查分);平台在 4–6,取中值 5(对平台边缘最稳);seed 0/1 分数一致(60.55 / 60.34);输出确定(同 seed 逐位相同);vec-check 通过;运行 ~30s、峰值内存远低于限值。-- 没验证:final 视图真实括号(E7.25+E8.0→E7.5,t=1/3)无法本地查分。α=5 远超 PLAN 的 {0.2..1.0} 建议区间,是在代理的大跨度括号(E6.75→E8.0,Δ 很大)上调出的;真实括号更窄、Δ 更小,同样的 α 产生的绝对位移也更小(Δ 正比于括号跨度),预期方向可迁移,但平台位置可能偏移。α=10 时 mmd_u 崩溃说明过冲有真实代价,故不取平台右缘。-- B 半噪声 ~1 分:+4.2(56.36→60.55)远超噪声,但正式分是 B 半,幅度可能不同。+| λ=0(对照=父节点,逐位相同) | 60.55 | 0.585 | 0.371 | 0.583 | 47.82 |+| λ=0.5 | 60.60 | 0.587 | 0.374 | 0.583 | 48.07 |+| λ=1.0 | 60.65 | 0.590 | 0.376 | 0.582 | 48.29 |+| λ=2.0 | 60.67 | 0.596 | 0.373 | 0.581 | 48.47 |+| λ=3.0 | 60.69 | 0.599 | 0.371 | 0.582 | 48.50 |+| **λ=6.0(提交)** | **60.72** | 0.599 | 0.368 | 0.585 | 48.33 |+| λ=10.0 | 60.49 | 0.592 | 0.365 | 0.587 | 47.88 |+| λ=1/3, ε=0.1 | 60.65/60.69 | 0.590/0.599 | 0.376/0.371 | 0.582 | — |++- 收益来源是 mmd_u skill(0.585→0.599,随 λ 单调到 6 后在 10 回落),variogram 基本持平(0.371→0.368),neighborhood、DE 两项、形状三项不动。+- **如实说明**:同日同锚点下总收益 +0.17(60.55→60.72),低于 T2 约 1 分的查分噪声,PLAN 预期的 variogram 明显上升没有出现;只有 mmd_u 的单调改善是跨 λ 一致的方向性信号(护栏 mmd_u≥0.585、neighborhood≥0.58 均未破)。λ=10 过冲回落,平台在 3–6,取 λ=6。+- 已验证:λ=0 逐位复现父节点;λ∈{0.5,1,2,3,6,10}、ε∈{0.1,1.0} 网格;vec-check 通过;默认参数输出与 λ=6 网格输出一致;无新增随机源,对 seed 确定。+- 未验证:λ 与 α 的联合网格(α 固定 5);真实括号(跨度更窄、Δ 更小,投影 p 的尺度随 ‖Δ‖ 变化,λ 的最优值可能移动——ε=1.0 在 ‖Δ‖² 小时会稀释权重,跨括号迁移性存疑);proxy2/final 视图未跑(本节点只挂 proxy 尺子)。  ## 知识来源 -未使用任何文献/数据库先验;Δ_type 完全由视图内两个输入阶段现场计算(无保留阶段信息、无硬编码类型名/比例/表达值)。|Δ|≥0.25 阈值沿用评分简报中 DE 指标的显著性阈值,属通用约定而非禁窗知识。+未使用新的生物学知识;Δ 向量、类型均值全部由 view 内两个输入阶段现场计算,无硬编码统计量,无保留阶段/基因型信息。 -## 风险与下一步+## 下一步建议 -- variogram skill 仍只有 0.371(<0.5 地板):型内端点双峰未完全消除。下一步可试:按分位数把 a 侧型内分布映射到插值分布,或对 Δ 位移加型内随机权重(保持共变结构)。-- occupancy_dice skill 0.369 一直很低且对表达机制不敏感(坐标项),是形状组剩余失分主因,需坐标侧改进。+- variogram 对"沿 Δ 的投影加权"不敏感,说明双峰残差主要不在 Δ 方向上;可试型内沿主成分的分位数压缩,或对 a/b 两侧细胞做型内 OT 配对后向配对中点收缩(保 nnz 结构)。+- occupancy_dice skill 0.369 仍是形状组主要失分项,与表达机制正交,值得单独做坐标侧改进。diff --git a/solution/run.py b/solution/run.pyindex 28df8a5..201dac6 100644--- a/solution/run.py+++ b/solution/run.py@@ -55,6 +55,14 @@ CONVERGE_ALPHA = float(os.environ.get("T2_CONVERGE_ALPHA", "5.0")) # cells is preserved (a dense per-gene shift destroys it and tanks variogram/mmd). CONVERGE_MIN_DELTA = float(os.environ.get("T2_CONVERGE_MIN_DELTA", "0.25")) CONVERGE_NNZ_ONLY = os.environ.get("T2_CONVERGE_NNZ_ONLY", "1") == "1"+# Per-cell heterogeneous displacement (family T2EI-01 refine): each cell's shift+# is scaled by w = clip(1 -/+ λ·p, 0.2, 2.5), where p is the cell's deviation+# from its type mean projected onto Δ (only genes with Δ≠0). Cells already+# stretched toward the intermediate state move less, extreme cells move more,+# compressing the within-type endpoint bimodality instead of rigidly shifting+# it. λ = 0 gives w ≡ 1 and reproduces the constant-shift parent bit-for-bit.+CONVERGE_LAMBDA = float(os.environ.get("T2_CONVERGE_LAMBDA", "6.0"))+CONVERGE_EPS = float(os.environ.get("T2_CONVERGE_EPS", "1.0"))   def mix_converge(stage_a, stage_b, t: float, params: dict, alpha: float):@@ -77,7 +85,8 @@ def mix_converge(stage_a, stage_b, t: float, params: dict, alpha: float):     xb = as_dense(stage_b.X, ib) if ib.size else np.zeros((0, len(stage_b.genes)), np.float32)      conv = {"alpha": alpha, "n_shared_types_converged": 0, "within_type_std_rel": None,-            "between_type_mean_dist_rel": None}+            "between_type_mean_dist_rel": None, "lambda": CONVERGE_LAMBDA,+            "weight_mean": None, "weight_std": None}     if alpha != 0.0 and ia.size and ib.size:         means_a = type_means(stage_a.X, stage_a.labels)         means_b = type_means(stage_b.X, stage_b.labels)@@ -96,8 +105,24 @@ def mix_converge(stage_a, stage_b, t: float, params: dict, alpha: float):             before = np.vstack([xa, xb]).astype(np.float64)             labs_a = np.asarray(stage_a.labels).astype(str)[ia]             labs_b = np.asarray(stage_b.labels).astype(str)[ib]-            def _shift(block, w, d):-                out = np.clip(block + np.float32(w) * d, 0.0, None)+            all_w = []++            def _shift(block, c, d, mu, wsign):+                # Per-cell weighted displacement: scale each cell's shift by how+                # far it already sits along Δ from its own side's type mean.+                if CONVERGE_LAMBDA != 0.0:+                    m = d != 0+                    if m.any():+                        dm = np.asarray(d[m], dtype=np.float64)+                        dev = block[:, m].astype(np.float64) - np.asarray(mu[m], dtype=np.float64)+                        p = dev @ dm / (dm @ dm + CONVERGE_EPS)+                        w = np.clip(1.0 + wsign * CONVERGE_LAMBDA * p, 0.2, 2.5)+                    else:+                        w = np.ones(block.shape[0])+                else:+                    w = np.ones(block.shape[0])+                all_w.append(w)+                out = np.clip(block + (np.float32(c) * w.astype(np.float32))[:, None] * d, 0.0, None)                 if CONVERGE_NNZ_ONLY:                     return np.where(block > 0, out, block)                 return out@@ -106,10 +131,14 @@ def mix_converge(stage_a, stage_b, t: float, params: dict, alpha: float):                 d = delta[lab]                 ma = labs_a == lab                 if ma.any():-                    xa[ma] = _shift(xa[ma], alpha * t, d)+                    xa[ma] = _shift(xa[ma], alpha * t, d, means_a[lab], -1.0)                 mb = labs_b == lab                 if mb.any():-                    xb[mb] = _shift(xb[mb], -alpha * (1.0 - t), d)+                    xb[mb] = _shift(xb[mb], -alpha * (1.0 - t), d, means_b[lab], +1.0)+            if all_w:+                wcat = np.concatenate(all_w)+                conv["weight_mean"] = float(wcat.mean())+                conv["weight_std"] = float(wcat.std())             after = np.vstack([xa, xb]).astype(np.float64)             # mechanism evidence: within-type std and between-type mean distance             labs = np.concatenate([labs_a, labs_b])@@ -169,7 +198,8 @@ def main() -> None:     expr, coords, info = mix_converge(stage_a, stage_b, t, params, CONVERGE_ALPHA)     keep = {k: info.get(k) for k in ("t", "n", "rms_a", "rms_b", "out_rms", "n_shared_types", "z_dot", "z_flipped",                                      "align", "alpha", "n_shared_types_converged", "within_type_std_rel",-                                     "between_type_mean_dist_rel", "n_from_a", "n_from_b")}+                                     "between_type_mean_dist_rel", "n_from_a", "n_from_b",+                                     "lambda", "weight_mean", "weight_std")}     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
k008Navigo: iterative rectified flow matching on snapshot time series10.64898/2026.06.18.733286

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

改了什么在父节点 5 的类型级常数收敛位移(α=5,nnz-only,坐标不动)之上,把位移改为逐细胞投影加权:w=clip(1∓λ·p, 0.2, 2.5),p 为细胞偏差沿 Δ 的投影(ε=1.0),λ 默认 6,可用环境变量覆盖;λ=0 逐位复现父节点(Engineer 已验证 array_equal)。
各组分数的变化cell_state:49.75 vs 49.28(+0.47),在噪声内;分解:mmd_u 0.0122→0.01158(skill 0.597→0.610,得分 +0.16),variogram 0.01395→0.01414(skill 0.389→0.386,得分 -0.04)——PLAN 预期的 variogram 上升没有出现,variogram 甚至微降
expression_change:62.02 vs 61.31(+0.71),在噪声内;分解:de_score 0.2759→0.3103(得分 +0.16),de_direction 0.3919→0.3944(+0.01),加权位移不改基因排序,这点变化应属抽样/clip 抖动的噪声
local_spatial:60.80 vs 61.02(-0.22),在噪声内;neighborhood_mmd 0.04971→0.05015(skill 0.610→0.608,-0.06),机制未破坏表达-位置配对
shape_scale:74.43 vs 74.43(+0.00),坐标不动,三项形状指标完全不变
family_idT2EI-01
假设是否成立否
经验
  1. 对 T2 插值胚数据:把型内常数位移改成沿 Δ 投影的逐细胞加权(λ∈[0.5,10]、ε=1.0)时,variogram skill 在 0.365–0.376 间基本不动(地板 0.389 仍未过),只有 mmd_u skill 单调升 0.585→0.599——型内端点双峰的残差不在 Δ 方向上,沿 Δ 压缩无法改善基因共变结构
  2. 逐细胞加权位移不改变基因排序方向,DE 两项和形状三项(坐标不动时)对这类纯表达幅度重排机制不敏感,预期收益只能落在 mmd_u/variogram
  3. λ=0 逐位复现父节点的关闭对照能在查分前确认管线正确;本节点总分 +0.24 与本地同日锚点 +0.17 都在 T2 ~1 分噪声内,不能当作真实收益
  4. Engineer 的 λ 网格显示平台在 λ=3–6、λ=10 过冲回落(mmd_u 0.599→0.592),与父节点 α 的平台行为一致:这类位移强度参数都存在过冲拐点,取平台中部而非边缘
mechanism_active是
下一步建议
  1. 针对 cell_state/variogram:放弃沿 Δ 方向的压缩,改做型内 OT 配对(a 侧细胞配 b 侧同型细胞)后向配对中点收缩、保持 nnz 结构,直接作用于分布形状而非 Δ 方向
  2. 针对 shape_scale:occupancy_dice skill 仅 0.367(d2_shape 0.934、scale_log_ratio 0.932 已近满),做坐标侧各向异性缩放/主轴分布整形,与表达机制正交、可叠加
  3. 若继续调本机制:λ 与 α 联合网格(当前 α 固定 5),并按 ‖Δ‖ 归一化投影 p(ε=1.0 在窄括号 ‖Δ‖² 小时会稀释权重,跨括号迁移性存疑),针对 cell_state 组

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

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

分析员

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

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数18
工具调用共 19 次:—
用时8 分
token 数输入 42,135 · 输出 7,349 · 思考 5,169
任务(第一行)按计划修改程序:型内投影加权异质位移:按细胞沿Δ方向的位置缩放位移量
最后的回答(摘录)
做了什么:在父节点 5(mix + 类型级常数收敛位移)上实现 PLAN 的型内投影加权异质位移——每个细胞的位移按其沿 Δ 方向的投影缩放(w=clip(1∓λp,0.2,2.5),ε=1.0,nnz-only,坐标不动),λ=0 对照逐位复现父节点。

查分(8 次,均同日 A 半锚点):父节点输出同日重查 60.55;λ 网格 {0.5,1,2,3,6,10} 得 60.60/60.65/60.67/60.69/60.72/60.49,ε=0.1 无额外收益。提交 λ=6(60.72,+0.17,低于 ~1 分噪声,如实记录)。收益全部来自 mmd_u skill 0.585→0.599(随 λ 单调至平台),variogram 持平(0.371→0.368),PLAN 预期的 variogram 上升未出现;护栏(mmd_u≥0.585、nb≥0.58)未破。vec-check 通过,seed 0/1 均正常。

下一步最值得试:(1) variogram 残差不在 Δ 方向上——改做型内主成分分位数压缩或 a/b 型内 OT 配对向中点收缩;(2) occupancy_dice(skill 0.369)坐标侧各向异性缩放,与表达机制正交。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-171955-search-t2-embryo-interp-chain-12h/nodes/8/engineer.jsonl (文件不在)

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时2 分
token 数输入 15,125 · 输出 1,297 · 思考 3,999
任务(第一行)为节点 n8(改进,父节点 n5)写改进计划 PLAN.json
最后的回答(摘录)
ift limit and suggests within-type heterogeneity.

```json
{
  "name": "型内投影加权异质位移:按细胞沿Δ方向的位置缩放位移量",
  "motivation": "父节点5的cell_state组49.28是四组最弱,其中variogram skill 0.389远低于地板0.5(得分仅4.86/12.5)。ANALYSIS指出型均值常数位移已接近上限,型内端点双峰未消。原因:同型所有细胞被同一Δ平移,a/b两侧仍是两个平移块,混合后基因共变结构(variogram)仍呈双峰。需要型内异质性使分布从'两块平移'变为'向中间压缩'。",
  "approach": "在父节点run.py的mix_converge函数中,将常数位移改为逐细胞加权位移:\n\n1. 对每个共有类型k,照旧计算Δ_k(|Δ|≥0.25过滤)。\n2. 对a侧每个细胞i:计算偏差 d_i = x_i − μ_a,k(仅取Δ非零基因维度),投影 p_i = dot(d_i, Δ_k)/(dot(Δ_k,Δ_k)+ε),权重 w_i = clip(1 − λ·p_i, 0.2, 2.5)。位移 x_i ← clip(x_i + α·t·w_i·Δ_k, 0),仅作用于x_i>0的项。\n3. b侧对称:p_i = dot(x_i−μ_b,k, Δ_k)/(dot(Δ_k,Δ_k)+ε),w_i = clip(1 + λ·p_i, 0.2, 2.5),x_i ← clip(x_i − α·(1−t)·w_i·Δ_k, 0),nnz-only。\n4. 直觉:已沿Δ方向伸展较远的细胞(更接近中间态)获得更小位移,极端细胞获得更大位移→分布被压缩而非刚性平移,混合双峰减弱。\n5. 参数:α=5(继承父节点),ε=1.0,λ初值1.0,网格λ∈{0, 0.5, 1.0, 2.0, 3.0}。λ=0退化为父节点(对照)。权重上下界[0.2,2.5]防止极端值。\n6. 单输入阶段退路:同父节点,分层复制最后观测阶段,无位移。\n7. vec-score快速筛选:先跑λ=0确认逐位复现父节点(56.36±噪声),再跑λ=1.0,若variogram skill>0.389则继续网格;若λ=1.0无改善则尝试ε=0.1。\n8. 监控护栏:mmd_u skill≥0.585、neighborhood skill≥0.60、零元比例变化<0.02。若mmd_u skill<0.55则λ过大,回退。",
  "expected_groups": ["cell_state"],
  "risks": "1) 高维稀疏数据上投影p_i噪声大(多数基因维度为0),权重退化为常数→无改善;尽早发现:检查w_i的标准差,若<0.05则机制未生效,需改用仅对nnz维度计算投影。2) λ过大导致极端权重破坏型内结构→mmd_u/variogram反降;发现:λ=2时若总分<对照则停止增大λ。3) 30分钟内需完成实现+5个λ查分;实现只改_shift函数内几行,风险低。4) 收益可能<1分噪声;需λ=1和λ=2各跑一次确认方向一致性。",
  "family_id": "T2EI-01",
  "mechanism": "将父节点的型内常数位移改为逐细胞加权位移:每个细胞的位移量按其沿Δ方向的投影位置缩放(已前伸的少移、极端的不移),使型内分布从刚性平移变为向中间压缩,消除混合双峰、改善基因共变结构。",
  "vs_constant_shift": "常数位移对同型所有细胞施加相同向量,保持型内方差不变(只平移分布);本方案按每个细胞在Δ方向上的投影给予不同权重,压缩型内分布的端点→改变型内分布形状(方差减小、双峰消除),不是全局组成重加权也不是每型常数。λ=0时退化为父节点。",
  "mechanism_evidence": "Engineer应检查:(1) 权重w_i的分布:均值≈1、标准差>0.1(若<0.05说明投影无区分力);(2) 型内表达标准差比(after/before):应比父节点的0.91更低(压缩而非平移);(3) variogram skill从0.389上升;(4) 零元比例变化<0.02(稀疏保持);(5) mmd_u和neighborhood skill不降。",
  "mechanism_off_control": "λ=0时w_i=1(所有细胞权重为1),位移公式退化为父节点的常数α·t·Δ,输出应与父节点逐位相同(array_equal=True)。预期差别:λ=0复现父节点分数(~56.36 A半),λ>0时variogram skill应上升、总分应>对照。"
}
```
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-171955-search-t2-embryo-interp-chain-12h/nodes/8/researcher.jsonl (文件不在)

审查员

角色审查员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数6
工具调用共 11 次:—
用时1 分
token 数输入 19,590 · 输出 1,308 · 思考 1,907
任务(第一行)审查节点 n8 的程序是否越界读取、写死目标、钻评分器漏洞
最后的回答(摘录)
REVIEW.json written
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-171955-search-t2-embryo-interp-chain-12h/nodes/8/reviewer.jsonl (文件不在)