15타일 퍼즐 프로젝트의 목표는 최강 솔버가 아니다. C++ oracle이 대신 풀어 높은 완주율을 만드는 것과 DQN·VLM이 실제로 학습하는 것을 구분하는 테스트베드다.

15퍼즐로 검증하는 DQN·VLM·월드모델의 실제 학습 핵심 도식
그림. 솔버의 완주율이 아니라 에이전트가 직접 낸 행동과 학습 과정이 개선되는지를 측정한다.

같은 엔진, 다른 역할

`PuzzleEngine`은 규칙과 보상을 제공한다. Planner·Executor·Teacher는 데모 생성과 plan 검증, 채점 기준이다. research 모드에서는 에이전트가 낸 action이나 plan을 그대로 적용하고, oracle 모드는 데모와 C++ 디버깅에만 사용한다.

DQN 경로

격자와 target, 이미 고정된 행 같은 plan channel을 관측으로 쓸 수 있다. 사람·teacher·executor demo로 behavior cloning을 한 뒤 RL로 이어 간다. 평가할 때 정책이 직접 step한 궤적만 agent 결과로 계산한다.

VLM 경로

VLM은 단순한 다음 방향보다 target과 짧은 plan을 JSON으로 제안한다. Executor는 plan을 검증하고 실행 결과를 기록한다. 실패와 불일치 로그는 즉시 온라인 학습에 넣지 않고 검토 후 batch LoRA SFT 또는 preference 데이터로 만든다.

과정 중심 지표

  • BC/RL loss, action accuracy와 epsilon
  • teacher agreement와 plan 검증 성공률
  • position reward, locked rows와 남은 plan 길이
  • 에이전트가 직접 둔 판의 완주율과 평균 step

완주율이 높아도 runtime에서 oracle이 행동을 덮어썼다면 학습 성공으로 보고하지 않는다.

월드모델 관점

상태와 행동에서 다음 상태를 예측하는 모델은 실제 엔진과의 오차를 따로 측정해야 한다. 짧은 rollout 정확도가 좋아도 반복 rollout에서 오차가 누적될 수 있으므로 horizon별 검증이 필요하다.

관련 소스

  • `train_pe.py`, `plan_agent.py`: Planner·Executor 학습과 실행
  • `train_puzzle_rl.py`: DQN
  • `generate_executor_demos.py`: oracle demo
  • `qt_rl_client.py`, `qt_vlm_client.py`: 동일 GUI 연결