34편부터 우리는 시뮬레이터를 강화학습의 훈련장으로 만들어 왔다. 그런데 33편 끝에서 이미 불편한 보고를 만났다 — 공개 벤치마크에서 이긴 정책이 실제 fab 데이터에서는 그만큼 이기지 못한다는 것. 시뮬레이션에서 학습·검증한 정책의 성능이 실제 시스템에서 재현되지 않는 이 현상을 sim-to-real gap이라 부른다. robotics에서 정착한 용어다 — 시뮬레이션에서 걷는 법을 배운 로봇이 실제 바닥에서는 넘어지는 문제를 다루며 만들어진 개념이 제조로 넘어왔다.
12편의 V&V가 “이 모델을 믿을 수 있나”라는 질문이었다면, 이 글의 질문은 한 단계 위다 — “이 모델에서 배운 정책을 믿을 수 있나.” 그리고 곧 보겠지만, 앞의 질문에 yes라고 답했어도 뒤의 질문의 답은 no일 수 있다.
문제 정의: V&V를 통과한 모델에서도 gap이 생기는 이유
정식화부터 하자. 실제 시스템을 , 시뮬레이터를 , 디스패칭 정책을 , 정책의 성능(예: 일정 기간의 throughput, 혹은 tardiness의 음수)을 라 쓰면, sim-to-real gap은 다음과 같다.
이 식이 말하는 것: gap은 모델 하나의 속성이 아니라 (모델, 정책) 쌍의 속성이라는 점이다. 같은 시뮬레이터라도 어떤 정책을 올려놓느냐에 따라 가 다르다. “우리 시뮬레이터는 검증됐으니 어떤 정책을 평가해도 믿을 수 있다”는 말이 성립하지 않는 이유가 이 한 줄에 들어 있다.
왜 성립하지 않는가. 12편의 validation은 기존 운영 조건에서 수집된 데이터로 이뤄진다. 기존 정책을 라 하면, 우리가 실데이터 비교·historical validation으로 확인한 것은 사실상 이다. 그런데 모델 오차는 시스템이 어느 상태에 있느냐에 따라 다르다. 상태 에서의 모델 오차를 , 정책 가 시스템을 데려가는 상태들의 분포(방문 분포)를 라 하면, 성능 오차는 대략 다음에 좌우된다.
이 식이 말하는 것: validation이 보증한 것은 — 기존 정책이 데려가는 상태들 — 위에서의 평균 오차가 작다는 것뿐이다. 새 정책 는 시스템을 다른 운영점으로 데려간다(예: 특정 장비군을 지금보다 훨씬 높은 가동률로 몰아붙이거나, batch를 지금과 다른 크기로 묶거나). 그 새로운 상태들에서의 는 검증된 적이 없다. 즉 sim-to-real gap의 뿌리는 분포 밖 외삽(out-of-distribution extrapolation) — 데이터가 있던 영역 밖으로 모델을 밀고 나가 쓰는 것 — 이다. 이것이 이 글에서 가장 중요한 통찰이다: 은 을 함의하지 않는다.
여기에 RL의 최적화 압력이 문제를 악화시킨다. 학습은 를 푸는 것인데, optimizer 입장에서는 진짜 개선과 모델 오차의 착취가 구분되지 않는다 — 둘 다 을 올려 주기 때문이다. 시뮬레이터 안에서 측정한 개선 폭에는 두 성분이 섞여 있고, 실제 시스템에 가면 후자가 증발한다.
gap의 원천 분류
gap이 어디서 오는지를 갈래별로 나눠 보면 대응책도 갈래별로 보인다.
- (a) 모델 오차 — 두 층위가 있다. 구조적 오차는 모델에 아예 없는 현상이다: 사람 operator의 개입, 암묵적 운영 관행(문서에 없는 “이 장비는 이 lot을 먼저 태운다” 같은 현장 규칙), 모델링 범위 밖의 자원 제약. 모수적(parametric) 오차는 구조는 맞지만 분포·수치가 부정확한 경우다 — 처리 시간 분포, 고장률 등. 후자는 보정으로 줄일 수 있지만 전자는 보정으로 안 잡힌다.
- (b) 관측·데이터 오차 — 모델은 데이터로 만들어지는데 그 데이터 자체가 흐리다. MES 기록의 품질 문제(누락·지연·수작업 입력 오류), 그리고 32편에서 본 스냅샷 초기화의 불완전성 — 시뮬레이션의 출발 상태부터 실물과 어긋나 있는 문제다.
- (c) 비정상성(non-stationarity) — 시스템의 통계적 성질이 시간에 따라 변하는 것. 제품 믹스가 바뀌고 장비가 증설·개조되는 fab에서는 학습 시점의 fab과 배치 시점의 fab이 다른 시스템이다. 학습 데이터가 완벽했어도 배치 시점에는 이미 낡아 있다.
- (d) 정책의 시뮬레이터 과적합 — 36편에서 본 “버그 착취”가 바로 이것이다. RL은 시뮬레이터의 허점(0으로 잘못 들어간 이동 시간, 미모델링된 제약)을 찾아내 점수를 올리는 데 탁월하고, 그렇게 배운 전략은 정의상 현실에서 재현되지 않는다. 시뮬레이터 안의 화려한 성적이 gap의 씨앗을 품고 있는 셈이다.
간단한 예로 감을 잡자. 시뮬레이터에 “PM(계획 정비)이 밀리면 operator가 수동으로 개입해 일정을 조정한다”는 현장 관행이 빠져 있다고 하자(구조적 오차). RL 정책이 병목 장비군을 가동률 98%로 몰아붙이는 전략을 학습하면, 시뮬레이터에서는 throughput이 오른다. 그러나 실제 fab의 그 운영점에서는 PM이 계속 밀리고, 밀린 PM이 비계획 다운으로 돌아오고, operator 개입이 폭증한다 — 모두 모델에 없던 현상이고, 기존 운영(가동률 85% 근방)의 데이터로는 검증할 수 없었던 영역이다.
fab에서의 정량 근거: Stöckermann et al. (2025)
이 gap이 fab 디스패칭에서 실제로 얼마나 큰가. 33편에서 예고한 격차를 정량화한 것이 Stöckermann et al. (arXiv:2505.11135, IJAMT 2025)이다. Infineon의 실제 산업 데이터셋으로 RL 디스패칭의 확장성을 검증한 이 연구의 보고는 이렇다 — 공개 벤치마크(Mini-Fab·SMT2020)에서 두 자릿수 % 개선을 보인 RL 디스패칭이, 실데이터셋에서는 tardiness 약 4%, throughput 약 1% 개선으로 줄어든다.
같은 논문은 이유의 일단도 보여준다: 실제 fab은 SMT2020보다 제품 수가 10배 이상 많고 전반적 복잡도가 훨씬 높다. 벤치마크의 단순함 위에서 정책이 찾아낸 개선 여지 중 상당 부분이, 실규모의 복잡도 앞에서는 애초에 존재하지 않거나 훨씬 좁은 것이다. 오해는 말자 — 4%의 tardiness 개선도 fab 규모에서는 큰 가치다. 요점은 “벤치마크의 개선 폭을 그대로 실배치 기대치로 삼으면 안 된다”는 것이다.
대응책 지형도
gap에 대한 대응은 크게 네 갈래다. 앞의 둘은 방향이 반대라는 점이 흥미롭다 — 하나는 gap에 강건해지려 하고, 하나는 gap 자체를 줄이려 한다.
(a) Domain randomization: 모델 하나가 아니라 모델 집합에서 이기기
Domain randomization은 robotics에서 온 대표 기법으로, 시뮬레이터의 parameter를 고정하지 않고 학습 중에 계속 흔드는 것이다. 시뮬레이터 parameter(처리 시간 분포 모수, 고장률, lot 도착 패턴 등)를 , 그 위의 분포를 라 하면 학습 목적이 바뀐다.
이 식이 말하는 것: 특정 시뮬레이터 하나에서 최고인 정책이 아니라, parameter가 흔들리는 시뮬레이터 집합 전체에서 평균적으로 잘하는 정책을 찾는다는 것이다. 발상의 전환이 핵심이다 — “정확한 모델 하나”를 만들려는 노력을 접고, “진짜 현실이 그 안 어딘가에 들어 있을 만큼 넓은 모델 분포” 를 만드는 것이다. 가 현실을 덮는다면, 그 위에서 평균적으로 잘하는 정책은 현실에서도 웬만큼 한다. 대가도 식에서 보인다: 하나의 에 특화된 정책보다 각 에서의 성능은 낮아진다(강건성 ↔ 최적성 트레이드오프). 또한 (d)의 과적합에 대한 자연스러운 처방이기도 하다 — parameter가 계속 바뀌면 특정 모델의 허점을 착취하는 전략은 평균 성능을 올리지 못한다.
(b) 시뮬레이터를 현실에 붙이기: digital twin이라는 다리
반대 방향의 대응은 자체를 줄이는 것 — 즉 시뮬레이터를 실물에 계속 붙여 두는 것이다. 26편에서 다룬 온라인 보정(data assimilation으로 drift하는 parameter를 추적)과 모델 자동 생성(최신 이벤트 로그에서 모델 구조를 다시 뽑기)이 정확히 이 역할이다. 모수적 오차는 온라인 보정이, 구조적 노후화는 자동 재생성이, 비정상성 (c)는 둘의 지속적 반복이 공략한다. digital twin이 sim-to-real의 다리라고 불리는 이유가 여기 있다 — 학습·검증 환경을 “그때 만든 모델”이 아니라 “지금의 실물에 동기화된 모델”로 유지해 주기 때문이다.
(a)와 (b)는 경쟁 관계가 아니라 상호보완이다. gap을 줄일 수 있는 만큼 줄이고(b), 그래도 남는 — 그리고 결코 0이 되지 않는 — 잔여 gap에는 강건해지는 것(a)이 실용적인 조합이다.
(c) 보수적 평가와 배치 게이트
gap을 인정한다면, 실배치는 한 번의 도약이 아니라 단계적 게이트로 설계해야 한다.
- 정밀 모델 재평가 — 학습에 쓴 (빠르고 거친) 시뮬레이터가 아니라 별도의 정밀 모델에서 정책을 다시 평가한다. 학습 환경의 허점에 과적합한 정책은 이 단계에서 상당수 걸러진다.
- 동기화된 digital twin 검증 — 가능하다면, 실물과 동기화 중인 트윈 위에서 현재 스냅샷부터 굴려 본다. 검증 조건이 실물의 “지금”에 가장 가깝다.
- 제한 구역 파일럿 — fab 전체가 아니라 일부 장비군·일부 제품군에만 정책을 적용해 실측한다.
- 점진 확대 — 파일럿 실측이 시뮬레이션 예측과 부합할 때만 적용 범위를 넓힌다.
그리고 각 게이트에는 롤백 기준을 미리 정의해 둔다 — “어떤 KPI가 어느 수준으로 며칠간 악화되면 기존 룰로 복귀한다”를 배치 전에 합의하는 것이다. 사후에 정하려 하면 매몰 비용과 낙관이 판단을 흐린다.
(d) Offline RL: 시뮬레이터를 우회하는 갈래
마지막 갈래는 질문 자체를 바꾼다 — 시뮬레이터를 고칠 게 아니라, 실 fab의 운영 로그로 직접 학습하면 되지 않나? 이것이 offline RL(환경과 상호작용하지 않고, 이미 수집된 데이터만으로 정책을 학습하는 강화학습의 갈래)이다. 데이터가 실물에서 왔으니 모델 오차 문제는 원천적으로 없다. 대신 다른 벽이 있다: 탐험이 없다. 로그는 기존 정책 가 방문한 상태·행동 분포 안에만 존재하므로, 그 분포 밖의 행동이 얼마나 좋은지는 데이터가 말해 주지 않는다 — sim-to-real의 외삽 문제가 “모델의 외삽”에서 “데이터의 외삽”으로 자리를 옮겼을 뿐인 셈이다. 이 갈래는 RL 시리즈의 확장 주제로 미루고, 여기서는 지형도 위의 위치만 잡아 둔다.
Fidelity vs 학습 효율
마지막으로, 학습 환경 설계자가 피할 수 없는 트레이드오프가 있다. fidelity(모델이 실물의 세부를 얼마나 정교하게 담는가)를 축으로 놓으면:
- 정밀 시뮬레이터: gap은 작지만 1 step이 느리다 → 같은 계산 예산으로 얻는 학습 샘플이 적다 → 학습이 덜 된다.
- 거친 시뮬레이터: 빠르다 → 샘플은 풍부하다 → 대신 gap이 크고 과적합 위험도 크다.
즉 “gap을 줄이는 정밀함”과 “학습을 가능하게 하는 속도”가 서로를 잡아먹는다. 실용적 전략은 둘을 다단계로 조합하는 것이다 — 거친 모델에서 대량의 샘플로 사전학습(pre-training)하고, 정밀 모델에서 소량의 샘플로 미세조정(fine-tuning)한다. 36편에서 본 “빠른 학습용 + 정밀 평가용” 2단 구성과 정확히 같은 발상이며, 위 (c)의 1단계 게이트(정밀 모델 재평가)는 이 구성의 평가 쪽 얼굴이다.
정리
- Sim-to-real gap 는 (모델, 정책) 쌍의 속성이다. V&V는 기존 정책의 방문 분포 위에서 을 확인할 뿐이며, 새 정책은 시스템을 검증된 적 없는 운영점으로 데려간다 — gap의 뿌리는 분포 밖 외삽이다.
- 원천은 넷: 모델 오차(구조적·모수적), 관측·데이터 오차(MES 품질·스냅샷), 비정상성(학습 시점 fab ≠ 배치 시점 fab), 정책의 시뮬레이터 과적합(36편의 버그 착취).
- 정량 근거: 공개 벤치마크(Mini-Fab·SMT2020)의 두 자릿수 % 개선이 실제 산업 데이터셋에서는 tardiness 약 4%, throughput 약 1% 로 줄어든다 (Stöckermann et al., arXiv:2505.11135). 실제 fab은 SMT2020보다 제품 수 10배 이상·복잡도가 훨씬 높다.
- 대응책: (a) domain randomization — 모델 분포 위의 기대 성능을 최적화해 강건해지기, (b) digital twin 동기화(26편) — gap 자체를 줄이기 (둘은 상호보완), (c) 단계적 배치 게이트 — 정밀 재평가 → 트윈 검증 → 파일럿 → 확대, 롤백 기준은 사전 정의, (d) offline RL — 실로그 직접 학습, 단 로그 분포 밖은 못 배운다.
- Fidelity ↑ = gap ↓ but 샘플 ↓ 의 트레이드오프는 거친 모델 사전학습 + 정밀 모델 미세조정의 다단계 구성으로 다룬다.
이제 지형도는 갖춰졌다. 실제 연구들은 이 문제들 — 규모, gap, 강건성 — 을 각자 어떻게 다뤘는가. 다음 글 38편에서 RL 기반 fab 디스패칭 연구의 흐름을 사례로 살펴본다.
참고문헌
- P. Stöckermann et al., “Scalability of Reinforcement Learning Methods for Dispatching in Semiconductor Frontend Fabs: A Comparison of Open-Source Models with Real Industry Datasets”, The International Journal of Advanced Manufacturing Technology, 2025. arXiv:2505.11135 / DOI 10.1007/s00170-025-16117-2