Adaptive wafer inspection (corrected design)
Status (2026-10-26): this repository is being reset. Earlier files here described a GRU-DQN stack whose headline “0.96–0.97 robustness” numbers do not survive baseline comparison on the released simulator (random sampling matched the reported catch rates; several “robustness” tests only edited the agent’s belief map). Those files have been removed so visitors are not confused by the old build.
This card documents the current system: map completion + greedy acquisition, with one model copy per production line and optional continuous fine-tuning. Training code, best weights, and per-line copies stay private. Public material here is evidence (protocol + numbers), not a runnable product.
What the system does
Instead of inspecting every die on a wafer (or following a fixed sample plan), the system chooses the next die from what it has already seen on that wafer. Goal: catch defective dies with fewer inspections.
Three pieces:
- Map-completion model — from a few inspected dies, estimates where remaining defects are likely (edge rings, scratches, clusters, etc.).
- Acquisition rule — greedy selection on the completed map (and cost-aware stopping when the fab sets inspect/miss costs).
- Per-line copy — a cheap fine-tune of the pooled model on recent lots from one production line, optionally updated as new lots arrive, with a safety check that rolls back a bad update.
Data used so far: public WM-811K patterned wafer maps. To simulate lines, maps of the same product are grouped in lot order; early lots train, later lots evaluate. No customer fab data is in this repo.
Headline results (public WM-811K only)
Metric b90 = fraction of dies that must be inspected to catch 90% of defective dies (lower is better). catch@10 / @20 = share of defective dies found at a 10% / 20% inspection budget (higher is better).
Mixed real patterned maps (239 wafers, fixed protocol)
| Policy | b90 | catch@10 | catch@20 |
|---|---|---|---|
| Greedy baseline | 0.816 | 0.201 | 0.362 |
| Pooled map-completion | 0.803–0.805 | ~0.22–0.23 | ~0.37 |
| Per-line fine-tune (~20 lots / ~500 wafers) | 0.788 | 0.268 | 0.419 |
Per-line fine-tuning beat the pooled model on 14 of 16 simulated lines (sign test p ≈ 0.004).
Continuous per-line updates (prequential, held-out lots)
Scoring each block before the copy trains on it:
| Policy | b90 | Notes |
|---|---|---|
| Static per-line fine-tune (ft20) | 0.786 | Baseline for the stream |
| Continuous copy (uniform or ~20-lot half-life) | 0.779–0.780 | Better on 14 of 16 lines vs ft20 (p ≈ 0.004) |
What did not help in these runs: wider nets, longer fine-tunes, ensembles, L2-to-base, or last-layers-only updates. Gains so far are modest. The clearest lever is more real line data; the method is not yet validated on private fab maps.
Adversarial validation (relative to greedy / random on the same wafers)
Pre-registered PASS: b90 ≤ greedy + 0.01, catch@10 ≥ 2× random, catch@20 ≥ greedy − 0.01.
| Policy | Cases | Pass |
|---|---|---|
| Pooled map-completion | 37 | 19 |
| Per-line copies | 18 | 14 |
Holds: clean real maps; moderate sensor miss / false-alarm (and both) on real maps.
Weak spots: rotated handling, new tool hotspots, extreme background (often still better b90 than greedy, fails the tight catch bar). That is exactly what partner fab maps would stress-test.
What is (and is not) published here
| Published | Kept private |
|---|---|
| This README and result tables | Best pooled and per-line weights |
| Evaluation metrics / protocol description | Training recipes and hyper-parameters |
| Non-learning baselines (random, greedy) | Synthetic-generator calibration |
| Honest failure cases from the suite | Update-safety thresholds as tuned |
| Link to WM-811K (not re-hosted) | Any real fab / partner maps |
License for this card and any evaluation harness released with it: CC-BY-NC-4.0 (non-commercial evaluation). Commercial use requires a separate agreement.
Collaboration
Research collaboration inquiries (anonymized wafer maps for validation; NDA available): contact via the author profile on this Hub page. We are especially interested in patterned pass/fail or defect maps with lot order — not recipes, process parameters, or designs.
Changelog
- 2026-10-26 — Repo cleared of the prior GRU-DQN build and manuscript claims. Card rewritten for the map-completion + per-line design with v6/v8/v9 public numbers.