[자율주행] VLA·VQA와 파운데이션 모델 — 언어가 주행 데이터에 들어올 때
자율주행/모델
· 2026-08-31
본문의 점선 밑줄 친 전문용어를 누르면 설명이 열립니다.
자율주행 문서에 언어 모델 계열 약어가 부쩍 늘었다. , , , . 각각을 낱개로 보면 유행어 같지만, 모듈형 스택이 어디서 막히는가에서 출발하면 왜 나왔는지가 분명해진다.
모듈형 스택이 막히는 곳
지금의 주류는 인지 → 예측 → 계획 → 제어로 나뉜 스택이다. 단계마다 검증할 수 있고 책임이 분명하다는 큰 장점이 있다. 대신 두 곳에서 막힌다.
하나. 중간 표현이 정보를 버린다. 인지가 세상을 "박스 12개 + 차선 4개"로 요약하는 순간, 그 요약에 없는 것은 계획이 영영 모른다. 트렁크를 열고 짐을 싣는 사람의 자세, 공사장 인부의 수신호, 앞차 운전자가 옆을 흘끗 보는 동작 — 전부 박스로는 전달되지 않는다.
둘. 상식이 없다. "도로에 놓인 저 물체가 비닐봉지인가 콘크리트 블록인가"는 형상만으로 안 갈린다. 사람은 맥락으로 판단한다.
언어 모델 계열이 자율주행에 들어오는 건 이 두 구멍을 겨냥해서다.
용어부터 정리
| 약어 | 무엇 | 입력 → 출력 |
|---|---|---|
| Vision-Language Model | 이미지 + 텍스트 → 텍스트/임베딩 | |
| Visual Question Answering | 이미지 + 질문 → 답 | |
| Vision-Language-Action | 관측 + (지시/맥락) → 행동 | |
| End-to-End 자율주행 | 센서 → 행동 (하나의 학습된 모델) |
관계를 한 줄로 놓으면, VLM 이 바탕이고, VQA 는 그 위의 태스크 형식이고, VLA 는 출력을 언어가 아니라 행동으로 바꾼 것이다. E2E 는 VLA 보다 넓은 개념으로, 언어를 안 쓰는 E2E 도 있다.
지금 값어치가 나오는 자리 — VQA 와 임베딩 검색
솔직하게 갈라야 할 지점이다. 주행 판단에 언어 모델을 쓰는 건 아직 연구 단계이고, 데이터 파이프라인에 쓰는 건 이미 실무다.
씬 마이닝 — SQL 이 되게 만드는 마지막 조각
데이터 큐레이션의 핵심 질문은 "비 오는 밤 좌회전 중 보행자가 있던 장면"을 어떻게 찾느냐다. 속도·조향각·객체 수 같은 신호는 로그에서 계산할 수 있다. 그런데 날씨, 조도, 노면 상태, 공사 여부, 상황의 성격 같은 건 계산이 안 된다.
사람이 페타바이트에 태그를 달 수는 없다. 여기서 / 가 들어온다. 을 모델에 넣고 판정시켜 컬럼으로 굽는다.
scene_tags log_id, t_ns,
weather(맑음|비|눈|안개), time_of_day, road_surface(건조|젖음),
construction(bool), occlusion_level, unusual_object(bool),
caption(자연어 한 줄), model_version, confidence
이게 구워지면 앞 글의 SQL 질의가 비로소 완성된다. "비 오는 밤 좌회전"이 SQL 이 되는 실질적 경로가 이것이다.
쓸 때 지켜야 할 것 둘.
- 골든셋으로 정밀도·재현율을 재고 임계를 잡는다. 모델이 "비"라고 한 것 중 실제 비의 비율을 모르면, 그 태그로 만든 학습 세트의 성질도 모른다.
model_version을 반드시 컬럼에 남긴다. 태깅 모델을 바꾸면 태그 분포가 바뀌고, 그게 학습 세트 분포를 바꾼다.
임베딩 검색 — 롱테일 발굴
더 단순하고 더 강력한 쓰임이다. 모든 키프레임을 VLM 으로 임베딩해 두면, "이 실패 장면과 비슷한 장면"을 벡터 검색으로 찾을 수 있다.
데이터 플라이휠에서 가장 자주 막히는 고리가 "실패를 찾았는데 비슷한 사례를 못 모으는 것"인데, 여기가 정확히 풀린다. 텍스트로 검색하는 것도 된다 — "삼륜 오토바이", "도로 위 매트리스".
오토라벨링 보조와 평가
- 애매한 케이스를 사람에게 보내기 전 1차 분류.
- DriveLM, NuScenes-QA 같은 벤치마크는 인지·예측·계획을 질문 형태로 물어, 박스 정확도가 아닌 방식으로 상황 이해를 잰다.
아직 아닌 자리
- 환각 — 없는 것을 있다고 답한다. 도구에서는 오탐이 비용이지만, 주행 판단에서는 사고다.
- 공간·거리 감각이 약하다 — "앞차가 얼마나 가까운가"를 픽셀에서 잘 못 읽는다.
- 지연 — 주행 루프 안에 넣기엔 무겁다.
그래서 지금의 합리적 위치는 오프라인·비실시간·사람 검수가 붙는 자리다.
VLA — 모델 문제이기 전에 데이터 문제
는 관측과 언어를 받아 행동을 직접 낸다. 로보틱스에서 먼저 나왔고(RT-2, OpenVLA 계열) 자율주행으로 옮겨왔다.
매력은 둘이다. 중간 표현에서 정보를 잃지 않고, 언어로 근거를 낼 수 있다 — "우측 차량이 끼어들 조짐이 있어 감속했다". 검증 불가능하다고 여겨지던 에 설명 가능성을 붙이려는 시도다.
그런데 데이터를 다루는 입장에서 보면 요구사항이 완전히 달라진다. VLA 학습에 필요한 건 박스 라벨이 아니라 (관측, 상황 설명, 행동)의 삼중항이다.
| 필요한 것 | 어디서 오나 |
|---|---|
| 관측 | 센서 로그 그대로 |
| 행동 | — 사람이 실제로 어떻게 조향·가감속했는가 |
| 언어 | 없다. 만들어야 한다 |
두 번째 줄이 중요하다. 인지 라벨을 만드느라 수십억을 쓰는 동안, 가장 정답에 가까운 신호는 CAN 버스에 공짜로 흐르고 있었다. 사람이 실제로 한 행동이 곧 모방학습의 정답이다.
다만 조건이 있다. 그 행동이 관측과 같은 시간축에 정확히 정합돼 있어야 한다. 센서와 CAN 이 다른 파일, 다른 시계에 흩어져 있으면 삼중항을 만들 수 없다. MCAP 처럼 모든 단계가 한 파일 한 시간축에 들어가는 포맷이 여기서 값어치를 한다.
세 번째 줄 — 언어는 만들어야 한다. 현실적인 방법은 셋이다.
- 자동 캡셔닝 — VLM 으로 장면 설명을 생성. 싸지만 부정확하다.
- 이벤트 기반 — 개입·급제동·회피 같은 이벤트에만 사람이 설명을 붙인다. 비싸지만 정확하고, 가장 값어치 있는 순간에 집중된다.
- 로그 유도 — 계획 모듈이 남긴 결정 이유(
/planning/behavior의 사유 필드)를 문장으로 변환. 계획 후보와 비용을 로깅해 두면 여기서 갚는다.
E2E 와의 관계
E2E 는 센서에서 행동까지를 하나의 학습된 모델로 잇는 접근이다. 완전한 블랙박스는 검증이 불가능하다는 문제가 있어서, 최근 흐름은 인지·예측·계획을 하나의 네트워크에 두되 중간 출력을 남기는 절충이다(UniAD 계열). 박스와 점유와 이 여전히 나오지만, 그것들이 최종 계획 손실로부터 함께 학습된다.
VLA 는 그 위에 언어를 얹은 형태로 볼 수 있다.
검증이 진짜 관문이다
여기서 정직해야 한다. 성능보다 검증이 어렵다.
모듈형 스택은 "인지가 이 차를 놓쳤다"까지 좁혀 원인을 특정할 수 있다. E2E/VLA 는 그게 안 된다. 그리고 안전 논증(safety case)은 "왜 안전한가"를 설명할 수 있어야 성립한다.
그래서 두 가지가 필수가 된다.
- 평가 — 자기 행동이 다음 관측을 바꾸므로, 로그를 그냥 재생하는 열린 루프로는 성능을 알 수 없다. E2E 계열에서 열린 루프 지표가 좋아 보이는 건 거의 의미가 없다.
- 중간 출력의 로깅 — 블랙박스여도 무엇을 보고 무엇을 예측했는지 남겨야 사후 분석이 된다. 이건 다시 로그 스키마 문제다.
데이터 쪽에서 지금 준비할 것
파운데이션 모델을 당장 학습시키지 않더라도, 지금 로그를 어떻게 쌓느냐가 나중에 할 수 있는 일을 결정한다. 준비 목록은 짧다.
- 을 센서와 같은 시간축에 정합해 기록한다. 원시 프레임과 디코딩된 물리량 둘 다.
- 계획의 결정과 그 이유를 로깅한다. 후보 과 비용 항목별 점수까지.
- 개입·급제동·회피 이벤트를 자동으로 태깅한다. 나중에 언어 라벨을 붙일 후보 집합이 된다.
- 임베딩을 구워 벡터 검색을 붙인다. 지금 당장 에 쓰이고, 나중에 학습 세트 구성에 쓰인다.
- 씬 태그를 컬럼으로 굽되 모델 버전을 남긴다.
전부 파운데이션 모델과 무관하게 오늘의 큐레이션에 바로 쓰이는 것들이라는 점이 좋다. 미래를 위한 투자가 아니라 지금 값을 하면서 미래도 여는 항목들이다.
정리
- VLM 이 바탕, VQA 는 태스크 형식, VLA 는 출력을 행동으로 바꾼 것, E2E 는 그 상위 개념.
- 지금 실무에서 확실히 값이 나오는 자리는 씬 마이닝·태깅과 임베딩 검색이다. 주행 판단은 아직 아니다.
- VQA 태그를 쓸 때는 골든셋으로 정밀도를 재고 모델 버전을 컬럼에 남긴다.
- VLA 는 (관측, 설명, 행동) 삼중항을 요구한다. 행동은 에 이미 있고, 관건은 시간 정합이다. 언어는 이벤트 기반으로 만드는 게 현실적이다.
- 진짜 관문은 성능이 아니라 검증이다. 평가와 중간 출력 로깅 없이는 배포 논증이 안 선다.
- 데이터 쪽 준비 목록은 파운데이션 모델과 무관하게 오늘의 에도 바로 쓰인다.
이어서 볼 글: 이 데이터를 담는 로그 설계는 MCAP 완전 정복, 저장·질의 인프라는 AV 데이터 플랫폼, 검증의 열린/닫힌 루프는 시뮬레이션과 리시뮬에서 다룬다.