며칠 전, @NeurIPSConf에서 2025 BEHAVIOR Challenge에서 1위를 차지한 솔루션을 발표했습니다. 이제 코드, 모델 가중치, 그리고 자세한 기술 보고서까지 모두 오픈소스로 공개했습니다. 우리가 한 일을 설명해보겠습니다 👇
BEHAVIOR 챌린지란 무엇인가요? 이 대회에서 우리는 고품질 시뮬레이션에서 50가지의 로봇 가사일을 완료할 수 있는 정책을 훈련해야 했습니다. 이 정책은 모바일 기반을 갖춘 양손 인간형 로봇을 제어하며, 작업 범위는 1분에서 14분입니다. 자세한 내용은 @drfeifei 게시물에서 확인하세요. https://t.co/jDviv5d6pB
저, @zaringleb, @akashkarnatak으로 구성된 저희 독립팀은 26%의 q-점수(완전한 성공과 부분적인 성공 포함)로 1위를 차지했습니다.
저희 솔루션은 @physical_int Pi0.5 VLA를 기반으로 하며 openpi repo를 기반으로 구축되었습니다. 우리는 모델과 훈련 및 추론 프로세스를 대폭 수정했습니다.
- BEHAVIOR는 50개의 고정된 작업 집합을 갖습니다. 새로운 텍스트 프롬프트에 일반화할 필요가 없으므로 텍스트를 완전히 제거하고 50개의 학습 가능한 작업 임베딩(작업당 하나씩)으로 대체했습니다. - 훈련 데이터 세트에는 여러 가지 모달리티(RGB, 깊이, 분할)와 추가 하위 작업 주석이 포함되어 있지만, 우리는 간단한 접근 방식, 즉 RGB 이미지 + 로봇 상태만을 고수했습니다. - 30단계 액션 청크(1초)를 예측하고 타임스탬프별 정규화를 적용한 델타 액션을 사용합니다.
많은 프레임이 똑같아 보이지만 매우 다른 하위 작업에 해당합니다. 예를 들어, 다음 두 이미지에서 한 이미지는 전자레인지가 비어 있어서 로봇이 먼저 전자레인지를 열어야 합니다. 다른 이미지는 팝콘이 이미 안에 있어서 전자레인지를 켜야 합니다. 어느 것이 맞는지 맞혀 보세요. 로봇에게도 혼란스럽습니다. 기본적으로 VLA는 메모리가 없어서 다음에 무엇을 해야 할지 정확히 알 수 없습니다.
이 문제를 해결하기 위해 작업 완료 진행 상황을 추적하는 매우 기본적인 시스템 2 논리를 추가했습니다. - VLA를 보조 헤드로서 현재 단계를 예측하도록 훈련합니다. - 동시에, 이 단계를 사용하여 현재 프레임의 모호성을 해결할 수 있습니다. - 추론하는 동안 투표 논리를 사용하여 단계 예측을 원활하게 진행합니다. 단계는 단계별로만 진행될 수 있습니다(0, 1, 2, 3, ...). - 우리는 무대를 모델에 추가 입력으로 다시 공급합니다. 이렇게 하면 정책에 추가적인 작업 진행 맥락이 제공되고 "내가 어디에 있는지 잊어버렸어요"라는 오류가 많이 해결됩니다.
VLA 논문마다 액션 헤드를 VLM 계층에 연결하는 방식이 다릅니다. 모든 VLM 계층에 적용되는 논문도 있고, 절반만 건너뛰는 논문도 있으며, 마지막 계층에만 적용되는 논문도 있습니다. 때로는 교차 어텐션과 셀프 어텐션을 별도로 사용하기도 하고, 때로는 두 가지를 혼합하여 사용하기도 합니다. 이러한 옵션 중 하나를 선택하여 하드코딩하는 대신, 모델이 각 액션 계층에 가장 적합한 조합을 학습하도록 합니다. 당사의 액션 전문가는 모든 VLM 계층의 훈련 가능한 선형 조합을 처리하여 각 액션 계층에 대한 최적의 조합을 학습할 수 있습니다.
표준 흐름 매칭은 iid 가우시안 노이즈를 사용합니다. 그러나 로봇 동작은 시간 경과에 따라 그리고 관절 간에 높은 상관관계를 보입니다. 이로 인해 흐름 매칭 단계의 난이도가 불균등해집니다. 첫 번째 단계는 훨씬 어렵고, 나중 단계는 모델이 알려진 상관관계를 단축키로 사용할 수 있기 때문에 훨씬 쉽습니다. 대신, 데이터셋에서 추정된 동작 공분산 행렬인 Σ(0, I) 대신 N(0, 0.5 Σ + 0.5 I)의 노이즈를 사용합니다. 이는 모든 단계의 난이도를 보다 균일하게 만들기 위한 것입니다.
VLM 부분은 가장 무겁고 결정론적입니다. 흐름 매칭 액션 전문가는 상대적으로 작지만, 학습은 t와 노이즈라는 두 가지 확률 변수에 의존합니다. 결국 액션 전문가의 노이즈가 포함된 그래디언트는 VLM 부분으로 다시 흐릅니다. 이를 개선하기 위해 15개의 서로 다른 (t, 노이즈) 쌍을 추출하고 각 VLM 순방향 패스마다 액션 전문가를 15번 실행합니다. 이 방법은 약간의 추가 계산량만 사용하지만 액션 전문가의 그래디언트를 더 안정적으로 만듭니다.
추론 과정에서 완전히 독립적인 액션 청크를 예측하면 정책의 궤적이 갑자기 바뀌거나 우유부단한 행동이 발생할 수 있습니다. 이를 해결하기 위해 인페인팅을 통해 모든 청크를 연결했습니다. - 우리는 한 번에 30개의 행동을 예측하지만 26개만 실행합니다. - 나머지 4개는 다음 예측을 위한 초기 입력으로 사용됩니다. - 다음 30개를 예측할 때, 우리는 이전에 저장된 것과 매우 가깝도록 처음 4개의 동작을 부드럽게 칠합니다. - 동작 간의 상관관계를 보존하기 위해 학습된 상관관계 행렬을 사용하여 수정 사항을 나머지 수평선으로 전파합니다. 결과: 뚜렷한 불연속성 없이 원활한 로봇 궤적을 생성합니다.
우리는 모델 예측보다 조금 더 빠르게 진행하는 것이 종종 도움이 된다는 것을 발견했습니다. 움직임의 정확도는 떨어지지 않고, 로봇의 속도를 높이고 같은 시간 안에 더 많은 작업을 수행할 수 있게 해줍니다. 요령은 간단합니다. 26개의 동작을 3차 스플라인 보간법을 사용하여 20개로 압축한 다음, 20단계로 실행하면 됩니다. 이렇게 하면 속도가 1.3배 향상됩니다.
이 문제에 대한 학습 데이터 세트는 매우 깔끔합니다. 실패 사례도 없고 복구 시연 사례도 없습니다. 로봇 정책에서는 단순한 실수에서도 복구 방법을 학습할 수 없기 때문에 이는 문제가 됩니다. 흔한 패턴 중 하나는 로봇이 물체를 집으려다 실패하고 그리퍼를 닫는 것입니다. 그런 다음 로봇은 그 자리에 서서 아무것도 하지 않습니다. 그리퍼를 열고 다시 시도할 수 있다는 사실을 모르기 때문입니다. 이 작업 및 단계에 대한 어떤 시연에서도 그리퍼가 닫히지 않았던 구성에서 그리퍼가 닫히면 그리퍼를 여는 간단한 휴리스틱을 구현했습니다. 이 간단한 규칙은 저희 소규모 연구에서 일부 작업의 q 점수를 약 두 배로 높였습니다.
하지만 때로는 다중 작업 훈련에서 자연스럽게 회복 행동이 나타나기도 했습니다. 첫 번째 영상에서는 하나 또는 몇 가지 작업으로만 학습된 정책의 일반적인 실패 동작을 확인할 수 있습니다. 만약 정책이 실수를 하면(예: 바닥에 그림을 떨어뜨리는 경우) 완전히 멈추고 아무것도 하지 않습니다. 왜냐하면 학습 데이터에서는 그런 상황이 발생하지 않았기 때문입니다. 두 번째 영상에서는 50개 작업 모두에 대해 학습된 정책의 복구 동작을 볼 수 있습니다. 바닥에서 물건을 집어 올려야 하는 다른 작업들을 살펴본 후, 이 상황에도 일반화하여 떨어진 그림을 집어 올립니다.
이 대회에서는 컴퓨팅 리소스가 필수적이었습니다. 전체 학습 데이터셋은 1,000시간 이상의 원격 조작 데이터이며, 8개의 H200 GPU에서 한 에포크(epoch)를 처리하는 데 약 2주가 소요됩니다. 저희는 약 30일 동안 정책을 학습했으며, 이는 약 2 에포크에 해당합니다. 이것이 가능해질 수 있도록 GPU 크레딧을 후원해 주신 @nebiusai에게 매우 감사드립니다.
우리는 1위를 차지했지만, 여전히 개선의 여지가 크다고 믿습니다. 우리는 26%의 q 점수와 11~12%의 이진 성공률을 달성했습니다. 이 정책이 여전히 실패하는 주요 이유는 다음과 같습니다. - 손재주 문제(잡기, 놓기) - 긴 시퀀스의 진행 오류 - 유통 불가 상태에 진입한 후 혼란스러워짐
우리는 솔루션의 모든 것을 오픈 소스로 공개했습니다. 코드, 모델 가중치, 자세한 기술 보고서 등입니다. 코드: https://t.co/LLSd6VtbaE 무게: https:/github.com/IliaLarchenko/…고서: https:/huggingface.co/IliaLarchenko/…더 자세한 내용을 담은 영상arxiv.org/abs/2512.06951











