Download previous_report.html from Pathstudy/imagebind-pathology-report: direct link, hf CLI and curl.
- Browser
- Download file 28.9 kB
-
https://huggingface.co/spaces/Pathstudy/imagebind-pathology-report/resolve/main/previous_report.html
- Command line
-
hf download hf://spaces/Pathstudy/imagebind-pathology-report/previous_report.html
-
curl -L -o previous_report.html https://huggingface.co/spaces/Pathstudy/imagebind-pathology-report/resolve/main/previous_report.html
28.9 kB
| <html lang="zh-CN"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>四模态病理对齐实验报告</title> | |
| <meta name="description" content="H&E / 文本 / mIF 蛋白 / RNA 四模态 ImageBind 式对齐:最终协议结果、虚拟数据校准、外部测试与最佳训练方案"> | |
| <style> | |
| :root{ | |
| --bg:#f7f6f2; --panel:#ffffff; --ink:#1d1f23; --muted:#5d636e; --line:#e3e1da; | |
| --accent:#2f6f5e; --accent-soft:#e2efe9; --warn:#a4561b; --warn-soft:#f8eadf; | |
| --bad:#a33a3a; --bad-soft:#f6e2e2; --bar:#2f6f5e; --bar2:#c9a24a; --chance:#a33a3a; | |
| } | |
| @media (prefers-color-scheme: dark){ | |
| :root:not([data-theme="light"]){ | |
| --bg:#15171a; --panel:#1d2024; --ink:#e8e6e1; --muted:#9aa0a9; --line:#30343a; | |
| --accent:#6fc2a6; --accent-soft:#1f3530; --warn:#e2a06a; --warn-soft:#3a2b20; | |
| --bad:#e38787; --bad-soft:#3a2323; --bar:#6fc2a6; --bar2:#d9b862; --chance:#e38787; | |
| } | |
| } | |
| :root[data-theme="dark"]{ | |
| --bg:#15171a; --panel:#1d2024; --ink:#e8e6e1; --muted:#9aa0a9; --line:#30343a; | |
| --accent:#6fc2a6; --accent-soft:#1f3530; --warn:#e2a06a; --warn-soft:#3a2b20; | |
| --bad:#e38787; --bad-soft:#3a2323; --bar:#6fc2a6; --bar2:#d9b862; --chance:#e38787; | |
| } | |
| *{box-sizing:border-box} | |
| body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif} | |
| .wrap{max-width:1040px;margin:0 auto;padding:32px 16px 64px} | |
| header h1{font-size:28px;line-height:1.3;margin:0 0 6px} | |
| header p.sub{color:var(--muted);margin:0 0 18px} | |
| nav{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px;margin:0 0 26px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px} | |
| nav a{color:var(--accent);text-decoration:none} | |
| nav a:hover{text-decoration:underline} | |
| h2{font-size:21px;margin:38px 0 10px;padding-top:8px;border-top:1px solid var(--line)} | |
| h3{font-size:16.5px;margin:22px 0 8px} | |
| p{margin:8px 0} | |
| .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:12px 0} | |
| .verdict{border-left:5px solid var(--accent);background:var(--accent-soft)} | |
| .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:14px 0} | |
| .kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px} | |
| .kpi .v{font-size:26px;font-weight:700;color:var(--accent);line-height:1.2} | |
| .kpi .l{font-size:13px;color:var(--muted)} | |
| .tbl{overflow-x:auto;margin:10px 0;border:1px solid var(--line);border-radius:10px;background:var(--panel)} | |
| table{border-collapse:collapse;width:100%;font-size:13.8px} | |
| th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap} | |
| td.wrap,th.wrap{white-space:normal;min-width:180px} | |
| th{background:var(--bg);font-weight:600} | |
| tr:last-child td{border-bottom:none} | |
| td.n{text-align:right;font-variant-numeric:tabular-nums} | |
| .tag{display:inline-block;font-size:12px;padding:1px 7px;border-radius:999px;margin-left:4px} | |
| .ok{background:var(--accent-soft);color:var(--accent)} | |
| .warn{background:var(--warn-soft);color:var(--warn)} | |
| .bad{background:var(--bad-soft);color:var(--bad)} | |
| .muted{color:var(--muted)} | |
| .small{font-size:13px} | |
| ul{margin:6px 0 6px 20px;padding:0} | |
| li{margin:3px 0} | |
| .bars{margin:8px 0} | |
| .bar{display:grid;grid-template-columns:minmax(120px,240px) 1fr 56px;align-items:center;gap:10px;margin:5px 0;font-size:13.5px} | |
| .track{position:relative;height:16px;background:var(--bg);border:1px solid var(--line);border-radius:4px} | |
| .fill{position:absolute;left:0;top:0;bottom:0;background:var(--bar);border-radius:3px} | |
| .fill.b2{background:var(--bar2)} | |
| .chance{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--chance)} | |
| .bar .val{text-align:right;font-variant-numeric:tabular-nums} | |
| .legend{font-size:12.5px;color:var(--muted)} | |
| .recipe{counter-reset:s} | |
| .recipe>li{list-style:none;position:relative;padding-left:34px;margin:10px 0} | |
| .recipe>li:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--panel);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center} | |
| code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 4px} | |
| footer{margin-top:40px;color:var(--muted);font-size:12.5px} | |
| @media (max-width:600px){ | |
| header h1{font-size:23px} | |
| .bar{grid-template-columns:110px 1fr 46px} | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="wrap"> | |
| <header> | |
| <h1>四模态病理对齐实验报告</h1> | |
| <p class="sub">H&E 图像 · 文本 · mIF 蛋白 · RNA,ImageBind 式对齐到 UNI2 H&E 空间|结果截至 2026-10-22(含 13 种训练方式对比)</p> | |
| </header> | |
| <nav> | |
| <a href="#verdict">总体结论</a><a href="#setup">数据与协议</a><a href="#real">训练过的配对</a> | |
| <a href="#emergent">未一起训练的配对</a><a href="#virtual">虚拟数据校准</a><a href="#external">外部测试</a> | |
| <a href="#encoders">编码器对比</a><a href="#text">文本清理</a><a href="#regimes">训练方式对比</a><a href="#recipe">最佳训练方案</a><a href="#next">下一步</a> | |
| </nav> | |
| <section id="verdict"> | |
| <div class="card verdict"> | |
| <strong>总体结论:</strong>H&E↔mIF 很强,几乎能一一对上;H&E↔文本和 H&E↔RNA 中等;从未一起训练的模态之间(如 mIF↔RNA、文本↔RNA)能对上,约为瞎猜的 4–10 倍,但很弱。模型在同类组织上能迁移,在 DLPFC(脑)外部测试上失败。 | |
| </div> | |
| <div class="kpis"> | |
| <div class="kpi"><div class="v">0.726</div><div class="l">H&E↔mIF R@1(17 通道)<br>配对准确率 0.935</div></div> | |
| <div class="kpi"><div class="v">0.237</div><div class="l">H&E↔文本 R@1(TCGA)<br>R@10 0.73</div></div> | |
| <div class="kpi"><div class="v">0.148</div><div class="l">H&E↔RNA R@1(HEST)<br>R@10 0.55</div></div> | |
| <div class="kpi"><div class="v">≈0.10</div><div class="l">mIF↔RNA,从未一起训练<br>约为瞎猜的 10 倍</div></div> | |
| </div> | |
| <p class="small muted">指标说明:R@1 = 从 100 个候选里第一个就找对的比例(瞎猜 0.01);配对准确率 = 100 对做一对一最优匹配后的正确率(瞎猜 0.01)。均为测试集、5 折平均、两个检索方向平均。</p> | |
| </section> | |
| <section id="setup"> | |
| <h2>数据与评估协议</h2> | |
| <div class="tbl"><table> | |
| <tr><th>模态</th><th>和 H&E 配对的数据</th><th class="wrap">规模</th><th>划分(训练 / 验证 / 测试)</th></tr> | |
| <tr><td>mIF(蛋白)</td><td>ORION 结直肠</td><td class="wrap">3,187 个 tile,17 个通道</td><td>按病人 5 折 + 官方划分</td></tr> | |
| <tr><td>RNA</td><td>HEST-1k Visium</td><td class="wrap">9,484 个 spot,16 种器官,57 个研究</td><td>按研究/病人分组 5 折</td></tr> | |
| <tr><td>文本</td><td>TCGA(PathGen 系列)</td><td class="wrap">6,144 张图,清理后 6,115 条真实文本</td><td>按病人 5 折</td></tr> | |
| </table></div> | |
| <ul> | |
| <li><strong>只用真实配对训练。</strong>验证集只用于早停,结果全部来自测试集,病人或研究不会跨划分。</li> | |
| <li><strong>虚拟数据只用于评估:</strong>MIPHEI 虚拟 mIF、STPath 虚拟 RNA、GPT few-shot 合成文本。</li> | |
| <li><span class="tag warn">循环</span> 表示两侧都由同一张 H&E 生成(如 H&E↔由这张 H&E 预测的虚拟 mIF),只能作参考,不能证明模型学到了什么。</li> | |
| </ul> | |
| </section> | |
| <section id="real"> | |
| <h2>一、训练过的配对(真实数据)</h2> | |
| <div class="tbl"><table> | |
| <tr><th>配对</th><th>数据</th><th class="n">R@1</th><th class="n">R@10</th><th class="n">配对准确率</th><th class="wrap">评价</th></tr> | |
| <tr><td>H&E↔mIF(17 通道)</td><td>ORION 5 折</td><td class="n"><b>0.726</b> ±0.031</td><td class="n">0.989</td><td class="n"><b>0.935</b></td><td class="wrap">很强</td></tr> | |
| <tr><td>H&E↔mIF(16 通道)</td><td>ORION 5 折</td><td class="n">0.689</td><td class="n">0.984</td><td class="n">0.901</td><td class="wrap">通道越多越好</td></tr> | |
| <tr><td>H&E↔mIF(10 通道)</td><td>ORION 5 折</td><td class="n">0.644</td><td class="n">0.979</td><td class="n">0.863</td><td class="wrap"></td></tr> | |
| <tr><td>H&E↔mIF(17 通道)</td><td>ORION 官方测试</td><td class="n">0.665</td><td class="n">1.000</td><td class="n">0.948</td><td class="wrap">109 个 tile</td></tr> | |
| <tr><td>H&E↔文本</td><td>TCGA 5 折</td><td class="n"><b>0.237</b> ±0.012</td><td class="n">0.730</td><td class="n">0.248</td><td class="wrap">中等</td></tr> | |
| <tr><td>H&E↔RNA</td><td>HEST 5 折</td><td class="n"><b>0.148</b> ±0.026</td><td class="n">0.547</td><td class="n">0.166</td><td class="wrap">中等</td></tr> | |
| </table></div> | |
| <div class="bars"> | |
| <div class="bar"><span>H&E↔mIF 17 通道</span><div class="track"><div class="fill" style="width:72.6%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.726</span></div> | |
| <div class="bar"><span>H&E↔mIF 16 通道</span><div class="track"><div class="fill" style="width:68.9%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.689</span></div> | |
| <div class="bar"><span>H&E↔mIF 10 通道</span><div class="track"><div class="fill" style="width:64.4%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.644</span></div> | |
| <div class="bar"><span>H&E↔文本</span><div class="track"><div class="fill" style="width:23.7%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.237</span></div> | |
| <div class="bar"><span>H&E↔RNA</span><div class="track"><div class="fill" style="width:14.8%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.148</span></div> | |
| <div class="legend">R@1,满刻度 1.0;红线 = 瞎猜(0.01)</div> | |
| </div> | |
| <ul> | |
| <li><strong>H&E↔RNA 在同一器官内很弱:</strong>只在同一器官内找时,脑 0.021、乳腺 0.040、肠 0.070。0.148 中相当一部分靠的是先认出器官。</li> | |
| <li><strong>H&E↔文本受限于文本本身:</strong>很多文本描述的是一类组织,而不是这张图独有的特征。按文本类型:caption 0.28、总结 0.29、开放问答 0.22、选择题 0.13。</li> | |
| </ul> | |
| </section> | |
| <section id="emergent"> | |
| <h2>二、从未一起训练的配对(各自只和 H&E 对齐)</h2> | |
| <p>没有数据集同时测了这些模态的两边,所以一侧必须用虚拟数据。</p> | |
| <div class="tbl"><table> | |
| <tr><th>配对</th><th>数据</th><th class="n">R@1</th><th class="n">R@10</th><th class="n">配对准确率</th><th class="n">约为瞎猜</th></tr> | |
| <tr><td>mIF(16 通道)↔RNA(STPath 虚拟)</td><td>ORION 5 折</td><td class="n">0.108</td><td class="n">0.512</td><td class="n">0.149</td><td class="n">11×</td></tr> | |
| <tr><td>mIF(10 通道)↔RNA(STPath 虚拟)</td><td>ORION 5 折</td><td class="n">0.098</td><td class="n">0.495</td><td class="n">0.131</td><td class="n">10×</td></tr> | |
| <tr><td>mIF↔文本(GPT 合成)</td><td>ORION 5 折</td><td class="n">0.074</td><td class="n">0.437</td><td class="n">0.072</td><td class="n">7×</td></tr> | |
| <tr><td>文本↔RNA(虚拟)</td><td>TCGA 5 折</td><td class="n">0.056</td><td class="n">0.319</td><td class="n">0.057</td><td class="n">5.6×</td></tr> | |
| <tr><td>文本↔mIF(MIPHEI 虚拟)</td><td>TCGA 5 折</td><td class="n">0.036</td><td class="n">0.237</td><td class="n">0.038</td><td class="n">3.6×</td></tr> | |
| </table></div> | |
| <ul> | |
| <li>四个模态确实对齐到了同一个空间,但精度只有直接训练过的配对的 1/3 到 1/6。</li> | |
| <li>链条上最弱的一环决定上限:H&E↔文本和 H&E↔RNA 本身只有 0.15–0.24。</li> | |
| </ul> | |
| </section> | |
| <section id="virtual"> | |
| <h2>三、虚拟数据能否代替真实数据做验证</h2> | |
| <p>校准方法:在同一批测试样本上,把真实数据换成虚拟数据,看配对效果保留多少。只算虚拟模型没训练过的样本。</p> | |
| <div class="tbl"><table> | |
| <tr><th>虚拟数据</th><th>校准对比</th><th class="n">真实</th><th class="n">虚拟</th><th>结论</th></tr> | |
| <tr><td>MIPHEI 虚拟 mIF</td><td>H&E↔mIF 配对准确率(ORION 官方测试,MIPHEI 未见过)</td><td class="n">0.921</td><td class="n">0.553</td><td><span class="tag ok">可用,约 0.6×</span></td></tr> | |
| <tr><td>STPath 虚拟 RNA</td><td>H&E↔RNA R@1(STPath 未见过的 spot)</td><td class="n">0.086</td><td class="n">0.080</td><td><span class="tag ok">可用</span></td></tr> | |
| <tr><td>GPT 合成文本</td><td>H&E↔文本 R@1(同一批 TCGA 图)</td><td class="n">0.219</td><td class="n">0.162</td><td><span class="tag ok">可用,约 0.75×,偏保守</span></td></tr> | |
| <tr><td>GigaTIME 虚拟 mIF</td><td>H&E↔mIF R@1(ORION 5 折)</td><td class="n">0.644</td><td class="n">0.038</td><td><span class="tag bad">不可用,已弃用</span></td></tr> | |
| </table></div> | |
| <ul class="small"> | |
| <li>MIPHEI 用 ORION 官方训练集训练过,因此只有官方测试切片(CRC02、CRC11)和 TCGA 对它是干净的。</li> | |
| <li>通道均值和真实 mIF 的相关性:MIPHEI 0.70,GigaTIME 0.25。</li> | |
| <li>直接用虚拟配对训练(文本↔虚拟 RNA / 虚拟蛋白)没有超过经 H&E 间接对齐:蛋白 0.596 vs 0.678(AUROC),RNA 打平。所以虚拟数据只用于评估。</li> | |
| </ul> | |
| </section> | |
| <section id="external"> | |
| <h2>四、外部测试:DLPFC(脑)</h2> | |
| <p>spatialLIBD Visium,482 个 spot / 12 张切片 / 3 名供体。这 12 张切片原本也在 HEST 里,测试前已把整个 spatialLIBD 研究从训练中剔除。</p> | |
| <div class="tbl"><table> | |
| <tr><th>配对</th><th>类型</th><th class="n">R@1(100 候选,瞎猜 0.01)</th><th class="n">同切片内(35 候选,瞎猜 0.029)</th></tr> | |
| <tr><td>H&E↔RNA</td><td>真实,训练过的配对</td><td class="n">0.010</td><td class="n">0.031</td></tr> | |
| <tr><td>RNA↔MIPHEI 虚拟 mIF</td><td>真实×虚拟</td><td class="n">0.008</td><td class="n">0.027</td></tr> | |
| <tr><td>RNA↔合成文本</td><td>真实×虚拟</td><td class="n">0.010</td><td class="n">0.032</td></tr> | |
| <tr><td>H&E↔合成文本 <span class="tag warn">循环</span></td><td>参考</td><td class="n">0.022</td><td class="n">0.054</td></tr> | |
| <tr><td>H&E↔MIPHEI 虚拟 mIF <span class="tag warn">循环</span></td><td>参考</td><td class="n">0.017</td><td class="n">0.040</td></tr> | |
| </table></div> | |
| <ul> | |
| <li><strong>全部在瞎猜水平。</strong>只在同一张切片内比较也一样,所以不是样本差异造成的。</li> | |
| <li><strong>原因:</strong>脑皮层不同 spot 在 H&E 上本来就很难区分(HEST 内部脑也只有 0.021),这批图视野只有 112 µm 且模糊。GPT 也把 59% 的 spot 写成了淋巴组织,只有 6% 认出是脑组织。</li> | |
| </ul> | |
| </section> | |
| <section id="encoders"> | |
| <h2>五、每个模态最好的编码器</h2> | |
| <p>按最终协议的划分逐折比较;文本那项在干净文本上重跑。“领先”= 最好减对比项;p 为 5 折配对 t 检验(5 折全胜时 p 最低约 0.06)。</p> | |
| <div class="tbl"><table> | |
| <tr><th>模态</th><th>最好</th><th class="wrap">对比(领先 / 赢几折 / p)</th><th class="wrap">结论</th></tr> | |
| <tr><td>文本</td><td><b>BiomedCLIP</b> 0.237</td><td class="wrap">CONCH 文本 +0.021(5/5,p=0.03);PLIP +0.026(5/5,p=0.007);ImageBind +0.036(5/5,p=0.002)</td><td class="wrap"><span class="tag ok">明确最好</span></td></tr> | |
| <tr><td>H&E(对齐文本)</td><td>Phikon-v2 0.241 ≈ CONCH 0.241 ≈ UNI2 0.237</td><td class="wrap">GigaPath 0.223(UNI2 +0.014,4/5,p=0.05)</td><td class="wrap">三者打平</td></tr> | |
| <tr><td>H&E(对齐 mIF)</td><td><b>UNI2</b> 0.727</td><td class="wrap">GigaPath +0.009(不显著);CONCH +0.155(5/5,p<0.001)</td><td class="wrap">UNI2 ≈ GigaPath ≫ CONCH</td></tr> | |
| <tr><td>H&E(对齐 RNA)</td><td><b>UNI2</b> 0.148</td><td class="wrap">GigaPath +0.035(4/5,p=0.05)</td><td class="wrap">UNI2</td></tr> | |
| <tr><td>mIF</td><td><b>ConvNeXt-T</b>(从头训练)0.758</td><td class="wrap">VirTues(冻结)+0.030(5/5,p=0.07)</td><td class="wrap">差距小;VirTues 跨模态更好</td></tr> | |
| <tr><td>RNA</td><td>Geneformer-V2 0.159</td><td class="wrap">scGPT +0.005(3/5,不显著);MLP +0.011(4/5,p=0.05)</td><td class="wrap">打平</td></tr> | |
| </table></div> | |
| <h3>H&E × 文本编码器(干净文本,R@1)</h3> | |
| <div class="tbl"><table> | |
| <tr><th>H&E \ 文本</th><th class="n">BiomedCLIP</th><th class="n">CONCH 文本</th><th class="n">PLIP</th><th class="n">ImageBind</th></tr> | |
| <tr><td>Phikon-v2</td><td class="n"><b>0.241</b></td><td class="n">0.223</td><td class="n">0.211</td><td class="n">0.207</td></tr> | |
| <tr><td>CONCH</td><td class="n"><b>0.241</b></td><td class="n">0.221</td><td class="n">0.213</td><td class="n">0.209</td></tr> | |
| <tr><td>UNI2</td><td class="n"><b>0.237</b></td><td class="n">0.216</td><td class="n">0.211</td><td class="n">0.201</td></tr> | |
| <tr><td>GigaPath</td><td class="n">0.223</td><td class="n">0.201</td><td class="n">0.191</td><td class="n">0.189</td></tr> | |
| </table></div> | |
| <p class="small muted">UNI2 是唯一在任何配对上都没被显著超过的 H&E 编码器;Phikon-v2 只测了文本(HEST 只提供 UNI2 和 GigaPath 的特征)。CONCH 在文本上好,但 H&E↔mIF 的配对准确率只有 UNI2 的一半。</p> | |
| </section> | |
| <section id="text"> | |
| <h2>六、文本清理</h2> | |
| <ul> | |
| <li><strong>去掉 365 / 6,480 条垃圾文本:</strong>353 条只有选择题答案字母(如 “A A B B”),4 条 “error error”,8 条少于 5 个词的残缺答案。</li> | |
| <li><strong>256 张图因此没有任何真实文本:</strong>它们保留在原划分里,用 3-shot GPT 生成描述,只用于评估。H&E↔合成文本 0.150,和有真实文本的校准集(0.162)一致。</li> | |
| <li><strong>用干净文本重训后:</strong>H&E↔文本 0.229 → 0.237。但旧模型在干净测试集上也有 0.236,所以提升几乎全部来自测试集变干净;重训本身 +0.001(5 折 3 胜 2 负),属于噪声。</li> | |
| </ul> | |
| </section> | |
| <section id="regimes"> | |
| <h2>七、训练方式对比:分开训练 vs 联合训练</h2> | |
| <p>13 种方式,统一用同一套划分、同一份干净真实数据、同一种对齐头和优化器;虚拟数据只用于评估。数值为 R@1(5 折平均)。“相对 S1”= 各配对 R@1 除以 S1 后取平均。</p> | |
| <div class="tbl"><table> | |
| <tr><th>方式</th><th class="n">H&E↔mIF</th><th class="n">H&E↔RNA</th><th class="n">H&E↔文本</th><th class="n">mIF↔RNA(虚)</th><th class="n">mIF↔文本(合)</th><th class="n">文本↔RNA(虚)</th><th class="n">文本↔mIF(虚)</th><th class="n">训练过的<br>相对 S1</th><th class="n">未一起训练<br>相对 S1</th></tr> | |
| <tr><td>S1 分开·冻结锚点(原方案)</td><td class="n">0.680</td><td class="n">0.148</td><td class="n">0.234</td><td class="n">0.108</td><td class="n">0.076</td><td class="n">0.060</td><td class="n">0.038</td><td class="n">1.00</td><td class="n">1.00</td></tr> | |
| <tr><td>S2 分开·双塔(CLIP 式)</td><td class="n"><b>0.794</b></td><td class="n">0.130</td><td class="n">0.195</td><td class="n">0.019</td><td class="n">0.022</td><td class="n">0.014</td><td class="n">0.013</td><td class="n">0.96</td><td class="n"><span class="tag bad">0.26</span></td></tr> | |
| <tr><td>S3 分开·冻结·全线性头</td><td class="n">0.642</td><td class="n">0.156</td><td class="n">0.237</td><td class="n"><b>0.123</b></td><td class="n">0.070</td><td class="n">0.069</td><td class="n">0.038</td><td class="n">1.00</td><td class="n">1.05</td></tr> | |
| <tr><td>S4 分开·冻结·mIF 用 MLP,RNA/文本用线性</td><td class="n">0.680</td><td class="n">0.152</td><td class="n">0.234</td><td class="n">0.117</td><td class="n">0.074</td><td class="n"><b>0.071</b></td><td class="n">0.037</td><td class="n">1.01</td><td class="n">1.05</td></tr> | |
| <tr><td>J1 联合·冻结锚点</td><td class="n">0.706</td><td class="n">0.148</td><td class="n"><b>0.237</b></td><td class="n">0.094</td><td class="n">0.065</td><td class="n">0.056</td><td class="n">0.031</td><td class="n">1.02</td><td class="n">0.87</td></tr> | |
| <tr><td>J2 联合·共享可训练 H&E 头</td><td class="n">0.761</td><td class="n">0.147</td><td class="n">0.204</td><td class="n">0.061</td><td class="n">0.060</td><td class="n">0.044</td><td class="n">0.031</td><td class="n">0.99</td><td class="n">0.72</td></tr> | |
| <tr><td>J3 J2 + 按数据量采样</td><td class="n">0.740</td><td class="n">0.138</td><td class="n">0.187</td><td class="n">0.063</td><td class="n">0.060</td><td class="n">0.039</td><td class="n">0.031</td><td class="n">0.94</td><td class="n">0.70</td></tr> | |
| <tr><td>J4 J2 + 锚点蒸馏 λ=1</td><td class="n">0.765</td><td class="n">0.144</td><td class="n">0.202</td><td class="n">0.062</td><td class="n">0.058</td><td class="n">0.043</td><td class="n">0.030</td><td class="n">0.99</td><td class="n">0.71</td></tr> | |
| <tr><td>J4b J2 + 锚点蒸馏 λ=10</td><td class="n">0.768</td><td class="n">0.149</td><td class="n">0.209</td><td class="n">0.067</td><td class="n">0.058</td><td class="n">0.047</td><td class="n">0.030</td><td class="n">1.01</td><td class="n">0.74</td></tr> | |
| <tr><td>J5 联合·UNI2 + 共享残差适配器</td><td class="n">0.762</td><td class="n">0.142</td><td class="n">0.201</td><td class="n">0.058</td><td class="n">0.059</td><td class="n">0.044</td><td class="n">0.029</td><td class="n">0.98</td><td class="n">0.71</td></tr> | |
| <tr><td>J6 J2 + 不确定性自动加权</td><td class="n">0.765</td><td class="n">0.136</td><td class="n">0.195</td><td class="n">0.057</td><td class="n">0.055</td><td class="n">0.041</td><td class="n">0.027</td><td class="n">0.96</td><td class="n">0.66</td></tr> | |
| <tr><td>J7 两阶段:S1 → 联合残差微调</td><td class="n">0.776</td><td class="n">0.150</td><td class="n">0.234</td><td class="n">0.100</td><td class="n">0.076</td><td class="n">0.055</td><td class="n">0.035</td><td class="n">1.05</td><td class="n">0.94</td></tr> | |
| <tr style="background:var(--accent-soft)"><td><b>J8 两阶段:S4 → 联合残差微调</b></td><td class="n">0.762</td><td class="n"><b>0.164</b></td><td class="n">0.232</td><td class="n">0.112</td><td class="n">0.073</td><td class="n">0.068</td><td class="n">0.035</td><td class="n"><b>1.07</b></td><td class="n"><b>1.01</b></td></tr> | |
| </table></div> | |
| <div class="bars"> | |
| <div class="bar"><span>S1 原方案</span><div class="track"><div class="fill" style="width:50%"></div></div><span class="val">1.00</span></div> | |
| <div class="bar"><span>S2 双塔</span><div class="track"><div class="fill" style="width:48%"></div></div><span class="val">0.96</span></div> | |
| <div class="bar"><span>J2 共享 H&E 头</span><div class="track"><div class="fill" style="width:49.7%"></div></div><span class="val">0.99</span></div> | |
| <div class="bar"><span>J7 两阶段</span><div class="track"><div class="fill" style="width:52.5%"></div></div><span class="val">1.05</span></div> | |
| <div class="bar"><span><b>J8 两阶段 + 混合头</b></span><div class="track"><div class="fill" style="width:53.6%"></div></div><span class="val">1.07</span></div> | |
| <div class="legend">训练过的配对,相对 S1(满刻度 2.0)</div> | |
| <div class="bar"><span>S1 原方案</span><div class="track"><div class="fill b2" style="width:50%"></div></div><span class="val">1.00</span></div> | |
| <div class="bar"><span>S2 双塔</span><div class="track"><div class="fill b2" style="width:13.2%"></div></div><span class="val">0.26</span></div> | |
| <div class="bar"><span>J2 共享 H&E 头</span><div class="track"><div class="fill b2" style="width:36.1%"></div></div><span class="val">0.72</span></div> | |
| <div class="bar"><span>J7 两阶段</span><div class="track"><div class="fill b2" style="width:47%"></div></div><span class="val">0.94</span></div> | |
| <div class="bar"><span><b>J8 两阶段 + 混合头</b></span><div class="track"><div class="fill b2" style="width:50.5%"></div></div><span class="val">1.01</span></div> | |
| <div class="legend">从未一起训练的配对,相对 S1(满刻度 2.0)</div> | |
| </div> | |
| <ul> | |
| <li><strong>从头训练 H&E 侧(S2、J2–J6):</strong>H&E↔mIF 涨 0.08–0.11,但 H&E↔文本降 0.03–0.05,从未一起训练的配对损失 26–74%。共享的 H&E 头被最容易的 mIF 任务“拉走”。按数据量采样和不确定性加权更差;蒸馏到 UNI2 结构只略有帮助。</li> | |
| <li><strong>联合但锚点冻结(J1):</strong>只是训练步数变了,mIF +0.026,但未一起训练的配对 −13%。</li> | |
| <li><strong>线性头:</strong>RNA 和文本用线性头,跨模态迁移比 MLP 更好(+5%);mIF 仍需要 MLP。</li> | |
| <li><strong>J8 对比 S1(5 折配对):</strong>H&E↔mIF +0.083(5/5,p=0.01),H&E↔RNA +0.015(5/5,p=0.03),文本↔RNA(虚) +0.008(5/5,p=0.02);其余配对差 ≤0.004,不显著。配对准确率 mIF 0.897→0.929,RNA 0.172→0.198。</li> | |
| </ul> | |
| </section> | |
| <section id="recipe"> | |
| <h2>八、最佳训练方案</h2> | |
| <ol class="recipe"> | |
| <li><strong>两阶段训练(J8,13 种方式中最好):</strong> | |
| <ul> | |
| <li>第一阶段:冻结 UNI2 当锚点,每个模态各自分开训练对齐头(ImageBind 做法)。</li> | |
| <li>第二阶段:所有头一起联合微调,同时给 UNI2 加一个三个数据集共享、初始化为零的残差适配器;lr 1e-4,1000 步,三个损失相加,加相似度蒸馏(λ=1),按三项验证 R@1 的几何平均早停。</li> | |
| <li>不要从头训练 H&E 侧(双塔或共享 H&E 头):H&E↔mIF 会更高,但文本和跨模态对齐明显变差。</li> | |
| </ul> | |
| </li> | |
| <li><strong>编码器:</strong> | |
| <ul> | |
| <li>H&E:<b>UNI2</b></li> | |
| <li>文本:<b>BiomedCLIP</b>(冻结)+ <b>线性</b>对齐头</li> | |
| <li>mIF:<b>VirTues</b>(冻结)+ <b>MLP</b> 对齐头,尽量用全部通道;只关心 H&E↔mIF 时 ConvNeXt-T 从头训练高 0.03</li> | |
| <li>RNA:2000 个高变基因,log1p CP10k,<b>线性</b>对齐头(Geneformer / scGPT 打平);外部数据按数据集各自 z-score</li> | |
| </ul> | |
| </li> | |
| <li><strong>对齐头与超参数:</strong>MLP 为 3 层(隐藏 512,LayerNorm),对称 InfoNCE(同一张图有多条文本时都当正例),可学习温度(初始 0.07),AdamW lr 3e-4、weight decay 0.05、OneCycle,batch 256,60–100 epoch,每张 H&E 8 个增强视图训练时随机取一个,按验证集 R@1 早停。</li> | |
| <li><strong>数据:</strong>只用真实配对;按病人或研究划分(按 tile 随机划分会偏乐观);训练前清掉垃圾文本。</li> | |
| <li><strong>不要用虚拟配对训练。</strong>直接训练没有超过经 H&E 间接对齐,蛋白还更差;虚拟数据只用于评估。</li> | |
| </ol> | |
| </section> | |
| <section id="next"> | |
| <h2>九、下一步最值得做的</h2> | |
| <ul> | |
| <li><strong>找同一组织同时测了两个模态的真实数据</strong>(如 Visium + CODEX 同切片),这样 RNA↔mIF 能直接训练和直接测,不再依赖虚拟数据。</li> | |
| <li><strong>提高 RNA 在同一器官内的区分能力:</strong>同器官困难负样本,或更大的 spot 视野。</li> | |
| <li><strong>文本:</strong>以 caption 和总结类长文本为主训练,弱化选择题。</li> | |
| </ul> | |
| </section> | |
| <footer> | |
| <p>许可说明:MIPHEI-ViT 权重仅限非商业学术使用;GigaTIME 权重仅限研究使用(已弃用)。合成文本由 Azure OpenAI 生成,仅用于评估。</p> | |
| <p>代码:<code>imagebind_exp/</code> 中的 <code>33_final_eval.py</code>(最终协议)、<code>38_</code>/<code>39_</code>(外部测试与检查)、<code>40_clean_text.py</code>、<code>41_text_enc_clean.py</code>、<code>42_train_regimes.py</code>(训练方式对比);完整数字见 <code>RESULTS.md</code> 和 <code>results/*.csv</code>。</p> | |
| </footer> | |
| </div> | |
| </body> | |
| </html> | |