CoDA가 데이터 엔진과 정책을 함께 진화시켜 로봇 OOD 성공률을 높인다
CoDA: Co-Evolution of Data Engines and Action Policies
무엇인가
생성형 시뮬레이션이 로봇 조작 환경을 자동으로 만들어 주지만, 물리적으로 타당한 환경이 학습에 유용한 환경이라는 보장은 없다. 논문이 던지는 질문은 두 가지다. 다음에 어떤 환경을 만들어야 정책의 실패를 건드릴 수 있는가, 그리고 그 실패를 극복하게 하려면 어떤 감독 신호를 줘야 하는가. 기존 엔진은 사람이 정한 범위에서 변주를 샘플링하거나, 장면이 물리적으로 타당해질 때까지 다듬거나, 태스크별 성공률로 예산을 배분한다. 이 신호들은 환경이 유효한지와 현재 정책이 얼마나 잘하는지는 알려주지만, 학습을 통해 정책이 얼마나 나아지는지는 측정하지 않는다. 그래서 생성기는 이미 정복한 환경이나 아직 배울 수 없는 환경에 예산을 낭비하기 쉽다.
어떻게 동작하나
CoDA는 데이터 생성기와 행동 정책이 공유하는 이종 메모리로 이 루프를 닫는다. 메모리는 언어 에이전트 메모리의 episodic–semantic–procedural 구성을 따른다. episodic 계층은 장면 프로그램 g, 검증기 ν, 생성 트레이스(위반된 제약과 검증 결과), 배포된 환경의 N회 롤아웃 성공률 p̂(s)와 학습 진전 LV(s)를 append-only로 기록한다. semantic 계층은 이 기록을 요인–단계 쌍 (δ, p)와 진단 원인 유사도로 온라인 클러스터링해 재사용 가능한 난이도 모드 K_j로 추상화한다. 각 모드는 경도(정책 성공률, 낮을수록 어려움)와 중요도 w_j(모드 수준 학습 진전으로 갱신되는 점수)로 특징지어지고, 대조 배치로 검증된 모드만 procedural 계층으로 컴파일된다. procedural 계층은 같은 모드를 두 갈래로 만든다. 생성 프로그램 Ω는 진단된 장면 조건을 재현·변주하는 방법을, 훈련 프로그램 Φ는 하위 목표 분해·포텐셜·학습 도구로 정책 실패를 다루는 방법을 담는다. 장면은 s = (τ, σ, α)로 인수분해된다. τ는 목표 술어·지시·초기 및 최종 객체 상태, σ는 포즈·지지와 포함 관계·간격·가림, α는 형상·스케일·질량·마찰·관절·외형이다. SDK가 set_task, set_layout, set_attributes로 각 요인을 노출하므로 한 요인만 다시 샘플링하고 나머지를 고정할 수 있다. 이 인수분해가 비전-언어 비평가의 진단, 엔진의 개입, 생성 프로그램의 적용 조건에 공통 표현을 제공한다. 진단은 ψ = (δ, p, c, e)로, δ ∈ {task, spatial, attribute, execution}이 귀속 요인, p가 궤적 단계, c가 원인 서술, e가 근거다. 운동 실행 실패는 장면 요인과 분리해 기록한다.
무엇과 다른가
매 라운드 메모리는 경도와 관측된 학습 진전에 기반한 upper-confidence 규칙으로 난이도 모드에 생성 예산을 배분하고, ε 비율은 새 환경에, 별도 replay 비율은 이전 모드 재방문(성능 퇴행 탐지)에 남긴다. 선택된 모드마다 해당 요인을 변주한 targeted 배치와 다른 요인을 변주한 control 배치를 만들어 검증한 뒤 현재 정책을 평가한다. targeted 변주에서 성공률이 control보다 낮을 때만 그 모드가 재사용 가능한 생성·훈련 프로그램으로 컴파일된다. 생성 프로그램은 장면 조건을 상징적 객체 역할로 표현하므로, 새 장면의 객체에 역할을 배정해 태스크 패밀리를 넘어 재사용할 수 있다. 검증을 통과한 변주에서는 스크립트 플래너도 시도하고, 성공 술어 ν를 만족한 궤적은 시연 D_t로 남겨 추가 모방 감독으로 쓴다.
어떻게 쓰나
Text2potential은 검증된 실패 진단을 시뮬레이터 상태 위의 포텐셜로 컴파일한다. R_hone: (ψ, g, Φ_j) → (g_1:m, done_1:m, φ_1:m, tool_1:m). 진단된 단계 p에서 태스크를 m개 하위 목표로 쪼개고, 각 하위 목표에 완료 술어 done_k, 진행도 φ_k ∈ [0,1), 학습 절차 tool_k를 붙인다. 마지막 완료 술어는 태스크 검증기와 동일하다(done_m ≡ ν). 완료 술어는 누적으로 설계되어 앞 하위 목표가 뒤 단계에서도 만족 상태로 남는다. k*(s) = Σ done_k(s)로 만족된 하위 목표 수를 세고, staged potential Φ(s)는 k*(s) < m이면 k*(s) + φ_{k*+1}(s), k*(s) = m이면 m이다. 컴파일러는 구문 검사와 롤아웃 상태에 대한 런타임 검사를 거치고, 오류는 컴파일러로 되돌려 수리한다. 정책 학습은 액션 청크 위의 가치 비평가 Q_φ(o_t, a_{t:t+h})를 h-step TD 목표로 학습한다. 포텐셜 기반 셰이핑 r̃_t = r_t + β[γΦ(s_{t+1}) − Φ(s_t)]을 청크 길이 h로 합치면 셰이핑 항이 βγ^h Φ(s_{t+h}) − βΦ(s_t)로 정리되어, 포텐셜 평가가 청크 양 끝점에서만 필요하다. 목표값은 y_t = Σγ^i r_{t+i} − βΦ(s_t) + γ^h[βΦ(s_{t+h}) + Q̄_φ(o_{t+h}, a_{t+h:t+h+h})]이고, 성공적 완료 시에는 끝점 포텐셜 항과 부트스트랩을 모두 생략한다. 실패 롤아웃은 희소 보상이 0이지만 셰이핑 목표는 0이 아닐 수 있다. 가치 비평가는 [−β m_max, 1] 범위의 범주형 가치 회귀로 학습된다. 정책은 advantage-weighted regression으로 갱신한다. L_π = E[e^{A/λ} ℓ_BC], A(o,a) = Q_φ(o,a) − (1/j)Σ_{a'~π} Q_φ(o,a'). 이 가중치는 액션 밀도 평가가 필요 없어 이산·플로매칭·확산 정책의 지도 손실에 그대로 적용된다. 고정되고 유계인 포텐셜과 적절한 종단 상태 처리를 가정하면 포텐셜 기반 셰이핑은 원래 태스크 수익을 최대화하는 정책을 보존한다. A_Φ = (Q − βΦ) − (V − βΦ) = A로 액션 어드밴티지가 변하지 않기 때문이다. 다만 이 성질은 정확한 값에 관한 것이고, 학습된 비평가와 정책에 미치는 영향은 이후 정책 진전으로 평가한다.
전제와 한계
라우팅과 스케줄링은 다음과 같다. 훈련 프로그램은 해당 난이도 모드에서의 정책 개선으로 평가하고, 컴파일된 포텐셜이 있을 때와 없을 때의 가치 비평가 수렴 속도를 비교한다. 수렴 속도 개선이 없으면 비평가가 진단을 다시 보고 R_hone이 하위 목표 분해를 수정한다. 하위 목표별 학습 절차는 정책 성공률로 고른다. 성공률이 0에 가까우면 플래너 시연 D_t로 행동 복제, 목표 밴드 안이면 Text2potential 셰이핑, 밴드 위면 주기적 재평가로 퇴행을 감지한다. 밴드 안에 드는 하위 목표가 하나도 없으면 그 모드를 데이터 엔진으로 되돌리고 이후 예산 배분에서 중요도를 낮춘다. 라운드마다 B개의 targeted 환경과 대조군을 생성하고, 유효 환경마다 N회 롤아웃을 모으고, 비평가는 모드당 최대 C개의 실패 롤아웃을 층화 표본으로 본다. 라운드 사이에 가치 비평가 K_Q회, 정책 K_π회 갱신한다. 성공 밴드 안에 남은 난이도 모드가 8개 미만이거나 학습 진전이 2k 정책 갱신 스텝 동안 정체하면 새 생성 라운드가 발동하고, 밴드에 남은 모드가 없거나 생성 예산이 소진되면 루프가 끝난다.
실험은 네 개 조작 태스크 패밀리와 LIBERO-Pro에서 π0.5를 주 백본으로 수행했다. 비교 대상은 공개 π0.5 체크포인트, 시드 시연에 대한 지도 미세조정, 도메인 랜덤화, 균일 환경 변주(SimFoundry), 성공률 기반 생성이다. CoDA는 네 태스크 패밀리 모두에서 최고 OOD 성공률을 기록했고 평균 27.6%로, 성공률 기반 생성 18.1%, 메모리 없는 비평가 19.2%, 균일 생성 8.5%, 도메인 랜덤화 7.9%를 앞섰다(각각 9.5%p, 8.4%p 개선). 5라운드에서 15라운드로 늘리면 OOD 성공률이 27.6%에서 42.1%로 올랐고, 메모리를 제거하면 진전이 일관되지 않아 성공률이 두 번 일시 하락했다. LIBERO-Pro에서는 소스 태스크의 생성 변주로 학습해 5라운드에 위치 교란 82%, 지시 교란 72%를, 15라운드에 84%와 76%를 달성했다. 초기 π0.5 체크포인트는 각각 25%와 1%였다. 15라운드 모델은 ASPIRE를 전체 기준 7%p, 9%p 앞서고 두 교란 조건 모두에서 Goal·Spatial 스위트 최고 성능을 냈지만 Object 스위트에서는 ASPIRE가 여전히 강했다. 표준 LIBERO 성능은 97.4%로 적응 전 97.1%와 비슷하게 유지됐다.
절제와 전이 실험도 있다. 진단 비평가를 GPT-5.5에서 Claude Opus 5, InternVL3-78B, Qwen3-VL-235B로 바꾸면 OOD 성공률이 27.6%에서 26.1%, 25.7%, 24.9%로 소폭 낮아졌고, 사람 주석자와 일치도가 낮은 모델일수록 대조 검사에서 거부되는 진단이 많았다. 그래도 네 모델 모두 성공률 기반 생성 베이스라인을 앞섰다(Qwen3-VL-235B도 6.8%p 초과). Text2potential은 고정 훈련 예산에서 27.6%로 희소 태스크 보상만 쓴 22.3%를 앞섰고, 25% OOD 성공률에 21k 정책 갱신이 걸려 희소 보상의 31k보다 약 32% 적은 갱신을 요구했다. 태스크 설명에서 포텐셜을 만들면 24.6%, 정련을 끄면 26.1%, 정책을 동결하고 가치 비평가로 액션 청크만 고르면 21.4%였다. π0.5로 모은 메모리를 재사용하면 추가 환경 생성 없이 OpenVLA-OFT의 OOD 성공률이 3.8%에서 21.1%로 올랐다. 생성 품질은 검증 통과율과 커버리지 엔트로피로, 진단 품질은 타기팅 정밀도·반박률·표본 100건에 대한 주석자 2인 일치도로 측정하며, 비용은 1,000개 채택 환경당 LLM 토큰·시뮬레이션 시간·GPU 시간으로 보고한다고 밝혔지만 해당 수치는 제공된 본문에 제시되지 않았다.
실무에서 이 논문이 주는 시사점은 명확하다. 합성 환경을 무한정 늘리는 대신, 실패 진단을 환경 생성과 보상 설계의 공통 키로 쓰고 학습 진전으로 예산을 재배분하는 구조를 그대로 가져올 수 있다. 특히 포텐셜 기반 셰이핑을 청크 단위 가치 학습에 얹으면 희소 성공 신호만 쓸 때보다 갱신 횟수를 약 32% 줄이면서 OOD 성능을 올릴 수 있고, 메모리를 백본 간에 재사용하면 새 환경 생성 없이도 정책을 끌어올릴 수 있다는 점이 실용적이다. 다만 저자들이 명시한 전제를 확인해야 한다. 정책 보존 성질은 고정되고 유계인 포텐셜과 적절한 종단 상태 처리를 가정한 정확한 값에 관한 것이며, 학습된 비평가와 정책에 미치는 영향은 별도로 경험적으로 평가된다. 또한 진단 비평가의 품질이 결과에 영향을 주고, 라운드가 거듭될수록 남은 난이도 모드가 줄어 개선폭이 작아진다. 제공된 본문에는 별도의 한계 절이 없고, 비용 수치와 부록 실험은 참조만 되어 있다.