VLA에도 관측/행동의 구현 차이가 있다
VLA는 영상/언어를 행동 예측에 연결하는 계열이지 하나의 고정 API가 아니다. 원 OpenVLA는 VLM 표현을 로봇 행동 자료에 연결하고 토큰화한 행동을 예측하는 예다. SmolVLA는 영상/언어와 robot state 등의 조건을 action expert에 연결해 연속 행동을 생성한다. 이름에 VLA가 같다는 이유로 두 모델에 같은 입력 dict/정규화와 제어기를 연결하지 않는다.
OpenVLA 저자 repo와 openvla-7b model card는 원 모델의 영상/언어 입력과 정규화 행동을 설명한다. 원 공개 모델의 7개 출력(x,y,z,roll,pitch,yaw,gripper)은 공구의 이동/회전과 그리퍼 성분이지 팔 관절 7개의 각도를 뜻하지 않는다. 로봇/데이터셋의 통계와 좌표·적용 규약을 복원해야 실제 제어기에 연결할 수 있다.
OpenVLA-OFT 같은 후속/적응 방식과 FAST 같은 별도 행동 토큰화 방법은 원 모델과 입력/출력·학습/추론 계약이 달라질 수 있다. 원 OpenVLA의 개별 성분 토큰 예를 이들 방식 전체의 공통 구조라고 부르지 않는다. 표준 라이브러리의 model 이름이 비슷해도 revision·config·전후처리와 실제 반환값을 확인한다. 여기서는 원 토큰 방식과 SmolVLA의 연속 방식의 개념을 비교한다.
영상·언어·state의 역할을 섞지 않는다
영상은 물체/배경·접촉 상태의 단서를 주고 언어는 무엇을 하려는지 조건을 준다. robot state는 관절/그리퍼 등 현재 상태의 명시 표현일 수 있다. 모든 VLA가 같은 state/history·카메라 수를 받는 것은 아니다. 언어가 자연스러워도 현재 물체 ID/좌표나 도달·파지를 자동 검증하지는 않는다.
그림 M22.04-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
SmolVLA base model card와 현재 구현은 다중 영상·state/언어 조건과 연속 action expert/flow matching을 설명한다. 카메라 이름을 바꾸는 rename은 시점 의미를 바꾸지 않는다. top 영상을 wrist라는 키로 옮겨 shape만 맞추면 잘못된 입력이 된다. 색/크기·resize/crop·정규화, 관절/그리퍼 순서/단위와 mask를 맞춘다.
관측 취득/수신·보간과 입력 기준 시각도 고정한다. 영상과 state가 다른 장면/시각이면 멀티모달이라는 말로 정합 오류가 해결되지 않는다. 개입/클러치·공구/episode가 바뀌면 과거 context/출력 큐를 재사용할지의 정책이 필요하다. 언어 지시가 바뀐 뒤 과거 지시에서 생성한 행동을 계속 보내는 상황도 기록/처리한다.
행동 토큰은 물리 숫자와의 대응 규칙이 필요하다
토큰화는 연속 수치를 정해진 유한 기호로 바꾸는 방법이다. 기호 ID 자체가 m/rad나 모터 번호는 아니다. 원 OpenVLA의 토큰과 실제 vocabulary/bin 수는 해당 구현에서 확인한다. 다음은 원리를 보이는 별도 4구간 교육용 tokenizer이며 실제 OpenVLA token ID/해상도나 성능을 재현하지 않는다.
정규화 값 z의 범위를[−1,1]로 두고 경계를−1/−0.5/0/0.5/1로 나누자. 구간 중심은−0.75/−0.25/+0.25/+0.75다. 각 구간에 ID 0/1/2/3을 부여하고, 내부 경계는 오른쪽 구간/마지막 1은 마지막 구간에 넣는 규칙을 정한다. decode는 해당 중심값을 돌려준다. z=0.4는 구간[0,0.5)의 ID 2로 가서 0.25가 된다. 오차는−0.15다.
이번 한 성분을 공구 병진 증분 δx(m)라고 하고 물리 범위를−0.02~+0.02 m로 정하자. 정규화는 z=δx/0.02, 역변환은 δx=0.02z다. 원 δx=0.008 m는 z=0.4/ID 2/복원 0.005 m로 3 mm 작아진다. 범위 안에서 구간 폭은 0.5이므로 중심 복원의 최대 절대 정규화 오차는 0.25, 물리 오차는 0.005 m다. 이것은 이번 매우 거친 4bin의 상한이며 실제 VLA 오차의 보장이 아니다.
원 값이 0.03 m면 범위 밖이다. clip을 허용해 z=1로 만든 뒤 마지막 중심 0.75로 복원하면 0.015 m이고 원 값과 15 mm 차이다. 범위 안의 5 mm 상한을 여기에 적용할 수 없다. 범위 밖/clip 발생과 원 값·복원 값을 기록하고 단위/통계·허용 동작을 재확인한다. 그리퍼는 개폐/정규화·방향이 별도여서 동일한 m 변환을 적용하지 않는다.
연속 action expert도 복원/검사를 거친다
SmolVLA의 연속 행동은 이런 개별 scalar bin 토큰의 중심을 선택하는 방식과 다르다. 조건부 flow matching은 noise와 데이터 행동 사이를 잇는 생성 경로에서 변화 방향을 학습하고, 그 방향에 따라 수치적으로 행동 표본을 갱신하는 접근이다. 모델의 정확한 path/진행 방향·solver와 통계는 해당 config/code로 확인한다. 모델 안의 언어/영상 토큰과 출력 action의 연속성을 구분한다.
직관용 독립 예에서 단위 없는 생성 변수 s를 0→1로 진행하고 x=0.1에서 데이터 행동 0.5로 선형 이동한다고 하자. 변화 방향 v=dx/ds=0.4다. Δs=0.5의 갱신 x←x+Δs v를 두 번 적용하면 0.3→0.5다. 이 두 갱신은 생성 좌표의 계산이며 물리 로봇을 두 제어 주기 진행한 것이 아니다. 실제 SmolVLA sampler를 실행한 결과도 아니다.
연속 출력이라고 양자화/모형 오차·분포 이동이 없는 것도 아니다. action 차원/정규화·절대/상대 기준과 TCP/IK·관절 범위/속도/충돌/그리퍼를 검토한다. 시연 데이터에 맞춘 동작 단위와 다른 로봇의 단위를 이름만으로 호환 처리하지 않는다. 적응/파인튜닝을 했어도 새로운 조건의 별도 평가가 필요하다.
모델이 돌아가도 출력이 제때 유효한지 확인한다
합성 추론 180 ms/후처리 20 ms면 준비 시간은 200 ms다. 관측 기준 t0부터 20 ms 간격으로 적용하도록 계약한 H=10의 목표 시각은 t0~t0+180 ms다. 결과가 t0+200 ms에 도착하면 이번 계약에서는 모든 목표의 예정 시각이 지났다. H가 길다는 사실만으로 오래된 목표를 새 명령처럼 사용할 수 없다. 적용 시작을 뒤로 미루는 것도 원래 학습/환경의 지연 가정과 다른 계약일 수 있다.
이는 특정 VLA의 측정 지연이나 기본 scheduling을 주장한 예가 아니다. 비동기/큐를 사용할 때도 관측 나이·예정 적용/만료와 지난 원소·전환 정책을 정한다. 실제 모형/장치·입력/출력 길이에서 메모리/지연 분포·행동 품질과 실패/개입을 함께 측정한다. token/s와 action Hz도 어떤 성분/출력 묶음을 세었는지 정의한다.
모델 배포 조건도 artifact별로 확인한다. OpenVLA repo 코드 LICENSE는 MIT이고 model card에도 MIT 표기가 있지만, 공식 README는 기반 Llama 모델의 조건 상속을 별도로 안내한다. SmolVLA base card/LeRobot 코드는 Apache-2.0으로 안내된다. 코드·가중치 card·기반 모델/데이터 조건과 revision이 모두 같다고 가정하거나 여기서 법적 허용 범위를 추론하지 않는다.
기존 5.6 SmolVLA 구조와 기존 5.9 추론을 연결해 입력/행동의 전후처리와 실행을 더 살펴보자. 기본 활동은 아래 수치만 계산하고 실제 모델을 가져오거나 장비에 전달하지 않는다.