---
title: PlasmaScope 结果篇：在 BOSCH Plasma-Etching 上的诚实复盘
author: 朱奕樟
date: 2026-05-17
canonical: https://blog.sysu-sam.com/@zhuyizhang/plasmascope-bosch-results
---

> **[2026-05-17 更正]** 独立代码审查发现，原始报告中的 `stack_per_site` MAE 0.180 µm
> 存在**测试折标签泄漏**：Ridge stacker 的校准使用了和评测相同的外层测试 wafer（`inner_b5 = b5_test[:-1]`）。
> 我们已用**嵌套 OOF 校准**（Option A）重跑：对于每个外层折 k，stacker 只在 8 个训练 lot 的 OOF 预测上拟合，
> 测试 wafer 在校准阶段完全不可见（经代码断言 + 28 个验证测试确认零重叠）。
>
> **修正后结果**：`stack_per_site_clean` MAE = **0.192 µm**——比 B5 XGBoost（0.188 µm）**差 +1.8%**。
> stacking 在点预测上没有收益。**B5 XGBoost 是最优模型。**
> 原始泄漏行已在 RESULTS.csv 中保留为 `stack_*_LEAKY`，不作为有效评测数字引用。
> 下文所有结论已更新为修正后的数字，质性结论（B-permute 方法论、PlasmaScope 校准价值）保持不变。

## 简短结论

在 [BOSCH Plasma-Etching 公开数据集](https://zenodo.org/records/17122442) 上，我们用三周时间走完了"从读数据到设计方法到 DOE 调优"的完整流程。最终结论比预想要朴素，但同样有价值：

- **击碎已发表 SOTA**：唯一公开评测 (Kim et al. arXiv 2603.23576, Time-LLM) 的 MAE 为 **1.25 µm**；本工作随手一个 per-site 平均 baseline (B0) 就跑出 **MAE 0.351 µm**，XGBoost (B5) **MAE 0.188 µm**——把已发表 benchmark 拉低了 **6.6×**。
- **PlasmaScope 主模型走过 V1 → V2 → V3 三轮重写**，最终的 hybrid 版 (V3) 在 MAE 上**几乎追平** B5 (0.199 vs 0.188)，但在校准上明显胜出：PICP@0.9 **0.956** vs B5 **0.884**。
- **Stacking 在诚实评测下没有带来提升**：嵌套 OOF 校准下，`stack_per_site_clean` **MAE 0.192 µm**（vs B5 的 0.188，**+1.8%**），Wilcoxon p=0.652，9 折中只赢 3 折。**B5 是最优点预测模型。**
- **一个方法论副产物**：标准的 B-permute 控制实验对于"空间方差占主导"的 VM 数据集**结构性失灵**，需要换成 site-permute 才有意义。这条经验值得社区记住。

详细 dataset 介绍见 [前一篇](/@zhuyizhang/plasmascope-bosch-dataset-intro)；本篇专注于结果与反思。

## 数据告诉我们的事

跑完完整 EDA 之后，最关键的统计是这一条：

> **89-点 si_etch 中，~98.9% 的方差来自所有 wafer 共享的稳定空间花纹（边缘效应），跨 wafer 的均值方差只占 ~1.1%。**

这一条直接决定了模型设计的胜负规则——你能从同一片 wafer 内的位置预测大部分信号，跨 wafer 的化学/腔体差异留给模型的空间非常小。**89 个独立的 per-site XGBoost 在这种结构下几乎是 Bayes 最优**：每个 site 都在记忆一个 84 样本、几十维特征的小问题，过拟合空间足够而真正能差别化的信号有限。

我们原本设计 PlasmaScope 的逻辑是"OES = 等离子体显微镜，z = 腔体潜变量，Zernike 连续场跨 9-/89-点共享"——这个故事是科学正确的，但**在 MAE 指标上几乎不重要**，因为最大的目标方差并不在我们故事关心的那个轴上。

## 三代 PlasmaScope 的演化

V1：把整片 wafer 厚度展开成 Zernike 多项式 (order 6, 28 系数)，wafer 编码器输出系数 + 全局可学的 `t_bias=43.7` 偏置。**坍塌**：`t_bias` 把整个均值任务吃了，编码器学不到东西；B-permute 控制（打乱标签后重训）R² 仍为 0.972，几乎和真实模型 0.975 一样。

V2：把 `t_bias` 替换为 `mean_head = MLP(wafer_encoder_output)`——每片 wafer 的均值必须从 OES/process 推出来。**结构上修对了**：fold-1 sanity 显示 val_rmse 在 60 epoch 从 8.97 降到 0.62 µm，B-permute 在打乱标签上几乎完全发散。MAE 从 V1 的 ~0.5 降到 **0.411 µm**。但仍输 B5 一倍多。

V3：换 hybrid。把 B5 的 out-of-fold 预测当成 anchor，PlasmaScope 只学残差：
$$\hat t(r,\theta) = B_5(r,\theta) + \text{mean\_offset}(w) + \text{Zernike\_residual}(w) + \text{MLP}_\delta(w, r, \theta, B_5(r,\theta))$$
Zernike 头现在分解的是"配方驱动预测之外的剩余空间场"——它的物理解释依然成立，只是从绝对厚度转为修正项。V3 把 MAE 推到 **0.199 µm**——比 V2 减少 52%，但仍比 B5 高 6%。Wilcoxon p=1.0——V3 在每一折上都是更差的一方。

最终把 V3 与 B5 做 per-site Ridge stacking（嵌套 OOF 校准）：MAE **0.192 µm**，RMSE **0.307 µm**——比 B5 略差（+1.8%）。在诚实评测下，stacking 不带来点预测收益；B5 XGBoost 是最优模型。

![所有 model 的 per-site MAE 对比，stack_per_site 最低。](https://blog.sysu-sam.com/images/zhuyizhang/fig_headline_compare.png)

## 完整结果表

| Model | MAE (µm) | RMSE (µm) | R² | NLL | PICP90 |
|-------|---------:|----------:|---:|----:|-------:|
| Kim et al. Time-LLM (published) | 1.250 | — | — | — | — |
| Sayyed et al. SPIE GP (scalar VM) | — | 0.116 (wafer-mean) | 0.86 | — | — |
| B0 mean profile | 0.351 | 0.460 | 0.983 | 0.640 | 0.894 |
| B1 PLS | 0.213 | 0.337 | 0.990 | 1.910 | 0.740 |
| B2 PI-VM | 0.311 | 0.413 | 0.985 | 0.756 | 0.792 |
| PlasmaScope V2 | 0.411 | 0.586 | 0.974 | 0.911 | 0.919 |
| PlasmaScope V3 (hybrid) | 0.199 | 0.368 | 0.989 | 0.518 | **0.956** |
| stack_per_site_clean (B5+V3, 嵌套OOF) | 0.192 | 0.307 | 0.992 | 0.017 | 0.879 |
| **B5 XGBoost** | **0.188** | **0.359** | **0.989** | 0.260 | 0.884 |

*stack_per_site_clean 使用嵌套 OOF 校准（测试折标签零泄漏）。B5 XGBoost 是最优点预测模型（6.6× vs Kim et al.）。*

![9 折 LOLO 中 B5 vs V3 vs stack_per_site_clean 的 per-fold MAE。clean stacking 在 3/9 折上略低于 B5，整体略差——Wilcoxon p=0.652。](https://blog.sysu-sam.com/images/zhuyizhang/fig_per_fold_mae.png)

> Lot 10 漂移迁移：B5 RMSE 0.193 / V3 RMSE 0.465。B5 即使在 held-out 漂移 lot 上仍然占优——配方+空间花纹的记忆力强到能扛住一定的腔体状态漂移。

![Lot 10 漂移迁移 RMSE 对比。](https://blog.sysu-sam.com/images/zhuyizhang/fig_lot10_compare.png)

![校准曲线：V3 与 stack 的实际覆盖率比 XGBoost 更贴近名义置信水平。](https://blog.sysu-sam.com/images/zhuyizhang/fig_reliability_diagram.png)

## 反思：为什么"故事正确"不等于"指标赢"

1. **数据集的目标方差结构决定了模型的天花板。** 这个数据集 98.9% 方差是稳定的空间花纹，剩下 1.1% 才是 chamber-state 驱动的 wafer-mean。我们 PlasmaScope 的物理叙事打的是这 1.1%；而 MAE 是按全部方差计算的指标。换句话说，"chamber-state-as-latent" 故事在科学上正确，但在 MAE 上能带来的最大提升的天花板本身就低。

2. **强 tabular baseline + 物理故事 = 加法关系，不是替代关系。** stack_per_site 的成功说明：当一个非物理的强基线已经几乎吃掉了主方差时，物理动机的模型最佳定位不是"替代"，而是"贴上去做校准 + 解释 + 漂移补偿"。这是一个我们以后做 VM/APC 时会重复使用的工程教训。

3. **Pre-registered B-permute 控制的失效是真正的方法论收获。** 我们原本把 "PlasmaScope R² ≥ 2× B-permute R²" 作为锁死的 sanity gate。结果发现，对于空间结构跨 wafer 完全稳定的数据集，**打乱 wafer↔标签的对应仍允许模型学到那个公共空间花纹**，gate 永远过不去。正确的对照是 **site-permute**（在一片 wafer 内打乱位置标签）。这条经验在所有 spatial-VM/CMP-WIWNU 类工作里都成立，社区里几乎没人讨论过。

4. **DOE 救不了结构性问题。** 我们做了 12 点 Plackett-Burman + 3 点 LR sweep。最优 LR 把 MAE 从 0.21 推到 0.20，因子效应被 20-epoch proxy 偏差污染（DOE-aliasing）。真正的提升来自架构修改 (V1→V2→V3)，不是超参 DOE。

## 工程交付

完整代码、缓存脚本、结果 CSV 与最终深度报告全部在项目目录（即将整理上 GitHub）：

```
BOSCH-Plasma-Etching/
├── src/io/             # 数据加载 + uint16 字典解码 + Zernike 工具
├── src/models/         # B0–B6 + plasmascope (v1/v2/v3) + stack
├── src/train/          # cv_lolo + metrics + 各 driver 脚本
├── src/sanity/         # Phase 4 pre-sanity 5 项研究
├── src/tests/verifier/ # 11 个独立合同测试 (BLUEPRINT-driven)
├── analysis/           # EDA + 图 + 数据 inventory
├── method/             # STORY.md + BLUEPRINT.md + critique
├── experiments/        # RESULTS.csv + per-fold parquets + 各 phase 总结
└── reports/FINAL_REPORT.md
```

详细模型/损失/超参/消融/DOE 表全部在 `reports/FINAL_REPORT.md`（~5800 词）。

## 留给社区的开放问题

- 谁能用一个**真正不依赖 B5 anchor 的纯 OES 模型**把 MAE 推到 ≤0.18 µm？我们怀疑这需要远多于 88 wafer 的训练量，或者引入 site-permute 这类更挑剔的评测。
- 在这个数据集上做 cross-tool 迁移学习的话，应该用哪几片 wafer 当"小目标域"？
- z 潜变量是否可以**做在线 APC 反馈**——若实时 OES 解出的 z 离训练分布超出阈值，触发 conditioning？

欢迎留言或邮件——我们会持续更新结果。

---

**致谢**：感谢 BOSCH + Chemnitz UT + Fraunhofer ENAS + TU Bergakademie Freiberg 发布如此干净的多模态 benchmark；感谢 Kim 等先用 Time-LLM 把这个 benchmark 推到我们的视野里；感谢实验室成员的 review 与算力支持。