neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
스스로 모르는 부분을 파악하고, Sim2Real 격차를 줄이기 위해 가장 가치 있는 측정을 선택하는 자율 계측 에이전트
An autonomous metrology agent that identifies what it does not know and selects the next most valuable measurement to close the Sim2Real gap.
개발 도구Python · HTMLGitHub @geniuskey온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
NANO — Reality-Aware AI Development Lifecycle for Semiconductor Manufacturing
An autonomous metrology agent that identifies what it does not know and selects the next most
valuable measurement to close the Sim2Real gap.
Maximize knowledge of reality per measurement.
Playground — run the loop on the real wafers, in a browser:README 전문 보기 ↗An autonomous metrology agent that identifies what it does not know and selects the next most valuable measurement to close the Sim2Real gap.
Maximize knowledge of reality per measurement.
Docs site: https://geniuskey.github.io/reality-aware/ (Korean: https://geniuskey.github.io/reality-aware/ko/)
Playground — run the loop on the real wafers, in a browser: https://geniuskey.github.io/reality-aware/playground
A benchmark run against WM-811K is published: 12 wafers × 5 seeds, 20 initial measurements plus a
budget of 60. On balanced MAE, NANO beats Random by 8.7% [6.6, 11.1] and Grid by 6.3% [4.6, 8.1],
both intervals clear of zero. On plain MAE it is not separated from either. The ablation in the
same run finds uncertainty alone beating the published three-term rule by 2.2% [0.6, 4.3] — a
result against the design, which is why it is on the benchmark page and not in a footnote.
The WM-811K distribution is not committed here. data/subsets/wm811k_eval.json names the twelve
wafers and results/benchmark_summary.json holds every number the site renders, so the run can be
rebuilt and checked without redistributing the dataset. The playground is the one narrow exception:
it re-runs the loop in the browser, so it embeds those twelve wafers' die coordinates and pass/fail
labels — 18,241 dies, about 0.002% of the 811,457 maps. The pipeline also runs without the dataset,
on clearly labelled stand-in wafers (--synthetic), which is how the code is tested. Those numbers
are never committed here and the site prints the wafer source under every results table, so a
stand-in number cannot be read as a dataset number.
See Honest Scope for what is claimed and what is not.
Requires Python 3.10 or newer.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest # 121 tests, no dataset needed
python -m nano.demo --synthetic --wafer 0 --seed 0 # one narrated episode + figures
python -m nano.benchmark --synthetic --seeds 0 1 2 3 4 # all three arms + results file
python -m nano.benchmark --synthetic --ablation # what each acquisition term is worth
python -m nano.benchmark --synthetic --target continuous # metrology-like values, not labels
With a local copy of WM-811K at data/raw/LSWMD.pkl, build the versioned evaluation index once and
drop the --synthetic flag:
python -m nano.subset --wafers 12 --seed 0 # writes data/subsets/wm811k_eval.json
python -m nano.benchmark --seeds 0 1 2 3 4 # writes results/benchmark_summary.json
npm run sync:assets # publish the figures to the site
pip install -e . installs numpy alone, which is enough for the loop and the benchmark. The extras
add matplotlib and pillow (figures), pandas for reading LSWMD.pkl (data), and pytest (dev).
Observe → Estimate → Select → Measure, once per unit of measurement budget. Reality reaches the
agent only through nano/tools/observe.py, which holds the budget itself, so no strategy can take an
extra look. nano/evaluate.py is the only module that reads full ground-truth fields, and it never
returns anything to the agent. The selection rule is
acquisition(i) = uncertainty(i) × simulation_disagreement(i) × spatial_novelty(i)
and it is recorded in every results file, so the documented rule and the executed rule cannot drift apart.
Every arm is paired with NANO episode by episode and bootstrapped, so an improvement comes with a
95% interval and prints not separated when that interval spans zero. Two measurement-free
predictors — the uncorrected prior and a constant — are scored in the same table, because a rule that
cannot beat a predictor which reads nothing has not earned the tool time it spent. The primary
metric on a binary target is balanced MAE, since plain MAE over rare failures is won by answering
"no die fails" everywhere; both are reported. --ablation re-runs the rule with terms dropped, and
every run reports whether its uncertainty map actually ranks the dies by error.
What the published run does and does not establish is on the Honest Scope page, including the findings that go against the design.
Requires Node 20 or newer.
npm ci # or: npm install
npm run docs:dev # http://localhost:5173/reality-aware/
Other scripts:
npm run docs:build # static build into docs/.vitepress/dist
npm run docs:preview # serve the build
npm run sync:assets # copy figures from results/ into docs/public/results/
The site's base path is derived from GITHUB_REPOSITORY, so a fork builds at its own path with no
edits. Override it locally when needed:
DOCS_BASE=/ npm run docs:build # user or org Pages (<owner>.github.io)
DOCS_BASE=/my-fork/ npm run docs:build # a differently named fork
.github/workflows/deploy-docs.yml builds and publishes on every push to main.
One manual step is required: in the repository, go to Settings → Pages and set Source to GitHub Actions. Without it the workflow builds successfully but nothing is published.
| Path | Contents |
|---|---|
nano/ | The Python package: data, prior, observation tool, model, policy, baselines, agent, evaluation, figures |
tests/ | Test suite, including a leakage test that flips hidden reality at unmeasured dies and requires an identical trajectory |
data/subsets/ | Versioned evaluation index derived from WM-811K (the raw maps are never committed) |
docs/ | English Markdown pages, VitePress config, theme and Vue components |
docs/ko/ | Korean translation of every page |
docs/public/ | Logo, favicon, social card, published result figures, the built playground page |
playground/ | Playground source (template.html) and the Python traces its parity check replays |
results/ | Canonical benchmark output — benchmark_summary.json and generated figures |
scripts/ | Figure scripts (plot_*.py, record_demo.py), sync-doc-assets.mjs, check-playground-parity.mjs, social-card source |
.github/workflows/ | Pages deployment |
results/ is the single source of truth for numbers. Nothing is hand-typed into the Markdown, so a
figure cannot go stale in one place and be correct in another.
| Module | Responsibility |
|---|---|
nano/data.py | Load WM-811K, filter and index the evaluation subset, generate labelled stand-in wafers |
nano/prior.py | The deliberately biased simulation prior: smoothing, radial bias, offset and gain |
nano/tools/observe.py | The only channel to reality; holds and spends the measurement budget |
nano/model.py | Prediction, uncertainty, reality gap and expected disagreement from prior + observations |
nano/policy.py | The three-term acquisition rule, its ablations, and the per-term breakdown for every decision |
nano/metrics.py | Class-balanced metrics, paired bootstrap intervals, and the uncertainty-ranking check |
nano/baselines.py | Random and Grid, behind the same interface |
nano/agent.py | The loop, and the initial centre-biased observation mask |
nano/evaluate.py | Scoring against hidden ground truth; writes results/benchmark_summary.json |
nano/figures.py | Every published figure, drawn from a real run |
The experiment uses the WM-811K wafer map dataset (Wu, Jang & Chen, IEEE Transactions on Semiconductor Manufacturing, 2015). No raw dataset files are committed here; download it locally and check the licence on the page you download from before redistributing. Details on the Dataset & Design page.