주제 정보
- 프로젝트: AlpaSim — A modular, lightweight, and data-driven research simulator for autonomous driving (NVIDIA Labs, 2025-10 저장소 공개 · 2026년 공개 싱크 지속)
- 소유자/이름: NVlabs/alpasim · ⭐1,272 · 🍴162 · 👁 23 · 열린 이슈 20
- 라이선스: Apache-2.0 · 언어: Python(약 3.15 MB) + Rust(약 122 KB,
utils_rs궤적 변환 가속) · Dockerfile · Jupyter - 생성: 2025-10-03 · 최근 릴리스:
v2026.5(2026-06-04),v2026.4(2026-04-24) · main 최신 커밋: 2026-08-18(#154CI) · 저장소 푸시 2026-10-20 - 한 줄 정의: 실제 주행 로그를 뉴럴 재구성(NuRec / NRE) 으로 렌더링해 실사에 가까운 카메라 입력을 만들고, 그 위에서 엔드투엔드 주행 정책을 폐루프(closed-loop)로 굴려 평가하는 시뮬레이터. 렌더러·물리·컨트롤러·트래픽·평가가 각각 gRPC 마이크로서비스로 분리돼 있다.
- 인용 형식: 논문이 아닌 소프트웨어 인용(
@software{alpasim_2025}, 2025-10) — 저자에 Sanja Fidler · Marco Pavone · Zan Gojcic · Boris Ivanovic · Peter Karkus · Maximilian Igl(프로젝트 리드) 등이 이름을 올린다.
핵심 내용
엔드투엔드 주행 모델 평가는 오랫동안 “로그 되감기(open-loop replay)” 로 이뤄졌다. 기록된 카메라 프레임을 순서대로 먹이고 “정답 궤적과 얼마나 가까운가”(minADE·plan deviation)를 재는 방식이다. 문제는 명백하다 — 모델이 틀린 판단을 해도 세상이 반응하지 않는다. 실제 주행에서 30 cm 옆으로 붙으면 다음 프레임이 달라지지만, 리플레이에서는 실패가 그대로 다음 프레임에 이어지지 않고 조용히 누적 오차로만 남는다. 반대로 CARLA 같은 전통 시뮬레이터는 폐루프가 되지만 세계를 손으로 만들어야 하고, MetaDrive는 가볍지만 도메인 격차가 크다. AlpaSim의 답은 “실제 주행 기록을 렌더링 가능한 3D 자산으로 재구성해, 폐루프로 다시 굴린다” 이다.
- 설계 3원칙, 그리고 명시적 비목표: DESIGN 문서는 목표를 센서 충실도 · 수평 확장성 · 연구용 해킹 가능성 으로 못박고, “실시간성과 정밀 물리 시뮬레이션은 비목표(non-goals)” 라고 선언한다. 즉 AlpaSim은 게임 엔진식 세계 시뮬레이터가 아니라 평가 파이프라인이다. 물리는 “차량이 지면에 붙어 있게” 하는 제약 수준만 담당한다.
- 마이크로서비스 = 확장 단위:
runtime이 월드 상태를 들고 중심 허브 겸 로드밸런서 역할을 하며,renderer·physics·controller·trafficsim·driver(정책)·eval이 gRPC로 붙는다. 컴퓨트 요구가 큰 순서는 ego policy > renderer > controller > trafficsim > physics 이므로 서비스별 레플리카 수를 따로 늘린다 — 모델 서버를 여러 대 붙이고 렌더러를 그 옆에 두는 식. 대가는 문서가 직접 인정한다: “runtime은 나머지 모든 서비스를 합친 것만큼 IO를 쓴다.” - 렌더러가 곧 ‘세계’다: 기본 백엔드는 NVIDIA NuRec(NRE, Neural Reconstruction Engine) — 실제 주행 로그에서 복원한 3D 재구성 자산(
.usdz아티팩트)에서 새 시점의 카메라 영상을 합성한다. 여기에 동영상 생성 모델 OmniDreams를 FlashDreams로 붙이는 백엔드도 지원하며, 이 경로는 stateful video-model rendering으로 비강체·동적 객체의 시각적 충실도를 높인다. 렌더러는 pinhole/FTheta 투영을 모두 처리하고,runtime.extra_cameras로 정책이 요구하는 카메라 모델을 직접 맞춘다. - 씬 카탈로그가 곧 벤치마크: 공개 씬은 Hugging Face의 게이트 데이터셋(
nvidia/PhysicalAI-Autonomous-Vehicles-NuRec)에 있고, 저장소의sim_suites.csv가 “씬 ID → 정확한 아티팩트 UUID”를 고정한다(같은 씬의 최신본이 조용히 바뀌는 것을 막는 장치). 스위트 구성은 아래와 같다.
| 공개 스위트 | 씬 수 | NRE 버전 | 비고 |
|---|---|---|---|
public_2601 | 913 | 26.1.x | 신규 실행 권장 · 729개는 ClipGT 맵 입력, 184개는 XODR만 |
public_2601_video_model | 729 | 26.1.x | 비디오 모델 렌더러 경로용 UUID 고정 부분집합 |
public_2604 | 1,606 | 26.4.x | 26.04 카탈로그(1,607개 중 1,606개) · 2601과 겹치는 씬은 159개뿐 |
public_2507 | 910 | 25.7.x | 레거시(과거 재현용) |
- 드라이버 = 교체 가능한 정책 서비스: 공식 지원은 Alpamayo-R1(Chain-of-Causation 추론 VLA), Alpamayo 1.5, 그리고 2026-08 공개 싱크에서 추가된 Alpamayo 2(
driver=alpamayo2, 공개 Alpamayo 2 Super 체크포인트 · 멀티카메라 · 다중 궤적 후보 · 대형 모델용 후보 배칭), Valeo의 VaVAM(자기회귀 video-action 정책), NAVSIM용 Latent TransFuser v6(잠정). 정책은driveRPC로 궤적을 돌려주는 서비스일 뿐이라, 새 모델은 gRPC 서버 하나 추가로 붙는다. - 평가 모듈은 루프 밖에서 로그를 먹는다:
src/eval은 ASL 로그를 읽어 9종 스코어러 —collision·offroad·plan_deviation·minADE·min_distance_to_obstacle·open_loop_collision·safety·ground_truth·image— 를 돌리고 결과를 parquet으로 남긴 뒤, 타임스탬프별 지표가 화면에 찍힌 주행 영상까지 렌더링한다. VLA용REASONING_OVERLAY레이아웃은 모델의 추론 텍스트를 영상에 얹어 “왜 그렇게 판단했는가” 를 눈으로 검사하게 해준다. - 운영 현실이 코드에 드러난다: 실패 롤아웃은 기본 2회 재시도(
runtime.max_rollout_retries), 렌더러 초기화 실패는 채널 준비 대기 후 재시도, 잘못된 벡터맵은 구조화된 에러코드(ROLLOUT_ERROR_CODE_INVALID_SCENE_MAP)로 반환. 씬-친화 렌더러 디스패치(max_renderers_per_scene,max_scenes_per_renderer)로 캐시 재사용률을 올리고, 텔레메트리는 Prometheus + Grafana에 GPU 소유권·스케줄러·처리량 패널까지 내보낸다. - 실행 진입점은 위저드 하나:
uv run alpasim_wizard deploy=local topology=1gpu driver=vavam wizard.log_dir=<dir>— 단일 GPU Docker Compose부터 SLURM 멀티노드(src/tools/run-on-slurm,SLURM_ENROOTsquash 이미지 오버레이)까지 같은 설정 체계를 쓴다. 단, 씬 데이터는 게이트다 — HF 계정으로 접근 승인을 받아HF_TOKEN을 넣어야 내려받는다.
왜 유명한가 / 활용 가치
- “모델은 공개, 평가 하네스도 공개”라는 드문 조합: 2026년의 엔드투엔드 주행 연구는 모델은 오픈소스로 쏟아지지만 평가 인프라는 대개 각 사 내부에 있다. NVIDIA Labs가 Alpamayo 계열 VLA를 내놓으면서 그 모델을 굴리는 폐루프 테스트베드까지 Apache-2.0으로 공개한 것이 이 저장소의 성격이다. 저장소 topics에도
closed-loop-simulation·neural-reconstruction·nurec·physical-ai가 그대로 붙어 있다. - 저자진이 곧 ‘자율주행 시뮬레이션·평가’ 분야의 중심 인물: 소프트웨어 인용 블록에 Sanja Fidler(NVIDIA AI 연구 VP · 토론토대), Marco Pavone(NVIDIA AV 연구 리드 · 스탠퍼드), Boris Ivanovic(trafficsim·예측), Zan Gojcic(3D 재구성), Peter Karkus(드라이버 통합)가 올라 있다. 시니어 관리 라인까지 인용에 명시하는 것은 이 코드가 데모가 아니라 조직의 표준 하네스라는 신호다.
- NuRec가 ‘시뮬레이터’의 정의를 바꾼다: 전통 시뮬레이터는 3D 모델러가 만든 맵·차량·보행자로 세계를 구성한다. AlpaSim의 기본 경로는 실차 로그 → 뉴럴 재구성 자산(.usdz) → 임의 시점 렌더링이다. 그 결과 ① 실사와의 도메인 격차가 줄고 ② 씬 추가 비용이 “모델링”이 아니라 “로그 수집” 이 된다. 카탈로그가 26.01(913씬) → 26.04(1,606씬)로 반년 만에 두 배 가까이 늘면서 기존 씬과 겹침이 159개뿐이라는 점이 이 전략의 실행력을 보여준다.
- 폐루프 리플레이의 실용적 이점 — 실패를 ‘되감아’ 볼 수 있다: 각 롤아웃이 ASL 로그 + 지표 오버레이 영상으로 남기 때문에, 충돌·차선이탈·계획편차가 몇 초에 어떤 판단에서 생겼는지 바로 확인된다. VLA의 chain-of-causation 추론 텍스트까지 영상에 얹히므로, “정확도는 높은데 이유가 틀린 모델”을 잡아내는 디버깅 도구로도 쓸 수 있다.
- 규모 확장을 전제로 설계된 유일한 공개 하네스 중 하나: 서비스별 레플리카·멀티노드·SLURM·Prometheus 텔레메트리·실패 롤아웃 재시도가 1일차부터 들어 있다. 연구실 1-GPU 실험이 그대로 클러스터 스윕으로 확장되는 구조라는 뜻이고, 저장소 크기(파일 747개)에 비해 운영 코드 비중이 높다는 점이 이 프로젝트의 정체를 잘 말해준다.
- 솔직한 한계 공개: 평가 모듈 README는 스스로 “이 코드베이스는 새것이고 아직 battle-tested가 아니다. 지표에 이상한 코너케이스가 종종 있다” 고 경고한다. DESIGN 문서도 실시간성·정밀 물리를 비목표로 명시하고, trafficsim은 문서상 “coming soon” 인데 저장소에는 이미 CATK 계열 트래픽 모델 체크포인트(
catk_v120)와 에이전트/맵 토크나이저 어휘가 들어 있다. 즉 연구용 베타로 읽어야 맞다.
시사점 및 결론
AlpaSim이 던지는 질문은 “시뮬레이터가 CARLA보다 좋은가”가 아니라 “엔드투엔드 주행에서 ‘잘한다’를 무엇으로 측정할 것인가” 다. 오픈루프 지표는 포화됐고, 모델이 틀렸을 때 세상이 반응하지 않는 벤치마크에서는 누적 오차 문제를 원리적으로 잡을 수 없다. 이 저장소의 답은 세 가지를 한 묶음으로 처리하는 것이다 — 실사에 가까운 관측(뉴럴 재구성 렌더링) + 반응하는 세계(폐루프 롤아웃 + 트래픽/물리 서비스) + 재현 가능한 씬 고정(UUID 핀ning). 여기에 지표 오버레이 영상이라는 디버깅 산출물까지 붙여, “점수”와 “왜 그 점수인가”를 같은 파이프라인에서 뽑아낸다.
실무적으로 의미 있는 지점은 아키텍처의 절제다. 실시간성과 정밀 물리를 과감히 포기하고 렌더러·정책·평가를 gRPC 서비스로 분리한 덕분에, 이 하네스는 가장 비싼 자원(정책 추론·렌더링)을 독립적으로 확장할 수 있다. 반대로 도입 비용은 분명하다 — 게이트된 HF 데이터셋 접근 승인, uv·Rust 툴체인·Docker/Buildx, 그리고 최소 1-GPU 토폴로지. 또 하나 기억할 점은 씬 카탈로그가 곧 벤치마크의 정체성이라는 사실이다. 26.01과 26.04의 겹침이 159개뿐이라는 것은, 이 벤치마크의 점수가 카탈로그 버전에 강하게 종속된다는 뜻이므로 논문·리포트에는 반드시 스위트 ID를 함께 적어야 한다.
결론적으로 AlpaSim은 “평가 하네스가 곧 제품” 이라는 2026년 자율주행 연구의 흐름을 가장 노골적으로 보여주는 오픈소스다. 모델(Alpamayo 1 → 1.5 → 2 Super)과 평가 환경이 같은 조직에서 함께 공개되고, 그 환경이 실제 주행 로그를 재구성해 세계를 만들며, 결과를 영상으로 검수할 수 있게 만든다. 시뮬레이터를 “학습용 게임 엔진”으로 보던 시각을 “재현 가능한 폐루프 실험대” 로 바꾸는 것이 이 프로젝트의 진짜 기여다.
원문: https://github.com/NVlabs/alpasim · 설계 문서: docs/DESIGN.md · 씬 카탈로그: data/scenes/README.md · 데이터셋: nvidia/PhysicalAI-Autonomous-Vehicles-NuRec
목록으로 돌아가기