Views
No views yet
What this is: trainable U-Net weights consumed byopenlithohub.models.neural_ilt.NeuralILTModelas a non-trivial starting point for AI-OPC experiments.What this is not: a research-grade OPC model. The network was trained on synthetic dummy layouts (thegenerate_dummy_layoutgenerator), with a Hopkins/SOCS forward consistency loss. It learns the "identity-with-rounding" behaviour, not real OPC corrections.A v1.0 release trained on LithoBench is planned once a public training corpus is wired in.
1from openlithohub.models.neural_ilt import NeuralILTModel
2import torch
3
4model = NeuralILTModel(pretrained=True) # downloads model.pt from this repo
5model.setup()
6
7design = torch.zeros(64, 64)
8design[20:44, 20:44] = 1.0
9result = model.predict(design)
10print(result.mask.shape) # (64, 64) binary mask1python scripts/generate_baselines.py \
2 --models dummy-identity rule-based-opc levelset-ilt openilt neural-ilt \
3 --pretrained1git clone https://github.com/OpenLithoHub/OpenLithoHub.git
2cd OpenLithoHub
3pip install -e ".[dev]"
4python scripts/train_neural_ilt_seed.py
5# → checkpoints/neural_ilt_v0_1.pt
6# → checkpoints/neural_ilt_v0_1.metadata.jsonscripts/train_neural_ilt_seed.py:| Knob | Value |
|---|---|
| dataset | _NonEmptyDummyPairs(n=64, size=64) — synthetic, min_width_nm=8 so 64-grid layouts have content |
| forward (training) | Gaussian (sigma_px=4.5) — fast on MPS/CUDA/CPU |
| forward (eval) | Hopkins/SOCS — used by leaderboard, not by training |
| loss | BCE(logits, target_mask) + 1.0 · MSE(aerial, design) |
| optimiser | Adam, lr=2e-3 |
| scheduler | CosineAnnealingLR, T_max=epochs |
| epochs | 200 |
| batch size | 8 |
| seed | torch.manual_seed(0) |
| device | auto: CUDA → MPS → CPU |
metadata.json (uploaded with the checkpoint) carries
the per-epoch loss history and the resolved config.model.pt — state_dict for openlithohub.models._unet.UNet(in_channels=1, out_channels=1)metadata.json — training config + per-epoch lossNeuralILTModel(pretrained=True) downloads model.pt only.generate_dummy_layout. Out-of-distribution behaviour on real
ASAP7 / FreePDK45 layouts is not characterised here. Treat any
metric below as a sanity-check, not an OPC quality benchmark.CITATION.cff.