总览 · ← 返回运行 20261003-172000-search-t2-heart-extrap-chain-12h
节点 n37 在终选来历上
NO_CHANGE: 位移场空间混合 VDIFF(nb_mmd 随 W/解码 9 档单调改善但与 de_direction 等值交换、总分噪声内;备选 β_rec<0 锐化、k=0.6 亦不超父)
| 运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。 | 20261003-172000-search-t2-heart-extrap-chain-12h |
|---|---|
| 父节点 | n35 |
| 子节点 | n39 |
| 操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。 | 改进 |
| 状态 | 已打分 |
| 分数 | 搜索目标分 57.11(+0.0) · proxy_noscale 57.11(+0.0) |
| 审查 | 通过 检查1(越界读取):未发现问题——run.py 只通过 harness 库 load_manifest/read_stage/panel_genes 读取 --data 视图内文件(run.py:635-637, 653),无绝对路径、'..'、/mnt、网络调用,未读取目标阶段 E9.5 文件;external/prior 均未访问。; 检查2(硬编码目标统计量):未发现问题——所有常数为环境变量可调超参(α、k、γ、ε、β_rec、PBC、VDIFF_W 等,run.py:358-402),运行时量(速度、门控、再闭合电平)全部由输入矩阵现场计算;无写死的类型比例、细胞数或基因列表(do… |
| 用时?从运行开始到结束(或到现在)的挂钟时间。 | 36 分 |
| 程序版本 | 9b9e1fb16473b5d48a697866b04e9a94ee05e249 (programs.git) |
方法说明?节点程序自带的 METHOD.md:这个程序做了什么、为什么。
来自 programs.git 9b9e1fb164:solution/METHOD.md
NO_CHANGE: 位移场空间混合 VDIFF(nb_mmd 随 W/解码 9 档单调改善但与 de_direction 等值交换、总分噪声内;备选 β_rec<0 锐化、k=0.6 亦不超父)
节点 37(improve,父 35):速度场空间相干化 VDIFF —— 已实现、已实测、按 PLAN 边界规则关闭提交
提交态 = 父节点 35 配置逐位不变(VEC_VDIFF_W=0 默认),输出与父节点逐位相同(本地 cmp 验证),
预期 mechanism_active: no(NO_CHANGE 状态的正确表现)。所有默认参数承父:
α=1、k=0.5、γ=1.35、ε=0.1(SMOOTH_STEPS=2、K=15)、β_rec=0.15、VEC_REC_LEVEL=matched、PBC=10、
门控(std 比 ≥0.01、spearman ≥0.3)、坐标/行序/细胞数/组成冻结。
做了什么
- PLAN 机制原样实现:逐细胞乘法位移前,log2 域速度场在坐标 15-NN 图上做一步加权混合
d_eff = (1−W)·v_type(i) + W·mean_{j∈kNN(i,15)} v_type(j)(VEC_VDIFF_W、VEC_VDIFF_K=15)。 - 机制确实运行了(PLAN mechanism_evidence 四项全报,DEBUG 输出):
- affected_frac(|Δd|>1e-6 的细胞比例)= 0.9014(该点云 90% 细胞在坐标 15-NN 内有异型邻居; 型内部细胞位移逐位不变,affected_inside_frac=0.00000,符合"只在型边界生效"的设计);
- 受影响细胞 |d_eff−d_raw| 逐细胞最大值 q50/q90/max:W=0.1 → 0.039/0.092/0.332; W=0.2 → 0.079/0.184/0.664;W=0.3 → 0.118/0.276/0.997(L2 均值 0.157/0.313/0.470);
- nb_mmd raw 随 W 单调回落(见下表),从 0.08093 最低到 0.07845(W=0.5);
- de_score/de_direction:伪批量方向被型间混合稀释,de_direction 单调下降(下表),PLAN 守卫失败。
- 判无效的查分证据(§5:9 个 VDIFF 家族配置 + 2 个备选机制 + 1 个基线 = 12 次查分,A 半, proxy_noscale;shape_scale 组恒 50.00——坐标冻结;所有配置 nb_mmd skill ≥0.586,结构门恒 1; raw 越小越好的指标:mmd_u、variogram、nb_mmd):
| # | 配置 | 总分 | expr/cell/local 组 | de_score | de_dir | mmd_u | variogram | nb_mmd |
|---|---|---|---|---|---|---|---|---|
| 1 | 基线 W=0(=父 35) | 56.869 | 60.29/58.59/58.60 | 0.2778 | 0.3839 | 0.04853 | 0.035414 | 0.08093 |
| 2 | W=0.1 | 56.776 | 59.69/58.62/58.80 | 0.2500 | 0.3783 | 0.04800 | 0.035734 | 0.08026 |
| 3 | W=0.2 | 56.901 | 60.00/58.63/58.98 | 0.2778 | 0.3686 | 0.04750 | 0.036090 | 0.07967 |
| 4 | W=0.25 | 56.848 | 59.70/58.63/59.06 | 0.2639 | 0.3662 | 0.04726 | 0.036279 | 0.07940 |
| 5 | W=0.3 | 56.917 | 59.90/58.63/59.14 | 0.2778 | 0.3633 | 0.04697 | 0.036493 | 0.07915 |
| 6 | W=0.35 | 56.914 | 59.82/58.63/59.21 | 0.2778 | 0.3590 | 0.04672 | 0.036696 | 0.07893 |
| 7 | W=0.5 | 56.849 | 59.42/58.62/59.35 | 0.2639 | 0.3512 | 0.04600 | 0.037312 | 0.07845 |
| 8 | W=0.2 + NORM=1(幅度保持) | 56.714 | 59.62/58.56/58.68 | 0.2500 | 0.3747 | 0.04836 | 0.035617 | 0.08067 |
| 9 | W=0.5 + NORM=1 | 56.791 | 59.77/58.55/58.84 | 0.2778 | 0.3567 | 0.04775 | 0.036134 | 0.08013 |
| 10 | W=0.3 + α=1.2(幅度补偿) | 56.650 | 59.57/58.86/58.17 | 0.2500 | 0.3722 | 0.05036 | 0.033287 | 0.08238 |
| 11 | 备选:β_rec=−0.15(再闭合场锐化) | 56.775 | 59.53/58.52/59.04 | 0.2500 | 0.3703 | 0.04880 | 0.035395 | 0.07947 |
| 12 | 备选:k=0.6(速度软阈值加严) | 56.804 | 60.04/58.57/58.61 | 0.2639 | 0.3838 | 0.04853 | 0.035456 | 0.08091 |
关键配置的单项 points(组分=各指标 points 和;父基线/W=0.2/W=0.3): de_score 7.328/7.328/7.328,de_dir 7.745/7.672/7.647,mmd_u 6.834/6.901/6.935, variogram 7.813/7.757/7.723,nb_mmd 14.650/14.745/14.785 → 净差 +0.03/+0.05。
- PLAN 判定:主判 nb_mmd(A 半等价目标 <0.08025,即节点 33 水平)在 W≥0.2 达成 (0.07967…0.07845);守卫 mmd_u≤0.04860 达成(0.0475/0.0470);守卫 de_direction≥0.3839 全部 W>0 档失败(0.3783/0.3686/0.3633,单调)。按 PLAN 规则 (4)"若 3 档均不达标则提交 W=0"执行。
- 备选机制(§2 要求,针对同一弱项 local_spatial/nb_mmd):
- 幅度保持解码(NORM=1,混合后逐细胞 L2 归一回原模长):nb_mmd 收益基本消失 (0.08067 vs 同幅 plain 0.07967)→ 收益来自边界幅度收缩本身而非方向相干;总分更低。
- α 补偿(W=0.3+α=1.2,把稀释的幅度加回来):de_dir/vario 回升(vario 0.033287 全树最佳)但 nb_mmd 反弹到 0.08238、mmd_u 0.05036 → 总分 56.650,最差。
- β_rec=−0.15 再闭合场锐化(节点 35 单调变差曲线的反向外推):nb_mmd 0.07947 有效,但 de_direction 0.3703 + de_score −1 步 → 56.775。(β=−0.3 已生成未查分:PBC 钳制 1.24% 细胞,伪影风险。)
- k=0.6(ANALYSIS 建议 #3):de_dir 守住 0.3838 但 de_score −1 步 → 56.804。
结论(给后续节点)
在 (α1, k0.5, γ1.35, ε0.1, β_rec0.15) 基座上,所有表达变换轴都落在同一条帕累托前沿上: {de_direction, de_score, variogram} ↔ {nb_mmd, mmd_u} 以约 1:1 的 points 汇率交换 (W=0.3:nb_mmd +0.135、mmd_u +0.101 ↔ de_dir −0.098、vario −0.090,净 +0.048 ≈ 噪声的 1/20)。 α、W、β_rec(两个符号)、k 全部只沿这条前沿移动;总分表面在 ±0.1 内平坦。 要拿 >噪声 的收益需要与"位移幅度/平滑度"正交的新轴;组成与坐标两轴在本家族内已冻结且 早前证否(节点 16/22)。唯一未试的解耦思路:只对边界细胞收缩位移、同时按 (型,基因) 把 型内平均倍数变化精确补回(dp 守恒重分配)——但查分 #10 表明"补回幅度"这一步本身就会 吃掉 nb_mmd 收益,预期不乐观。
验证过 / 没验证过
- 验证过:机制生效证据(上);W=0 提交态输出与父节点 35 逐位相同(cmp);seed 0 逐位可复现; seed 0/1 内容一致(锚 24826 ≤ max_cells 25179,take 全取,仅 uns/generator_seed 元数据随 seed);
--ablate mechanism与完整运行逐位一致(W=0 下机制本就关闭);vec-check ok;CPU ~3.5s、<1.5GB。 - 没验证过:各配置的 B 半分数(只查了 A 半);β_rec=−0.3 与 NORM=0.5 中间档(未查分); 真实榜(E9.5→E10.5)上的行为——代码路径视图无关(无绝对时间、无视图标识、参数全为运行时 数据自算),但配置只在本代理 A 半上验证过。
- 生物学知识来源:无新增(未引入任何外部测量、保留阶段信息或文献先验;所有量由视图输入在运行时计算)。
调研员的计划
| 名称 | 速度场空间相干化(VDIFF)改善邻域配对 |
|---|---|
| 动机 | 父节点35 local_spatial=59.15(nb_mmd raw 0.07784,skill 0.592),是四组中权重最大(25+门控形状25)且非地板的最弱组。ANALYSIS明确建议:在(γ1.35, ε0.1, β_rec=0.15)新基座上试VDIFF(旧ε0.4基座证否但新基座未试)。当前基座ε=0.1底物平滑弱,型边界处位移不连续更突出,空间相干化有更大余量。通过判据:nb_mmd raw回落至<0.0771(节点33水平)。 |
| 做法 | 步骤:(1) 承父节点35全部冻结参数(α=1, k=0.5, γ=1.35, ε=0.1, β_rec=0.15, VEC_REC_LEVEL=matched, PBC=10, SMOOTH_STEPS=2, K=15, 门控);(2) 在逐细胞乘法位移之前,对log2域位移场做一步空间混合:d_i_eff = (1-W)·α·v_type(i) + W·mean_{j∈kNN_coord(i,15)}(α·v_type(j)),即VEC_VDIFF_W控制权重、VEC_VDIFF_K=15;(3) 小扫W∈{0.1, 0.2, 0.3},以nb_mmd raw为主判(目标<0.0771),de_direction≥0.3839、mmd_u≤0.04860为守卫;(4) 若3档均不达标则按边界规则提交W=0(=父节点逐位)。实现要点:kNN图复用坐标15-NN(与β_rec共用),位移场混合只在型边界细胞有实际效果(型内部邻居同型,混合后不变)。单输入阶段退路:无前一输入时v=0→d=0→逐位copy_last(承父)。vec-score快速筛选:先跑W=0.2单次查分看nb_mmd方向,再决定是否扩网格。 |
| 风险 | 1) 新基座ε=0.1已足够低,型边界不连续性可能不是nb_mmd的主要瓶颈,VDIFF无效(与旧基座一样证否)——Engineer第一次查分(W=0.2)即可判断方向;2) 空间混合可能轻微模糊型间DE信号(边界细胞位移减小),导致de_score降1量化步——守卫de_direction≥0.3839;3) 若型内细胞占绝大多数(>95%),实际受影响的细胞太少,效果在噪声内——Engineer应打印affected_frac(位移改变>1e-6的细胞比例),若<3%则机制本身无法产生可测效果,直接提交W=0。 |
代码改动?这个节点的程序和父节点程序的逐行差别:绿色是新增,红色是删除。
对比:父节点版本 b7b5f10d06。改动的文件:solution/METHOD.md +75 −79、solution/README.md +18 −18、solution/run.py +113 −21
diff --git a/solution/METHOD.md b/solution/METHOD.mdindex a44397b..ec47d69 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,79 +1,75 @@-再闭合场 log(r_i) 在坐标15-NN上低通(β=0.15)并按数据自算中位总量电平中性化;de_direction/de_score/mmd_u 升、nb_mmd 略升(该项假设被证否)--- family_id: T2HX-01(承父节点 33:rel 速度乘法外推 + 几何再闭合,坐标/行序/细胞数/组成冻结)-- parent: node 33(A 半 56.792,节点分 57.04)-- 本节点 A 半 56.869(+0.077);查分 19/20 次,明细见下表--## 1. 方法--在父节点管线上只加一个作用点:几何再闭合的**输入场**从"逐细胞原始总量比 r_i"换成"在锚坐标 15-NN 图上扩散 1 步后的 r̃_i"(权重 β_rec),再算 s_i=(r_med/r̃_i)^γ。-扩散非中位数守恒,原始做法会同时**提亮**整个预测(Jensen:中位线性总量 1.825→2.386)。为把机制与电平副作用分开,加了 `VEC_REC_LEVEL=matched`:把平滑场的每细胞线性总量中位数**重标定回未平滑场所给的值**(两个量都在运行时从输入数据算出,无任何拟合常数),因此机制只能改场的**形状**、不能改库大小电平。--其余全部冻结:α=1、k=0.5、γ=1.35、ε=0.1、SMOOTH_STEPS=2、K=15、PBC=10、门控(std 比 ≥0.01、spearman ≥0.3)、坐标/行序/细胞数/组成。单输入阶段或锚≠末输入时逐位回退 copy_last(承父)。--## 2. 机制生效证据(`--ablate` 对照)--- `--ablate mechanism`(也测了 `--ablate rec_field_smoothing`)→ 输出与父节点 33 **逐位相同**(X 与坐标 array_equal=True),即关掉机制精确回到父行为;不带参数时输出与父**不同**(X 改变、坐标逐位不变)→ mechanism_active=yes。-- 平滑确实运行且去除了高频:型内 std(log r) 3.139 → 2.921(β=0.08)/ 2.737(0.15)/ 2.367(0.3)/ 1.928(0.5),单调下降;中位线性总量由构造固定为 1.825(与父相同)。-- 四组分变化(A 半,β=0.15 vs 父):expression_change 59.83→60.29(**升**,de_score 0.2639→0.2778 即 +1 量化步、de_direction 0.3730→0.3839);cell_state 58.53→58.59(**升**,mmd_u 0.04888→0.04853 变好,variogram 0.035314→0.035414 基本持平);local_spatial 58.80→58.60(**降**,nb_mmd 0.08025→0.08093 变差);shape_scale 50.00→50.00(坐标冻结,三项 raw 逐位相同,结构门保持 1:nb_mmd skill 0.586 > 0.5)。--## 3. PLAN 的核心假设被证否(nb_mmd 方向)--PLAN 预期平滑能收回 mmd_u 与 nb_mmd。实测:**nb_mmd 随 β_rec 单调变差**,mmd_u 只在 β_rec ≤0.15 略微变好。电平中性后的纯机制效应(A 半):--| β_rec | 榜分 | de_score | de_direction | mmd_u | variogram | nb_mmd |-|---|---:|---:|---:|---:|---:|---:|-| 0(父 33) | 56.792 | 0.2639 | 0.3730 | 0.04888 | 0.035314 | 0.08025 |-| 0.08 | 56.758 | 0.2500 | 0.3810 | 0.04856 | 0.035400 | 0.08056 |-| **0.15(提交)** | **56.869** | **0.2778** | **0.3839** | **0.04853** | 0.035414 | 0.08093 |-| 0.30 | 56.762 | 0.2778 | 0.3841 | 0.04928 | 0.035200 | 0.08199 |-| 0.50 | 56.501 | 0.2639 | 0.3822 | 0.05090 | 0.034868 | 0.08358 |--选 β=0.15 的理由(按 PLAN 步骤 6:总分差在 1 分噪声内时以连续量与量化步判收益,不以总分判):de_direction 在**全部 4 个幅度**上都 +0.008~+0.011(连续量、电平受控的偏相关,高于历史 ±0.01 抖动 → 结构性而非噪声);de_score +1 量化步;mmd_u 为本档最佳;variogram 持平;榜分为网格内点最大。代价是 nb_mmd −0.00068 raw(skill 仍远高于 0.5,门不触发)。--## 4. 被拒的"提亮"方向(重要,供后续节点)--未做电平中性时,β_rec=0.3/0.5/1.0/2步 的榜分是 57.016/57.017/56.595/56.917,看起来"有效"。诊断证明**收益全部来自提亮副作用,与平滑无关**:--| 配置 | 榜分 | de_score | de_direction | mmd_u | variogram | nb_mmd | 中位总量 |-|---|---:|---:|---:|---:|---:|---:|---:|-| 父 33 | 56.792 | 0.2639 | 0.3730 | 0.04888 | 0.035314 | 0.08025 | 1.825× |-| 纯常数提亮 ×1.31(无平滑) | **57.143** | 0.3194 | 0.3768 | 0.04631 | 0.036564 | 0.08007 | 2.390× |-| β=0.5 未中性化 | 57.017 | 0.3333 | 0.3890 | 0.04755 | 0.036114 | 0.08285 | 2.386× |-| β=0.5 电平中性 | 56.501 | 0.2639 | 0.3822 | 0.05090 | 0.034868 | 0.08358 | 1.825× |--不做平滑、只乘常数的提亮**比机制本身分更高**(57.143 > 57.017),且 de_direction(控制 pb(ref) 秩的偏相关)几乎不动(+0.004)而动的是 de_score(其 chance 校正按 ±pb(ref) 排序,对电平倾斜校正不完全)。已发布阶段的 CP10k 不变量要求每细胞线性总量恒为 10^4;父节点已是 1.83×,提亮到 2.39× 进一步偏离,没有生物学解读,只有指标实现层面的解读;本外推尺子又已知高估(历史本地 54.2 → 官网 49.6)。故按"不针对打分器实现细节优化"的规则**拒绝提交**该方向,改用数据自算的电平中性化。--## 5. 其他备选机制(均已实测证否,代码保留、默认关)--1. **事后平滑(伪批量精确复原)**:位移+再闭合+PBC 之后再做一次支撑掩码扩散,逐基因列缩放精确复原伪批量(pb 最大相对差 9.3e-15 → dp 逐位不变 → de_score/de_direction **按构造**保持 0.2639/0.3730)。ε_post 0.15/0.3/0.5/0.7 → 56.582/56.365/55.985/55.470,nb_mmd 0.08110/0.08292/0.08706/0.09335 **单调变差**:位移之后的额外局部相干性是过度平滑,父节点 ε=0.1 已在最优附近。(`VEC_POST_EPS`)-2. **PLAN 指定的兜底 PBC∈{8,12}**:在 γ=1.35/ε=0.1 下钳制**完全不激活**(cap ≥ 4 时 clamped_frac=0.0000),4/6/8/12 都是逐位空操作;只有 cap ≤3 起作用(PBC=3:钳 1.41% 细胞 → 56.790,与父持平)。该兜底在本基座上是死方向。-3. **速度软阈值 k=0.4**(PLAN 兜底另一支)→ 56.735,de_score 0.2500(−1 量化步)。-4. **底物平滑邻域宽度 SMOOTH_K=30** → 56.778,与父持平(nb_mmd 0.08032)。-5. **底物 ε 提到 0.25/0.4 + 场平滑**:中位总量涨到 2.49×/3.49×、钳制 0.2%/7.7%,收益完全被提亮支配,未提交(离线诊断后放弃,未耗查分)。--## 6. 验证过什么--- 父节点复现:默认关闭机制时 A 半 56.792、八项 raw 与父节点记录逐项一致。-- `--ablate` 逐位回父(X 与坐标);机制开启时 X 改变、坐标逐位不变。-- 格式:`vec-check --task T2:heart:val_extrap/proxy_noscale` 在 seed 0/1/2 与 ablate 输出上均 `{status: ok, errors: []}`;n_obs=24826 ∈ [1000, 25179],500 基因按 genes.txt 同序,X 有限无 NaN/Inf。-- **视图无关**:构造伪装视图(换路径 `/tmp/...`、manifest 键序打乱并重排版、所有输入/目标/external 阶段时间统一 +1 天)重跑,X 与坐标与真实视图**逐位相同**。-- **确定性**:seed 0/1/2 输出逐位相同(锚阶段细胞数 ≤ max_cells,分层 take 返回全部行);无全局随机状态,15-NN 图由 cKDTree 确定构建。-- 资源:CPU ~2–3 s、峰值 <1.5 GB(`EXECUTION.json {"gpu": false}`),远低于 limits(28 GB / 30 min)。--## 7. 没验证什么 / 风险--- 提交档总收益 +0.077 **在 1 分噪声之内**;依据是 de_direction 连续量在 4 个幅度上一致上升 + de_score 一个量化步 + mmd_u 变好,不是总分。B 半可能落在父节点之下。-- nb_mmd 仍变差(PLAN 的目标之一未达成)。de_direction 的上升与 nb_mmd 的下降在本基座上同向出现,二者可能有共同成因(再闭合场的空间结构),未分离。-- 只在心脏外推代理括号(E8.25+E8.75→E9.5)上验证;该尺子已知高估外推收益。final 视图(两输入)走同一条代码路径,但真实括号的上一步方向由程序现场从输入算,未实测。-- 查分额度已用尽(19/20 + 1 次被拒的 vec-check 调用),提交档只跑了 seed 0;未做多种子查分复核。--## 8. 知识来源--未使用任何外部生物学知识、文献、数据库或记忆中的阶段测量值;`sources: []`(承 PLAN)。程序所有量(速度、总量比、中位数、15-NN 图、列缩放因子、电平中性化因子)都在运行时从 manifest 指定的输入阶段现场计算,无硬编码阶段名、细胞数、比例、尺寸或任何由已发布阶段测量值导出的常数。--## 9. 下一步建议--1. nb_mmd 是当前唯一恶化项且权重最大(25 分 + 结构门)。本节点已排除"任何形式再加平滑"(事前底物 ε↑、事后 ε_post、场平滑 β↑ 三个作用点全部单调变差),说明该基座的局部结构已过度平滑;应改从**位移场本身**入手(例如按型速度的空间相干化,即 VDIFF 在新基座 (γ1.35, ε0.1) 上重试——旧基座证否过,新基座未试)。-2. de_direction 在 β≥0.15 已进入平台(0.3839/0.3841/0.3822),提示场平滑对 DE 排序的贡献已饱和;expression_change 的进一步收益应来自 γ×ε 的未探区(1.35–1.5 之间)或速度估计器,而不是再闭合场。-3. 请勿再用"提亮"(线性域整体放大)取分:本节点已量化其对 de_score 的杠杆(+0.055)与其非物理性(违反 CP10k 不变量),属于打分器实现层面的收益。+NO_CHANGE: 位移场空间混合 VDIFF(nb_mmd 随 W/解码 9 档单调改善但与 de_direction 等值交换、总分噪声内;备选 β_rec<0 锐化、k=0.6 亦不超父)++# 节点 37(improve,父 35):速度场空间相干化 VDIFF —— 已实现、已实测、按 PLAN 边界规则关闭提交++提交态 = 父节点 35 配置逐位不变(`VEC_VDIFF_W=0` 默认),输出与父节点逐位相同(本地 cmp 验证),+预期 `mechanism_active: no`(NO_CHANGE 状态的正确表现)。所有默认参数承父:+α=1、k=0.5、γ=1.35、ε=0.1(SMOOTH_STEPS=2、K=15)、β_rec=0.15、VEC_REC_LEVEL=matched、PBC=10、+门控(std 比 ≥0.01、spearman ≥0.3)、坐标/行序/细胞数/组成冻结。++## 做了什么++1. **PLAN 机制原样实现**:逐细胞乘法位移前,log2 域速度场在坐标 15-NN 图上做一步加权混合+ `d_eff = (1−W)·v_type(i) + W·mean_{j∈kNN(i,15)} v_type(j)`(`VEC_VDIFF_W`、`VEC_VDIFF_K=15`)。+2. **机制确实运行了**(PLAN mechanism_evidence 四项全报,DEBUG 输出):+ - affected_frac(|Δd|>1e-6 的细胞比例)= **0.9014**(该点云 90% 细胞在坐标 15-NN 内有异型邻居;+ 型内部细胞位移逐位不变,affected_inside_frac=0.00000,符合"只在型边界生效"的设计);+ - 受影响细胞 |d_eff−d_raw| 逐细胞最大值 q50/q90/max:W=0.1 → 0.039/0.092/0.332;+ W=0.2 → 0.079/0.184/0.664;W=0.3 → 0.118/0.276/0.997(L2 均值 0.157/0.313/0.470);+ - nb_mmd raw 随 W 单调回落(见下表),从 0.08093 最低到 0.07845(W=0.5);+ - de_score/de_direction:伪批量方向被型间混合稀释,de_direction 单调下降(下表),PLAN 守卫失败。+3. **判无效的查分证据**(§5:9 个 VDIFF 家族配置 + 2 个备选机制 + 1 个基线 = 12 次查分,A 半,+ proxy_noscale;shape_scale 组恒 50.00——坐标冻结;所有配置 nb_mmd skill ≥0.586,结构门恒 1;+ raw 越小越好的指标:mmd_u、variogram、nb_mmd):++| # | 配置 | 总分 | expr/cell/local 组 | de_score | de_dir | mmd_u | variogram | nb_mmd |+|---|---|---|---|---|---|---|---|---|+| 1 | 基线 W=0(=父 35) | **56.869** | 60.29/58.59/58.60 | 0.2778 | 0.3839 | 0.04853 | 0.035414 | 0.08093 |+| 2 | W=0.1 | 56.776 | 59.69/58.62/58.80 | 0.2500 | 0.3783 | 0.04800 | 0.035734 | 0.08026 |+| 3 | W=0.2 | 56.901 | 60.00/58.63/58.98 | 0.2778 | 0.3686 | 0.04750 | 0.036090 | 0.07967 |+| 4 | W=0.25 | 56.848 | 59.70/58.63/59.06 | 0.2639 | 0.3662 | 0.04726 | 0.036279 | 0.07940 |+| 5 | W=0.3 | **56.917** | 59.90/58.63/59.14 | 0.2778 | 0.3633 | 0.04697 | 0.036493 | 0.07915 |+| 6 | W=0.35 | 56.914 | 59.82/58.63/59.21 | 0.2778 | 0.3590 | 0.04672 | 0.036696 | 0.07893 |+| 7 | W=0.5 | 56.849 | 59.42/58.62/59.35 | 0.2639 | 0.3512 | 0.04600 | 0.037312 | 0.07845 |+| 8 | W=0.2 + NORM=1(幅度保持) | 56.714 | 59.62/58.56/58.68 | 0.2500 | 0.3747 | 0.04836 | 0.035617 | 0.08067 |+| 9 | W=0.5 + NORM=1 | 56.791 | 59.77/58.55/58.84 | 0.2778 | 0.3567 | 0.04775 | 0.036134 | 0.08013 |+| 10 | W=0.3 + α=1.2(幅度补偿) | 56.650 | 59.57/58.86/58.17 | 0.2500 | 0.3722 | 0.05036 | 0.033287 | 0.08238 |+| 11 | 备选:β_rec=−0.15(再闭合场锐化) | 56.775 | 59.53/58.52/59.04 | 0.2500 | 0.3703 | 0.04880 | 0.035395 | 0.07947 |+| 12 | 备选:k=0.6(速度软阈值加严) | 56.804 | 60.04/58.57/58.61 | 0.2639 | 0.3838 | 0.04853 | 0.035456 | 0.08091 |++ 关键配置的单项 points(组分=各指标 points 和;父基线/W=0.2/W=0.3):+ de_score 7.328/7.328/7.328,de_dir 7.745/7.672/7.647,mmd_u 6.834/6.901/6.935,+ variogram 7.813/7.757/7.723,nb_mmd 14.650/14.745/14.785 → 净差 +0.03/+0.05。++4. **PLAN 判定**:主判 nb_mmd(A 半等价目标 <0.08025,即节点 33 水平)在 W≥0.2 达成+ (0.07967…0.07845);守卫 mmd_u≤0.04860 达成(0.0475/0.0470);**守卫 de_direction≥0.3839+ 全部 W>0 档失败**(0.3783/0.3686/0.3633,单调)。按 PLAN 规则 (4)"若 3 档均不达标则提交 W=0"执行。+5. **备选机制**(§2 要求,针对同一弱项 local_spatial/nb_mmd):+ - 幅度保持解码(NORM=1,混合后逐细胞 L2 归一回原模长):nb_mmd 收益基本消失+ (0.08067 vs 同幅 plain 0.07967)→ **收益来自边界幅度收缩本身而非方向相干**;总分更低。+ - α 补偿(W=0.3+α=1.2,把稀释的幅度加回来):de_dir/vario 回升(vario 0.033287 全树最佳)但+ nb_mmd 反弹到 0.08238、mmd_u 0.05036 → 总分 56.650,最差。+ - β_rec=−0.15 再闭合场锐化(节点 35 单调变差曲线的反向外推):nb_mmd 0.07947 有效,但+ de_direction 0.3703 + de_score −1 步 → 56.775。(β=−0.3 已生成未查分:PBC 钳制 1.24% 细胞,伪影风险。)+ - k=0.6(ANALYSIS 建议 #3):de_dir 守住 0.3838 但 de_score −1 步 → 56.804。++## 结论(给后续节点)++在 (α1, k0.5, γ1.35, ε0.1, β_rec0.15) 基座上,**所有表达变换轴都落在同一条帕累托前沿上**:+{de_direction, de_score, variogram} ↔ {nb_mmd, mmd_u} 以约 1:1 的 points 汇率交换+(W=0.3:nb_mmd +0.135、mmd_u +0.101 ↔ de_dir −0.098、vario −0.090,净 +0.048 ≈ 噪声的 1/20)。+α、W、β_rec(两个符号)、k 全部只沿这条前沿移动;总分表面在 ±0.1 内平坦。+要拿 >噪声 的收益需要与"位移幅度/平滑度"正交的新轴;组成与坐标两轴在本家族内已冻结且+早前证否(节点 16/22)。唯一未试的解耦思路:只对边界细胞收缩位移、同时按 (型,基因) 把+型内平均倍数变化精确补回(dp 守恒重分配)——但查分 #10 表明"补回幅度"这一步本身就会+吃掉 nb_mmd 收益,预期不乐观。++## 验证过 / 没验证过++- 验证过:机制生效证据(上);W=0 提交态输出与父节点 35 逐位相同(cmp);seed 0 逐位可复现;+ seed 0/1 内容一致(锚 24826 ≤ max_cells 25179,take 全取,仅 uns/generator_seed 元数据随 seed);+ `--ablate mechanism` 与完整运行逐位一致(W=0 下机制本就关闭);vec-check ok;CPU ~3.5s、<1.5GB。+- 没验证过:各配置的 B 半分数(只查了 A 半);β_rec=−0.3 与 NORM=0.5 中间档(未查分);+ 真实榜(E9.5→E10.5)上的行为——代码路径视图无关(无绝对时间、无视图标识、参数全为运行时+ 数据自算),但配置只在本代理 A 半上验证过。+- 生物学知识来源:无新增(未引入任何外部测量、保留阶段信息或文献先验;所有量由视图输入在运行时计算)。diff --git a/solution/README.md b/solution/README.mdindex 068cbbb..834cf2d 100644--- a/solution/README.md+++ b/solution/README.md@@ -1,23 +1,23 @@-# 空间低通再闭合场(电平中性)+ 几何均值再闭合 rel 速度乘法外推(T2:heart:val_extrap,T2HX-01,节点35)+# 提交态 = 父节点 35 逐位(NO_CHANGE):VDIFF 位移场空间混合已实现并证否(T2:heart:val_extrap,T2HX-01,节点 37) -copy_last 基座(坐标/行序/细胞数/组成冻结)承自节点 33:锚阶段表达先在坐标 15-NN 图上做两步支撑掩码+copy_last 基座(坐标/行序/细胞数/组成冻结)承自节点 33/35:锚阶段表达先在坐标 15-NN 图上做两步支撑掩码 扩散平滑(ε=0.1,零模式逐位保留,逐基因列缩放复原伪批量),再按共有细胞型的相对差速度 v_t=(m_a−m_p)/(m_p+1) 做乘法位移 x′=x_smoothed·2^(α·v̂_t)(α=1,k=0.5 MAD 软阈值),门控-(std 比 ≥0.01、spearman ≥0.3)通过后做几何再闭合 s_i=(r_med/r_i)^γ(γ=1.35)与 PBC=10 钳亮尾。+(std 比 ≥0.01、spearman ≥0.3)通过后做几何再闭合 s_i=(r_med/r̃_i)^γ(γ=1.35,r̃=β_rec=0.15+坐标 15-NN 低通 + 电平中性 matched)与 PBC=10 钳亮尾。 -**节点 35 改动**:再闭合的输入场从"逐细胞原始总量比 r_i"换成"在坐标 15-NN 图上扩散 1 步后的 r̃_i"-(β_rec=0.15),并把平滑场的每细胞线性总量中位数**按数据自算**重标定回未平滑场所给的值-(`VEC_REC_LEVEL=matched`,无拟合常数)——机制只改场的形状,不改库大小电平。-proxy_noscale A 半 56.869(父 56.792):de_direction 0.3730→0.3839(连续量、4 个幅度上一致上升)、-de_score 0.2639→0.2778(+1 量化步)、mmd_u 0.04888→0.04853(变好)、variogram 持平、-nb_mmd 0.08025→0.08093(变差,PLAN 在该项的假设被证否);结构门保持 1。+**节点 37 改动(全部默认关,输出逐位 = 节点 35)**:+- `VEC_VDIFF_W`(默认 0=提交态):位移前把逐细胞 log2 速度场在坐标 15-NN 上混合一步+ `d_eff=(1−W)v_type(i)+W·mean_{kNN}v_type(j)`,`VEC_VDIFF_K=15`、`VEC_VDIFF_NORM`(幅度保持变体)。+ W=0.1–0.5 六档 + NORM/α 补偿变体共 9 次查分:nb_mmd 单调改善(0.08093→0.07845)但+ de_direction/variogram 等值恶化,PLAN 守卫(de_dir≥0.3839)全档失败,总分差 ≤0.05(噪声内)→ 证否。+- `VEC_BETA_REC` 支持负值(再闭合场锐化;β=−0.15 实测 nb_mmd 0.07947 但 DE 更差 → 证否,默认 +0.15 承父)。 -- 运行:`python run.py --data <view> --out <pred.h5ad> --seed <int>`;CPU ~3s、<1.5GB(`EXECUTION.json gpu:false`)。-- 关闭对照:`--ablate <任意名>` → β_rec=0 且事后平滑关闭 → 输出逐位 = 节点 33(已验证)。-- 已证否(默认关,代码保留,明细见 METHOD.md):**再闭合场平滑对 nb_mmd 的假设**(β↑ 时 nb_mmd 单调变差)、- **提亮方向**(不做电平中性时收益全部来自库大小膨胀;纯常数 ×1.31 得 57.143 比机制本身更高,但违反 CP10k- 不变量、只在 de_score 的 chance 校正缺口上起作用,已拒绝提交)、事后伪批量守恒平滑(ε 0.15–0.7 全单调变差)、- PBC∈{4,6,8,12}(在 γ1.35/ε0.1 下钳制不激活,逐位空操作)、k=0.4、SMOOTH_K=30,以及父节点列出的- 速度回归/全局收缩/加性解码/幅度分层/方向非对称/速度空间扩散/原始总量再闭合基准。-- 确定性:seed 0/1/2 逐位一致;伪装视图(时间 +1 天平移、manifest 键序打乱、换路径)逐位一致;- 单输入/锚≠末输入退路逐位 copy_last。+结论:该基座所有表达变换轴(α、W、β_rec 双符号、k、ε)落在同一条帕累托前沿上+(DE+variogram ↔ nb_mmd+mmd_u 约 1:1 points 交换),加权和在父配置处已近最优;明细见 METHOD.md。++- 运行:`python run.py --data <view> --out <pred.h5ad> --seed <int>`;CPU ~3.5s、<1.5GB(`EXECUTION.json gpu:false`)。+- 关闭对照:`--ablate <任意名>` → VDIFF_W=0(提交态本就为 0)→ 输出与完整运行逐位相同(已验证;+ NO_CHANGE 状态下 mechanism_active 预期为 no)。+- 确定性:seed 0 逐位可复现;seed 0/1 内容一致(锚 24826 ≤ max_cells,take 全取,仅 uns/generator_seed 变);+ 无绝对时间、无视图标识、无写死常数;单输入/锚≠末输入退路逐位 copy_last(承父)。diff --git a/solution/run.py b/solution/run.pyindex 61c073f..74ff27e 100644--- a/solution/run.py+++ b/solution/run.py@@ -24,10 +24,65 @@ Mechanism (on by default, alpha = 1.0): Coordinates, row order and cell count are never modified. ---ablate <name> (any name) turns THIS node's mechanism (the spatial low-pass-of the re-closure field, see the node 35 block in main()) off and keeps the-rest of the pipeline unchanged (raw per-cell total ratio = parent node 33,-verified bit-for-bit).+--ablate <name> (any name) turns THIS node's mechanism off and keeps the+rest of the pipeline unchanged. Node 37 ships with its mechanism OFF+(VEC_VDIFF_W=0, falsified -- see the node 37 block below), so the ablated+run is bit-for-bit identical to the full run (both = parent node 35).++Node 37 (VDIFF, spatial mixing of the log2 displacement field): FALSIFIED,+ships at VDIFF_W=0 (output bit-for-bit parent node 35). The PLAN's+mechanism was implemented exactly as specified: before the multiplicative+displacement, each anchor cell's log2 velocity is mixed with the mean+velocity of its 15 nearest COORDINATE neighbours,+d_eff = (1-W)*v_type(i) + W*mean_{j in kNN(i,15)} v_type(j).+Mechanism ran (evidence): affected_frac = 0.9014 of cells (every cell with+>=1 unlike-type coordinate neighbour; interior cells unchanged by+construction), per-cell |d_eff - d_raw| max q50 = 0.039/0.079/0.118 at+W = 0.1/0.2/0.3. The target metric responded MONOTONICALLY (A-half raws,+parent W=0 in parentheses): nb_mmd 0.08026/0.07967/0.07940/0.07915/+0.07893/0.07845 at W = 0.1/0.2/0.25/0.3/0.35/0.5 (0.08093), mmd_u+0.0480/0.0475/0.0473/0.0470/0.0467/0.0460 (0.04853) -- but de_direction+0.3783/0.3686/0.3662/0.3633/0.3590/0.3512 (0.3839, PLAN guard >= 0.3839+FAILED at every amplitude) and variogram 0.0357/0.0361/0.0363/0.0365/+0.0367/0.0373 (0.035414) degraded in lockstep. Totals: 56.776/56.901/+56.848/56.917/56.914/56.849 vs parent 56.869 -- every config within++-0.05 of the parent (noise ~1). de_score quantisation (0.25/0.2639/+0.2778 steps) is the only thing separating the totals; the smooth+components exchange nb_mmd+mmd_u gains against de_direction+variogram+losses at almost exactly 1:1 in points (e.g. W=0.3: nb_mmd +0.135,+mmd_u +0.101, de_dir -0.098, vario -0.090 => net +0.048).+Variants tried to break the trade-off, all falsified (A-half totals):+ (a) amplitude-preserving blending (per-cell L2 renormalisation of the+ mixed velocity back to the raw norm, VDIFF_NORM=1): the nb_mmd gain+ almost vanishes (0.08067 at W=0.2/NORM=1 vs 0.07967 plain;+ 0.08013 at W=0.5/NORM=1 vs 0.07845 plain) => the gain comes FROM+ the boundary amplitude shrinkage, not from direction coherence;+ totals 56.714/56.791.+ (b) alpha compensation (W=0.3, alpha=1.2, restoring the diluted+ magnitude): de_direction partially recovers (0.3722) and variogram+ hits a tree-best 0.033287, but nb_mmd jumps back to 0.08238 and+ mmd_u to 0.05036 -- total 56.650. Confirms amplitude is the single+ controlling axis: ALL of {alpha, W, beta_rec, k} move the prediction+ along ONE Pareto front (DE+variogram vs nb_mmd+mmd_u) whose weighted+ sum is already maximised at the parent base.+Alternate mechanisms targeting the same weakness (local_spatial/nb_mmd),+also falsified:+ (c) re-closure field SHARPENING (beta_rec = -0.15, the sign-flip of the+ node-35 smoothing axis whose nb_mmd gradient was monotone): nb_mmd+ 0.07947 (better than any plain VDIFF at equal W cost) but+ de_direction 0.3703 and de_score -1 step => total 56.775.+ (beta_rec = -0.3 clamps 1.24% of cells at PBC; not scored.)+ (d) velocity soft-threshold k = 0.6 (selectivity axis, orthogonal to+ amplitude in construction): de_direction holds (0.3838) but+ de_score -1 step (0.2639), everything else flat => 56.804.+12 vec-score queries; per-config metric breakdowns in METHOD.md.+Conclusion for future nodes: on the (alpha=1, k=0.5, gamma=1.35, eps=0.1,+beta_rec=0.15) base the weighted score surface is FLAT within +-0.1 along+every expression-transform axis found so far; the front trades+DE/variogram against nb_mmd/mmd_u at ~1:1 points. A >noise gain must+change something orthogonal to displacement amplitude/smoothness+(composition and coordinates are frozen by the family; both were+falsified earlier: nodes 16/22). Node 35 addition on top of node 33 (the submitted configuration): @@ -270,8 +325,11 @@ VEC_SMOOTH_STEPS (2), VEC_SMOOTH_EPS (0.1), VEC_SMOOTH_K (15), VEC_ALPHA (1.0), VEC_C (0.0 = pure multiplicative), VEC_K (0.5), VEC_GAMMA (1.35), VEC_RECLOSE_GEO (1),-VEC_BETA_REC (0.15), VEC_REC_STEPS (1), VEC_REC_K (15),+VEC_BETA_REC (0.15; negative values sharpen the re-closure field, node 37+falsified), VEC_REC_STEPS (1), VEC_REC_K (15), VEC_REC_LEVEL (matched), VEC_REC_BRIGHT (1.0 = off, diagnostic only),+VEC_VDIFF_W (0.0 = off, node 37 falsified), VEC_VDIFF_K (15),+VEC_VDIFF_NORM (0.0 = off, falsified amplitude-preserving decode), VEC_POST_EPS (0.0 = off, falsified), VEC_POST_STEPS (2), VEC_POST_K (15), VEC_PBC (10.0), VEC_MIXMODE (rel), VEC_MIXREL (1.0), VEC_MIXEPS (1.0), VEC_DOMAIN (log), VEC_SOFTD (0), VEC_CAPD (0), VEC_CVEL (-1 = legacy@@ -333,6 +391,7 @@ POST_STEPS = int(os.environ.get("VEC_POST_STEPS", "2")) # diffusion steps of th POST_K = int(os.environ.get("VEC_POST_K", "15")) # coordinate neighbours of the post-hoc smoothing VDIFF_W = float(os.environ.get("VEC_VDIFF_W", "0.0")) # spatial velocity diffusion weight (0 = off) VDIFF_K = int(os.environ.get("VEC_VDIFF_K", "15")) # coordinate neighbours for the velocity diffusion+VDIFF_NORM = float(os.environ.get("VEC_VDIFF_NORM", "0.0")) # >0: per-cell renormalise the blended velocity to (1-VDIFF_NORM)*raw_norm + VDIFF_NORM*blended_norm (1 = exact raw-norm preservation, direction-only blending) REGRESS_MODE = os.environ.get("VEC_REGRESS_MODE", "type") # "type" (per-type OLS) or "global" (pooled slope) REGRESS_W = float(os.environ.get("VEC_REGRESS_W", "1.0")) # blend weight of the residual velocity (1 = pure residual) REGRESS_MINGENES = int(os.environ.get("VEC_REGRESS_MINGENES", "50")) # types with fewer positive-pb genes skip regression@@ -554,24 +613,24 @@ def main() -> None: alpha = ALPHA pseudocount = PSEUDOCOUNT gamma = GAMMA- # Off-control: --ablate <any> (the harness passes the PLAN's- # VEC_VEL_REGRESS; unrecognised names are treated as the primary- # mechanism, which for the SUBMITTED configuration is the- # geometric-mean re-closure) disables regression/shrinkage/velocity- # diffusion/geo-re-closure; everything else (smoothing, rel velocity,- # soft threshold, alpha, gamma=0.45 linear re-closure, PBC, gates,- # frozen coordinates/rows/composition) is untouched.+ # Node 37 off-control: --ablate <any> turns OFF THIS node's mechanism+ # (the spatial mixing of the log2 displacement field, VDIFF_W) and+ # NOTHING else. The node-35 base (beta_rec=0.15 + level-neutral+ # re-matching, gamma=1.35, eps=0.1, k=0.5, PBC=10, gates, frozen+ # coordinates/rows/composition) stays exactly as submitted, so the+ # ablated run is bit-for-bit parent node 35. regress = VEL_REGRESS and args.ablate is None shrink_on = SHRINK_N0 > 0.0 and args.ablate is None vdiff_w = VDIFF_W if args.ablate is None else 0.0 reclose_geo = RECLOSE_GEO- # Node 35 off-control: --ablate <any> turns OFF the node's mechanism and- # nothing else. The SUBMITTED mechanism is the post-hoc pseudobulk-preserving- # smoothing pass (post_on); the PLAN's original re-closure field smoothing- # (beta_rec) was falsified and ships at 0, but --ablate disables it too so- # the ablated run is bit-for-bit parent node 33 either way.- beta_rec = BETA_REC if args.ablate is None else 0.0- post_on = args.ablate is None+ # If the submitted mechanism is the SHARPENED re-closure field+ # (BETA_REC < 0), --ablate reverts it to the raw per-cell field+ # (beta_rec = 0); a non-negative BETA_REC is inherited base (node 35)+ # and stays untouched under ablation.+ beta_rec = BETA_REC+ if args.ablate is not None and BETA_REC < 0.0:+ beta_rec = 0.0+ post_on = True manifest = load_manifest(args.data) genes = panel_genes(args.data, manifest)@@ -623,7 +682,40 @@ def main() -> None: Wv = sparse.csr_matrix( (np.full(vrows.size, 1.0 / vnb.shape[1]), (vrows, vnb.ravel())), shape=(m, m))+ V_raw = V V = (1.0 - vdiff_w) * V + vdiff_w * (Wv @ V)+ if VDIFF_NORM > 0.0:+ # Amplitude-preserving blending: the plain kNN average+ # SHRINKS |d| at type boundaries (mixing unlike velocities),+ # which dilutes the per-gene pseudobulk displacement and+ # costs de_direction. Rescale each blended velocity to the+ # raw per-cell L2 norm (VDIFF_NORM=1) or a partial blend of+ # raw/blended norms, so only the DIRECTION of the+ # displacement is spatially coherentised.+ nrm_raw = np.linalg.norm(V_raw, axis=1, keepdims=True)+ nrm_eff = np.linalg.norm(V, axis=1, keepdims=True)+ nrm_tgt = (1.0 - VDIFF_NORM) * nrm_eff + VDIFF_NORM * nrm_raw+ V = V * np.divide(nrm_tgt, np.maximum(nrm_eff, 1e-12),+ out=np.ones_like(nrm_eff), where=nrm_eff > 1e-12)+ if DEBUG:+ # Mechanism evidence (PLAN mechanism_evidence): which cells+ # actually moved and by how much. Only type-boundary cells+ # can change (interior cells have same-type neighbours ->+ # the kNN mean equals the raw velocity).+ dmax = np.abs(V - V_raw).max(axis=1)+ dl2 = np.sqrt(((V - V_raw) ** 2).sum(axis=1))+ aff = dmax > 1e-6+ lab_v = np.asarray(stage.labels[rows]).astype(str)+ nb_type = lab_v[vnb]+ bnd = (nb_type != lab_v[:, None]).any(axis=1)+ print(f"vdiff: w={vdiff_w} k={kk} affected_frac={aff.mean():.4f} "+ f"boundary_frac={bnd.mean():.4f} "+ f"aff_among_boundary={aff[bnd].mean() if bnd.any() else 0.0:.4f} "+ f"|dmax| q50/q90/max (affected)={np.quantile(dmax[aff], 0.5) if aff.any() else 0.0:.4f}/"+ f"{np.quantile(dmax[aff], 0.9) if aff.any() else 0.0:.4f}/"+ f"{dmax.max():.4f} "+ f"dl2_mean_affected={dl2[aff].mean() if aff.any() else 0.0:.4f} "+ f"affected_inside_frac={float((aff & ~bnd).mean()):.5f}", flush=True) pba = Xa.mean(axis=0) dt_approx = pba - Xb.mean(axis=0) if DOMAIN == "lin":@@ -752,7 +844,7 @@ def main() -> None: # the correction, which carries the cross-gene dp # ordering fix, survives. beta_rec=0 -> r_tilde = r # bit-for-bit (parent node 33 behaviour).- if beta_rec > 0.0 and REC_STEPS > 0:+ if beta_rec != 0.0 and REC_STEPS > 0: logr = np.log(np.maximum(r, 1e-12)).ravel() Wr = _knn_w(coords, REC_K) for _ in range(int(REC_STEPS)):@@ -769,7 +861,7 @@ def main() -> None: r_med = float(np.median(r_use)) sg = np.power(np.divide(np.full_like(r_use, r_med), np.maximum(r_use, 1e-12)), gamma)- if REC_LEVEL == "matched" and beta_rec > 0.0:+ if REC_LEVEL == "matched" and beta_rec != 0.0: # Level-neutrality by construction: rescale the # smoothed-field scale so the MEDIAN per-cell linear # total equals the one the UNSMOOTHED (parent) field
调研来源?调研员查到并用到的知识条目和文献检索结果(只列标题和编号)。
用到的知识库条目
| 编号 | 标题 | 出处 |
|---|---|---|
| k007 | Interval staging and held-out-window filtering of external data | notes/official/来件/virtualembryo.ai/rules.md |
| k026 | Canonicalise predicted 3D coordinates before submission | notes/pitfalls/04_scorer_invariance.md |
| k024 | World-model evaluation dimensions for state-transition predictors | notes/competition/07_biomedical_world_models.md |
分析结果?分析员写的 ANALYSIS.json:改了什么、各组分数怎么变、假设是否成立、经验和下一步建议。
| 改了什么 | 实现了 PLAN 的 VDIFF(乘法位移前把 log2 速度场在坐标 15-NN 上混合一步,VEC_VDIFF_W/K/NORM),扫 W=0.1–0.5 六档加 NORM/α 补偿变体和两个备选机制(β_rec=−0.15 锐化、k=0.6),共 12 次查分后全部证否,按 PLAN 边界规则以 W=0 提交——输出与父节点 35 逐位相同(NO_CHANGE),变化量表全为 +0.00。 |
|---|---|
| 各组分数的变化 | cell_state:噪声内(58.92→58.92,+0.00;mmd_u 0.04751、variogram 0.03471 不变)。离线:VDIFF 使 mmd_u 改善至 0.0460–0.0480 但 variogram 等值恶化。 expression_change:噪声内(提交态与父逐位相同,60.35→60.35,+0.00;de_score 0.2778、de_direction 0.3874 不变)。离线扫描:VDIFF 各档 de_direction 单调跌 0.3839→0.3512,PLAN 守卫(≥0.3839)全档失败。 local_spatial:噪声内(59.15→59.15,+0.00;nb_mmd 0.07784 不变)。离线:nb_mmd 随 W 单调改善 0.08093→0.07845(A 半),PLAN 主判目标在 W≥0.2 达成,但被 DE/variogram 的等值损失抵消,总分净差 ≤0.05(噪声 ~1 的 1/20)。 shape_scale:噪声内(50.00→50.00,坐标冻结,三项 raw 逐位相同,结构门恒 1)。 |
| family_id | T2HX-01 |
| 假设是否成立 | 否 |
| 经验 |
|
| mechanism_active | 否 |
| 下一步建议 |
|
对话摘要?每个角色和大模型对话的统计:轮数、工具调用、用时、token 数和最后的回答摘录;原始记录只给路径。
只给统计和最后回答的摘录;完整对话请到原始记录位置里列出的文件看。
分析员
| 角色?调研员写计划、工程师改代码、分析员解读分数、审查员检查作弊。 | 分析员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数?大模型一共回复了几轮(每轮可以调用多个工具)。 | 2 |
| 工具调用?大模型调用读文件、执行命令等工具的次数,按工具名统计。 | 共 1 次:write 1 |
| 用时 | 不到 1 分 |
| token 数?输入 / 输出(含思考)的 token 数,来自接口返回的用量。 | 输入 20,673 · 输出 1,382 · 思考 173 |
| 任务(第一行) | 分析节点 n37 的打分结果,写 ANALYSIS.json |
| 最后的回答(摘录) | ANALYSIS.json written |
| 原始记录位置?完整对话记录在 Spark 上的文件路径;看板不复制原始内容。 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/analyst.jsonl 6 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/analyst.stderr |
工程师
| 角色 | 工程师 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 52 |
| 工具调用 | 共 57 次:bash 41、edit 10、read 3、write 2、todowrite 1 |
| 用时 | 34 分 |
| token 数 | 输入 147,682 · 输出 19,258 · 思考 48,110 |
| 任务(第一行) | 按计划修改程序:速度场空间相干化(VDIFF)改善邻域配对 |
| 最后的回答(摘录) | 完成。总结: **做了什么**:按 PLAN 实现了 VDIFF(log2 位移场在坐标 15-NN 上空间混合),机制确认运行(affected_frac=0.9014,全为型边界细胞,型内逐位不变);扫了 W=0.1/0.2/0.25/0.3/0.35/0.5 六档 + 幅度保持解码(NORM=1)×2 + α=1.2 补偿,另按 §2 试了两个备选机制(β_rec=−0.15 再闭合场锐化、k=0.6),共 12 次查分(余 8)。 **查分结果**(A 半,父=56.869):nb_mmd 随 W 单调改善 0.08093→0.07845(PLAN 主判目标在 W≥0.2 达成),mmd_u 同步改善,但 de_direction 单调跌(0.3839→0.3512,PLAN 守卫全档失败)、variogram 等值恶化;总分全部落在 56.65–56.92(最佳 W=0.3 仅 +0.048,噪声的 1/20)。NORM=1 证明收益来自边界幅度收缩本身;α=1.2 证明补回幅度即吃掉收益——α/W/β_rec 双符号/k/ε 全部落在同一条帕累托前沿上,父基座已近该前沿的加权和最优。按 PLAN 规则 (4) 以 W=0 提交(输出与父 35 逐位相同,vec-check 通过、seed 确定、ablate 逐位一致),METHOD.md 首行 `NO_CHANGE:`,含全部 12 次查分的分项表。 **下一步最值得试**:本基座的表达变换轴已扫平,>噪声的收益需要与"位移幅度/平滑度"正交的新轴(前沿明细与唯一未试的 dp 守恒重分配思路已写进 METHOD.md/run.py 文档,预期不乐观);更可能出收益的是跳出 T2HX-01 家族(组成/坐标轴在本家族内冻结且早前证否)。 |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/engineer.jsonl 390 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/engineer.stderr |
调研员
| 角色 | 调研员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 1 |
| 工具调用 | 共 0 次:— |
| 用时 | 1 分 |
| token 数 | 输入 22,770 · 输出 1,057 · 思考 2,986 |
| 任务(第一行) | 为节点 n37(改进,父节点 n35)写改进计划 PLAN.json |
| 最后的回答(摘录) | {
"name": "速度场空间相干化(VDIFF)改善邻域配对",
"motivation": "父节点35 local_spatial=59.15(nb_mmd raw 0.07784,skill 0.592),是四组中权重最大(25+门控形状25)且非地板的最弱组。ANALYSIS明确建议:在(γ1.35, ε0.1, β_rec=0.15)新基座上试VDIFF(旧ε0.4基座证否但新基座未试)。当前基座ε=0.1底物平滑弱,型边界处位移不连续更突出,空间相干化有更大余量。通过判据:nb_mmd raw回落至<0.0771(节点33水平)。",
"approach": "步骤:(1) 承父节点35全部冻结参数(α=1, k=0.5, γ=1.35, ε=0.1, β_rec=0.15, VEC_REC_LEVEL=matched, PBC=10, SMOOTH_STEPS=2, K=15, 门控);(2) 在逐细胞乘法位移之前,对log2域位移场做一步空间混合:d_i_eff = (1-W)·α·v_type(i) + W·mean_{j∈kNN_coord(i,15)}(α·v_type(j)),即VEC_VDIFF_W控制权重、VEC_VDIFF_K=15;(3) 小扫W∈{0.1, 0.2, 0.3},以nb_mmd raw为主判(目标<0.0771),de_direction≥0.3839、mmd_u≤0.04860为守卫;(4) 若3档均不达标则按边界规则提交W=0(=父节点逐位)。实现要点:kNN图复用坐标15-NN(与β_rec共用),位移场混合只在型边界细胞有实际效果(型内部邻居同型,混合后不变)。单输入阶段退路:无前一输入时v=0→d=0→逐位copy_last(承父)。vec-score快速筛选:先跑W=0.2单次查分看nb_mmd方向,再决定是否扩网格。",
"expected_groups": ["local_spatial"],
"risks": "1) 新基座ε=0.1已足够低,型边界不连续性可能不是nb_mmd的主要瓶颈,VDIFF无效(与旧基座一样证否)——Engineer第一次查分(W=0.2)即可判断方向;2) 空间混合可能轻微模糊型间DE信号(边界细胞位移减小),导致de_score降1量化步——守卫de_direction≥0.3839;3) 若型内细胞占绝大多数(>95%),实际受影响的细胞太少,效果在噪声内——Engineer应打印affected_frac(位移改变>1e-6的细胞比例),若<3%则机制本身无法产生可测效果,直接提交W=0。",
"family_id": "T2HX-01",
"mechanism": "在按型伪批量乘法位移施加前,将log2域位移场在坐标15-NN图上做一步加权混合,使型边界处位移空间连续,减少邻域内表达-位置配对的不连续性。",
"vs_constant_shift": "常数位移对所有细胞施加相同偏移,不改变空间结构;VDIFF只改变型边界处细胞的位移幅度(使其趋向邻居均值),型内部细胞不受影响,改变的是位移场的空间梯度而非电平。",
"mechanism_evidence": "Engineer应报告:(1) affected_frac——位移实际改变(|Δd|>1e-6)的细胞比例,预期5-20%(仅边界细胞);(2) 边界细胞的|d_eff - d_raw|分布(应>0才说明混合生效);(3) nb_mmd raw从0.07784回落的幅度;(4) de_direction/de_score是否守住(位移场混合不应改变伪批量均值方向)。若affected_frac≈0或nb_mmd不变,机制未运行。",
"mechanism_off_control": "设VEC_VDIFF_W=0(或--ablate mechanism),此时d_eff=d_raw,输出与父节点35逐位相同(X与坐标array_equal)。预期差别:W=0时nb_mmd=0.07784;W>0时若机制有效,nb_mmd应下降(<0.0771)。",
"sources": []
} |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/researcher.jsonl 4 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/researcher.stderr |
审查员
| 角色 | 审查员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 9 |
| 工具调用 | 共 12 次:read 8、bash 3、write 1 |
| 用时 | 1 分 |
| token 数 | 输入 42,712 · 输出 1,776 · 思考 1,485 |
| 任务(第一行) | 审查节点 n37 的程序是否越界读取、写死目标、钻评分器漏洞 |
| 最后的回答(摘录) | REVIEW.json written |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/reviewer.jsonl 200 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/37/reviewer.stderr |