2 minute read

Background

최근에 robotic policy을 학습하기 위해서 처음부터 학습하지 않고 Vision language model을 Vision language action이 되도록 만드는 방법을 사용하는 추세이다. 하지만 현재 VLA들은 parameter 수가 많고 학습 비용이 크다. 또, 산업 dataset에 의존하기 때문에 실제 상황에 적용하기에는 부적합하다.

따라서 본 논문은 community data으로 학습을 하고, 가볍고, 효과적인 VLA을 제시한다.

SmolVLA

SmolVLA는 pretrained VLM의 head에 flow matching으로 학습된 action expert가 붙은 구조를 지닌다. 그래서 여러 images와 언어로 된 지시사항이 들어왔을 때, VLM이 이 multimodal 정보를 학습하고 action expert가 현재 상황과 지시에 알맞은 action을 출력할 수 있다.

Pretraining을 community collected datasets에 대해서 imitation learning으로 한다.

Imitation learning은 전문가의 행동을 따라하면서 다양한 상황에 적응하고 판단할 수 있도록 하는 ML 기법이다.

SmolVLA 구조

전체적인 구조

VLM은 encoder의 일종으로 sensorimotor의 상태 정보, RGB 카메라 정보, 언어 지시사항을 처리한다. VLM이 정보를 처리해서 얻은 feature를 output하면 action expert의 입력으로 들어가면서 현재 상태와 task에 적절한 continuous action을 출력하는 것이다.

VLM이 feature을 얻을 때, image 정보들은 vision encoder로 얻고 (여기서 논문은 token 수를 줄이기 위해서 token shuffling 방법을 사용한다), 언어로 된 지시사항은 text token들로 변환되고 sensorimotor 상태 정보는 text token dimension에 맞게 linear layer을 거쳐서 하나의 token으로 변환된다. 이 token들은 language decoder 입력으로 concat 되어서 들어가고 이 결과는 action expert의 입력으로 들어가는 것이다.

Feature projectors

SmolVLA에서는 feature projector을 자주 사용하는데 VLM의 입력 차원, action expert의 action 입력 차원, 그리고 VLM의 차원을 action expert 입력 차원을 맞추기 위해서이다.

Visual tokens reduction

VLM의 기본 추론 cost는 높다. SmolVLM-2는 image tiling을 사용하는데 image tiling이란 사진에서 여러 crop과 global image을 얻어서 이미지를 처리하는 것이다. 이 과정은 cost가 높기에 SmolVLA에서는 생략한다.

Faster Inference through layer skipping

최근 연구들에서 model을 사용할 때 꼭 모든 layer을 사용해야 최선을 결과를 얻는 것이 아니라는 것을 보여준다. SmolVLA는 이 정보를 활용해서 추론 속도를 높이기 위해 action expert와 VLM의 layer의 일부만 활용한다.

Flow matching action expert

Action expert $v_{\theta}$는 VLM features가 주어졌을 때 action chunk $A_t = (a_t, \ldots, a_{t+n})$을 출력하는 모델이다. 이전 연구들과 비슷하게 transformer 기반을 사용하지만 cross-attention (CA)과 self-attention layer (SA)를 interleave하게 사용하여 성능을 높였다.

CA와 SA interleave: Action expert 내부의 cross-attention에서는 action token이 query, VLM features가 key와 value 형태로 작동하고 self-attention에서는 causal하게 action token끼리 attend한다. CA와 SA를 interleave하는 것은 실험상 더 빠르고 성능이 좋기 때문이다.

Pretraining Data collection by community

Robotics에 주로 사용되는 데이터 (academic)는 LLM 학습 데이터와 양이 크게 차이 나는데 그 이유는 dataset 간에 차이가 크고 사람의 teleoperation에 의존하기 때문이다. 또, academic data들은 정해진 protocol을 사용하는데 로봇, 센서, 등등 간의 차이가 나기 때문에 데이터셋을 바로 적용하기가 어렵다.

Community dataset은 반면에 로봇 embodiment, 카메라 시점, task 등이 다양해서 적용하기 좋다. 또, 전문적이지 않은 사람들이 직접 모은 것이기 때문에 noise가 존재하는데 이런 noise는 실제 상황에 부합하는 noise을 가졌다고 볼 수 있다. 이런 데이터셋은 generalization에 중요한 pretraining data를 구성하기 좋은 특징을 가진다.

하지만 community dataset은 task annotation에 무엇을 하는 것인지, 무엇을 하려고 하는 것인지가 명확하지 않은 경우가 많다. 따라서 task annotation은 VLM을 사용해서 따로 하였다.

Asynchronous inference

보통 로봇을 동작시키면 action expert는 observation $o_t$가 주어졌을 때 $n$개의 low-level commands $A_t = (a_t, \ldots, a_{t+n})$을 출력한다. 그리고 로봇이 $A_t$를 다 수행해야 새로운 observation $o_{t+n}$이 생기고 이를 바탕으로 다시 추론한다. 하지만 새로운 observation은 $n$개의 행동이 모두 끝나야 생기고, 이 새 observation을 처리하는 동안에는 로봇이 아무 행동을 하지 못한다는 점에서 즉각적인 대응이 어렵다.

SmolVLA는 즉각적이고 빠른 반응이 가능하도록 처음에 $n$개의 action을 받았을 때 $k$개($k \leq n$)의 action을 수행할 때마다 새로운 observation을 얻게 하고, 이 새로운 observation을 바탕으로 또 새로운 actions를 생성하도록 해서 각 timestep마다 여러 actions가 생기도록 했다. 각 timestep마다 가장 최근에 생성된 action은 가장 최근 observation을 기반으로 생성된 것이기에 최근 action만 사용해서 그 timestep의 action으로 만든다.

joowan1108

Experiments

나중에