LeMario: 슈퍼 마리오 브라더스에서 JEPA 세계 모델 훈련 — 기술적 워크스루 및 사후 분석

Benjamin Bai의 LeMario 프로젝트는 LeWorldModel — 소규모 JEPA(Joint-Embedding Predictive Architecture) — 을 처음부터 재현하여 Super Mario Bros에서 훈련합니다. 상세한 기술 워크스루는 전체 아키텍처, 훈련 설정, 그리고 작동한 것과 작동하지 않은 것에 대한 솔직한 포스트모템을 다룹니다.
아키텍처 개요
모델은 연속된 네 개의 마리오 프레임을 처리합니다. 비전 인코더는 각 프레임을 192차원 잠재 벡터로 압축합니다: z_t = E_θ(x_t), z_t ∈ R^192. 액션(다섯 에뮬레이터 프레임 동안 Left, Right, Up, Down, A, B 버튼 상태)은 액션 인코더를 통해 별도로 192차원 벡터로 인코딩됩니다.
프레임과 액션 잠재는 6개의 트랜스포머 블록을 가진 인과적 예측기에 공급됩니다. 액션은 Adaptive LayerNorm Zero(AdaLN-Zero)를 통해 주입되며, 이는 어텐션과 MLP 각 분기별로 shift, scale, gate 제어를 생성합니다. Gate는 업데이트가 예측된 상태에 얼마나 강하게 영향을 미치는지 제어합니다. 가중치는 0에서 시작하여 예측기가 점진적으로 학습합니다.
예측기는 세 개의 예측된 미래 잠재를 출력합니다: ẑ₁, ẑ₂, ẑ₃. 이들은 세 개의 실제 다음 프레임의 잠재와 MSE 손실을 사용하여 비교됩니다: L_pred = MSE([ẑ₁,ẑ₂,ẑ₃], [z₁,z₂,z₃]). 표현 붕괴를 방지하기 위해 SIGReg 정규화가 추가됩니다: L = L_pred + 0.1 * L_SIGReg.
작동한 것
- 모델이 보이지 않는 에피소드에 일반화되었습니다.
- 액션 정보를 효과적으로 사용했습니다.
- 강력한 기준선보다 5단계 미래를 더 잘 예측했습니다.
- 원시 보상 없는 계획으로 마리오를 가까운 이미지 목표까지 2-5픽셀 이내로 이동시킬 수 있었습니다.
실패한 것
- 목표가 레벨의 더 먼 곳에 배치되면 마리오가 첫 번째 주요 장애물을 안정적으로 점프하지 못했습니다.
- 단일 먼 목표 이미지를 향해 탐색할 수 없었습니다.
- 결론: 게임 예측 ≠ 진행 학습. 모델은 픽셀 수준의 역학을 학습했지만 장기 계획이나 목표 지향 행동은 학습하지 못했습니다.
주요 교훈
Bai는 대부분의 교훈이 나중에 보면 당연해 보인다고 언급합니다. 단기 예측과 장기 계획 사이의 격차는 중요하며, 표준 예측 손실로는 포착되지 않습니다. 게시물에서는 이 한계를 점진적으로 드러낸 실험들을 자세히 설명합니다.
📖 전체 원문 읽기: HN AI Agents
👀 See Also

Claude-Code v2.1.105 릴리스: 워크트리 개선, 플러그인 모니터 및 UI 수정
Claude-Code v2.1.105는 기존 작업 트리로 전환하기 위한 EnterWorktree 도구에 경로 매개변수를 추가하고, 모니터 매니페스트 키를 통해 플러그인에 대한 백그라운드 모니터 지원을 도입하며, UI 표시 문제, MCP 서버 처리, 터미널 호환성을 포함한 30개 이상의 문제를 수정합니다.

AI가 이미 우리가 알던 학계를 파괴했다 — 볼륨 게임의 내부
정교수이자 편집장이 AI가 학계를 어떻게 파괴했는지 설명한다: 감지되지 않는 학생 에세이, 하루 한 편씩 쏟아내는 논문, 시스템을 교란하는 연구비 신청 홍수. 이제 게임이 의미를 잃었다.

Opus 4.6은 연구에서 뛰어난 반면, Gemini 3.1 Pro는 예측 벤치마크에서 더 나은 판단력을 보입니다
1,417개의 이진 예측 질문으로 구성된 벤치마크가 연구 성능과 판단 성능을 분리합니다: Claude Opus 4.6은 에이전틱 연구에서 선두, Gemini 3.1 Pro는 고정 증거 기반 보정에서 우위. GPT-5.4와 Grok 4.20은 조건 간 변화가 거의 없습니다.
FairyFuse, CPU에서 삼진 가중치 곱셈 없는 추론을 통해 29.6배 커널 속도 향상 달성
FairyFuse는 8개의 실수값 서브-GEMV를 마스크된 덧셈/뺄셈을 사용하여 단일 AVX-512 루프로 융합합니다. Xeon 8558P에서 32.4 tokens/s를 달성하며, 거의 손실 없는 품질로 llama.cpp Q4_K_M보다 1.24배 빠릅니다.