OpenVLA: An Open-Source Vision-Language-Action Model
Apr 20, 2026

Contents
왜 필요한가모델 구조Prismatic?DINOv2?왜 SigLIP만 안 쓰고 DINOv2까지 붙이냐action을 어떻게 LLM 출력으로 바꾸나quantile로 잘랐다?inference는 어떻게 하냐제어 주파수와 action의 관계backbone 비교: 왜 Prismatic이 제일 나았나vision encoder를 freeze하면 왜 안 좋았나학습 데이터학습 recipe연산량 / 시스템실험 1: out-of-the-box generalist policy 성능실험 2: 새 로봇/새 환경에 적은 데이터로 적응되나Diffusion Policy가 뭐냐실험 3: parameter-efficient fine-tuningLoRA 할 때 Llama 자체는 안 건드리냐quantization
- Task
- 이미지 + 자연어 instruction을 받아서 로봇 제어 action을 직접 예측하는 VLA(Vision-Language-Action Model)
- 예:
"Put eggplant in bowl"→ 로봇의 다음 상대 이동/회전/그리퍼 action 출력
- 이 논문이 하려는 것
- 기존 VLM/LLM의 semantic generalization을 로봇 제어에 가져오기
- closed-source 위주였던 VLA를 오픈소스화
- 새 로봇/새 환경에 효율적으로 fine-tuning하는 방법까지 제시
왜 필요한가
- 기존 imitation learning policy의 약점
- 학습한 환경/물체/배치 밖으로 잘 못 나감
- distractor가 있으면 흔들림
- 새로운 instruction/generalization이 약함
- 저자들의 아이디어
- 인터넷 규모 데이터로 학습된 vision/language foundation model은
- 새로운 object
- 새로운 scene
- 새로운 instruction
- 그러면 이걸 로봇 제어에 직접 쓰면 더 robust한 generalist policy가 될 수 있음
에 대한 일반화 능력이 어느 정도 있음
- VLM을 로봇 action predictor로 fine-tune해서, 텍스트 대신 action token을 생성하게 만든 모델
모델 구조

- 입력
- 현재 이미지 1장
- 자연어 instruction
- 출력
- 7차원 robot action
- 예: Δx, Δθ, ΔGrip 같은 상대 제어량
- 전체 구조
- Vision Encoder
- SigLIP + DINOv2 feature를 같이 사용
- Projector
- vision feature를 language embedding space로 보냄
- LLM Backbone
- Llama 2 7B
- Action De-tokenizer
- 예측된 action token을 다시 연속 제어량으로 해석
Prismatic?
- OpenVLA가 베이스로 쓰는 VLM(backbone) 이름
- OpenVLA는 Prismatic-7B VLM 위에 로봇 action prediction을 얹은 구조
- Prismatic 자체는
- SigLIP + DINOv2 visual encoder
- 2-layer MLP projector
- Llama 2 7B language model
로 구성된 visually-conditioned language model
DINOv2?
- DINOv2는 ViT 기반 self-supervised vision foundation model
- 큰 규모의 curated image data에서 라벨 없이 범용 visual feature를 학습하도록 설계되었고, 큰 teacher 모델을 학습한 뒤 더 작은 모델로 distill한 버전들도 제공한다.
- 왜 이런 특성이 나오나
- teacher-student self-distillation 계열이라
- 같은 이미지의 다른 view/crop에서도 일관된 representation을 학습하도록 유도함
- 그래서 단순 class label 분류기보다 구조적/spatial feature가 잘 살아나는 편으로 해석
- OpenVLA에서의 역할
- semantic alignment용 SigLIP만 쓰지 않고
- spatial reasoning 보강용 DINOv2를 같이 씀
- 로봇은 “이게 가지다”뿐 아니라 “어디 있고 어떤 방향이고 어떻게 집어야 하는가”가 중요하기 때문
왜 SigLIP만 안 쓰고 DINOv2까지 붙이냐
- SigLIP 쪽이 잘하는 것
- 텍스트와 이미지의 semantic alignment
- “이 물체가 어떤 개념과 연결되는가”
- DINOv2 쪽이 보강하는 것
- spatial / structural detail
- 위치, 형태, 배치, orientation 쪽 해석 보강
- 논문 해석
- fused SigLIP-DINOv2 encoder가 spatial reasoning을 개선했고
- 그게 language grounding과 조작 성능 향상에 도움 됐다고 본다.
action을 어떻게 LLM 출력으로 바꾸나
- 원래 robot action은 연속값
- 예: Δx = 0.013, Δy = -0.021 같은 실수 벡터
- 그런데 LLM은 본질적으로 토큰 예측기
- 그래서 연속 action을 바로 회귀하지 않고
- 각 action 차원을 따로 256개 bin으로 discretize한다.
- 의미
- action 전체를 1차원 숫자로 만드는 게 아님
- 예를 들어 7차원 action이면
- Δx용 256 bin
- Δy용 256 bin
- ...
- grip용 256 bin
식으로 각 차원별로 따로 이산화함
- 예시
- Δx가 자주 나오는 범위가 -0.1 ~ 0.1이라면
- 그 구간을 256칸으로 자르고
- 현재 값이 어느 칸에 속하는지를 token ID로 바꿈
- 예: Δx token = 145, Δy token = 32, ... 같은 식
quantile로 잘랐다?
- 논문은 min-max 전체 구간을 쓰지 않고
- 훈련 데이터에서의 1st~99th quantile 사이를 균등분할한다.
- 즉
- bin 경계는 학습 데이터의 action 분포를 보고 정함
- 아주 드문 이상치(outlier)에 끌려가서 bin 해상도가 망가지는 걸 막으려는 것
- 직관
- 대부분 값이 -1~1인데 이상치 몇 개가 100 근처에 있으면
- min-max로 자르면 의미 없는 큰 구간이 생김
- quantile로 자르면 실제로 자주 나오는 범위에 해상도를 집중할 수 있음
inference는 어떻게 하냐
- 현재 이미지 + instruction을 넣고
- 다음 action 한 스텝을 예측
- 그 action을 적용한 뒤
- 다음 시점 이미지로 다시 예측
- 즉 closed-loop feedback control 방식
- 중요한 점
- 논문은 현재 모델 한계로 single-image observation only를 직접 언급함
- 즉 observation history, multi-view, proprioception history를 본격 지원하지 않음
- 따라서
- 직전 step의 결과는 현재 이미지에 간접 반영되지만
- 모델이 시계열 히스토리를 길게 직접 입력받는 구조는 아님
제어 주파수와 action의 관계
- 논문에 나온 setup
- 어떤 환경은 5Hz non-blocking controller
- 어떤 환경은 15Hz non-blocking controller
- 의미
- 5Hz면 약 200ms마다 action을 새로 내는 셈
- 15Hz면 약 67ms마다 새 action을 냄
- 그래서 action vector는 사실상
- 그 제어 주기 동안 적용될 상대 제어 명령처럼 해석됨
- 주파수가 바뀌면 같은 action이라도 실제 움직임이 달라질 수 있음
- 논문에서 왜 중요했나
- int8 quantization은 추론이 느려져서 control frequency가 무너졌고
- 그 결과 실제 rollout 성능이 크게 떨어졌다고 해석함
backbone 비교: 왜 Prismatic이 제일 나았나
- 저자들이 비교한 backbone
- IDEFICS-1
- LLaVA
- Prismatic
- 결과
- 단일 객체 task에서는 큰 차이가 덜했음
- 여러 객체가 있고 instruction으로 target을 골라야 하는 language grounding task에서 차이가 큼
- LLaVA가 IDEFICS-1보다 좋았고
- Prismatic이 LLaVA보다도 더 좋았음
- 논문이 제시한 수치
- LLaVA는 IDEFICS-1 대비 5개 grounding task 평균에서 절대 성공률 35%p 개선
- Prismatic은 LLaVA보다 대략 10%p 추가 개선
- 저자 해석
- fused SigLIP + DINOv2 덕분에 spatial reasoning이 좋아졌기 때문
vision encoder를 freeze하면 왜 안 좋았나
- VLM 쪽에선 vision encoder freeze가 종종 괜찮지만
- OpenVLA에서는 vision encoder fine-tune이 중요했다고 한다.
- 저자 해석
- 인터넷 사전학습 feature만으로는
- grasp point
- orientation
- 세밀한 위치 관계
- 그래서 로봇 데이터에 맞게 visual feature도 같이 적응시켜야 함
같은 로봇 제어용 fine-grained spatial detail이 부족할 수 있음
- parameter-efficient fine-tuning 결과도 같은 방향
- last layer only: 성능 낮음
- frozen vision: 성능 낮음
- sandwich FT: 중간
- LoRA: full FT에 가까운 성능으로 가장 좋은 trade-off
학습 데이터
- 기본 데이터
- Open X-Embodiment(OpenX)
- 다양한 로봇 embodiment와 task를 포함한 대규모 실세계 로봇 데이터셋
- OpenVLA 최종 학습량
- 970k real-world robot demonstrations
- 데이터 정제 방식
- manipulation dataset만 사용
- 3rd-person camera가 있는 데이터로 제한
- single-arm end-effector control로 정렬
- embodiment/task/scene diversity를 맞추도록 mixture weight 조정
학습 recipe
- VLM backbone
- Prismatic-7B 위에서 robot action prediction으로 fine-tune
- action objective
- next-token prediction
- loss는 action token 위치에 대해서만 cross-entropy 계산
- 중요한 실험적 선택
- 입력 해상도 224×224 선택
- 384×384보다 성능 차이는 없고 학습 시간은 3배 더 들었음
- vision encoder는 freeze하지 말고 같이 fine-tune
- lr = 2e-5가 가장 좋았고 warmup 이득은 크지 않았음
- 27 epoch까지 돌렸음
연산량 / 시스템
- pretraining
- 64개의 A100 GPU
- 14일
- 총 21,500 A100-hours
- inference
- bf16 기준 약 15GB VRAM
- RTX 4090에서 약 6Hz
- 실시간성
- 5Hz 수준 task는 어느 정도 가능
- 15Hz 이상, 특히 50Hz급 dexterous control에는 아직 부족
- 논문도 throughput을 한계로 직접 인정함
- 어디서 돌리나
- 로컬 GPU에서도 가능
- 원격 VLA inference server도 제공해서 서버에서 추론 후 action stream을 보내는 방식도 지원
실험 1: out-of-the-box generalist policy 성능
- 평가 플랫폼
- WidowX / BridgeData V2
- Google robot
- 비교 대상
- RT-1-X
- Octo
- RT-2-X
- OpenVLA
- 보는 축
- visual generalization
- motion generalization
- physical generalization
- semantic generalization
- language grounding
- 결과 요약
- BridgeData에서는 전체적으로 최고 성능
- Google robot에서는 RT-2-X와 비슷하거나 경쟁적
- 특히 7B인데 55B RT-2-X와 맞붙는 점이 강함
- 단, semantic generalization은 RT-2-X가 더 좋음
- 논문 해석:
- RT-2-X는 Internet 데이터와 robot 데이터를 같이 co-fine-tune해 웹 지식을 더 잘 보존
- OpenVLA는 robot data fine-tune 중심이라 semantic generalization은 상대적으로 약할 수 있음
실험 2: 새 로봇/새 환경에 적은 데이터로 적응되나
- setup
- Franka-Tabletop
- Franka-DROID
- task당 10~150 demonstration으로 fine-tuning
- 비교 대상
- Diffusion Policy
- Diffusion Policy (matched)
- Octo fine-tune
- OpenVLA fine-tune
- OpenVLA (scratch)
- 결과
- 좁고 단일 instruction인 task에서는 Diffusion Policy가 강함
- 여러 instruction / 여러 물체 / distractor가 있는 task에서는 OpenVLA가 더 강함
- 전체 평균은 OpenVLA가 최고
- 해석
- generalist pretraining + language grounding prior가 다양한 downstream task에서 이점
- 하지만 아주 정밀한 trajectory smoothness는 Diffusion Policy가 여전히 강함
Diffusion Policy가 뭐냐
- 로봇 action을 diffusion model로 생성하는 imitation learning 계열 정책
- 단순 next-action regression보다
- trajectory chunk
- multi-modal action distribution
- smooth trajectory
를 더 잘 다루는 장점이 있다.
- 이 논문 각주 기준으로 Diffusion Policy는
- observation history 사용
- proprioception 사용 가능
- 미래 T step action chunk를 예측하고
- 그중 일부를 open-loop로 실행하는 방식
- OpenVLA와의 차이
- Diffusion Policy: trajectory denoising/chunking에 강함
- OpenVLA: autoregressive action token prediction에 가까움
실험 3: parameter-efficient fine-tuning
- full fine-tuning
- 강하지만 비용 큼
- last layer only
- 성능 낮음
- frozen vision
- 성능 낮음
- sandwich fine-tuning
- 일부만 풀어서 학습, 중간 정도
- LoRA
- 가장 좋은 성능-메모리 trade-off
- 논문 Table 1 핵심
- full FT: 69.7%
- LoRA rank 32: 68.2%
- LoRA rank 64: 68.2%
- trainable parameter는 full FT 대비 크게 줄고 성능은 거의 유지
- 의미
- OpenVLA를 새 task에 현실적으로 적응시킬 때
- LoRA가 제일 실전적이라는 메시지
LoRA 할 때 Llama 자체는 안 건드리냐
- 일반 LoRA 원리
- pretrained weight는 freeze
- 각 linear layer에 저랭크 update를 추가해 학습
- 즉 “원본 weight를 직접 업데이트하는 것”은 아님 (arXiv)
- 하지만
- LoRA가 Llama의 linear layer에 붙으면
- Llama의 동작은 바뀐다
- 다만 base weight를 덮어쓰는 게 아니라 adapter를 통해 보정하는 방식 (arXiv)
- OpenVLA 논문 표현
- LoRA를 all linear layers of the model에 적용했다고 적음
- 따라서 Llama 쪽도 적응 대상일 가능성이 높음
quantization
- 목적
- inference memory 줄이기
- 더 작은 GPU에서도 돌리기
- 결과
- bf16: 71.3%, 16.8GB
- int8: 58.1%, 10.2GB
- int4: 71.9%, 7.0GB
- 핵심 포인트
- int8보다 int4가 더 좋게 나옴
왜 int8이 더 나쁠 수 있나
- quantization은 저장 비트 수를 줄여도
- 실제 추론 시
- scale 적용
- dequant/requant
- 형변환
- 특수 커널 호출
같은 추가 비용이 들어갈 수 있음
- 이게 quantization op overhead다.
왜 int4는 오히려 나을 수 있나
- int4는 메모리 전송량 감소 이득이 더 큼
- 그래서 quant overhead를 상쇄하고 throughput이 올라갈 수 있음
- OpenVLA에서는 이 효과 때문에 int4가 bf16 수준 성능을 유지함
robotics에서는 왜 더 중요하냐
- 그냥 offline token accuracy가 아니라
- 실제 control loop frequency가 맞아야 함
- int8은 너무 느려져서 5Hz 환경의 dynamics를 못 맞췄고
- 그래서 rollout success가 크게 떨어졌다고 논문은 본다.
Share article