데모
이 페이지의 그림은 기록이다. 실제 에피소드 하나를 얼려 둔 것이다. 루프를 직접 돌려 보고 싶다면,
플레이그라운드가 같은 웨이퍼 12장 위에서 브라우저로 루프를 다시 돌린다 —획득 규칙의 항을 켜고 끄면서 선택이 어떻게 달라지는지 볼 수 있다.
실제 실행을 기록한 것
아래의 모든 그림은 WM-811K의 wm811k-645735(Edge-Ring, 다이 533개)에서 시드 0으로 실행한 에피소드 하나를 python -m nano.demo --wafer wm811k-645735 --seed 0으로 기록한 것이다. 웨이퍼 한 장이며, 메커니즘이 가장 뚜렷하게 보이는 웨이퍼를 골랐다 — 벤치마크는 12장 전체를 채점하고, 가장 좋은 웨이퍼 옆에 가장 약한 웨이퍼를 함께 게시한다.
로컬에서 다시 실행하면 그림이 재생성되고, npm run sync:assets가 그것을 로컬 빌드의 이 사이트로 게시한다.
도식 버전
기록에 앞서, 여기 실제로 일어나는 일의 형태를 데이터가 아니라 수식으로부터 그린 것이 있다:
하나의 웨이퍼, 네 가지 상태
개념 설명용 도식- ● 측정된 다이 (관측됨)
- ○ 측정되지 않은 다이 (에이전트에게 비공개)
- ▦ prior 스케일 · 바이올렛, 낮음 → 높음
- ▦ 예측 스케일 · 시안, 낮음 → 높음
- ▦ 불확실성 스케일 · 앰버, 확실 → 미지
- ✛ 추천된 다음 측정 지점
도식일 뿐입니다. 이 필드는 루프를 설명하기 위해 이 페이지 안의 결정론적 수식으로 생성한 것입니다. WM-811K 웨이퍼도, 벤치마크 출력도 아닙니다.
에피소드 하나 따라가기
1단계 — prior 살펴보기
에이전트는 모든 다이를 덮는 시뮬레이션 prior(사전 정보)로 시작하며, 측정값은 전혀 없다. 이 prior는 매끄럽고 확신에 차 있지만 웨이퍼 edge에서 틀렸다. 이 시점에서 추정값은 곧 prior이며, 불확실성은 어디서나 높다.
0단계 — prior만 — 측정 이전, 웨이퍼 전체에 걸친 prior. 불확실성이 전 영역에서 균일하게 높다.
기대 경로: docs/public/results/demo_step_00.webp, 생성 스크립트 scripts/record_demo. 실제 그림이 존재하기 전까지는 아무것도 그리지 않습니다.
2단계 — 희소한 시작을 받아들이기
중앙에 편향된 소수의 초기 측정값이 들어온다. 그 근처에서는 추정이 즉시 좁혀지고, 멀리 떨어진 곳은 아무것도 달라지지 않는다. 이제 불확실성 맵에는 눈에 보이는 구조가 생기며, 그 구조는 에이전트가 스스로 자신의 무지를 그린 지도다.
5단계 — 초기 관측 반영 — 초기 희소 마스크 이후의 예측과 불확실성. 측정된 다이가 표시되어 있다.
기대 경로: docs/public/results/demo_step_05.webp, 생성 스크립트 scripts/record_demo. 실제 그림이 존재하기 전까지는 아무것도 그리지 않습니다.
3단계 — 선택하는 과정을 보고, 이유를 확인하기
선택은 꼼꼼히 들여다볼 가치가 있는 부분이다. 어떤 다이가 선택되는 것은 획득 함수에서 가장 높은 점수를 받았기 때문이며, 그 점수는 따로따로 읽을 수 있는 항들로 분해된다: 그 다이가 얼마나 알려지지 않았는지, 그곳에서 prior가 얼마나 틀렸을 것으로 예상되는지, 이미 샘플링된 지점들로부터 얼마나 멀리 떨어져 있는지. 이 세 숫자로 설명되지 않는 선택은 결정이 아니라 버그다.
명령은 같은 분해를 측정 한 번에 한 줄씩 텍스트로도 출력한다.
m= 20 die 188 score 0.5179 [uncertainty=1.000 disagreement=0.518 novelty=1.000] measured 0
m= 21 die 1 score 0.4861 [uncertainty=1.000 disagreement=0.486 novelty=1.000] measured 0
m= 22 die 369 score 0.4565 [uncertainty=1.000 disagreement=0.457 novelty=1.000] measured 1이 세 줄을 자세히 보면 설계가 말하지 않는 것이 드러난다. 중앙에 편향된 초기 마스크에서 이만큼 떨어진 곳에서는 불확실성과 참신성이 모두 1.0에 붙어 있으므로, 점수는 사실상 불일치 항 그 자체이고 나머지 두 항은 아무 순서도 만들지 않는다. 세 항의 곱이 정말로 제 값을 하는지는 ablation이 측정하며, WM-811K에서 나온 답은 설계가 가정한 답이 아니다.
선택 순간의 획득 점수 — 선택된 다이가 표시된 획득 함수 표면과, 그 점수를 만들어낸 불확실성 항 및 불일치 항.
기대 경로: docs/public/results/demo_selection.webp, 생성 스크립트 scripts/record_demo. 실제 그림이 존재하기 전까지는 아무것도 그리지 않습니다.
4단계 — 불확실성이 실제로 떨어지는지 확인하기
측정이 이루어진 뒤에는 새 지점 주변에서 불확실성이 낮아져야 하고, 예측은 측정값 쪽으로 움직여야 한다. 방금 측정한 자리에서 불확실성이 떨어지지 않는다면, 그 추정기는 제 역할을 하고 있지 않은 것이다.
에피소드 전체 — 예산 하나의 모든 반복: 선택, 측정, 그리고 무너져 내리는 불확실성 맵.
기대 경로: docs/public/results/demo.gif, 생성 스크립트 scripts/record_demo. 실제 그림이 존재하기 전까지는 아무것도 그리지 않습니다.
5단계 — 숨겨져 있던 진실과 비교하기
평가 하네스가 웨이퍼 전체를 공개하는 것은 마지막에 이르러서다. 에이전트에게 비공개 비교 대상은 원래의 편향된 prior, 최종 재구성 결과, 그리고 실제다.
최종 비교 — 편향된 prior, NANO 재구성 결과, 숨겨진 ground truth를 하나의 공통 스케일 위에 놓고 비교.
기대 경로: docs/public/results/demo_final.webp, 생성 스크립트 scripts/record_demo. 실제 그림이 존재하기 전까지는 아무것도 그리지 않습니다.
무엇을 볼 것인가
| 질문 | 답이 드러나는 곳 |
|---|---|
| 측정이 이루어진 곳에서 추정이 개선되는가? | 측정된 다이 주변에서 좁혀지는 예측 맵 |
| 에이전트는 자신이 어디에서 보지 못하는지 아는가? | 어떤 보정도 하기 전의 불확실성 맵 구조 |
| 선택을 설명할 수 있는가? | 항별로 분해된 획득 함수 표면 |
| 같은 예산을 임의로 쓰는 것보다 나은가? | 이 페이지가 아니라 벤치마크 |
데모는 루프가 돌아간다는 것과 그 결정이 읽힌다는 것을 보여줄 수 있다. 그러나 그 루프가 대안들보다 낫다는 것은 보여줄 수 없다 — 그것은 벤치마크만이, 그것도 동일한 예산 하에서만 보여줄 수 있다.