
VLA인가 IL인가? 파인튜닝(Finetuning)이 VLA를 화려한 모방 학습기(Imitation Learner)로 만드는지 테스트하기 위한
요약
VLA 모델이 파인튜닝 과정을 거치며 진정한 의미론적 이해를 얻는지, 아니면 단순한 모방 학습기로 퇴보하는지를 분석합니다. 연구 결과, 파인튜닝이 장면의 이해 대신 훈련 데이터의 행동 시퀀스를 암기하게 만든다는 우려를 다룹니다.
핵심 포인트
- VLA는 VLM 백본과 행동 전문가로 구성된 엔드투엔드 모델임
- 파인튜닝이 VLA를 단순 모방 학습기로 퇴보시킬 위험이 있음
- LIBERO-PRO 테스트 결과, 환경 변화에도 궤적이 유지되는 암기 현상 발견
Motivation
로봇 조작(Robot manipulation)은 물체를 잡거나, 정밀하게 이동시키거나, 환경의 변화에 적응하는 것과 같이 물리적 세계의 물체와 상호작용하고 조작하는 로봇의 능력을 의미합니다. 모방 학습 (Imitation Learning (IL)) oxed{ACT, Diffusion Policy}와 같은 전통적인 접근 방식은 인간의 시연(demonstrations)으로부터 직접 학습하여 시각적 관찰(visual observations)을 행동(actions)으로 매핑합니다. 이러한 정책(policies)은 통제된 환경에서는 효과적이지만, 일반화(generalize)하기 어렵다는 단점이 있습니다. 시각-언어-행동 (Vision-Language-Action (VLA)) 모델 oxed{RT-2, OpenVLA, π series}는 유망한 새로운 패러다임을 제시합니다. VLA는 일반적으로 VLM 백본(backbone)과 행동 전문가(action expert)로 구성됩니다. 인터넷 규모의 시각-언어 데이터로 사전 학습된 VLM은 장면과 자연어 지시사항에 대한 풍부한 고수준의 의미론적 이해(semantic understanding)를 제공하며, 행동 전문가는 이 의미론적 표현(semantic representation)을 받아 구체적인 로봇 행동을 출력합니다. 전체 아키텍처는 엔드투엔드(end-to-end)로 학습되어, VLA가 전통적인 IL 접근 방식처럼 고정된 장면-행동 매핑을 단순히 암기하는 것이 아니라, 무엇을 해야 하는지 이해할 뿐만 아니라 실제로 실행할 수 있게 합니다.

VLM 백본과 행동 전문가로 구성된 전형적인 VLA 모델 (π₀의 이미지)
VLA 모델은 먼저 대규모의 다양한 데이터로 사전 학습(Pretraining)되어 일반적인 시각 및 언어 이해 능력을 습득한 다음, 대상 작업(Target task)과 환경에 대한 더 작은 규모의 시연(Demonstration) 데이터셋으로 파인튜닝(Finetuning)됩니다. 그러나 최근 연구들은 이러한 파인튜닝 과정에 대해 심각한 우려를 제기하고 있습니다. 여러 연구에 따르면, 파인튜닝이 VLM 백본(Backbone)을 통한 장면의 진정한 이해 대신, 훈련 분포(Training distribution)에 기반하여 장면 특화적인 행동 시퀀스(Action sequences)를 암기하는 모방 학습기(Imitation learner)로 VLA를 퇴보시킨다는 점을 시사합니다. LIBERO-PRO는 대상 객체가 교체되거나 제거되거나, 혹은 지시문(Instruction)이 손상되었을 때 모델의 궤적(Trajectories)이 거의 동일하게 유지된다는 것을 발견했습니다. LIBERO-Plus는 대상 객체가 위치를 벗어났을 때 모델이 실패한다는 것을 추가로 보여줍니다.
내가 테스트하는 속성
이러한 관찰 결과들은 근본적인 질문을 던집니다: 파인튜닝 이후, VLA는 순수하게 암기된 장면-행동 매핑(Scene-action mappings)에 의존하는 화려한 모방 학습기로 퇴보하는가?
이를 테스트하기 위해, 나는 효과적인 VLA가 충족해야 할 두 가지 핵심 속성을 정의합니다:
- 언어 접지 (Language grounding): 모델이 출력하는 행동은 주어진 지시문을 올바르게 따라야 합니다.
- 공간 일반화 (Spatial generalization): 모델은 장면 내 위치와 상관없이 올바른 대상 객체를 찾아내야 합니다.
나는 이 두 가지 속성을 독립적으로 변화시켜 2x2 실험 설계를 형성하는 통제된 데이터셋을 설계합니다.
만약 VLA가 언어를 진정으로 이해한다면, 프롬프트(Prompt)를 장면에 존재하는 다른 객체를 지칭하도록 변경했을 때 모델의 행동도 그에 따라 변해야 합니다. 만약 VLA가 공간적으로 진정으로 일반화된다면, 대상 객체를 보지 못한 위치로 이동시키더라도 이를 찾아내고 잡는 능력에 영향을 미치지 않아야 합니다. 어느 경우든 실패한다면, 이는 모델이 진정한 이해보다는 암기된 장면-행동 매핑에 의존하고 있음을 시사합니다.
데이터셋 설계
데이터셋 설계
VLA 모델들은 일반적으로 LIBERO 시뮬레이션 벤치마크를 통해 파인튜닝 (Finetuning)됩니다. 언어 접지 (Language Grounding) 및 공간 일반화 (Spatial Generalization)를 정밀하게 테스트하기 위해, 저는 LIBERO의 하위 세트 중 하나인 LIBERO-Object를 기반으로 통제된 데이터셋을 구축했습니다. 이를 통해 다른 모든 요소를 고정시킨 상태에서 프롬프트 (Prompt)와 객체 위치 (Object Positions)를 독립적으로 변화시킬 수 있습니다.
LIBERO-Object에서 각 태스크 (Task)는 동일한 구조를 공유합니다: 하나의 타겟 객체 (Target Object)와 5개의 방해 객체 (Distractor Objects)가 있는 바닥 장면이며, 로봇은 타겟 객체를 집어 바구니에 담아야 합니다.
LIBERO-Object의 10가지 태스크는 다음과 같습니다:
- 우유를 집어서 바구니에 담기
- 토마토 소스를 집어서 바구니에 담기
- 버터를 집어서 바구니에 담기
- 크림 치즈를 집어서 바구니에 담기
- 오렌지 주스를 집어서 바구니에 담기
- 초콜릿 푸딩을 집어서 바구니에 담기
- BBQ 소스를 집어서 바구니에 담기
- 케첩을 집어서 바구니에 담기
- 알파벳 수프를 집어서 바구니에 담기
- 샐러드 드레싱을 집어서 바구니에 담기
2x2 통제된 데이터셋을 구축하기 위해, 저는 두 가지 요소를 독립적으로 변화시킵니다:
- 프롬프트 (Prompt) (Seen vs. Unseen): Seen (본 적 있는) 조건에서는 원래의 훈련 프롬프트가 사용됩니다 (예: "우유를 집어서 바구니에 담으세요"). Unseen (본 적 없는) 조건에서는 프롬프트가 장면 내에 방해 요소(distractor)로 물리적으로 존재하는 다른 객체를 지칭하도록 변경됩니다 (예: "토마토 소스를 집어서 바구니에 담으세요"). 이는 어떠한 실패가 발생하더라도 그것이 객체의 부재가 아닌, 언어 그라운딩 (Language Grounding) 때문임을 보장하기 위함입니다.
- 위치 (Position) (Original vs. Shuffled): Original (원래) 조건에서는 모든 객체가 훈련 시의 위치에 그대로 유지됩니다. Shuffled (섞인) 조건에서는 객체의 위치가 영역 전체에 걸쳐 무작위로 재배정되어, 대상 객체가 훈련 중에 한 번도 본 적 없는 위치에 나타나게 됩니다.
이를 통해 작업당 4가지 조건이 생성되며, 총 40개의 통제된 장면 (controlled scenes)이 만들어집니다:
| Seen prompt | Unseen prompt | |
|---|---|---|
| Original position | Baseline | 언어 그라운딩 (Language grounding) 테스트 |
| Shuffled position | 공간 일반화 (Spatial generalization) 테스트 | 두 가지 모두 테스트 |
예시 (Examples)
통제된 데이터셋의 한 예시 시리즈가 위에 나와 있습니다. 각 장면에서 대상 객체를 더 잘 강조하기 위해 파란색 원을 그려두었습니다.
생성 방법 (How to Generate)
LIBERO에서 각 작업은 BDDL 설정 파일에 의해 정의되며, 이 파일은 장면 레이아웃, 객체 배치, 그리고 자연어 프롬프트를 지정합니다. 훈련(Training)과 추론(Inference) 과정 모두에서 VLA 모델은 :language 필드를 프롬프트로 전달받습니다.
다음은 우유 작업(original_seen)에 대한 기본 BDDL입니다:
(define (problem LIBERO_Floor_Manipulation)
(:domain robosuite)
(:language Pick the milk and place it in the basket) ; [CHANGEABLE] 언어 프롬프트
...
통제된 변형들을 생성하기 위해, 저는 [CHANGEABLE]로 표시된 필드들을 수정합니다:
보이지 않는 프롬프트 조건 (Unseen prompt conditions): :language 필드를 장면 내에 물리적으로 존재하는 방해물 객체(distractor object)를 가리키도록 변경합니다. 예를 들어, “우유를 집어서 바구니에 담으세요(Pick the milk and place it in the basket)”가 “토마토 소스를 집어서 바구니에 담으세요(Pick the tomato sauce and place it in the basket)”로 변경됩니다. :obj_of_interest 필드는 milk_1에서 tomato_sauce_1으로 업데이트되며, :goal 필드는 (In milk_1 basket_1_contain_region)에서 (In tomato_sauce_1 basket_1_contain_region)으로 업데이트됩니다.
섞인 위치 조건 (Shuffled position conditions): :init 섹션의 객체 배치를 사용 가능한 바닥 영역(target_object_region, other_object_region_0부터 other_object_region_4까지)에 따라 무작위로 재배정합니다. 예를 들어, 원래 floor_target_object_region에 있던 milk_1은 셔플링(shuffling) 후에 floor_other_object_region_3로 재배정될 수 있습니다. floor_bin_region에 있는 바구니 위치는 고정된 상태로 유지됩니다.
생성 스크립트와 전체 데이터셋은 다음에서 확인할 수 있습니다: https://github.com/FN8211/Control-Dataset
예비 결과 (Preliminary Results)
데이터셋을 검증하기 위해, 우유 작업(milk task)을 사용하여 LIBERO로 파인튜닝(finetuned)된 체크포인트를 적용한 pi0.5를 네 가지 조건에서 실행했습니다. 결과는 아래와 같습니다:
| 본 적 있는 프롬프트 (Seen prompt) | 보지 못한 프롬프트 (Unseen prompt) | |
|---|---|---|
| 원래 위치 (Original position) | ✅ 성공 (Success) | ❌ 실패 (Failure) |
| 섞인 위치 (Shuffled position) | ❌ 실패 (Failure) | ❌ 실패 (Failure) |
original_seen: 우유를 집어서 바구니에 담으세요 (원래 위치) — 성공
original_unseen: 토마토 소스를 집어서 바구니에 담으세요 (원래 위치) — 실패
shuffled_seen: 우유를 집어 바구니에 놓으세요 (순서 변경 위치) — 실패
shuffled_unseen: 토마토 소스를 집어 바구니에 놓으세요 (순서 변경 위치) — 실패
모델은 프롬프트와 객체 위치가 훈련 분포와 정확히 일치하는 기준선(baseline) 조건에서만 성공합니다. 프롬프트나 객체 위치 중 어느 하나라도 변경되면—비록 목표 객체가 여전히 장면에 존재하더라도—완전한 실패를 초래합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기




