[논문리뷰] OpenVLA: An Open-Source Vision-Language-Action Model

hyo._.op·4일 전

논문리뷰

목록 보기
14/14

논문명: OpenVLA: An Open-Source Vision-Language-Action Model
학회(출판연도): IEEE International Conference on Robotics and Automation (ICRA 2025)
연구분야: Vision-Language-Action(VLA) 모델, 로봇 조작(Robot Manipulation), 멀티모달 로보틱스, 로봇 파운데이션 모델


Background

VLA의 등장 배경

  • LLM(Large Language Model)
    • GPT처럼 텍스트 → 텍스트를 처리하는 모델로 언어만 이해하고, 언어만 생성함
      • 입력: 고양이를 설명해줘 → 출력: 고양이는 포유류,,,
  • VLM(Vison-Language Model)
    • 이미지 + 텍스트 → 텍스트
    • CLIP, BLIP, LLaVA, GPT-4V
    • 이미지를 이해할 뿐, 실제 행동까지는 x
  • VLA(Vision-Language-Action)
    • 이미지 + 텍스트 → 행동

Abstract

  • 기존에는 로봇에게 새로운 작업을 시킬 때마다 그 작업만을 위한 모델을 새롭게 학습했어야 했음
    • 하지만, 이미지-텍스트 데이터와 실제 로봇 데이터를 함께 학습한 대규모 VLA 모델이 있다면, 기존 모델을 파인튜닝하는 것만으로도 새로운 작업을 잘 수행하는 로봇을 만들 수 있지 않을까?
  • 하지만, 기존 로보틱스 분야에서 ① 대부분 비공개로 일반 연구자가 접근할 수 없고, ② 기존 연구는 새로운 작업에 대해 VLA를 효율적으로 fine-tuning하는 방법을 충분히 연구하지 않았었음 ⇒ 이런 문제를 해결하기 위해 97만 개의 실제 로봇 시연 데이터로 학습된 70억(7B) 파라미터 규모의 오픈소스 VLA인 OpenVLA를 제안
    • LLaMa2 언어 모델을 기반으로 하여, DINOv2와 SigLIP에서 사전 학습된 특징을 융합하는 시각 인코더를 결합한 구조임
  • OpenVLA는 RT-2-X보다 훨씬 가볍고, 메모리도 적게 쓰는데 성능은 더 우수했음
  • 여기에 더불어 OpenVLA를 새로운 환경에서 fine-tuning할 수 있음을 확인했고, 여러 객체가 포함된 다중 작업 환경에서도 뛰어난 일반화 성능과 언어 명령을 이해하는 능력도 굿굿!
  • 거대 GPU가 아닌 일반 소비자용의 GPU로도 가능하다!

1. Introduction

  • 기존의 로봇 정책은 학습 데이터를 넘어서 일반화하는데에는 아쉬움이 있었음
    • 기존에는 물체의 위치나 조명이 조금 달라지는 경우에는 어느정도 대응을 할 수 있지만, 장면 속에 방해 요소나 새로운 물체가 등장, 혹은 이전에 보지 못했던 새로운 작업 명령을 받게 되면 성능이 크게 떨어졌음
  • 반면, 로보틱스 분야 밖의 CLIP, SigLIP, LLaMa2와 같은 비전 및 언어 파운데이션 모델 같은 경우에는 일반화 성능뿐 아니라, 그 이상의 능력도 갖추고 있음
    • 인터넷 규모의 사전 학습 데이터세트로 인한 사전 지식 덕분
  • 로보틱스 분야에서도 이러한 규모의 사전학습을 재현하면 좋겠지만, 로보틱스에서 가장 큰 데이터 세트인 로봇 조작에서도 10만~100만개 정도의 예제만 포함되어 있음 ⇒ 그러면 이미 학습된 vision-language 파운데이션 모델을 핵심 구성 요소로 학습해보면 어떨까?
  • 물론 기존에도 사전 학습된 언어모델과, vision-language 모델을 로봇 표현 학습에 활용하거나, 작업 계획 및 실행을 위한 모듈형 시스템의 구성 요소로 활용하긴 했었음
    • 즉 VLM은 단순 “설명”을 하고 실제 행동은 다른 모델이 담당
  • 최근에는 제어를 위해 VLA모델을 직접 학습하는데 사용
    • PaLI같은 VLM을 직접 파인튜닝해서 로봇 제어 행동을 생성하고, 이를 통해 사전학습된 비전 및 언어 파운데이션 모델을 로보틱스에 직접 활용하는 방식
    • 이렇게 인터넷 규모로 학습된 모델을 기반으로 하다보니, RT-2와 같은 VLA는 기존의 로봇보다 일반화 성능이 좋았음
  • 그러나 기존 VLA가 널리 활용되지 못하는 이유가 2가지 있음
    • 현재 모델의 대부분은 비공개이고, 모델 구조, 학습 방법, 데이터 구성에는 정보가 제한적
    • 새로운 로봇, 환경, 작업에 VLA를 적용하고 적응시키는 방법, 특히 일반 소비자용 GPU와 같은 하드웨어에서의 적용 방법을 제시하지 않음

Visually-Conditioned Language Models

  • 입력 이미지와 언어 프롬프트로부터 자연어를 생성하도록 인터넷 규모의 데이터로 학습된 VLMs → 시각 질의응답(VQA)부터 객체 위치 추정(Object Localization)에 이르기까지 다양한 응용분야에서 활용됨
    • 최근 VLM의 발전을 이끈 핵심 요소 중 하나는 사전 학습된 비전 인코더의 특징과 사전 학습된 언어 모델을 연결하는 구조임!
    • 초기 연구는 이미지와 텍스트를 연결하는 복잡한 구조를 많이 연구했었지만, 최근에는 더 단순한 방식이 주류가 됨 → Patch-as-token ⇒ 이러한 방법을 사용해서 OpenVLA도 기존의 성능이 좋은 VLM을 가져와서 백본으로 활용할거임~!
      • DINOv2(저수준 공간 정보) + SigLIP(고수준 의미 정보)

Generalist Robot Policies

  • 최근 로보틱스에서 다양한 로봇 데이터세트를 이용하여 여러 작업을 수행할 수 있는 범용 로봇 정책을 학습하는 방향으로 연구가 진행되고 있음
    • 기존 범용 로봇 정책 Octo 도 유연하게 새로운 환경에서도 파인튜닝 가능했었음
  • 다만, 기존 연구와 OpenVLA의 핵심적인 차이는 모델 구조
    • 기존의 연구: 여러 사전학습 모듈을 조합한 뒤 새로운 모듈을 추가하여 학습
    • OpenVLA: 직접 파인튜닝해서 로봇 행동 생성

Vision-Language-Action Models

  • 여러 연구에서 VLM을 로봇에 활용하고 있었음(시각 상태 표현, 객체 검출, 고수준 계획, 피드백 신호 등)
    • 하지만, 복잡한 구조 또는 정밀하게 보정된 카메라를 필요로 했었음
  • VLA란, 기존에는 image → text 였다면, 이제는 image → action 로 바뀐 것을 의미한다. 즉 로봇 제어 행동을 VLM 백본에 통합함

⇒ VLA의 장점

  • 이미지와 언어가 이미 인터넷 규모에서 잘 정렬되어 있다.
  • VLM 구조를 그대로 사용한다.
  • VLM이 발전하면 VLA도 자동으로 발전한다.

3. The OpenVLA Model

  • OpenVLA
    • Open X-Embodiment 데이터세트의 97만 개 로봇 시연으로 학습된 70억 파라미터 규모의 VLA 모델
  • VLA 모델을 개발할 때, 최적의 방법에 대해서 아직 충분히 연구되지 않은 질문들이 존재함
    • 어떤 모델의 백본? 어떤 데이터세트? 어떤 하이퍼 파라미터? → VLA가 새로운 분야라서 아직 명확한 기준이 없다

3.1 Preliminaries: Vision-Language Models

  • VLM의 구조

    • 이미지를 여러개의 이미지 패치 임베딩으로 변환하는 Visual encoder

      • 대표적으로는 CLIP, DINOv2, SigLIP
    • Visual Encoder의 출력을 언어 모델의 입력 공간으로 변환하는 Projector

      • visual encoder와 llm의 사용하는 feature 공간이 다르기때문에 맞춰주기 위한 목적
    • LLM 백본
      - Llama2가 이미지 정보를 포함하여 텍스트 생성

      ⇒ VLM 학습 과정에서 모델 전체가 End-to-End 방식으로 학습 + 인터넷에서 수집한 이미지 - 텍스트 쌍을 이용하여 다음 텍스트 토큰을 예측하는 목적 함수로 사용

  • 본연구에서는 Prismatic-7B VLM 기반(backbone)으로 사용

    • Prismatic-7B

      • 표준 VLM 구조를 따름

        • 600M 파라미터의 Visual Encoder
        • 2층 MLP Projector
        • 7B Llama2 Backbone
      • 다른 점은 두 부분으로 구성된 비주얼 인코더를 사용하며, SigLIP, DinoV2를 함께 사용함

        • 입력 이미지 패치는 각각 두 인코더를 통과하여 생성된 feature를 채널 방향으로 concatenate함

        • 일반적으로는 CLIP 또는 SigLIP 1개만 비주얼 인코더로 사용을 하는데, DINOv2를 추가함으로써 공간적 추론 향상 가능

          ✓ DINOv2를 추가하면 왜 공간적 추론 향상?

          • 물체가 어디에 있는지, 얼마나 떨어져 있는지와 같은 공간정보를 잘 표현하기 때문
          • 로봇은 단순이 “컵이다”를 아는 것보다는 “컵이 왼쪽으로 15cm 있다”를 아는 것이 더 도움이 되기 때문이다.
    • 사전 학습된 SigLIP, DinoV2, Llama2를 사용

    • 또한, 단순히 Llama2와 DINOv2를 연결한게 아니라 LLaVA 1.5에서 사용한 약 100만 개의 이미지-텍스트, 텍스트 전용 샘플을 활용하여 파인튜닝 진행

      ✓ 학습 과정을 조금 더 상세히 말하자면

      [ Llama2(인터넷 텍스트) + SigLIP(인터넷 이미지-텍스트) + DINOv2(인터넷 이미지) ] → Prismatic (LLaVA 1.5 데이터로 파인튜닝) → OpenVLA (Open X-Embodiment의 97만 개 로봇 시연 데이터로 다시 파인튜닝)

3.2 OpenVLA Training Procedure

  • OpenVLA를 학습하기 위해 사전학습된 Prismatic-7B VLM 백본을 로봇 행동 예측을 하도록 파인튜닝 진행
  • 행동 예측 문제를 Vision-Language 문제로 정의
    • 입력 이미지 + 자연어 작업 지시 → 예측된 로봇 행동을 문자열로 출력하도록
    • 즉, 로봇 행동도 하나의 “문장”처럼 생성하도록 함
  • LLM이 로봇 행동을 예측할 수 있도록 연속적인 로봇 행동을 언어 모델의 토크나이저가 사용하는 이산 토큰으로 변환(256개의 bin 중 하나로, 1~99% 범위만)
    • LLM은 원래 “apple”, “robot”과 같은 단어(token)만 출력할 수 있는데, 로봇의 행동은 x=0.43, y=-0.12와 같이 실수로 되어 있다
    • 즉, 이 실수를 토큰으로 바꾸는 과정이 필요한 것! → 0.73이라는 값을 Token #182처럼 바꿔 출력함
  • (P)그런데, Llama 토크나이저가 새롭겍 추가할 수 있는 스페셜 토큰을 100개만 제공을 하는데, Action을 표현하기 위해서는 256개의 토큰이 필요한 것! → (S) 가장 사용 빈도가 낮은 256개의 토큰을 Action Token으로 덮어씀
    • 즉, 새로운 토큰을 만드는대신, 거의 사용하지 않는 토큰을 action 토큰으로 교체
    • 이렇게 행동 토큰 시퀀스로 변환되면, OpenVLA는 다음 토큰 예측 방식으로 학습 진행 (loss도 Action 토큰 내에서만 계산)
      • 즉, 학습 방식은 GPT와 동일한데, text token을 맞추는 것이 아닌 action token을 맞추도록 학습한다는 점이 다른 점!

3.3 Training Data

  • OpenVLA 학습 데이터의 목표
    • 다양한 로봇 종류

    • 다양한 장면

    • 다양한 작업 을 포함하는 것

      ⇒ 하나의 로봇만 학습하게 되면 다른 로봇에서는 잘 작동하지 않기 때문에 최대한 다양한 데이터를 활용하려고 했음(Franka, WidowX, Google Robot)

  • Open X-Embodiment(OpenX)를 기반 데이터세트로 사용
    • 70개 이상의 로봇 데이터세트
    • 200만개 이상의 로봇 trajectory를 포함
  • 위 데이터세트를 여러 단계에 걸쳐 정제를 진행했는데, 데이터 정제의 목표에는
    • 모든 데이터가 같은 입력과 출력 형식을 갖도록
    • 특정 작업만 너무 많지 않도록 데이터를 균형 있게 2가지가 있음
      • Manipulation 데이터세트만 사용, Third-person Camera, Single-arm End-effector Control을 사용하는 데이터만 선택

        → 데이터 균형을 맞추기 위해서 Octo에서 사용한 Mixture Weight를 활용함

      • 데이터가 너무 많은 데이터세트는 비중을 줄이고, 다양성이 높은 데이터세트는 비중을 높이는 방식

  • 추가적으로 DROID 데이터세트도 10% 비율로 실험했지만, 학습 과정에서 Acition Token 정확도가 낮게 나타났음

3.4 OpenVLA Design Decisions

  • OpenVLA 모델을 개발하는 과정에서 바로 거대한 OpenVLA를 학습한 것이 아닌 먼저 작은 규모의 실험을 반복하며 어떤 설계가 가장 좋을지를 확인해봄
    • 계산 비용을 줄이고 실험 속도를 높이기 위해 OpenX 데이터세트 전체를 활용하는 대신 BridgeDataV2에서 OpenVLA를 학습하고 평가함

VLM Backbone

  • Prismatic외에도 IDEFICS-1과 LLaVA를 로봇 행동 예측에 파인튜닝해 봄
    • 두 모델 모두 물체가 하나만 있는 작업에서는 비슷한 성능을 보였음
    • 여러 물체가 있는 경우에는 LLaVA가 좀 더 뛰어난 언어 grounding 성능을 보임 ⇒ 언어-객체 연결에서 LLaVA가 더 뛰어났다는 뜻
  • BridgeData V2의 5개 언어 이해 작업에서 LLaVA가 IDEFICS-1보다 평균 35% 높은 절대 성공률 기록함
  • 파인튜닝된 Prismatic은 이러한 LLaVA보다도 10% 높은 절대 성공률 기록! → SigLIP과 DINOv2를 함께 사용하는 구조라서 공간 추론 능력이 더 좋아서라고 판단 +) Prismatic은 코드 구조가 모듈화 되어 있고 사용하기 쉬워서 최종적으로 선택

Image Resolution

  • 입력 이미지 해상도는 학습 계산량에 큰 영향을 미침
    • 해상도가 높을수록 패치 토큰이 많아지고 context 길이가 증가해서 계산량이 제곱으로 증가
  • 실험결과, 224x224와 384x384 해상도를 비교했지만, 성능 차이는 없었음 → 즉, 해상도를 높이더라도 큰 차이가 없었다는 뜻 (로봇의 경우, “뭐가 있다”가 중요하지 해상도가 크게 중요하지 않다)

Fine-Tuning Vision Encoder

  • VLM 연구에서 Vision Encoder를 고정하는 것이 더 좋은 성능을 내는 경우가 많아서 보통을 이 부분은 잘 건들이진 않음

    • 그런데, VLA의 경우, Vision Encoder를 같이 학습하는 게 좋은 성능을 내는데에 있어 중요하다는 것을 발견함

      ✓ 왜 그럴까?

      • 인터넷에서 학습한 Vision Encoder는 “고양이”, “자동차”와 같은 일반적인 특징은 잘 알지만,
      • 로봇의 경우에는 “컵 손잡이 위치”, “집을 부분”, “미세한 거리” 이런 정보들이 더 중요하기 때문에 로봇 데이터에 맞게 다시 학습해야한다는 것

Training Epochs

  • 일반적은 LLM과 VLM의 경우, 1-2epoch 정도만 학습 진행 ↔ VLA는 훨씬 많은 epoch 필요, Action Token 정확도가 95% 넘을 때까지 실제 로봇 성능이 계속 향상되었음 (최종적으로는 27epoch 학습)

Learning Rate

  • 여러 Learning Rate를 실험한 결과 2x10^(-5)가 가장 좋은 성능을 보였음
  • 또한 대부분의 Transformer는 초기에 Warmup을 사용하지만 OpenVLA에서는 필요하지 않았음

3.5 Infrastructure for Training and Inference

  • 학습시

    • 64개의 NVIDA A100 GPU로 14일동안 학습
    • 총 21,500 A100 GPU-hours 사용됨
  • 추론시

    • bfloat16으로 약 15GB GPU 메모리가 필요하며, RTX 4090에서 6Hz로 동작

      (학습은 고성능의 컴퓨팅 자원이 필요하지만, 실행에 있어서는 일반적인 GPU에서도 ok)

    • 양자화를 적용하면 메모리 사용량을 더 줄일 수 있고, 로봇 성능도 유지됨

      ✓ 왜 양자화를 하는걸까?

      • “양자화”라고 하면 물리학에서 쓸 법한 용어같지만, 딥러닝에서는 모델을 더 작고 빠르게 만드는 압축 기술이라고 할 수 있음

      • 먼저, OpenVLA의 경우에는 70억 개의 파라미터를 가지 모델임
        → 즉, 파라미터 하나하나가 숫자인데, 이런 숫자들이 70억개 있다고 보면 됨. 이 숫자들을 저장해야하니까 모델은 엄청 커질 수 밖에 없는 상황
        - 이때, 숫자를 32bit(float32)로 저장하게 된다면, 0.123456789 처럼 소수점을 굉장히 자세히 저장하게 되는데,
        - 실제로는 0.12만 저장해도 성능 차이가 거의 없는 경우가 많음

        ⇒ 그래서 “굳이 이렇게 정밀하게 저장할 필요가 있을까?” 라는 생각에서 나온 것이 양자화

      ✓ 양자화의 정의

      • 연속적이고 정밀한 숫자를 더 적은 비트로 표현하는 기술

        • 즉, 숫자 표현을 더 단순하게 만드는 것
      • OpenVLA의 경우,

        • 70억 파라미터를

          • float32로 표현했을 때, 32bit ≈ 28GB

          • float16 ≈ 14GB

          • int4 ≈ 3.5GB

            와 같이 양자화를 진행하게 되면 GPU 메모리를 거의 절반 이하로 줄일 수 있다.


4. The OpenVLA Codebase

  • VLA 모델을 학습하기 위한 모듈형 PyTorch 코드베이스 공개: https://openvla.github.io/

    • 본 코드베이스는 단일 GPU에서 VLA 파인튜닝부터 여러 노드의 GPU 클러스터에서 수십억 파라미터를 가진 VLA를 학습하는 것까지 확장 가능함

    • 또한 대규모 transformer 모델 학습을 위한 최신 기술인 Automatic Mixed Precision(AMP), FlashAttention, Fully Sharded Data Parallelism(FSDP)을 지원함

      ✓ AMP(Automatic Mixed Precision)?

      • 자동 혼합 정밀도 학습

        • 기존에는 Float32만 사용을 했는데, AMP의 경우에는 Float32+Float16(BF16)를 자동으로 섞어서 사용

        • 즉, 필요한 계산은 32bit로, 덜 중요한 계산은 16bit로 자동 처리하는 기술임

          → GPU 메모리 절약, 학습속도 증가, 성능은 거의 유지됨

      ✓ FlashAttention?

      • Transformer에서 가장 많은 계산을 차지하는 부분이 Attention 연산 부분
        • FlashAttention은 이 Attention을 더 효율적으로 계산하는 알고리즘임

      ✓ FSDP(Fully Sharded Data Parallelism?

      • 대형모델은 GPU 한 장에 모두 올릴 수 없는 경우도 많음

        → 그래서 FSDP는 모델을 여러 GPU에 조각을 내어 나누고 저장하고 학습하는 기술임

        • GPU1 → 모델 1/4, GPU2 → 모델 1/4, … 이렇게 나누어 저장한 후 필요할 때만 데이터를 주고 받으며 학습!
  • 그리고 해당 코드베이스는 기본적으로 별도의 추가 작업없이, OpenX 데이터세트로 바로 학습을 시작할 수 있고, Hugging Face의 AutoModel 클래스와 통합되어 있어서 쓰기에 용이함

    +) LoRA 파인튜닝과 양자화된 모델 추론도 지원


5. Experiments

  • 실험 평가 목표는
    • OpenVLA가 추가 학습 없이 학습 직후 그래도 사용해도 잘 동작하는지?
    • 새로운 환경에서 조금만 파인튜닝하면 더 잘 적응하는지?
  • 그래서 아래의 3가지 연구 질문을 검증하고자 함
    • 여러 로봇과 다양한 일반화 상황에서 평가했을 때, OpenVLA는 기존 범용 로봇 정책과 비교했을 때 어떠한 성능을 보이는지
      • RT-2, Octo, RT-1
    • OpenVLA는 새로운 로봇 환경과 작업에 효과적으로 파인튜닝될 수 있는지, 그리고 imitation learning 방법과 비교했을 때 어떤 성능을 보이는지
      • Diffusion Policy, Octo Fine-tuning
    • 적은 GPU에서도 사용 가능한가?, 성능과 계산량 사이에서 어떤 트레이드 오프가 존재하는가?
      • 즉, LoRA와 Quantization을 사용했을 때 성능이 얼마나 유지되고, GPU 사용량은 얼마나 줄어드는지를 확인하고자 함

5.1 Direct Evaluations on Multiple Robot Platforms

Robot Setups and Tasks

  • 추가학습없이 여러 로봇에서 얼마나 잘 동작하는지 평가하기 위함

  • OpenVLA의 out-of-the-box 성능을 두 가지 로봇 플랫폼(robot embodiments)에서 평가

    • BridgeData V2의 WidowX 로봇

    • RT-1 및 RT-2에서 사용된 Google Robot

      ✓ 여기서 robot embodiments는?

      • 단순 로봇이라는 의미가 아니라 “로봇의 물리적 형태와 하드웨어 구조 전체”를 의미함

        • WidowX → 작은 로봇 팔

        • Google Robot → 이동 가능한 모바일 매니퓰레이터

          는 서로 다른 embodiment임

          ⇒ 즉, 하나의 모델이 서로 다른 하드웨어에서도 잘 동작하는지를 확인하려는 것

  • 본 플랫폼 2개에서 다양한 일반화 능력을 평가할 수 있도록 포괄적인 평가 작업들을 구성함

    • 시각적 일반화
      • 훈련 때 보지못했던 배경, 방해 물체, 물체 색깔, 물체 외형에서도 잘 동작하는지
      • 예를 들어 훈련 때에는 빨간 컵만 봤었는데 테스트에서 파란 컵이 나와도 집을 수 있는지를 평가함
    • 동작 일반화
      • 훈련 때와 다른 위치에 물체가 있어도 잘 집는가
      • 예를 들어, 훈련때에는 컵이 가운데에 있었는데 테스트 때에는 컵이 오른쪽에 있다고 해도 잘 집을 수 있는지 평가
    • 물리적 일반화
      • 훈련에서 보지 못한 크기, 모양의 물체도 잘 다룰 수 있는지를 평가
      • 학습 때는 작은 컵만 봤었는데 테스트에서 큰 컵이 나왔을 때에도 집을 수 있는지 평가
    • 의미적 일반화
      • 훈련때 없는 새로운 물체, 명령, 인터넷 개념도 이해하는지
      • 훈련때 바나나가 없었는데, 명령어가 바나나를 집어라 라고 했을 때에도 수행할 수 있는지
        → VLM의 사전지식 사용
  • 또한, 여러 개의 물체가 있는 장면에서 사용자의 프롬프트에 지정된 올바른 물체를 조작할 수 있는지도 평가 → 언어 조건 능력 측정

    • 그러니까 책상위에 빨간컵, 파란컵, 초록컵이 있을 때 명령어가 “빨간 컵을 집어” 라고 하면 정말 빨간색 컵만 집는지를 확인

      ⇒ 전체적으로 BridgeData V2에서는 17개의 작업 x 10번의 시도 = 170회 rollout, Google Robot에서는 12개의 작업 x 5번의 시도 = 60회의 rollout으로 각 방법을 평가함

      ✓ Rollout이란?

      • 강화학습과 로봇분야에서 하나의 작업을 처음부터 끝까지 실제 수행한 한 번의 실행을 의미함
      • 예를 들어, “컵을 집어서 상자에 넣어”라고 하면,
        • 카메라 입력 → 컵 탐색 → 컵 집기 → 상자로 이동 → 놓기 → 종료 이 전체 과정에 1rollout
  • 평가는 모두 A/B 평가 방식으로 수행되었고, 공정한 비교를 위해 동일한 작업(task)과 동일한 초기 로봇 및 물체 상태를 사용

    ✓ A/B Evaluation?

    • 같은 환경에서 모델 A와 모델 B를 직접 비교하는 평가 방식

Comparisions

  • OpenVLA를 기존의 3가지 범용 조작 정책과 비교함
    • RT-1-X, RT-2-X, Octo
  • RT-1-X(3,500만 파라미터) & Octo(9,300만 파라미터)
    • OpenX 데이터세트 일부를 이용하여 처음부터 학습된 Transformer기반 정책
    • Octo는 오픈소스 조작 정책 중 SOTA
  • RT-2-X(550억 파라미터)
    • 사전학습된 Vision 및 Language Backbone을 사용하는 SOTA의 비공개 VLA

[실험결과]

  • RT-1-X와 Octo는 복잡한 환경(방해 물체가 존재할 때)에서 성능이 많이 떨어졌음
    • 기존 논문보다 더 어려운 task로 진행했기 때문에, 인터넷 사전학습을 사용하지 않은 모델이 성능이 낮게 나타나는 것은 당연하다
  • 반면, 인터넷 사전학습된 RT-2-X는 위 두 모델보다 훨씬 뛰어난 성능을 보였음
  • 특히, OpenVLA는
    • GoogleRobot 평가에서 RT-2-X와 비슷한 성능
    • BridgeData V2에서는 RT-2-X보다 훨씬 뛰어난 성능
    • 그럼에도 불구하고 모델크기는 7B/55B로 약 1/10 수준!

Qualitative Results

  • 단순 성공률뿐만 아니라 행동 자체도 RT-2-X와 OpenVLA는 다른 모델들보다 훨씬 안정적인 행동을 보임

    • 방해 물체가 있어도 올바른 물체에 접근하고,
    • 목표 물체의 방향에 맞게 로봇의 말단을 적절히 회전시키며
    • 물체를 불안정하게 집었을 경우에도 이를 다시 잡는 행동을 수행함
  • RT-2-X는 Semantic Generalization 작업에서는 더 높은 성능을 보임

    • 즉, 새로운 개념을 이해하는 능력은 RT-2-X가 조금 더 좋더라~~ ⇒ RT-2-X가 더 큰 규모의 인터넷 사전 학습 데이터를 사용했고, 로봇 데이터뿐 아니라 인터넷 데이터도 같이 사용해서 사전학습을 더 잘 유지했을 것이라고 예상
  • 하지만, 그래도 OpenVLA는 나머지 모든 작업에 있어서 BridgeData V2와 Google Robot 모두 RT-2-X와 비슷하거나 더 뛰어난 성능을 보였음

    • 그 이유로는

      • 더 많은 학습 데이터(로봇)

      • 더 깨끗한 데이터
        → Bridge Dataset에 있는 All-zero Actions를 제거함

        ✓ All-zero Action

        • 예를 들어, 로봇 Action이 [0,0,0,0,0,0,0] 이면, 아무것도 하지 않는 건데, 이런 데이터가 많게 되면 모델은 “가만히 있는 것이 정답”이라고 잘못 학습할 수 있게 됨
        • 그래서 이걸 제거해서 데이터 품질을 높였다고 할 수 있음
      • 더 좋은 Vision Encoder
        → OpenVLA는 SigLIP + DINOv2 함께 사용

        즉, Semantic 정보와 Spatial 정보를 동시에 활용하여 로봇 제어에 유리

5.2 Data-Efficient Adaptation to New Robot Setups

  • 기존 연구들은 주로 VLA를 추가 학습 없이(out-of-the-box) 평가하는데 집중
    → 우리는 새로운 로봇 환경에 대한 효과적인 파인튜닝에 대한 연구를 진행함
    - 즉 쉽게 말해 OpenVLA가 Google Robot으로 학습되었지만, 실제 사용자는 Franka Robot을 사용할 수도 있음. 때문에 새로운 로봇에 얼마나 쉽게 적응하는지가 중요한 것!
  • OpenVLA에 대해 간단한 파인튜닝 방식을 사용
    • 모든 모델 파라미터를 대상으로 목표대상에 대한 10-150개 시연만을 사용하여 학습
  • OpenVLA를 2가지 환경에서 평가함
    • Franka-Tabletop

      • 고정된 테이블 위에 설치된 Franka Emika Panda 7자유도(7-DoF, 7개의 관절) 로봇 팔 → 움직이지 않는 일반적인 연구실 로봇
    • Franka-DROID
      - 최근 공개된 DROID 데이터세트에서 사용된 Franka 로봇 환경으로 이동 가능한 책상 위에 설치되어 있음

      ⇒ 각 환경은 5Hz와 15Hz의 non-blocking controller 사용

Comparisons

  • OpenVLA와 현재 SOTA인 imitation learning 방법인 Diffusion Policy와도 비교 진행
    • 공정한 비교를 위해서 입출력 조건도 맞춘 버전으로 진행
  • 또한 파인튜닝을 지원하는 범용 정책인 Octo도 동일한 데이터로 파인튜닝하여 비교 진행
    • 동일 데이터세트로 OpenVLA 파인튜닝해서 이를 OpenVLA라고 표기
  • 마지막 Ablation 실험으로 OpenX로 사전학습된 OpenVLA 대신 Prismatic VLM을 바로 파인튜닝한 모델과도 비교 진행
    • Prismatic → 새작업 → OpenVLA Sacratch
    • Prismatic → OpenX 학습 → OpenVLA → 새 작업 ⇒ 이렇게 비교 진행 — “OpenX 사전 학습이 도움이 되는가?”

Results

  • 두 가지 Diffusion Policy는
    • "Put Carrot in Bowl", "Pour Corn into Pot" 와 같은 단일 명령의 작업에서는 Octo와 OpenVLA보다 경쟁력이 있거나 더 우수한 성능을 보였음
  • 하지만, 여러 물체가 존재하고 언어 조건이 복잡한 작업에 있어서는 사전학습된 범용 정책(OpenVLA, Octo)이 더 좋은 성능을 보였음
    • 또한 OpenX로 사전학습하지 않은 OpenVLA Scratch에서도 낮은 성능을 보였음
    • OpenVLA가 모든 평가 작업에서 최소 50%이상의 성공률을 달성한 유일한 방법이었음
    • 섬세한 작업에 있어서는 Diffusion Policy가 더 부드럽고 정밀했음
  • [향후 연구 과제] Diffusion Policy에서 사용하는 Action Chunking과 Temporal Smoothing을 OpenVLA에 적용한다면, 동일한 수준의 정교한 작업을 얻을 수 있지 않을까?

5.3 Parameter-Efficient Fine-Tuning

  • 이전 절에서 수행한 OpenVLA의 Full Fine-tuning은 높은 성능을 달성하기 위해 작업마다 그리고 데이터세트 크기에 따라 8개의 A100 GPU를 사용하여 5-15시간동안 학습 진행
    • VLA를 처음부터 사전학습하는 것에 비하면 휠씬 적은 계산량이긴하지만, 본 절에서는 계산량과 학습 파라미터를 더욱 줄일 수 있는 파인튜닝 방법을 탐구해볼 것

Full Fine-tuning

  • 파인튜닝 과정에서 모든 가중치를 업데이트하는 것

Last layer Only

  • OpenVLA Transformer의 마지막 레이어와 token embedding matrix만 파인튜닝
    • 즉 출력에 가까운 부분만 학습한다는 뜻

Frozen Vision

  • Vision Encoder를 고정하고 나머지 가중치는 파인튜닝하는 것
    • 즉, 이미지 특징은 그대로 두고, LLM만 학습

Sandwich Fine-tuning

  • Vision Encoder, Token Embedding Matrix, 마지막 layer만 학습 가능하게 함
    • 즉, 앞과 뒤만 학습한다는 것

LoRA

  • Hu 등의 Low-Rank Adaptation 기법을 사용하여 여러 rank 값 rr을 적용하여 모델의 모든 Linear Layer에 적용

결과

  • 마지막 레이어만 학습하거나 비전 인코더를 고정하는 방법의 경우에는 성능이 낮았음
    • 이는 목표 환경에 맞게 Vision Feature를 추가적으로 적응시키는 것이 매우 중요함을 의미함
  • 반면 Sandwich Fine-tuning은 비전 인코더를 파인튜닝하기 때문에 더 좋은 성능을 달성함
    • 또한, 전체 LLM Backbone을 Fine-tuning하지 않기 때문에 GPU 메모리도 덜 사용하는 편
  • 마지막으로 LoRA는 성능과 학습 메모리 사용량 사이에서 가장 좋은 trade-off를 달성했음
    • 전체 파라미터 1.4%만 학습하면서도 Full fine-tuning과 동일한 성능

    • LoRA의 Ranke 값은 정책 성능에 거의 영향을 주지 않았음
      → 기본 Rank값으로 r=32를 사용하는 것을 권장

      ⇒ LoRA를 사용함으로써 단일 A100 GPU 한 장만으로도 10-15시간 안에 OpenVLA를 새로운 작업에서 Fine-tuning할 수 있었으며, 이는 Full fine-tuning과 비교하여 계산량을 8배 줄인 것

5.4 Memory-Efficient Inference via Quantization

  • OpenVLA는 70억 개의 파라미터를 가진 모델로 1억 파라미터를 가진 Octo와 같은 기존 오픈소스 범용 정책보다 추론시 더 많은 메모리를 사용함
    • OpenVLA를 bfloat16 정밀도로 저장하고 불러와 추론을 수행(일반적인 방법)
    • 메모리 사용량을 절반으로 줄여서 16GB GPU메모리 만으로도 OpenVLA를 실행할 수 있게 함
  • 본 절에서는 LLM추론을 위해 개발된 양자화 기법을 사용해서 정책 추론에 필요한 메모리를 줄이고 VLA의 접근성을 높일 수 있는지 평가
    • 네트워크 가중치를 더 낮은 정밀도로 불러오고
    • 그 결과 메모리 사용량은 감소하지만 추론 속도와 정확도가 일부 감소할 수 있는 trade-off 발생

실험

  • 8-bit와 4-bit 정밀도로 OpenVLA를 실행하여 BridgeDataV2의 대표적인 8개 작업에서 평가
    • INT8, INT4

  • 비교 기준은 메모리, 실제 성공률임, 다양한 소비자용 및 서버용 GPU에 달성 가능한 제어 주파수도 표에 제시함

결과

  • 대부분의 GPU에서 8비트 양자화 추론 속도를 느리게 만든다는 것을 관찰함
    • 추가적인 양자화 연산 때문
  • 반면, 4비트 추론은 더 높은 처리량을 달성함
    • GPU메모리 전송량이 크게 줄어들어서 양자화 연산의 오버헤드를 상쇄하기 때문
    • 추론 속도가 감소한 결과, 8비트 양자화에서는 성능이 크게 감소했음
  • 4비트 양자화 모델은 A5000 GPU에서 3Hz로 실행될 수 있었으며, 이는 데이터 수집 당시의 시스템 동작(5Hz)에 더 가까움

⇒ 즉, 무조건 더 높은 비트(INT8)가 좋은 게 아니라 OpenVLA에서 INT4양자화가 메모리 절감과 성능 유지에 있어 가장 좋은 균형을 보였음

6. Discussion and Limitations

  • 본 논문에서 SOTA OpenVLA를 공개하며, 다양한 로봇에 대한 추가학습이 없더라도 좋은 성능을 냈음
  • 또한, OpenVLA가 5.3절의 Parameter-efficient Fine-tuning 기법을 사용하여 새로운 로봇 환경에서도 쉽게 적응할 수 있음을 보였음

하지만 한계도 존재했는데,

  • 현재는 한 장의 이미지만을 입력으로 사용할 수 있다
    • 실제 로봇 환경은 매우 다양하고 사용 가능한 센서 입력 또한 매우 당야함
    • 그래서 OpenVLA가 여러 장의 이미지, 고유 감각 정보, 그리고 과거 관측까지 지원하도록 확장하는 것이 중요한 미래 연구 방향이라는 것
    • 이미지와 텍스트를 번갈아 포함된 데이터로 사전학습된 VLM을 활용하면 더 유연한 VLA를 만들 수 있지 않을까?
  • OpenVLA의 추론 처리량을 높이는 것이 50Hz로 동작하는 ALOHA와 같은 고주파 제어 환경에서 VLA를 사용하기 위해 매우 중요함
    • 현재 논문은 대부분 한 팔인데, 앞으로는 양 팔을 활용하여 복잡한 작업도 가능해질 것이다.
    • 또한 속도를 높이기 위해 Speculative Decoding같은 최적화 기법이 이러한 문제를 해결 할 수 있을 것
  • 계산 자원의 한계때문에 많은 VLA 설계 문제들이 충분히 연구되지 못했음
    • 기본 VLM의 크기는 VLA의 성능에 어떤 영향을 미치는지
    • 로봇 행동 데이터와 인터넷 규모의 vision-language 데이터를 함께 학습하면 VLA 성능이 크게 향상 되는지
    • 어떤 시각 특징이 VLA에 가장 적합한지 ⇒ 때문에 우리가 이 코드 베이스르 공개하니까 연구 커뮤니티가 함게 연구했으면 좋겠다~~

0개의 댓글