OpenVLA: An Open-Source Vision-Language-Action Model

논문 정보

  • Date: 2025-01-14
  • Reviewer: 전민진

Summary

  • 기존의 VLA모델들은 1) closed, 2) 새로운 task에 효율적으로 FT하기 어렵다는 단점이 존재

  • 현재 공개된 public model중 최고의 성능을 내는 vision-language-action model

    • llama-2-7B모델에 visual encoder 2개(SigLIP, DINOv2)를 사용해서 970K real-world robot demonstration(Open-X-embodiment)으로 학습

    • training dataset 외의 여러 로봇을 control할 수 있음

  • 기존의 closed model인 RT-2-X(55B)보다 훨씬 작은 크기(7B)로 훨씬 높은 성능 달성

    • 29개의 task에 대해서 RT-X-2보다 7배 낮은 파라미터로 16.5% 좋은 성능을 냄

    • 특히 FT에서 압도적인 성능을 보임

      • LoRA로 fine-tuning이 가능하며, quantization을 해도 큰 hit ratio drop이 없음
  • 어떻게 모델을 구상하면 좋은지에 대한 insight가 많이 나와 있음

  • 모든 코드가 공개 되어 있어 이를 기반으로 연구를 시작하면 좋음

Introduction

  • robotic dataset은 대량으로 구축하기가 어려움

⇒ 기존의 vision, language 모델의 능력을 사용해서 일반화가 잘 되도록 모델을 만들어보자!

  • 기존 연구

    • VLM을 통합해서 robotic representation learning 학습

    • task planning, execution을 위해 modular system으로 사용

    • 따로 VLA 모델을 학습하기 위해 사용

      • 보통 pretrained model을 갖고 와서 PaLI처럼 바로 robot action을 생성하도록 FT

multi-robot dataset은 일종의 multi-ligual dataset느낌으로 접근해볼 수 있지 않을까?

  • 논문의 저자들이 지적하는 기존 연구의 문제점

    • current model are closed

    • 새로운 로봇, 환경, 태스크에 사용하고 adapting하기에 최고의 방안을 제공하지 않음

  • 970K의 방대한 데이터셋에 대해 pretrained된 fully open source VLA model, OpenVLA를 제안

    • FT결과 기존에 FT로 SOTA였던 Octo보다 성능이 훨씬 높음

    • multi-task setting, multi object에 대해서 성능이 크게 향상

  • Visually-Conditioned Language Models

    • patch을 token단위로 보고, pretrained visual transformers에서 feature를 추출, language model의 space로 project하여 사용

    • multi-resolution visual feature에서 학습된 pretrained backboen을 사용

      • DINOv2에서 얻은 low-level의 spatial infomration과 SigLIP에서 얻은 higher-level semantic을 섞어서 visual generalization을 높이고자 함
  • Generalist Robot Policies

    • Octo - 1B밑

      • out-of-the-box의 여러 로봇 컨트롤이 가능하도록 generalist policy를 학습

      • 새로운 로봇 세팅에 대해 유연한 finetuning이 가능하도록 ㅏㅎㅁ

      • pretrained language embedding과 visual encoder를 model component로 사용, model 자체는 scratch부터 학습

    • 이외 달리, OpenVLA는 좀 더 end-to-end 느낌으로다가, robot action 생성하기 위해 VLM을 finetuning, actino을 langauge model vocab에서의 token으로 사용

  • Vision-Language-Action Models

    • 기존의 연구들은 보통 VLM backbone에 robot control action을 fuse

      • 장점 : 기존 VLM component와 align, 로봇만을 위한 모델이 아니기 때문에 VLM의 인프라를 활용할 수 있음

      • 단점 : single robot 혹은 simulated setup에 한정되어 학습, 평가 ⇒ generality가 떨어지고, closed model / 모델이 크기 때문에 작은 코드 수정으로도 B단위의 policy를 다ㅣㅅ 학습해야 함

  • RT-2-X와 OpenVLA의 차이

    • 작은 모델로 더 높은 성능

    • FT세팅에 대해 분석

    • PEFT가능

    • 공개 모델

Proposed Method

  • VLA 모델 개발을 위한 자세한 practice는 아직 연구가 덜 됨

    • 어떤 backbone, dataset이 좋은지, hyperparameter에 따라 성능이 어떤지..
  • Preliminaries: Vision-Lnaguage Models

[보통의 VLM 구조]

  • visual encoder : image을 patch 단위로 임베딩

  • projector : image embedding을 language space로 mapping

  • LLM : 보통 학습은 paired 또는 interleaved VL data에 대해 next token perdiction으로 진행

  • 본 논문에서 사용한 backbone VLM은 Prismatic-7B VLM

    • Prismatic-7B : 600M visual encoder, 2-layer MLP projector, 7B llama2 LM

      • 2파트의 visual encoder사용 : SigLIP, DINOv2

      • LLaVA 1.5 data mixture로 FT됨

        • 1M image-text and text-only data samples from open sources
  • OpenVLA training procedure

    • action prediction을 vision-language task로 formatting

      • image, text를 input으로 넣어서 string of robot action을 생성하도록 함
    • continous robot action을 discrete token action으로 mapping

      • 로봇 action의 각 차원을 256 bin으로 쪼갬

      • 각 action 차원에 대해서 bin width를 일정하게 설정(1st, 99th quntile에 있는 train dataset에 있는 actino 분포 기반)

      • 256개의 새로운 token을 vocab에 추가함(부족한 슬롯은 잘 안쓰는 token에 overwriting)

  • Training data

    • Open X dataset을 알맞게 curation

      • 모든 데이터셋에 대해 일관된 input, output space 사용

        • 한손로봇, 1/3 person camera data반 활용
      • embodiment 비율 조정

        • sampling시 많으면 down weight, 적으면 upweight 활용
      • Octo 출시 이후 추가된 DROID dataset도 같이 섞어서 학습해봤으나 별로 도움 안됐다고 함(10%라 큰 영향이 없는거 같다고 함)

  • OpenVLA Design decision

: BridgeDataV2로 미리 디자인 관련 실험을 함

  • VLM Backbone

    • IDEFICS-1과 LLaVA, Prismatic으로 실험

      • prismatic : visually conditioned LM(LLaVA보다 높은 성능, visual encoder는 freeze, projector와 LM만 학습)

      • IDEFICS < LLaVA < Prismatic 순의 성능을 보임

        • IDEFICS와 LLaVA는 장면에 하나의 object가 있을 때는 잘됨

        • LLaVA가 I에 비해서 좀 더 language grounding이 잘 되긴 함

        • Prismatic이 성능이 잘 나온 이유는 SigLIP-DINOv2 backbone때문인걸로 추정

  • Image resolution

    • 저화질(224224)이나 고화질(384384)이나 큰 성능 차이는 없으나 고화질이 학습시간 3배 더 소요
  • Fine-tuning vision encoder

    • VLM학습할 때는 visual encoder를 학습하지 않음

    • 하지만 VLA에서는 visual encoder를 FT하는게 매우 중요

⇒ 기존 비전 태스크에서 중요한 포인트와 다르기 때문.. 이라 추정

  • Training epochs

    • 많이 돌릴수록 real robot performance가 지속적으로 향상

    • 27번 돌림

  • Learning rate

    • 2e-5(VLM사전 학습할 때와 같은 learning rate)
  • Intrastructure for trainign and inference

    • 64대 A100으로 14일, 21500 A100 Hours, batch size는 2048

    • inference시 OpenVLA는 15GB의 GPU mem필요(bf16), RTX 4090 GPU기준 6Hz의 속도

    • remote VLA inference도 코드 있다고 함

Experiments

  • Research question

    • OpenVLA가 기존 모델들에 비해 여러 로봇과 다양한 조건의 generalization에서 성능이 어떤가?

    • OpenVLA를 새로운 로봇 세팅과 태스크에 대해 효과적으로 FT할 수 있는가

    • OpenVLA의 학습과 inference시 PEFT와 quantization방법론을 적용해 computational cost를 줄일 수 있는가?

  • Direct Evaluation on Multiple Robot Platforms

    • Robot setups and task

      • unseen robot : WinowX from BridgeData V2, mobile manipulation robot from RT-2 and RT-2 evaluation(Google robot)

      • generalization axes

        • visual : 색, 배경, distractor

        • motion : 위치, 시작점

        • physical : 크기, 모양

        • semantic : 모르는 target object, instruction

    • Comparision

      • RT-1-X(35M)

      • RT-2-X(55B)

      • Octo(93M)

    • OpenVLA의 압도적인 성능

      • 더 큰 robot action dataset + dataset cleaning, SigLIP과 DINOv2를 같이 썼기 때문인걸로 추정
    • RT-2-X는 그래도 어느정도 일반화 성능을 보임

      • 큰 범위의 internet pretraining + robot action과 internet pretraining data를 같이 학습
    • RT-1-X와 Octo는 distractor가 나타나면 갈피를 못잡음

    • Octo 논문에서는 octo가 RT-2-X보다 잘하는거 같았는데, 여기서는 아님

  • Data-Efficient Adaptation to New Robot Setups

    • 실험 세팅

      • 10-150개의 demonstration으로 이뤄진 target dataset에 대해서 full FT

      • Franka-Tabletop : 책상에 7-DoF robot arm 꽂아 놓고 실험

      • Franka-DROID : 모션데스크에서 실험

      • 비교군

        • diffusion policy : SOTA data-efficient imitation learning 방법

          • diffusion policy : 3개 보고 8개 예측

          • diffusion policy(matched) : 1개 보고 1개 예측

        • Octo : target task에 대해서 FT

        • OpenVLA도 하나 넣어서 하나 예측하는걸로 알고 있음

    • 결과

      • pretrained model에 FT하는게 성능이 높았음

⇒ 언어 기반으로 다양한 태스크에 잘 adapt되도록 함

- 다른 애들은 narrow single instruction(diffusion policy) or diversity instruction 둘 중 하나만 잘하는데, openVLA는 다 잘함
  • Parameter-Efficient Fine-tuning

    • 비교군

      • Full FT

      • last layer only : transformer backbone의 마지막 레이어만 학습

      • sandwich FT : visual encoder, token embedding matrix, last layer만 학습

      • LoRA

    • 실험 결과

      • LoRA가 짱!

        • A100 한대 10-15시간이면 학습 가능, full FT에 대해서 computation 8배 단축
  • Memory-Efficient Inference via quantization

    • 4bit quantization을 사용하면 GPU mem은 반절, 성능 유사, Hz는 향상(bf16과 비교시)

Discussion and Limitation

  • single-image observations만 지원

  • throughtput을 향상시키는게 중요

  • 성능 향상의 여지는 있음 - 아직 90%도 달성하지 못함