VLA 계보 - 전체 목차4편

논문해석 - OpenVLA: An Open-Source Vision-Language-Action Model

들어가며

RT-2 논문해석은 시각-언어 모델(Vision-Language Model, VLM)이 로봇 행동을 텍스트 토큰처럼 출력하게 만들면, 웹에서 배운 지식이 로봇 제어로 넘어온다는 것을 보였습니다. Open X-Embodiment 논문해석은 여러 기관의 로봇 데이터를 한 형식으로 모아 RT-2-X를 학습했습니다. 두 연구 모두 결과는 강했지만, 모델 가중치와 학습 코드는 공개되지 않았습니다. 다른 연구자가 같은 모델을 내려받아 자기 로봇에 맞게 고칠 방법이 없었습니다.

OpenVLA는 그 조건을 바꿉니다. 누구나 내려받을 수 있는 VLM인 Prismatic-7B를 Open X-Embodiment의 로봇 궤적 97만 개로 미세조정했고, 모델 가중치와 학습 코드, 미세조정 노트북을 모두 공개했습니다. 파라미터 수는 RT-2-X(55B)의 약 7분의 1인 7B인데, 29개 평가 과제의 성공률은 RT-2-X보다 16.5%p 높습니다. 논문은 여기에 더해, 새 로봇에 VLA를 맞추는 미세조정 방법과 소비자용 GPU에서 학습·추론하는 방법(LoRA, 양자화)을 처음으로 체계적으로 실험합니다.

📄 OpenVLA: An Open-Source Vision-Language-Action Model — Moo Jin Kim, Karl Pertsch, Siddharth Karamcheti (공동 1저자) 외 / Stanford University·UC Berkeley·Toyota Research Institute·Google DeepMind·Physical Intelligence·MIT, 2024-06 공개 (v3 2024-09)

프로젝트 페이지는 openvla.github.io이고, arxiv 식별자는 2406.09246입니다. 이 글은 v3을 기준으로 합니다.

초록 요약

인터넷 규모의 시각-언어 데이터와 다양한 로봇 시연으로 사전학습한 큰 정책이 있으면, 새 행동을 처음부터 학습하지 않고 그 정책을 미세조정해 쓸 수 있습니다. 이런 모델이 시각-언어-행동(Vision-Language-Action, VLA) 모델입니다. 그런데 기존 VLA는 대부분 비공개였고, 새 과제에 VLA를 효율적으로 미세조정하는 방법도 연구되지 않았습니다.

OpenVLA는 실제 로봇 시연 97만 개로 학습한 7B 파라미터 공개 VLA입니다. Llama 2 언어 모델에, DINOv2와 SigLIP의 사전학습 특징을 합친 시각 부호기를 붙인 구조입니다. 29개 과제와 여러 로봇 몸체에서 RT-2-X(55B)보다 절대 성공률이 16.5% 높고, 파라미터는 7배 적습니다. 새 환경에 미세조정했을 때는 물체가 여럿 있고 언어 지시를 정확히 따라야 하는 다중 과제 환경에서 특히 강하며, 처음부터 학습하는 모방 학습 방법인 Diffusion Policy보다 20.4% 높습니다. 저랭크 적응(LoRA)으로 소비자용 GPU에서 미세조정하고 양자화로 추론 메모리를 줄여도 성공률이 떨어지지 않는다는 것도 보입니다. 모델 저장본, 미세조정 노트북, Open X-Embodiment 데이터로 VLA를 대규모 학습하는 PyTorch 코드를 모두 공개했습니다.

그림 1 — OpenVLA 개요

그림 1 — 로봇 에피소드 97만 개로 VLM을 미세조정해 여러 로봇을 제어하고, 데이터·가중치·코드를 공개합니다.

그림 위쪽은 학습 흐름입니다. 로봇 데이터로 기본 VLM(ViT와 Llama 2 7B)을 미세조정하면, 사용자가 "Wipe the table." 같은 지시를 주었을 때 모델이 [Δx,Δθ,ΔGrip][\Delta x, \Delta\theta, \Delta\text{Grip}] 형태의 행동을 답합니다. 아래쪽은 이 논문이 실험한 로봇 셋입니다. 왼쪽부터 WidowX, RT-1·RT-2 평가에 쓰인 Google 이동형 조작기, 그리고 미세조정 실험에 쓴 Franka 팔입니다.


1. 문제 — 비공개 VLA와 미세조정 방법의 부재

학습된 로봇 조작 정책은 학습 데이터 밖으로 잘 일반화하지 못합니다. 물체 위치나 조명이 조금 바뀌는 정도는 견디지만, 방해물이 놓이거나 처음 보는 물체가 나오거나 처음 듣는 지시가 오면 실패합니다. 반면 CLIP, SigLIP, Llama 2 같은 시각·언어 기반 모델은 인터넷 규모 사전학습 덕분에 이런 일반화를 해냅니다. 가장 큰 로봇 조작 데이터셋도 예시가 10만~100만 개 수준이라, 로봇 데이터로 같은 규모의 사전학습을 재현하기는 아직 어렵습니다. 그래서 이미 학습된 시각·언어 기반 모델을 로봇 정책의 출발점으로 쓰자는 방향이 나왔고, RT-2가 그 방식으로 VLA를 만들었습니다.

저자들은 VLA가 널리 쓰이지 못하는 이유를 두 가지로 봅니다.

  1. 비공개 — 기존 VLA(RT-2, RT-2-X 등)는 모델 구조, 학습 절차, 데이터 혼합 비율이 거의 공개되지 않았습니다.
  2. 미세조정 방법의 부재 — 새 로봇·환경·과제에 VLA를 맞추는 방법, 특히 소비자용 GPU 같은 일반 하드웨어에서 하는 방법이 연구되지 않았습니다.

기존 범용 로봇 정책과의 비교

모델파라미터구조공개 여부미세조정
RT-1-X35M처음부터 학습한 Transformer 정책논문에 언급 없음논문에서 다루지 않음
Octo93M사전학습 구성 요소(언어 임베딩 등)에 처음부터 학습한 층을 붙여 함께 학습공개지원
RT-2-X55B인터넷 사전학습 VLM을 로봇 데이터로 공동 미세조정한 VLA비공개 (API로만 질의)API로는 불가
OpenVLA7B공개 VLM 전체를 로봇 행동 토큰 예측으로 미세조정한 VLA데이터 구성·코드·가중치 공개전체 미세조정·LoRA·양자화 실험

Octo 같은 기존 범용 정책은 사전학습된 언어 임베딩이나 시각 부호기에, 처음부터 초기화한 층을 붙여 정책 학습 중에 둘을 맞춥니다. OpenVLA는 VLM 전체를 그대로 가져와, 로봇 행동을 언어 모델 어휘의 토큰으로 두고 끝까지 함께 미세조정합니다. RT-2-X와의 차이는 네 가지입니다. 공개 VLM과 더 큰 로봇 데이터를 써서 크기가 한 자릿수 작은데도 성능이 높고, 미세조정을 체계적으로 실험했고, LoRA와 양자화를 VLA에 처음 적용했으며, 처음으로 공개된 범용 VLA입니다.

OpenVLA가 쓰는 SigLIP·DINOv2·Llama 2는 가중치만 공개됐고 학습 데이터와 코드는 공개되지 않았습니다. 저자들이 공개한 것은 이 구성 요소 위에서 OpenVLA를 재현하는 데 필요한 학습 데이터 구성, 코드, 가중치입니다.


2. 기본 VLM — Prismatic-7B

최근 VLM의 세 부분

최근 공개 VLM은 대부분 같은 구조를 씁니다. LLaVA 논문해석에서 본 시각 부호기 → 투영 층 → 언어 모델 구조입니다.

  1. 시각 부호기(visual encoder) — 이미지를 작은 패치로 잘라, 패치마다 벡터 하나를 만듭니다. 이 벡터를 이미지 패치 임베딩이라고 부릅니다.
  2. 투영기(projector) — 시각 부호기의 출력 벡터를 언어 모델의 입력 임베딩과 같은 크기로 바꿉니다.
  3. 언어 모델 백본(LLM backbone) — 투영된 이미지 벡터와 텍스트 토큰 임베딩을 한 줄로 이어 받아 다음 토큰을 예측합니다.

VLM은 인터넷에서 모은 이미지-텍스트 데이터로, 다음 텍스트 토큰을 맞히는 목적 함수로 끝까지 함께 학습합니다. 초기 VLM은 시각 특징과 언어 특징 사이에 교차 주의를 두는 여러 구조를 시도했지만, 최근 공개 VLM은 패치 특징을 그대로 토큰으로 넣는 "패치를 토큰으로(patch-as-token)" 방식으로 모였습니다. 이 방식은 언어 모델 학습 도구를 거의 그대로 VLM 학습에 쓸 수 있고, OpenVLA는 그 도구로 VLA 학습 규모를 키웁니다.

Prismatic-7B의 구성

OpenVLA의 출발점은 Prismatic-7B입니다.

구성 요소내용
시각 부호기600M 파라미터. 사전학습된 SigLIP과 DINOv2 두 개
투영기2층 MLP
언어 모델 백본Llama 2 7B
VLM 학습 데이터LLaVA 1.5 데이터 혼합, 공개 데이터셋의 이미지-텍스트·텍스트 전용 샘플 약 100만 개

그림 2 — OpenVLA 구조

그림 2 — ① DINOv2·SigLIP 시각 부호기 ② MLP 투영기 ③ Llama 2 7B, 그리고 행동 역토큰화기가 7차원 로봇 행동을 만듭니다.

두 시각 부호기의 특징 결합

같은 이미지 패치가 SigLIP과 DINOv2를 각각 통과하면, 패치 하나에서 벡터가 두 개 나옵니다. Prismatic은 이 두 벡터를 채널 방향으로 이어 붙입니다(channel-wise concatenation). 더하거나 평균 내지 않고, 한 벡터 뒤에 다른 벡터를 그대로 붙여 더 긴 벡터 하나로 만드는 연산입니다.

패치 번호SigLIP 벡터DINOv2 벡터이어 붙인 벡터
0(0.3, −1.2, 0.8)(0.5, 0.1)(0.3, −1.2, 0.8, 0.5, 0.1)
1(−0.4, 0.9, 0.2)(−0.7, 1.1)(−0.4, 0.9, 0.2, −0.7, 1.1)

표의 차원 수(3, 2)와 숫자는 연산 모양을 보여 주기 위한 임의의 예시 값입니다. 실제 두 부호기의 출력 차원은 논문에 적혀 있지 않습니다.

이어 붙인 벡터는 패치 수만큼 생기고, MLP 투영기가 이 벡터를 하나씩 Llama 2의 입력 임베딩 크기로 바꿉니다. 그러면 이미지 패치 하나가 언어 모델 입장에서 텍스트 토큰 하나와 같은 크기의 입력이 됩니다.

두 부호기를 함께 쓰는 이유는 둘이 학습한 데이터와 담는 정보가 다르기 때문입니다. SigLIP은 CLIP처럼 이미지-텍스트 데이터로 학습해 높은 수준의 의미 정보를 담고, DINOv2는 이미지 전용 데이터로 학습해 낮은 수준의 공간 정보를 담습니다. Prismatic 연구에서 DINOv2 특징을 더하면 공간 추론이 좋아졌고, 저자들은 이것이 로봇 제어에 특히 도움이 된다고 봅니다.


3. 행동의 토큰화

VLM의 언어 모델은 어휘표 안의 토큰만 출력할 수 있습니다. 로봇 행동은 "x 방향으로 0.005m 이동" 같은 연속값입니다. OpenVLA는 RT-2와 같은 방식으로 이 연속값을 정수 구간 번호로 바꾸고, 그 번호를 언어 모델의 토큰에 대응시킵니다. 그러면 행동 예측이 "이미지와 지시를 받아 문자열을 답하는" 시각-언어 과제가 됩니다.

7차원 행동

그림 2의 출력은 7차원 로봇 행동입니다. 그림에는 Δx\Delta x, Δθ\Delta\theta, ΔGrip\Delta\text{Grip}으로 적혀 있습니다. 말단장치(end-effector)의 위치 변화, 회전 변화, 집게 벌림 변화를 뜻합니다. 차원별 구성은 논문 본문에 따로 적혀 있지 않습니다. RT-2가 위치 변위 3개, 회전 변위 3개, 집게 1개로 연속 차원 7개를 두었으므로, 이와 같은 형태로 읽으면 됩니다.

차원별 256구간 이산화

차원마다 따로 256개 구간을 만듭니다. 구간의 폭은 학습 데이터에 나온 그 차원 행동값의 1번째 백분위수에서 99번째 백분위수 사이를 256등분해 정합니다.

x 방향 위치 변화 차원 하나로 계산해 보겠습니다.

단계계산결과
① 학습 데이터의 1번째 백분위수데이터에서 계산−0.020 m
② 학습 데이터의 99번째 백분위수데이터에서 계산+0.020 m
③ 구간 폭(0.020 − (−0.020)) ÷ 2560.00015625 m
④ 행동값 0.005 m의 구간 번호(0.005 − (−0.020)) ÷ 0.00015625 의 정수 부분160
⑤ 역토큰화구간 번호 160을 다시 연속값으로 되돌림약 0.005 m

①②의 백분위수 값과 ④의 행동값은 계산 과정을 보여 주기 위한 임의의 예시 값이고, ③④는 그 값으로 계산한 결과입니다.

7개 차원에서 이렇게 하면 행동 하나가 0~255 범위의 정수 7개가 됩니다.

최솟값·최댓값 대신 백분위수를 쓰는 이유

RT-2는 구간 범위를 데이터의 최솟값과 최댓값으로 정했습니다. OpenVLA는 1~99번째 백분위수로 바꿨습니다. 데이터에 드물게 섞인 이상치가 구간 범위를 크게 넓혀 버리는 것을 막기 위해서입니다.

범위 설정범위구간 폭0.005 m 차이를 구분할 수 있는가
1~99번째 백분위수−0.020 ~ +0.020 m약 0.00016 m약 32개 구간 차이로 구분됨
최솟값~최댓값 (이상치 0.5 m 하나 포함)−0.020 ~ +0.500 m약 0.00203 m약 2개 구간 차이로만 구분됨

범위 값은 임의의 예시 값이고, 구간 폭과 구간 수 차이는 그 값으로 계산한 결과입니다.

이상치 하나 때문에 구간 폭이 약 13배 넓어지면, 실제로 자주 쓰이는 작은 동작 범위에 배정되는 구간 수가 그만큼 줄어듭니다. 백분위수를 쓰면 이상치를 무시하고, 256개 구간을 실제로 자주 나오는 범위에 촘촘히 씁니다. 범위 밖 값을 어떻게 처리하는지는 논문에 적혀 있지 않습니다.

언어 모델 어휘에 행동 토큰 넣기

구간 번호 0~255를 언어 모델이 출력하려면, 번호마다 어휘표의 토큰 하나를 배정해야 합니다. Llama 토크나이저는 미세조정 때 새로 추가할 수 있는 "특수 토큰" 자리를 100개만 비워 두었는데, 필요한 토큰은 256개입니다. 저자들은 RT-2를 따라, Llama 어휘에서 가장 적게 쓰이는 토큰 256개를 행동 토큰으로 덮어씁니다. 논문에 따르면 이 토큰들은 어휘표의 마지막 256개입니다.

학습 샘플 하나는 세 부분의 토큰으로 이루어집니다.

순서입력 내용손실 계산
1이미지 패치 토큰들 (투영기 출력)하지 않음
2"What should the robot do to put eggplant in bowl? A:" 텍스트 토큰들하지 않음
3행동 토큰 7개 (예: 160, 131, 98, 127, 127, 140, 255번 구간에 대응하는 토큰)

3행의 구간 번호는 임의의 예시 값입니다. 프롬프트 형식은 그림 2에 적힌 것을 따랐습니다.

학습 목적 함수는 일반 언어 모델과 같은 다음 토큰 예측입니다. 차이는 교차 엔트로피 손실을 행동 토큰 7개에서만 계산한다는 점입니다. 이미지와 지시 부분은 입력으로만 쓰이고, 모델이 그 부분을 맞히도록 학습하지 않습니다. 추론할 때는 모델이 행동 토큰 7개를 차례로 생성하고, 행동 역토큰화기가 각 토큰의 구간 번호를 연속값으로 되돌려 로봇에 보냅니다.


4. 학습 데이터

Open X-Embodiment에서 고른 97만 개 궤적

학습 데이터의 목표는 로봇 몸체, 장면, 과제의 다양성을 넓게 담는 것입니다. 그래야 여러 로봇을 바로 제어하고, 새 로봇에 효율적으로 미세조정할 수 있습니다. 출발점은 Open X-Embodiment(OpenX)입니다. 논문 작성 시점에 OpenX는 70개가 넘는 로봇 데이터셋, 200만 개가 넘는 로봇 궤적을 한 형식으로 모은 데이터였습니다.

저자들은 이 원본 데이터를 두 가지 목표로 걸러 냅니다.

  1. 입력과 출력 형식을 맞춥니다. Octo와 Open X-Embodiment 연구를 따라, 3인칭 카메라가 하나 이상 있고 한 팔의 말단장치를 제어하는 조작 데이터셋만 남깁니다. 센서 구성과 행동 공간이 제각각인 데이터를 함께 학습하는 문제는 이후 연구로 남겼습니다.
  2. 로봇 몸체·과제·장면의 비율을 맞춥니다. 첫 단계를 통과한 데이터셋에는 Octo가 정한 혼합 가중치를 그대로 씁니다. Octo는 다양성이 낮은 데이터셋의 가중치를 줄이거나 빼고, 과제와 장면이 다양한 데이터셋의 가중치를 높였습니다.

Octo 발표 이후 OpenX에 추가된 데이터셋 몇 개도 넣었습니다. 그중 DROID는 혼합 가중치 10%로 조심스럽게 넣었지만, 학습 내내 DROID의 행동 토큰 정확도가 낮게 머물렀습니다. DROID의 다양성을 학습하려면 가중치나 모델을 더 키워야 할 것으로 보고, 최종 모델 품질을 지키기 위해 학습 마지막 3분의 1 동안 DROID를 뺐습니다.

데이터 혼합 비율

데이터셋비율데이터셋비율
Fractal12.7%Furniture Bench Dataset2.4%
Kuka12.7%UCSD Kitchen Dataset<0.1%
Bridge13.3%Austin Sailor Dataset2.2%
Taco Play3.0%Austin Sirius Dataset1.7%
Jaco Play0.4%DLR EDAN Shared Control<0.1%
Berkeley Cable Routing0.2%IAMLab CMU Pickup Insert0.9%
Roboturk2.3%UTAustin Mutex2.2%
Viola0.9%Berkeley Fanuc Manipulation0.7%
Berkeley Autolab UR51.2%CMU Stretch0.2%
Toto2.0%BC-Z7.5%
Language Table4.4%FMB Dataset7.1%
Stanford Hydra Dataset4.4%DobbE1.4%
Austin Buds Dataset0.2%DROID10.0%
NYU Franka Play Dataset0.8%

표 3 — OpenVLA 학습 데이터 혼합. DROID는 학습 마지막 3분의 1에서 빼고 그 가중치를 나머지 데이터셋에 나눠 줍니다.

표에 인쇄된 27개 비율을 더하면 약 94.9%입니다(<0.1%는 0.05%로 계산). 100%에 약 5%p 모자라는 이유는 논문에 설명이 없습니다. 반올림 차이만으로는 설명되지 않는 크기라, 인쇄된 값을 그대로 옮기고 합계가 맞지 않는다는 사실만 적어 둡니다.

Bridge 데이터의 정지 행동 제거

부록 C에 따르면, 원래 BridgeData V2에는 모든 값이 0인 행동(아무것도 하지 않는 행동)이 많이 들어 있습니다. 예를 들어 모든 시연의 첫 시점에 0 행동이 정답으로 기록돼 있습니다. 표현력이 큰 VLA를 이 데이터로 그대로 학습하면, 정책이 0 행동을 자주 예측해 평가 중에 멈춰 버립니다. 저자들은 시연마다 첫 전이를 빼고 학습했고, 대부분의 경우 이것으로 멈춤 현상이 사라졌습니다.


5. 설계 결정

최종 학습 전에, 전체 OpenX 대신 BridgeData V2 하나로 작은 규모의 실험을 반복해 설계를 정했습니다. 반복 속도를 높이고 계산 비용을 줄이기 위해서입니다.

항목비교한 선택지결과최종 선택
VLM 백본IDEFICS-1, LLaVA, Prismatic물체가 하나인 과제에서는 IDEFICS-1과 LLaVA가 비슷함. 물체가 여럿이고 지시한 물체를 골라야 하는 언어 접지 과제 5개에서 LLaVA가 IDEFICS-1보다 절대 성공률 35% 높음. Prismatic은 단일 물체·다중 물체 과제 모두에서 LLaVA보다 약 10% 높음Prismatic
이미지 해상도224 × 224 px, 384 × 384 px성능 차이 없음. 384 px은 학습 시간이 3배224 × 224 px
시각 부호기고정, 미세조정미세조정이 좋은 성능에 필수미세조정
학습 세대 수LLM·VLM의 통상적인 1~2세대, 그 이상학습 행동 토큰 정확도가 95%를 넘을 때까지 실제 로봇 성능이 계속 올라감27세대
학습률여러 자릿수에 걸쳐 탐색고정 학습률 2e-5가 가장 좋음(VLM 사전학습 때와 같은 값). 워밍업 효과 없음2e-5, 워밍업 없음

각 결정의 근거를 조금 더 풀어 보겠습니다.

VLM 백본. 저자들은 Prismatic이 LLaVA보다 나은 이유를 SigLIP과 DINOv2를 합친 시각 부호기의 공간 추론 능력에서 찾습니다. 성능 외에 코드가 모듈식이라 쓰기 쉽다는 점도 선택 이유로 적었습니다.

이미지 해상도. 해상도가 높을수록 이미지 패치 토큰이 많아집니다. 예를 들어 패치 한 변이 14 px이라면 224 px 이미지는 가로세로 16개씩 256개 패치, 384 px 이미지는 가로세로 약 27개씩 약 729개 패치가 됩니다(패치 크기는 계산을 보여 주기 위한 가정입니다). 주의(attention) 연산량은 토큰 수의 제곱에 비례해 늘어나므로 학습 계산이 크게 늘어납니다. VLM 벤치마크에서는 해상도를 높이면 성능이 오르는 경우가 많지만, VLA에서는 (아직) 그런 경향이 보이지 않았다고 적습니다.

시각 부호기 미세조정. VLM 연구에서는 시각 부호기를 고정하는 편이 보통 성능이 높았습니다. 인터넷 규모 사전학습으로 얻은 특징을 그대로 보존하기 때문으로 해석합니다. VLA에서는 반대였습니다. 저자들은 사전학습된 시각 부호기가 정밀한 로봇 제어에 필요한 장면의 세밀한 공간 정보를 충분히 담지 못하기 때문이라고 가설을 세웁니다. 이 결과는 11절의 제거 실험에서 다시 확인합니다.

학습 세대 수. 1세대(epoch)는 학습 데이터 전체를 한 번 훑는 것입니다. 행동 토큰 정확도는 모델이 예측한 행동 토큰이 정답 구간 번호와 정확히 같은 비율입니다. 일반적인 LLM·VLM은 1~2세대에서 학습을 끝내지만, OpenVLA는 이 정확도가 95%를 넘을 때까지 실제 로봇 성능이 계속 올랐고, 최종 학습은 27세대까지 진행했습니다.


6. 학습·추론 인프라

학습 계산량

항목
GPUA100 64개
학습 기간14일
총 계산량21,500 A100-시간
배치 크기2048

64개 × 14일 × 24시간 = 21,504 A100-시간이므로, 논문의 21,500은 이 값을 반올림한 것입니다.

추론 메모리와 속도

bfloat16 정밀도로 불러오면 추론에 GPU 메모리 15GB가 필요하고, RTX 4090 한 장에서 컴파일이나 추측 디코딩(speculative decoding) 같은 가속 기법 없이 약 6Hz로 실행됩니다.

bfloat16은 숫자 하나를 16비트(2바이트)로 저장하는 형식입니다. 파라미터 70억 개를 2바이트씩 저장하면 가중치만 약 14GB이고, 여기에 추론 중 계산에 쓰는 메모리가 더해져 15GB 정도가 됩니다. 이 계산은 크기를 가늠하기 위한 것이고, 논문은 15GB라는 측정값만 적었습니다.

그림 6 — GPU별 추론 속도

그림 6 — GPU 종류와 정밀도(bfloat16·8비트·4비트)에 따른 초당 행동 수. ♠ 표시는 두 GPU에 나눠 올린 경우입니다.

그래프의 막대 높이를 읽어 표로 옮겼습니다.

GPUbfloat168비트4비트
1080Ti약 0.8 (두 장에 분할)약 0.75약 0.8
2080Ti약 1.2 (두 장에 분할)약 2.2약 1.3
A5000약 3.4약 1.2약 2.9
A100약 2.9약 0.75약 2.1
RTX 4090약 6.2약 2.1약 6.0
H100약 6.6측정 없음약 4.4

단위는 초당 행동 수입니다. 막대 높이에서 읽은 값이라 소수 첫째 자리 정도의 오차가 있습니다.

그림 캡션은 Ada Lovelace 구조 GPU(RTX 4090, H100)에서 bfloat16과 4비트의 처리량이 특히 높다고 적었습니다. RTX 4090은 Ada Lovelace 구조가 맞지만 H100은 Hopper 구조라, 캡션의 구조 이름은 H100에 대해서는 정확하지 않습니다. TensorRT-LLM 같은 LLM 추론 프레임워크를 쓰면 더 빨라질 수 있다고 적습니다.

로봇 옆에 강한 GPU가 없어도 되도록, 원격 추론 서버를 구현해 행동 예측을 실시간으로 로봇에 스트리밍하는 방식도 함께 공개했습니다.

공개 코드베이스

OpenVLA 코드베이스는 VLA 학습용 모듈식 PyTorch 코드입니다. GPU 한 장의 미세조정부터 여러 노드의 수십억 파라미터 학습까지 지원합니다.

지원 기능내용
자동 혼합 정밀도(AMP)계산 일부를 낮은 정밀도로 해 속도와 메모리를 줄임
FlashAttention주의 연산을 메모리 효율적으로 계산
완전 분할 데이터 병렬(FSDP)모델 가중치·기울기·옵티마이저 상태를 여러 GPU에 나눠 저장
Open X 데이터기본 지원
HuggingFace AutoModel통합
LoRA 미세조정·양자화 추론지원

7. 실험 1 — 추가 학습 없는 여러 로봇 평가

실험은 세 가지 질문에 답합니다.

  1. 여러 로봇과 여러 종류의 일반화에서 OpenVLA가 기존 범용 로봇 정책과 비교해 어떤가
  2. OpenVLA를 새 로봇과 과제에 효과적으로 미세조정할 수 있는가, 데이터 효율적인 최신 모방 학습과 비교하면 어떤가
  3. 파라미터 효율 미세조정과 양자화로 학습·추론 계산 요구량을 줄일 수 있는가, 성능과 계산량의 교환 관계는 어떤가

모든 평가는 A/B 평가입니다. 비교하는 방법들을 같은 과제, 같은 로봇·물체 초기 상태 묶음에서 실행해 공정하게 비교합니다.

평가 로봇과 일반화 축

추가 학습 없이 두 로봇에서 평가합니다. BridgeData V2 평가에 쓰인 WidowX 로봇과, RT-1·RT-2 평가에 쓰인 이동형 조작 로봇(Google 로봇)입니다.

일반화 축바뀌는 조건
시각처음 보는 배경, 방해물, 물체의 색·겉모습
동작처음 보는 물체 위치·방향
물리처음 보는 물체 크기·모양
의미처음 보는 대상 물체, 지시, 인터넷에서 온 개념
언어 접지물체가 여럿인 장면에서 지시한 물체를 조작하는가
로봇과제 수과제당 시행방법당 총 시행
WidowX (BridgeData V2)1710170
Google 로봇12560

기준선

기준선파라미터설명
RT-1-X35MOpenX 일부로 처음부터 학습한 Transformer 정책
Octo93MOpenX 일부로 처음부터 학습한 Transformer 정책. 공개 조작 정책 중 최고 성능
RT-2-X55B인터넷 사전학습 시각·언어 백본을 쓰는 비공개 최신 VLA

WidowX 결과

그림 3 — BridgeData V2 WidowX 평가 결과

그림 3 — 방법당 170회 시행의 평균 성공률과 일반화 범주별 성공률, 범주별 과제 예시입니다.

범주RT-1-XOctoRT-2-XOpenVLA
평균18.5 ± 2.720.0 ± 2.650.6 ± 3.570.6 ± 3.2
시각 일반화8.029.052.087.0
동작 일반화25.07.555.060.0
물리 일반화10.020.026.776.7
의미 일반화26.30.038.836.3
언어 접지30.040.085.090.0

단위는 성공률(%)입니다. 평균 행의 ± 뒤 값은 표준오차입니다.

그림 7 — BridgeData V2 WidowX 평가 과제

그림 7 — 17개 과제의 시작 상태와 과제를 끝낸 뒤의 예시 상태를 짝으로 보여 줍니다. 아래 세 줄은 언어 접지 과제입니다.

17개 과제는 시각 일반화 5개, 동작 일반화 2개, 물리 일반화 3개, 의미 일반화 4개, 언어 접지 3개입니다. 성공은 1점, 실패는 0점이고, 일부 어려운 과제는 대상 물체로 다가가는 등 일부만 해내면 0.5점을 줍니다. 원래 데이터에 쓰인 물체를 똑같이 구하지 못했기 때문에, 모든 과제에는 어떤 형태로든 분포 변화가 들어 있습니다.

범주과제RT-1-XOctoRT-2-XOpenVLA
시각Put Eggplant into Pot (Easy Version)15710
시각Put Eggplant into Pot01510
시각Put Cup from Counter into Sink1107
시각Put Eggplant into Pot (w/ Clutter)13.567.5
시각Put Yellow Corn on Pink Plate1489
동작Lift Eggplant30.56.57.5
동작Put Carrot on Plate (w/ Height Change)214.54.5
물리Put Carrot on Plate1018
물리Flip Pot Upright2658
물리Lift AAA Battery0027
의미Move Skull into Drying Rack1055
의미Lift White Tape3001
의미Take Purple Grapes out of Pot6054
의미Stack Blue Cup on Pink Cup0.505.54.5
언어 접지Put {Eggplant, Red Bottle} into Pot2.548.57.5
언어 접지Lift {Cheese, Red Chili Pepper}1.52.58.510
언어 접지Put {Blue Cup, Pink Cup} on Plate55.58.59.5
평균 성공률18.5 ± 2.7%20.0 ± 2.6%50.6 ± 3.5%70.6 ± 3.2%

표 4 — 과제별 10회 시행 중 성공 횟수. 0.5는 부분 성공 점수입니다.

평가 과제가 원래 학습 데이터와 얼마나 다른지도 부록에 적혀 있습니다.

그림 8 — 원래 BridgeData V2 싱크대 환경 과제

그림 8 — 원래 데이터의 싱크대 환경 시연은 모두 말단장치가 대상 물체 바로 위에서 시작합니다.

원래 BridgeData V2의 싱크대 환경에는 "Flip Pot Upright", "Put Carrot on Plate", "Put Cup from Counter (or Drying Rack) into Sink", "Put Eggplant into Pot", "Put Knife on Cutting Board", "Put Spoon in Pot", "Turn Lever Vertical to Front" 7개 과제의 시연이 있습니다. 이 시연은 모두 말단장치가 대상 물체 바로 위에서 시작합니다. 평가에서는 "Put Eggplant into Pot (Easy Version)" 하나만 그렇게 시작하고, 나머지 16개는 싱크대 위 고정 위치에서 시작해 로봇이 물체까지 수평으로 팔을 뻗어야 합니다. 여기에 로봇·싱크대·카메라 위치, 조명과 배경, 물체가 원래 데이터와 조금씩 달라서, RT-1-X와 Octo의 성공률이 이전 연구에서 보고한 값보다 낮게 나왔습니다.

Google 로봇 결과

그림 4 — Google 로봇 평가 결과

그림 4 — 방법당 60회 시행의 평균 성공률과, 학습 분포 안·밖 과제별 성공률입니다.

범주RT-1-XOctoRT-2-XOpenVLA
평균33.3 ± 6.126.7 ± 5.878.3 ± 5.485.0 ± 4.6
분포 안 (5개 과제)32.044.072.088.0
분포 밖 (7개 과제)34.314.382.982.9

단위는 성공률(%)입니다.

그림 9 — Google 로봇 평가 과제

그림 9 — 분포 안 과제와, 처음 보는 배경·물체·지시·인터넷 개념이 들어간 분포 밖 과제입니다.

범주과제분포 밖인 이유RT-1-XOctoRT-2-XOpenVLA
분포 안Pick Coke Can5155
분포 안Move Apple near Green Can3335
분포 안Move Blue Chip Bag near Apple0345
분포 안Place Coke Can Upright0044
분포 안Open Middle Drawer0423
분포 밖Move Orange near Brown Chip Bag처음 보는 물체(오렌지)와 식탁보 배경1255
분포 밖Pick Pepsi Can처음 보는 물체와 식탁보 배경3054
분포 밖Pick Banana처음 보는 대상 물체5355
분포 밖Pick Green Cup장면의 모든 물체가 처음 봄1055
분포 밖Place Apple on Plate처음 보는 물체 관계("위에")0044
분포 밖Place Banana in Pan처음 보는 대상 물체와 물체 관계0024
분포 밖Move Coke Can near Taylor Swift로봇 데이터에 없는 유명인 사진2032
평균 성공률33.3 ± 6.1%26.7 ± 5.8%78.3 ± 5.4%85.0 ± 4.6%

표 6 — 과제별 5회 시행 중 성공 횟수. 오차 막대가 겹쳐 논문은 RT-2-X와 OpenVLA의 평균을 모두 굵게 표시했습니다.

부록 본문의 과제 이름은 "Move Coke Can to Taylor Swift"이고 표 6의 이름은 "Move Coke Can near Taylor Swift"입니다. 같은 과제를 가리킵니다.

결과 해석

RT-1-X와 Octo는 시험한 과제에서 고전했습니다. 방해물이 있으면 엉뚱한 물체를 조작하는 경우가 많았고, 팔을 목적 없이 휘젓기도 했습니다. 이 평가는 인터넷 사전학습 VLA를 시험하려고 이전 연구보다 더 강한 일반화를 요구하므로, 인터넷 사전학습이 없는 모델의 성능이 낮은 것은 예상된 결과라고 저자들은 적습니다. RT-2-X는 두 모델보다 확실히 높아, 큰 사전학습 VLM이 로봇에 도움이 된다는 것을 보여 줍니다.

OpenVLA는 Google 로봇에서 RT-2-X와 비슷하고, WidowX에서는 RT-2-X보다 크게 높습니다. 정성적으로도 RT-2-X와 OpenVLA는 방해물이 있을 때 올바른 물체로 다가가고, 대상 물체 방향에 맞춰 말단장치를 회전하고, 불안정하게 잡은 물체를 다시 잡는 등 다른 모델보다 강건하게 움직였습니다.

RT-2-X가 앞선 범주는 WidowX의 의미 일반화(38.8 대 36.3)뿐입니다. 저자들은 RT-2-X가 더 큰 인터넷 사전학습 데이터를 쓰고, 로봇 데이터와 인터넷 데이터를 함께 쓰는 공동 미세조정으로 사전학습 지식을 더 잘 보존했기 때문으로 봅니다. OpenVLA는 로봇 데이터만으로 미세조정했습니다. 나머지 범주에서 OpenVLA가 비슷하거나 높은 이유로는 세 가지를 듭니다.

요인OpenVLART-2-X
학습 궤적 수97만 개35만 개
데이터 정리Bridge의 0 행동 제거 등하지 않음
시각 부호기SigLIP + DINOv2 결합단일 부호기

29개 과제 전체로 보면, WidowX 170회와 Google 로봇 60회를 합친 230회 기준 평균이 OpenVLA 74.4%, RT-2-X 57.8%로 차이가 16.5%p입니다. 표 4와 표 6의 평균을 시행 수로 가중해 계산한 값이며, 초록의 16.5%와 일치합니다.

RT-2-X 질의 방식 보정

부록 C에 따르면 RT-2-X는 Bridge 데이터의 0 행동을 정리하지 않고 학습돼, 그대로 쓰면 평가 중에 자주 멈춥니다. 비공개 모델이라 재학습할 수 없으므로, 저자들은 두 번째로 확률이 높은 행동을 질의하는 방식으로 평가했습니다. 가장 확률이 높은 행동이 0인 경우가 많았고, 두 번째 행동은 0이 아니었기 때문입니다. Open X-Embodiment 연구에서 RT-2-X 개발자들이 BridgeData V2 평가에 쓴 방법과 같습니다.

첫 번째 행동이 0일 때만 두 번째 행동을 다시 질의하는 동적 방식도 시도했지만, 항상 두 번째 행동을 쓰는 방식보다 성능이 낮았습니다. 궤적 중간에 다시 질의하는 동안 생기는 지연이 로봇 움직임을 잠깐씩 끊어, 동역학이 달라지기 때문으로 봅니다.


8. 실험 2 — 새 로봇 설정의 데이터 효율적 적응

기존 연구는 주로 VLA를 추가 학습 없이 평가했습니다. 새 과제와 로봇에 VLA를 효과적으로 미세조정하는 방법은 널리 쓰이려면 꼭 필요한데도 거의 연구되지 않았습니다.

실험 설정

목표 과제의 시연 10150개로 모델의 모든 파라미터를 미세조정하는 단순한 방법을 씁니다. 전체 미세조정 한 번에 A100 8장으로 과제당 515시간(데이터 크기에 따라)이 걸렸습니다.

설정로봇제어기
Franka-Tabletop테이블에 고정한 Franka Emika Panda 7자유도 팔5Hz 비차단 제어기
Franka-DROIDDROID 데이터셋의 Franka 팔 설정, 이동식 스탠딩 책상에 설치15Hz 비차단 제어기

Franka 팔은 로봇 학습 연구에서 널리 쓰여 OpenVLA를 미세조정할 가능성이 높은 로봇이라 골랐고, 제어 주기가 다른 두 설정으로 여러 사용 상황을 확인합니다.

과제와 시연 수

설정과제종류학습 시연 수분포 밖 평가 조건
Franka-TabletopPut Carrot in Bowl단일 지시50당근 대신 처음 보는 가지
Franka-TabletopPour Corn into Pot단일 지시50처음 보는 갈색 식탁보
Franka-TabletopFlip Pot Upright단일 지시10처음 보는 흰색 식탁보
Franka-TabletopMove <object> onto Plate다중 지시150처음 보는 물체 세 개
Franka-TabletopKnock <object> Over다중 지시70물체 뒤에 처음 보는 방해물 두 개(빨간 컵, 갈색 상자)
Franka-TabletopCover <object> with Towel다중 지시45물체를 뒤집어 처음 보는 위치에 둠
Franka-DROIDWipe Table시각 강건성70처음 보는 방해물

단일 지시 과제는 장면과 지시가 좁게 정해진 과제입니다. 다중 지시 과제는 물체 세 개 중 지시가 가리키는 하나를 골라 조작해야 합니다.

그림 10 — Franka-Tabletop 미세조정 과제

그림 10 — 위 세 줄은 단일 지시 과제, 아래 세 줄은 다중 지시 과제입니다. 첫째 열은 학습 분포 안 초기 상태, 둘째 열은 분포 밖 초기 상태입니다.

그림 11 — Franka-DROID 미세조정 과제

그림 11 — "Wipe Table" 과제. 왼쪽은 분포 안 시행, 오른쪽은 방해물이 놓인 분포 밖 시행입니다.

"Wipe Table"은 솔을 잡고 작은 갈색 물체 세 개를 쓰레받기에 쓸어 담는 과제입니다. 시행마다 최대 2점이고, 세 개를 모두 담으면 2점, 한두 개를 담으면 1점, 그 외에는 0점입니다. 분포 안 18회, 분포 밖 12회를 시행해 방법마다 60점 만점으로 채점합니다. Franka-Tabletop 과제는 분포 안 1012회, 분포 밖 56회 시행하고, 다중 지시 과제와 "Flip Pot Upright"에는 부분 성공 0.5점이 있습니다.

비교 방법

방법설명
Diffusion Policy데이터 효율적인 최신 모방 학습. 처음부터 학습. 이미지와 자기수용 상태의 두 시점 관측 이력을 받고, 미래 행동 TT개를 예측해 앞의 XX개를 실행한 뒤 다시 예측(15Hz: T=16T=16, X=8X=8 / 5Hz: T=8T=8, X=3X=3). 이 절에서 유일하게 절대 직교좌표로 로봇을 제어
Diffusion Policy (matched)OpenVLA와 입력·출력을 맞춘 버전. 이미지 한 장만 입력, 자기수용 상태·관측 이력 없음, 행동 묶음 없이 상대 위치 행동 하나만 예측
Octo미세조정을 지원하는 현재 최고의 범용 정책. 같은 데이터로 미세조정 (RT-2-X는 API로 미세조정 불가)
OpenVLA (scratch)OpenX 사전학습 없이 기본 Prismatic VLM을 바로 목표 데이터로 미세조정. 대규모 로봇 사전학습의 효과를 보는 제거 실험
OpenVLAOpenX로 사전학습한 OpenVLA를 같은 데이터로 미세조정

Diffusion Policy의 행동 묶음과 관측 이력은 Diffusion Policy 논문해석에서 자세히 다룹니다.

결과

그림 5 — 새 로봇 설정 적응 결과

그림 5 — Franka-Tabletop 6개 과제와 Franka-DROID 1개 과제에서 처음부터 학습한 Diffusion Policy와 미세조정한 범용 정책의 성공률입니다.

설정조건시행Diffusion PolicyDP (matched)OctoOpenVLA (scratch)OpenVLA
TabletopPut Carrot in Bowl (분포 안)1090.080.040.070.070.0
TabletopPut Carrot in Bowl (분포 밖)520.00.020.00.040.0
TabletopPour Corn into Pot (분포 안)10100.090.00.010.050.0
TabletopPour Corn into Pot (분포 밖)580.060.00.020.060.0
TabletopFlip Pot Upright (분포 안)10100.085.040.085.0100.0
TabletopFlip Pot Upright (분포 밖)550.020.00.040.080.0
TabletopMove <object> onto Plate (분포 안)1225.025.041.78.375.0
TabletopMove <object> onto Plate (분포 밖)68.333.38.333.358.3
TabletopKnock <object> Over (분포 안)1233.325.083.375.075.0
TabletopKnock <object> Over (분포 밖)616.716.733.358.383.3
TabletopCover <object> with Towel (분포 안)1216.720.891.741.750.0
TabletopCover <object> with Towel (분포 밖)616.733.391.750.050.0
Tabletop평균48.5 ± 4.943.4 ± 4.743.4 ± 4.443.4 ± 4.667.2 ± 4.0
DROIDWipe Table (분포 안)1850.027.852.825.055.6
DROIDWipe Table + 방해물 (분포 밖)1212.525.016.716.762.5
DROID평균35.0 ± 8.026.7 ± 7.538.3 ± 8.521.7 ± 6.658.3 ± 7.2

표 7 — 단위는 성공률(%)입니다. Franka-Tabletop은 5Hz, Franka-DROID는 15Hz입니다.

과제 성격에 따라 강한 방법이 다릅니다. "Put Carrot in Bowl"과 "Pour Corn into Pot" 같은 좁은 단일 지시 과제에서는 두 Diffusion Policy가 범용 정책과 비슷하거나 더 높습니다. 물체가 여럿이고 언어 지시를 따라야 하는 다양한 과제에서는 사전학습한 범용 정책(Octo, OpenVLA)이 더 높습니다. OpenX 사전학습이 이런 과제 적응에 도움이 된다는 근거로, 사전학습을 뺀 OpenVLA (scratch)의 낮은 성능을 듭니다.

그림 5의 과제별 막대는 표 7의 분포 안·밖 결과를 시행 수로 가중해 합친 값입니다. 예를 들어 OpenVLA의 "Put Carrot in Bowl"은 (70.0 × 10 + 40.0 × 5) ÷ 15 = 60.0입니다.

방법CarrotCornFlipMoveKnockCoverWipe그림 5 평균
Diffusion Policy66.793.383.319.427.816.735.043.4
DP (matched)53.580.063.327.822.225.026.737.1
Octo33.30.026.730.666.791.738.341.5
OpenVLA (scratch)46.713.370.016.769.444.421.735.2
OpenVLA60.053.393.369.477.850.058.363.8

그림 5에 인쇄된 값을 옮긴 표입니다.

OpenVLA는 전체 평균이 가장 높고, 이 과제 단위 값으로 보면 7개 과제 모두에서 50% 이상인 유일한 방법입니다. 다만 분포 안·밖을 나눈 표 7의 개별 조건으로 보면 "Put Carrot in Bowl" 분포 밖 조건이 40.0%입니다. 논문의 "모든 과제에서 50% 이상"은 과제 단위로 합친 값 기준입니다. 저자들은 이 결과를 근거로, 다양한 언어 지시가 들어간 모방 학습 과제라면 OpenVLA가 좋은 기본 선택이 될 수 있다고 봅니다. 좁지만 정교한 과제에서는 Diffusion Policy의 궤적이 여전히 더 부드럽고 정밀했고, Diffusion Policy의 행동 묶음과 시간 방향 평활화를 OpenVLA에 넣는 것을 이후 연구 방향으로 제시합니다.

그림 5 평균값의 계산 방식

초록의 "Diffusion Policy보다 20.4% 높다"는 그림 5 평균(63.8 − 43.4)에서 나온 값입니다. 그런데 그림 5 평균은 표 7의 두 설정 평균을 단순 평균하거나 시행 수 129회로 가중한 값과 맞지 않습니다.

합치는 방식OpenVLADiffusion Policy차이
두 설정 평균의 단순 평균62.841.721.0
시행 수 가중 (Tabletop 99회 + DROID 30회)65.145.419.8
점수 가중 (Tabletop 99회 + DROID 60점)63.843.420.4
그림 5 인쇄 값63.843.420.4

위 세 행은 표 7에서 계산한 값입니다.

DROID 과제의 가중치를 시행 수 30이 아니라 만점 60점으로 두면 다섯 방법 모두 그림 5의 평균과 일치합니다. 그림 5 캡션은 "129회 시행"으로 계산했다고 적었지만, 실제 값은 DROID를 60으로 가중한 계산과 맞습니다.


9. 실험 3 — 파라미터 효율 미세조정

앞 절의 전체 미세조정은 A100 8장으로 과제당 5~15시간이 걸렸습니다. VLA 사전학습보다는 훨씬 적지만, 저자들은 계산량과 학습 파라미터 수를 더 줄이는 방법을 비교합니다.

비교한 방법

방법학습하는 부분
전체 미세조정(Full FT)모든 가중치
마지막 층만(Last layer only)Transformer 백본의 마지막 층과 토큰 임베딩 행렬
시각 고정(Frozen vision)시각 부호기를 고정하고 나머지 전부
샌드위치(Sandwich)시각 부호기, 토큰 임베딩 행렬, 마지막 층
LoRA모델의 모든 선형 층에 저랭크 적응 적용 (랭크 rr 여러 값)

LoRA의 구조

LoRA(Low-Rank Adaptation)는 원래 가중치 행렬 WW를 고정하고, 작은 행렬 두 개의 곱 BABA를 더해서 쓰는 방법입니다. 학습하는 것은 AABB뿐입니다.

W=W+BAW' = W + BA

가로세로 4096인 가중치 행렬 하나로 파라미터 수를 세어 보겠습니다.

방식학습하는 행렬학습 파라미터 수
전체 미세조정WW (4096 × 4096)16,777,216
LoRA, r=32r=32AA (32 × 4096), BB (4096 × 32)262,144
LoRA, r=64r=64AA (64 × 4096), BB (4096 × 64)524,288

행렬 크기 4096은 계산을 보여 주기 위한 임의의 예시 값이고, 파라미터 수는 그 크기로 계산한 결과입니다.

AA는 4096차원 입력을 32차원으로 줄이고 BB는 다시 4096차원으로 되돌리므로, BABAWW와 같은 4096 × 4096 크기이면서 32개 방향으로만 변화를 줍니다. 이 예시에서는 학습 파라미터가 전체의 약 1.6%입니다. 랭크 rr을 키우면 표현할 수 있는 변화의 방향이 늘고, 학습 파라미터도 rr에 비례해 늘어납니다.

결과

방법성공률학습 파라미터 (× 10⁶)GPU 메모리 (배치 16)
전체 미세조정69.7 ± 7.2%7,188.1163.3 GB*
마지막 층만30.3 ± 6.1%465.151.4 GB
시각 고정47.0 ± 6.9%6,760.4156.2 GB*
샌드위치62.1 ± 7.9%914.264.0 GB
LoRA, 랭크 3268.2 ± 7.5%97.659.7 GB
LoRA, 랭크 6468.2 ± 7.8%195.260.5 GB

표 1 — 방법당 33회 시행. *는 FSDP로 GPU 두 장에 나눠 올린 경우입니다.

과제시행전체마지막 층만시각 고정샌드위치LoRA r=32LoRA r=64
Put Carrot in Bowl (분포 안)1090.040.040.090.060.090.0
Put Carrot in Bowl (분포 밖)540.00.040.00.060.040.0
Move <object> onto Plate (분포 안)1279.233.350.075.075.062.5
Move <object> onto Plate (분포 밖)641.733.358.341.775.066.7
평균69.7 ± 7.2%30.3 ± 6.1%47.0 ± 6.9%62.1 ± 7.9%68.2 ± 7.5%68.2 ± 7.8%

표 8 — Franka-Tabletop의 단일 지시 과제 하나와 다중 지시 과제 하나. 학습 시연은 각각 50개와 150개로 8절과 같습니다.

이 절과 다음 절의 실험은 최종 OpenVLA가 아니라 조금 작은 버전으로 했습니다. Octo와 같은 OpenX 혼합으로 사전학습했고, 시각 부호기로 SigLIP 하나만 씁니다.

마지막 층만 학습하거나 시각 부호기를 고정하면 성능이 낮습니다. 목표 장면에 맞춰 시각 특징을 더 조정하는 것이 중요하다는 뜻입니다. 샌드위치 방식은 시각 부호기를 학습하므로 성능이 더 좋고, LLM 백본 전체를 학습하지 않아 메모리도 적게 씁니다. LoRA는 성능과 학습 메모리의 균형이 가장 좋습니다. 샌드위치보다 높고 전체 미세조정과 비슷한 성공률을 내면서, 학습하는 파라미터는 전체의 1.4%(97.6 ÷ 7,188.1)입니다. 랭크는 성능에 거의 영향이 없어 기본값으로 r=32r=32를 권합니다. LoRA를 쓰면 A100 한 장으로 10~15시간에 새 과제를 미세조정할 수 있어, 전체 미세조정보다 계산량이 8배 줄어듭니다.


10. 실험 4 — 양자화를 이용한 메모리 효율 추론

양자화

OpenVLA는 7B 모델이라, 파라미터가 1억 개 미만인 Octo 같은 기존 공개 정책보다 추론 메모리를 많이 씁니다. 기본 방식은 bfloat16으로 저장·로드하는 것이고, 32비트보다 메모리가 절반이라 16GB GPU에서 실행할 수 있습니다. 양자화(quantization) 는 가중치를 이보다 더 적은 비트로 저장하는 방법입니다.

정밀도숫자 하나당표현할 수 있는 서로 다른 값7B 파라미터 가중치 크기
bfloat1616비트부동소수점약 14 GB
int88비트256개약 7 GB
int44비트16개약 3.5 GB

가중치 크기는 파라미터 70억 개에 비트 수를 곱해 계산한 값입니다. 실제 추론에는 계산용 메모리가 더 필요합니다.

int4는 가중치 하나를 16개 값 중 하나로만 표현하므로, 원래 값과 조금씩 달라집니다. 메모리를 줄이는 대신 정확도가 떨어지거나, 양자화 연산이 추가돼 추론이 느려질 수 있습니다.

결과

정밀도Bridge 성공률GPU 메모리
bfloat1671.3 ± 4.8%16.8 GB
int858.1 ± 5.1%10.2 GB
int471.9 ± 4.7%7.0 GB

표 2 — 대표 BridgeData V2 과제 8개, 방법당 80회 시행.

범주과제bfloat16int8int4
시각Put Eggplant into Pot (Easy Version)979
시각Put Eggplant into Pot777
시각Put Cup from Counter into Sink537
동작Lift Eggplant647.5
물리Put Carrot on Plate657
물리Lift AAA Battery753
의미Take Purple Grapes out of Pot889
언어 접지Put {Eggplant, Red Bottle} into Pot97.58
평균 성공률71.3 ± 4.8%58.1 ± 5.1%71.9 ± 4.7%

표 5 — 과제별 10회 시행 중 성공 횟수.

int4는 bfloat16과 성공률이 같은 수준이면서 메모리를 절반 이하로 씁니다. int8은 성공률이 크게 떨어졌습니다. 그림 6에서 보듯 8비트 양자화는 추가 연산 때문에 대부분의 GPU에서 추론이 오히려 느려집니다. 평가에 쓴 A5000에서 int8은 1.2Hz로만 실행되는데, BridgeData V2 과제는 5Hz 비차단 제어기로 수집한 데이터라 로봇 동역학이 학습 때와 크게 달라집니다. int4는 GPU 메모리 전송량이 줄어 양자화 연산 비용을 상쇄하고, A5000에서 3Hz로 실행돼 수집 때의 동역학에 더 가깝습니다.

본문 3.5절은 bfloat16 추론에 15GB가 필요하다고 적었고, 표 2는 bfloat16 메모리를 16.8GB로 적었습니다. 표 2의 실험은 위에서 말한 SigLIP 단일 부호기 버전으로 했지만, 두 측정의 조건 차이는 논문에 설명되어 있지 않아 두 값을 모두 적습니다.

속도와 행동 품질의 분리 — 차단 제어 실험

저자들은 int8의 성능 하락이 행동 예측 품질이 아니라 추론 속도 때문이라고 가설을 세웁니다. 학습 데이터로 오프라인 평가하면 int8과 int4 모두 bfloat16과 비슷한 토큰 정확도를 냈기 때문입니다. 부록 D.4는 이 가설을 차단 제어(blocking control) 로 확인합니다.

제어 방식동작추론 속도의 영향
비차단 제어 (본 실험)로봇이 이전 행동을 실행하는 동안에도 정책이 다음 행동을 계산하고, 준비되는 대로 명령을 바꿈추론이 느리면 같은 시간에 보내는 명령 수가 줄어 로봇 동역학이 달라짐
차단 제어 (D.4)행동 하나를 로봇이 끝까지 실행한 뒤에 다음 행동을 예측느린 방법에 맞춰 모두 같은 동역학으로 실행되므로, 예측 품질만 비교됨
범주과제bfloat16int8int4
시각Put Eggplant into Pot (Easy Version)101010
시각Put Eggplant into Pot91010
시각Put Cup from Counter into Sink553
동작Lift Eggplant877.5
물리Put Carrot on Plate101010
물리Lift AAA Battery364
의미Take Purple Grapes out of Pot222
언어 접지Put {Eggplant, Red Bottle} into Pot99.58.5
평균 성공률70.0 ± 5.1%74.4 ± 4.9%68.8 ± 5.2%

표 11 — 차단 제어로 평가한 양자화 추론 결과. 세 평균의 오차 막대가 모두 겹칩니다.

차단 제어에서는 int8이 bfloat16, int4와 비슷한 성능을 냅니다. 비차단 제어에서의 int8 성능 하락이 추론 속도 때문이라는 가설과 맞는 결과이고, 가장 낮은 정밀도인 int4에서도 큰 성능 저하가 없습니다.

부록 D의 도입부와 D.4는 양자화 실험을 "5.3절"에서 다뤘다고 적었지만, 양자화 실험은 5.4절입니다(5.3절은 파라미터 효율 미세조정). 이 글에서는 10절에 해당합니다.


11. 추가 제거 실험

OpenX 학습의 효과와 시각 부호기 결합의 효과

모델시각 부호기로봇 학습 데이터
OpenVLASigLIP + DINOv2OpenX 혼합
OpenVLA-BridgeSigLIP + DINOv2BridgeData V2만
OpenVLA-Bridge-SigLIPSigLIP만BridgeData V2만
범주과제OpenVLAOpenVLA-BridgeOpenVLA-Bridge-SigLIP
시각Put Eggplant into Pot (Easy Version)1088
시각Put Eggplant into Pot1023
시각Put Cup from Counter into Sink742
동작Lift Eggplant7.55.56.5
물리Put Carrot on Plate841
물리Lift AAA Battery722
의미Take Purple Grapes out of Pot433
언어 접지Put {Eggplant, Red Bottle} into Pot7.587
평균 성공률76.3 ± 4.8%45.6 ± 5.6%40.6 ± 5.5%

표 9 — 대표 BridgeData V2 WidowX 과제 8개, 과제별 10회 시행 중 성공 횟수.

OpenX 혼합 대신 BridgeData V2만으로 학습하면 절대 성공률이 약 30%p(76.3 → 45.6) 떨어집니다. 언어 접지 과제는 영향이 없지만 모든 일반화 범주에서 성능이 떨어져, OpenX의 다양한 장면·물체·과제가 일반화에 필요하다는 근거가 됩니다. 같은 BridgeData V2 학습에서 DINOv2를 빼면 약 5%p(45.6 → 40.6) 더 떨어집니다. DINOv2의 낮은 수준 공간 특징은 일부 경우에만 일반화를 돕고, 효과는 OpenX 학습보다 훨씬 작습니다.

표 9의 OpenVLA 열은 표 4의 같은 과제 결과와 값이 같습니다. 같은 8개 과제를 쓴 표 5의 bfloat16 열(71.3%)과 값이 다른 것은, 표 5가 9절에서 말한 SigLIP 단일 부호기 버전으로 평가했기 때문입니다.

시각 부호기의 미세조정과 고정

Prismatic 저장소의 서로 다른 사전학습 VLM 두 개(SigLIP ViT-SO 224px, LLaVa v1.5 7B (Reproduction))를 BridgeData V2로 미세조정하면서, 시각 부호기를 고정한 경우와 함께 학습한 경우를 비교합니다. 프로젝트 초기에 한 평가라 초기 환경 구성이 다른 Bridge 실험과 달라, 수치를 직접 비교할 수는 없습니다.

과제시행SigLIP ViT-SO 고정SigLIP ViT-SO 미세조정LLaVa v1.5 고정LLaVa v1.5 미세조정
Put Eggplant into Pot1071059
Put Corn on Plate1010909
평균 성공률85952590
Put {Eggplant, Red Bottle} into Pot4243
Put {Blue Cup, Pink Cup} on Plate4000
Lift {Cheese, Red Chili Pepper}4032
Put {Strawberry, Lime} into Pot4103
Move {Sushi, Grapes}4343
평균 성공률305555

표 10 — 과제별 성공 횟수. "–"는 성능이 거의 0이고 로봇 동작이 불안정해 평가를 중단한 경우입니다.

두 VLA 모두 시각 부호기를 함께 미세조정하면 여러 과제에서 성공률이 크게 오릅니다. 고정한 쪽은 일부 경우 로봇이 불안정하게 움직였고, 그래서 개발 초기에 고정 시각 부호기 실험을 더 하지 않기로 했습니다. 두 방식을 모두 평가한 경우만 모으면 미세조정 평균 80.0%, 고정 평균 46.7%입니다. 시행 수로 계산하면 미세조정은 48 ÷ 60, 고정은 28 ÷ 60이라 표 캡션의 값과 일치합니다.


12. LIBERO 시뮬레이션 실험

부록 E는 OpenVLA를 시뮬레이션 과제에 미세조정합니다. 실제 로봇 데이터로만 사전학습한 모델이 시뮬레이션 환경에도 적응하는지 보고, 로봇 하드웨어가 없는 연구자도 재현할 수 있게 하려는 목적입니다.

설정

LIBERO 벤치마크의 네 과제 묶음을 씁니다. 묶음마다 과제 10개, 과제당 사람 원격조작 시연 50개입니다.

과제 묶음바뀌는 것시험하는 능력
LIBERO-Spatial물체는 같고 배치가 다름공간 관계 이해
LIBERO-Object배치는 같고 물체가 다름물체 종류 이해
LIBERO-Goal물체와 배치는 같고 과제 목표가 다름과제별 행동 지식
LIBERO-Long (LIBERO-10)물체·배치·과제가 모두 다양한 장기 과제긴 과제 수행

학습 데이터에는 다섯 가지 수정을 합니다.

  1. 해상도 재생성 — 원래 128 × 128 px 이미지를 단순히 키우면 화질이 나빠, 저장된 시연 행동으로 시뮬레이터를 다시 실행해 256 × 256 px 이미지를 새로 렌더링합니다.
  2. 정지 행동 제거 — 이동·회전 성분이 거의 0이고 집게 상태도 바꾸지 않는 행동을 뺍니다. OpenVLA처럼 표현력이 큰 단일 시점 정책은 이런 행동을 흉내 내 특정 상태에서 계속 멈추기 때문입니다.
  3. 이미지 회전 — 저자들의 하드웨어에서 LIBERO가 위아래가 뒤집힌 이미지를 반환해, 학습과 평가 모두 3인칭 이미지를 180도 돌립니다.
  4. 실패 시연 제거 — 시연을 시뮬레이터에서 다시 실행해 과제에 실패한 시연을 뺍니다. Spatial 500개 중 68개, Object 500개 중 46개, Goal 500개 중 72개, Long 500개 중 121개를 뺐습니다.
  5. 3인칭 카메라만 사용 — OpenVLA의 입력이 3인칭 이미지뿐이라, 공정한 비교를 위해 모든 방법에서 손목 카메라 이미지를 쓰지 않습니다.

비교 방법은 처음부터 학습한 Diffusion Policy(DistilBERT 언어 임베딩으로 조건을 거는 DROID 논문 구현), 미세조정한 Octo, LoRA(r=32r=32)로 미세조정한 OpenVLA입니다. 과제 묶음마다 따로 학습하고, 묶음마다 500회 시행을 무작위 시드 3개로 반복해 평균합니다(통계값 하나당 1500회).

결과

방법SpatialObjectGoalLong평균
Diffusion Policy (처음부터)78.3 ± 1.1% (3위)92.5 ± 0.7% (1위)68.3 ± 1.2% (3위)50.5 ± 1.3% (3위)72.4 ± 0.7% (평균 순위 2.5)
Octo (미세조정)78.9 ± 1.0% (2위)85.7 ± 0.9% (3위)84.6 ± 0.9% (1위)51.1 ± 1.3% (2위)75.1 ± 0.6% (평균 순위 2)
OpenVLA (미세조정)84.7 ± 0.9% (1위)88.4 ± 0.8% (2위)79.2 ± 1.0% (2위)53.7 ± 1.3% (1위)76.5 ± 0.6% (평균 순위 1.5)

표 12 — LIBERO 시뮬레이션 벤치마크 결과. 순위는 과제 묶음 안에서 1이 가장 좋습니다.

저자들은 과제 묶음마다 난이도가 달라 평균 성공률보다 평균 순위가 기본 방법을 고르는 데 더 유용하다고 적습니다. OpenVLA가 평균 성공률과 평균 순위 모두 가장 좋지만, 다른 방법과의 차이는 실제 로봇 미세조정 실험보다 작습니다. OpenVLA가 실제 로봇 데이터로만 사전학습돼 시뮬레이션과의 환경·동역학 차이가 있기 때문으로 봅니다. 역시 실제 로봇 데이터로 사전학습한 Octo도 처음부터 학습한 Diffusion Policy보다 조금만 높았습니다. 사전학습 혼합에 시뮬레이션 데이터를 넣으면 차이가 커질 것으로 예상합니다.


13. 저자가 밝힌 한계

첫째, 이미지 한 장만 관측으로 받습니다. 실제 로봇 설정은 센서 구성이 다양하므로 여러 이미지, 자기수용 상태, 관측 이력을 받도록 확장해야 합니다. 이미지와 텍스트가 섞인 데이터로 사전학습한 VLM을 쓰면 이런 입력을 다루기 쉬울 수 있다고 봅니다.

둘째, 추론 처리량을 높여야 합니다. 50Hz로 동작하는 ALOHA 같은 고주파 제어 설정에서 VLA를 쓰려면 필요하고, 그래야 이 논문에서 다룬 것보다 정교한 양팔 조작 과제도 시험할 수 있습니다. 행동 묶음(action chunking)이나 추측 디코딩 같은 추론 최적화를 해결책 후보로 듭니다.

셋째, 성능을 더 올릴 여지가 있습니다. 기존 범용 정책보다는 높지만, 시험한 과제에서 성공률이 보통 90% 미만이라 신뢰성이 아주 높지는 않습니다.

넷째, 계산 자원 한계로 여러 VLA 설계 질문을 충분히 탐색하지 못했습니다. 기본 VLM 크기가 VLA 성능에 미치는 영향, 로봇 행동 데이터와 인터넷 시각-언어 데이터를 함께 학습하는 공동 학습의 효과, VLA에 가장 적합한 시각 특징이 무엇인지가 남은 질문입니다. 저자들은 모델과 코드 공개가 이 질문들을 함께 연구하는 데 쓰이기를 기대합니다.


14. 정리 — 계보에서의 위치

  • 공개 VLM에서 출발한 공개 VLA — Prismatic-7B(SigLIP + DINOv2 → 2층 MLP → Llama 2 7B)를 로봇 행동 토큰 예측으로 미세조정하고, 데이터 구성·코드·가중치를 모두 공개했습니다.
  • RT-2의 행동 토큰화 계승과 수정 — 차원별 256구간 이산화와 드문 토큰 256개 덮어쓰기는 그대로 쓰고, 구간 범위를 최솟값·최댓값 대신 1~99번째 백분위수로 정했습니다.
  • 데이터 정리 — OpenX에서 3인칭 카메라·한 팔 말단장치 제어 데이터만 골라 Octo 가중치로 섞은 97만 개 궤적을 27세대 학습했고, Bridge의 0 행동을 뺐습니다.
  • 결과 — 29개 과제에서 55B RT-2-X보다 16.5%p 높았고, 새 Franka 설정 미세조정에서 Diffusion Policy보다 20.4%p 높았습니다.
  • 효율적인 적응과 추론 — LoRA로 파라미터 1.4%만 학습해 전체 미세조정과 같은 성능을 냈고, int4 양자화로 메모리 7.0GB에서 bfloat16과 같은 성공률을 냈습니다.

RT-2와의 비교

항목RT-2OpenVLA
파라미터5B · 12B · 55B7B
기본 VLMPaLI-X, PaLM-E (비공개)Prismatic-7B (공개 구성 요소)
시각 부호기ViT-22B, ViT-4BSigLIP + DINOv2 결합
로봇 데이터구글 로봇 한 종의 시연OpenX 97만 개 궤적, 여러 로봇
학습 방식웹 데이터와 공동 미세조정로봇 데이터만으로 미세조정
행동 이산화 범위최솟값~최댓값1~99번째 백분위수
추론여러 TPU의 클라우드 (1–5 Hz)RTX 4090 한 장에서 약 6Hz
공개비공개데이터 구성·코드·가중치 공개

OpenVLA가 남긴 한계는 이후 VLA 연구가 다룬 문제와 이어집니다. 행동을 256구간 토큰으로 하나씩 자기회귀 생성하는 방식은 행동 하나에 토큰 7개를 차례로 만들어야 해서 느리고, 구간 폭보다 정밀한 값을 표현할 수 없습니다. 저자들도 고주파 제어와 정교한 과제에서 행동 묶음이 필요하다고 적었습니다. 이후 π0은 VLM에 연속 행동 묶음을 flow matching으로 생성하는 별도 모듈을 붙였고, OpenVLA-OFT는 OpenVLA의 미세조정 방식을 바꿔 속도와 성공률을 높였습니다.

전체 목록은 VLA 계보 목차에서 볼 수 있습니다.