본문 바로가기

VLA 모델은 이미지와 지시문을 어떻게 관절 명령으로 바꾸나: RT-2·OpenVLA·π0·GR00T N1 구조 비교

VLA(Vision-Language-Action) 모델이 카메라 이미지와 자연어 지시를 로봇 행동으로 바꾸는 과정을 행동 토큰 방식(RT-2·OpenVLA)과 연속 행동 생성 방식(π0·GR00T N1·Helix)으로 나눠 논문 수치와 함께 설명합니다.

목차

핵심 요약

  1. VLA는 ‘비전 인코더 → 언어 모델 백본 → 행동 헤드’ 세 단계로 볼 수 있고, 모델 간 가장 큰 차이는 마지막 행동 헤드에서 나온다.
  2. RT-2와 OpenVLA는 행동을 이산 토큰으로 바꿔 언어 모델이 다음 토큰을 예측하듯 출력한다. OpenVLA는 7B 파라미터로 55B RT-2-X보다 29개 과제 절대 성공률이 16.5%p 높았다고 보고했다.
  3. π0는 3B VLM(PaliGemma)에 약 300M 파라미터 행동 전문가를 붙여 flow matching으로 50스텝 행동 묶음을 생성하며, 최대 50Hz 제어가 가능하다고 밝힌다.
  4. Figure Helix와 GR00T N1은 느린 ‘생각’ 시스템(VLM)과 빠른 ‘반사’ 시스템(행동 생성)을 나눈다. Helix는 7B VLM을 7~9Hz, 80M 정책을 200Hz로 돌린다.
  5. 모델을 고를 때는 성공률 수치보다 제어 주파수, 행동 차원(자유도), 온보드 연산 예산이 내 로봇과 맞는지를 먼저 확인해야 한다.

“빨간 컵을 쟁반에 올려 줘"라는 문장과 카메라 이미지 한 장이 어떻게 로봇 팔의 관절 각도 변화로 바뀔까요? 이 글은 VLA(Vision-Language-Action) 모델의 내부를 세 단계로 나누고, 대표 모델들이 마지막 단계인 행동 생성을 어떻게 다르게 설계했는지 논문 수치로 비교합니다. 로봇에 쓸 VLA를 고르거나 논문을 읽기 전에 구조를 잡고 싶은 엔지니어를 위한 글입니다.

VLA를 세 단계로 나누어 보기

VLA는 Physical AI 구성 요소 중 “무엇을 할지"를 정하는 모델입니다. 내부는 대체로 아래 세 단계로 나눌 수 있습니다.

  1. 비전 인코더: 카메라 이미지를 시각 토큰으로 바꾼다. OpenVLA는 DINOv2와 SigLIP을 결합한 비전 백본을 쓴다고 README에 밝힌다.
  2. 언어 모델 백본: 시각 토큰, 지시문 토큰, 로봇 상태를 함께 읽고 장면과 과제를 이해한다. OpenVLA는 Llama 2, π0는 PaliGemma를 쓴다.
  3. 행동 헤드: 백본의 출력을 관절·그리퍼 명령으로 바꾼다. 모델 간 차이가 가장 큰 부분이다.

앞의 두 단계는 일반 VLM과 거의 같습니다. VLA가 VLM과 갈라지는 지점은 세 번째 단계이며, 여기서 크게 두 갈래가 나옵니다.

갈래 1: 행동을 언어처럼 토큰으로 출력하기 (RT-2, OpenVLA)

RT-2 논문은 로봇 행동을 텍스트 토큰으로 표현해 학습 데이터에 그대로 넣었습니다. 위치 변화, 회전 변화, 그리퍼 값을 숫자 구간으로 나눈 뒤 각 구간을 토큰으로 쓰는 방식입니다. 프로젝트 페이지는 “1 128 91 241 5 101 127 217” 같은 토큰열을 예로 보여 주며, PaLM-E(12B)와 PaLI-X(55B)를 백본으로 한 버전을 공개했습니다.

이 방식의 장점은 언어 모델 구조를 거의 바꾸지 않아도 된다는 것입니다. 행동은 “다음 토큰 예측"의 한 종류가 되고, 웹 데이터로 배운 지식이 그대로 이어집니다. RT-2는 6천 회 이상의 평가에서 처음 보는 물체에 대한 일반화가 크게 좋아졌다고 보고합니다.

OpenVLA는 같은 방식을 공개 모델로 구현했습니다. 7B 파라미터 모델을 97만 건의 실제 로봇 시연으로 학습했고, 29개 과제에서 RT-2-X(55B)보다 절대 성공률이 16.5% 높았다고 밝힙니다. 행동 토큰을 실제 값으로 되돌리는 과정은 개념적으로 아래와 같습니다.

import numpy as np

# 행동 한 차원을 [low, high] 범위의 N개 구간으로 나눈 토큰을 연속값으로 복원 (개념 코드)
def detokenize(token_ids, low, high, n_bins=256):
    centers = np.linspace(low, high, n_bins)
    return centers[np.asarray(token_ids)]

# 예: 7차원 행동 = 위치 변화 3 + 회전 변화 3 + 그리퍼 1
action = detokenize(model_output_tokens, low=action_low, high=action_high)

OpenVLA 저장소는 이 기본 방식을 “256-bin action discretization"이라고 부릅니다. 구간 수가 정해져 있으므로 아주 미세한 동작에서는 양자화 오차가 생길 수 있고, 한 번에 한 스텝씩 토큰을 생성하면 제어 주파수가 낮아질 수 있습니다. 저장소는 이를 개선한 후속 방법(OFT, FAST)이 추론 속도를 크게 높인다고 소개합니다.

갈래 2: 연속 행동을 생성 모델로 만들기 (π0, GR00T N1)

두 번째 갈래는 행동을 토큰으로 나누지 않고, 연속값 행동 시퀀스를 생성 모델로 직접 만듭니다. π0 논문이 대표적입니다.

항목π0 (논문 기준)
VLM 백본PaliGemma 3B
행동 전문가(action expert)약 300M 파라미터 추가, 합계 약 3.3B
행동 생성 방식조건부 flow matching, 추론 시 오일러 10스텝
행동 묶음 길이H = 50 스텝
제어 주파수최대 50Hz
사전학습 데이터1만 시간 이상, 자체 데이터 7개 로봇 구성·68개 과제
추론 지연 (RTX 4090)온보드 73ms, 원격 86ms

핵심은 행동 묶음(action chunk)입니다. 한 번 추론으로 50스텝 분량의 연속 행동을 만들고, 로봇은 이를 고주파로 실행합니다. 덕분에 큰 VLM을 매 제어 주기마다 돌리지 않아도 됩니다. 확산·flow 계열로 여러 정답 행동을 다루는 원리는 디퓨전 정책 작동 원리에서 자세히 설명합니다.

이중 시스템: 생각하는 모델과 움직이는 모델 분리 (Helix, GR00T N1)

휴머노이드처럼 자유도가 많은 로봇에서는 이해와 제어를 아예 두 모델로 나누는 구조가 쓰입니다.

모델느린 시스템 (이해)빠른 시스템 (행동)행동 공간
Figure Helix7B VLM, 7~9Hz80M 트랜스포머 정책, 200Hz상체 35자유도
GR00T N1VLM 기반 System 2Diffusion Transformer 기반 System 1평가: Fourier GR-1 양팔 조작

Helix는 두 시스템을 저전력 임베디드 GPU 2개에 하나씩 나눠 올리고, 약 500시간의 원격조작 데이터로 학습했다고 밝힙니다. GR00T N1은 두 모듈을 함께 끝단까지 학습하며, 실제 로봇 궤적·사람 영상·합성 데이터를 섞어 학습한 공개 파운데이션 모델로 소개됩니다. 느린 시스템이 “무엇을 할지"를 잠재 표현으로 넘기면, 빠른 시스템이 이를 매끄러운 관절 명령으로 바꾸는 구조입니다.

세 방식을 한눈에 비교

기준행동 토큰 (RT-2·OpenVLA)연속 생성 (π0)이중 시스템 (Helix·GR00T N1)
행동 표현구간화된 이산 토큰연속값 행동 묶음잠재 표현 → 연속 명령
구조 변경언어 모델 그대로 사용백본 + 행동 전문가모델 2개
강점단순, 웹 지식 이전정밀·고주파 제어많은 자유도·고주파
주의점양자화 오차, 생성 속도생성 스텝 수만큼 연산두 모델 간 인터페이스 설계

내 로봇에 VLA를 고르기 전에 확인할 것

논문 성공률은 특정 로봇과 평가 과제에서 나온 값입니다. 내 로봇에서는 아래 순서로 따져 보는 편이 현실적입니다.

  1. 행동 차원과 제어 주파수: 7자유도 팔 하나인지, 35자유도 상체인지에 따라 맞는 구조가 다르다.
  2. 온보드 연산 예산: 7B 모델을 16비트로 올리면 가중치만 약 14GB가 필요하다(파라미터 수 × 2바이트로 계산한 추정). 계산 방법은 엣지 GPU VRAM·TOPS 산정 가이드를 참고한다.
  3. 미세조정 데이터와 자원: OpenVLA README는 LoRA 미세조정 예시가 A100 80GB 한 장에서 돌고, 배치를 줄이면 최소 약 27GB GPU로도 가능하다고 안내한다.
  4. 라이선스와 공개 범위: 가중치 공개 여부와 상업적 사용 조건을 확인한다.

VLA가 고른 행동이 어떤 결과를 낳을지 미리 예측하는 쪽은 월드 모델입니다. 두 모델의 관계는 월드 모델 작동 원리에서 이어서 볼 수 있습니다.

자주 하는 실수

  • VLA가 매 제어 주기마다 언어 모델 전체를 다시 돌린다고 가정하는 경우 — 행동 묶음(action chunk)이나 이중 시스템으로 고주파 제어와 저주파 추론을 분리하는 설계가 많다.
  • 논문 성공률을 다른 로봇·과제에도 그대로 기대하는 경우 — 수치는 특정 로봇과 평가 과제에서 나온 값이며 대부분 내 데이터로 미세조정이 필요하다.
  • 행동 토큰화의 해상도 한계를 무시하는 경우 — 연속 동작을 구간으로 나누면 정밀 조작에서 양자화 오차가 생길 수 있다.

적용 전 체크리스트

  • 내 로봇의 행동 차원(관절 수·그리퍼)과 목표 제어 주파수를 정리했는가
  • 후보 모델의 행동 헤드가 이산 토큰 방식인지 연속 생성 방식인지 확인했는가
  • 모델 크기에 맞는 온보드 GPU 메모리와 추론 지연 시간을 산정했는가
  • 미세조정에 쓸 시연 데이터의 양과 수집 방법(원격조작 등)을 정했는가
  • 공개 가중치·라이선스로 상업적 사용이 가능한지 확인했는가

자주 묻는 질문

VLA와 강화학습 정책은 어떻게 다른가요?
강화학습 정책은 보통 한 과제의 보상으로 학습한 작은 네트워크이고, VLA는 대규모 시각·언어 데이터로 사전학습한 모델을 로봇 시연 데이터로 확장한 것입니다. VLA는 처음 보는 물체나 자연어 지시에 대응하는 일반화가 강점이고, 보행처럼 빠른 저수준 제어는 여전히 강화학습 정책이 맡는 경우가 많습니다.
Diffusion Policy와 VLA의 연속 행동 헤드는 같은 것인가요?
원리가 가깝습니다. Diffusion Policy는 확산 모델로 행동 시퀀스를 생성하는 방법이고, π0의 flow matching이나 GR00T N1의 diffusion transformer는 이 계열의 생성 방식을 VLM 백본 뒤에 붙인 것입니다. 자세한 원리는 디퓨전 정책 작동 원리에서 다룹니다.

참고 자료 · 검증 기준

  1. Brohan et al., RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control (arXiv:2307.15818)
  2. RT-2 project page (Google DeepMind)
  3. Kim et al., OpenVLA: An Open-Source Vision-Language-Action Model (arXiv:2406.09246)
  4. OpenVLA GitHub repository (README)
  5. Black et al., π0: A Vision-Language-Action Flow Model for General Robot Control (arXiv:2410.24164)
  6. NVIDIA, GR00T N1: An Open Foundation Model for Generalist Humanoid Robots (arXiv:2503.14734)
  7. Figure AI — Helix: A Vision-Language-Action Model for Generalist Humanoid Control

마지막 검증일: