ASPIRE: 스스로 코드를 고치며 스킬을 쌓는 자기개선형 로봇 학습에 대한 연구 (feat. NVIDIA)

ASPIRE 소개

숙련된 로봇 엔지니어가 새로운 작업을 프로그래밍하는 모습을 떠올려 봅시다. 로봇이 물건을 집다 실패하면, 그는 곧바로 코드를 갈아엎지 않습니다. 대신 실행 로그를 되짚어 보고, 카메라가 무엇을 봤는지 확인하고, 팔이 어떤 경로로 움직였는지 살핀 뒤, 정확히 어느 단계에서 무엇이 어긋났는지를 짚어냅니다. 그렇게 쌓인 디버깅 경험은 "이런 상황에서는 이렇게 접근하면 된다"는 재사용 가능한 노하우로 축적되고, 백 번째 작업을 다루는 엔지니어는 첫 번째 작업을 다루던 자신보다 훨씬 능숙해집니다.

이 글에서 소개하는 ASPIRE(Agentic Skill Programming through Iterative Robot Exploration) 는 바로 이 과정을 코딩 에이전트로 자동화한 로봇 지속 학습(Continual Learning) 시스템입니다. NVIDIA GEAR 연구실을 중심으로 미시간대학교(UMich), UIUC, UC 버클리, 카네기멜런대학교(CMU)가 함께 발표한 이 연구는, 로봇 제어 프로그램을 코드-정책(Code-as-Policy) 패러다임으로 직접 작성하고 스스로 고쳐 나가면서, 검증된 수정 경험을 재사용 가능한 스킬 라이브러리(Skill Library) 로 계속 쌓아 올리는 자기개선형 에이전트를 제안합니다.

기존 로봇 학습 접근법과 그 한계

로봇에게 새로운 조작 능력을 부여하는 방법은 크게 두 갈래로 발전해 왔습니다.

첫 번째는 시각-언어-행동 모델(Vision-Language-Action, VLA) 처럼 관측을 곧바로 행동으로 매핑하는 종단간(end-to-end) 정책입니다. OpenVLA, \pi_0 , \pi_{0.5} 같은 최신 모델들이 여기에 속합니다. 이 방식은 강력하지만, 학습 시 보지 못한 물체 배치나 목표, 공간적 변형이 조금만 가해져도 성능이 급격히 무너지고, 지시문을 살짝 바꿔 표현하기만 해도 크게 흔들리는 취약성을 보입니다. 무엇보다 정책이 왜 실패했는지 들여다보고 고칠 수 있는 통로가 사실상 없습니다.

두 번째는 인식, 계획, 제어 API를 조합해 실행 가능한 프로그램으로 로봇 행동을 표현하는 코드-정책 계열입니다. 행동이 명시적인 코드로 표현되므로 원칙적으로는 검사하고 편집하고 디버깅할 수 있다는 장점이 있습니다. 하지만 기존 코드-정책 시스템은 실행 환경이 제공하는 피드백이 너무 거칩니다. 로봇의 실패는 인식 오류, 불안정한 파지(grasp), 계획 실패, 접촉 동역학, 장기 과제 조율 등 여러 요소가 얽혀 발생하는데, 대부분의 시스템은 "이번 작업이 성공했는가 실패했는가" 정도의 과제 단위 신호만 돌려줍니다. 실패했다는 사실은 알아도 그 원인이 잘못된 인식인지, 불안정한 파지인지, 계획 오류인지, 아니면 복구 실패인지를 알 방법이 없는 것입니다. 세밀한 진단 정보가 없으면 에이전트는 어떤 증거를 살펴야 할지, 실패를 어떻게 국소화(localize)할지, 어떤 수정 전략을 시도해야 할지 판단할 수단이 없습니다.

여기에 더해, 기존 시스템은 작업 간에 경험을 축적하지 못합니다. 한 작업을 끝내고 나면 그 과정에서 발견한 수정 방법과 복구 전략은 재사용 가능한 스킬로 정리되지 않고 그대로 버려집니다. 그 결과 논문의 표현을 빌리면 "백 번째 과제를 푸는 에이전트가 첫 번째 과제를 푸는 에이전트보다 조금도 더 노련하지 않은" 상황이 반복됩니다.

ASPIRE의 발상 전환

ASPIRE는 이 고정된 피드백 통로 자체를 개방형 디버깅 환경으로 바꿉니다. 정해진 인식-계획-실행 파이프라인 안에서만 움직이는 대신, 에이전트가 스스로 어떤 실행 흔적을 들여다볼지, 실패를 어떻게 진단할지, 어떤 수정을 합성할지, 그리고 고친 동작이 실제로 잘 작동하는지 어떻게 검증할지를 결정하는 개방형 학습 루프(open-ended learning loop)로 동작합니다.

이를 위해 ASPIRE는 세 가지 구성요소를 맞물려 놓았습니다. (1) 각 원시 동작(primitive)마다 세밀한 다중모달 실행 흔적을 노출하는 로봇 실행 엔진, (2) 검증된 수정을 재사용 가능한 지식으로 정제해 담는 스킬 라이브러리, (3) 단일 궤적 수정을 넘어 다양한 과제 순서와 제어 프로그램을 탐색하는 진화적 탐색(Evolutionary Search) 입니다. 이 세 요소가 함께 작동하면서, ASPIRE는 더 많은 작업을 겪을수록 스킬 라이브러리가 커지고, 그만큼 새로운 과제로 전이하는 능력이 강해지는 자기개선형 시스템이 됩니다.

실제로 ASPIRE는 여러 벤치마크에서 기존 코딩 에이전트와 VLA를 큰 폭으로 앞섰습니다. 조작 벤치마크 LIBERO-Pro의 교란(perturbation) 과제에서 최대 77 포인트, Robosuite의 양팔 핸드오버(handover) 과제에서 72 포인트, 장기 과제 벤치마크 BEHAVIOR-1K에서 최대 32 포인트를 끌어올렸습니다. 나아가 시뮬레이션에서 쌓은 스킬이 서로 다른 로봇 형태(embodiment)의 실제 로봇으로도 전이되어, 실제 로봇 프로그래밍에 드는 토큰 비용을 크게 줄일 수 있다는 초기 증거까지 제시했습니다.

ASPIRE의 세 가지 핵심 구성요소

코디네이터와 액터로 이뤄진 병렬 학습 구조

ASPIRE는 코디네이터(coordinator)와 액터(actor) 로 구성된 아키텍처를 채택합니다. 중앙의 코디네이터는 공유 스킬 라이브러리를 관리하면서 개별 과제마다 액터 코딩 에이전트를 배정하고, 각 액터는 로봇 실행 엔진 안에서 로봇 프로그램을 작성하고 실행하고 진단하고 수정합니다. 코디네이터가 여러 액터를 병렬로 굴릴 수 있으므로 여러 작업에 대한 학습이 동시에 진행됩니다.

주목할 점은 액터들이 서로의 전체 대화 이력이나 원본 롤아웃(rollout) 궤적을 주고받지 않는다는 것입니다. 대신 전이 가능한 경험은 스킬 라이브러리로 정제되어 공유됩니다. 덕분에 각 액터의 컨텍스트 창은 현재 과제 명세, 현재 프로그램, 그리고 지금 겪고 있는 실패와 관련된 구조화된 실행 흔적에만 집중할 수 있습니다. 경험은 나누되 문맥은 가볍게 유지하는 설계입니다.

로봇 실행 엔진: 원시 동작 단위의 다중모달 흔적

로봇 프로그램을 디버깅하려면 실행 증거가 필요합니다. 기존 방법은 이 증거를 사람이 미리 설계한 고정된 인터페이스, 예컨대 수작업으로 정리한 장면 요약이나 정해진 관측 몇 개로만 제공했습니다. 이 방식은 근본적인 딜레마를 안고 있습니다. 증거가 너무 적으면 실패한 원시 동작을 가려 버리고, 반대로 가공되지 않은 시각 정보가 너무 많으면 실패를 만들어낸 인과 사슬로부터 에이전트의 주의를 흐트러뜨립니다.

ASPIRE의 로봇 실행 엔진은 인식, 계획, 제어의 모든 원시 동작 호출마다 다중모달 흔적(multimodal trace) 을 기록합니다. 각 호출에 대해 어떤 API가 불렸는지, 입력과 출력은 무엇이었는지, 반환 상태가 어땠는지, 그리고 RGB 키프레임, 오버레이(overlay), 파지 후보, 물체 자세, 모션 계획 결과 같은 관련 시각 증거를 함께 저장합니다. 이때 에이전트에게 전체 영상 프레임을 통째로 넘기지 않고, 각 원시 동작 호출 직전과 직후의 프레임 및 해당 오버레이와 반환값만 유지합니다. 실패와 연관된 호출 주변의 증거에 집중할 수 있도록 한 것입니다.

이렇게 기록된 흔적은 에이전트가 실패의 원인을 구체적 신호로 읽어 내게 해 줍니다. 예를 들어 그리퍼를 닫은 뒤 폭이 넓게 남으면 허공을 쥐어 물체를 놓쳤을 가능성이 크고, 적당히 남으면 아슬아슬한 파지, 좁게 닫히면 정상 파지로 해석합니다. 분할 마스크가 0 개로 나오면 인식 프롬프트가 나쁘거나 가림(occlusion)이 있다는 신호이고, 역기구학(Inverse Kinematics, IK) 해가 나오지 않으면 목표가 도달 가능한 작업 공간 밖에 있다는 뜻입니다. 각 원시 동작 호출은 호출된 함수, 인자, 반환값, 소요 시간, 저장된 키프레임까지 담은 구조화된 JSON 로그로 남아, 에이전트가 이런 신호들을 조합해 실패 가설을 세우도록 돕습니다.

위 그림은 BEHAVIOR-1K의 "이동해서 빨간 라디오 집기" 과제를 디버깅하는 한 장면을 보여줍니다. 로봇은 라디오를 찾아내지만 접근에 반복적으로 실패하다가, 접근 방향을 바꾼 뒤에야 성공합니다. 원시 동작 흔적은 실패의 위치를 정확히 짚어 줍니다. 인식은 성공해서 라디오의 자세를 반환하는데, 이어지는 navigate_to_pose 호출이 계속 PLANNING_ERROR 를 돌려주는 것입니다. 에이전트는 내비게이션 반환값과 로그를 확인해, 생성된 이동 목표점이 탁자 경계에서 약 20 센티미터 이내로 너무 가까워 충돌 회피가 발동하고 그 탓에 계획기(planner)가 실패한다는 사실을 알아냅니다. 즉 문제는 라디오를 탐지하거나 파지하는 데 있는 것이 아니라, 탁자의 충돌 제약 아래에서 목표 자세 자체가 실행 불가능하다는 데 있었습니다.

진단이 명확하니 수정도 곧장 따라옵니다. 에이전트는 인식 프롬프트나 파지 원시 동작을 건드리는 대신, 라디오 주변에서 대안이 될 이동 목표점들을 표본으로 뽑아 충돌 버퍼를 벗어나는 접근 방향을 실행하는 다중 각도 접근(Multi-Angle Approach) 루틴을 작성합니다. 실행 엔진은 이 수정된 프로그램을 검증하고, 검증을 통과한 수정은 재사용 가능한 스킬로 라이브러리에 등록됩니다. 이 스킬의 요지는 "계획기가 장애물 경계 근처에서 계획 오류를 반복하면, 인식과 파지를 재시도하기 전에 물체 주변의 대안 접근 방향을 표본으로 뽑아 보라"는 것입니다. 특정 라디오 집기 프로그램 전체가 아니라, 여러 과제에 두루 쓰이는 내비게이션 복구 패턴이 스킬로 남는 것입니다.

스킬 라이브러리: 검증된 수정 지식의 축적

프로그램의 실패는 과제를 넘나들며 반복되지만, 정작 재사용할 가치가 있는 지식은 과제 프로그램 전체인 경우가 드뭅니다. ASPIRE의 스킬 라이브러리는 이질적인 수정 지식을 저장합니다. 위치 추정 휴리스틱, 인식 프롬프트, 파지 제약, 내비게이션 복구 전략, 모션 원시 동작, 장면 이해 루틴, 디버깅 워크플로 등이 모두 여기에 담깁니다. 중요한 점은 이 분류 체계(taxonomy)를 연구팀이 미리 정해 주지 않았다는 것입니다. 스킬은 검증된 수정으로부터 귀납적으로 유도(induce) 됩니다. 코딩 에이전트가 실행 흔적에서 실패를 진단하고, 프로그램을 수정하고, 디버깅 구성에서 그 수정을 검증하면, 코디네이터가 그중 재사용 가능한 패턴만 공유 라이브러리에 받아들입니다.

각 스킬은 컴팩트한 인컨텍스트(in-context) 가이드 형태로 저장됩니다. 실패 시그니처(failure signature), 적용 조건(when-to-apply), 수정 전략, 그리고 필요할 때는 대표 코드 스케치까지 포함합니다. 위 그림에서 볼 수 있듯이, 라이브러리는 위치 추정, 내비게이션, 모션 원시 동작, 물체별 파지, 장면 이해, 디버깅 워크플로 같은 이질적인 범주들로 넓게 뻗어 나갑니다.

각 스킬이 얼마나 구체적인지 몇 가지 예로 살펴보겠습니다. 위치 추정 범주의 "다중 물체 구분" 스킬은 "front bowl"이나 "왼쪽 그릇" 같은 표현이 SAM3 같은 분할 모델에는 아무런 순서 정보를 주지 못한다는 문제에서 출발합니다. 그래서 같은 종류의 물체가 둘 이상이고 지시문에 앞/뒤/왼쪽/오른쪽 같은 수식어가 있을 때, 모든 인스턴스를 검출한 뒤 수식어가 함의하는 축(앞뒤는 로봇 좌표계의 X축, 좌우는 Y축)으로 정렬해 고르라는 전략을 담습니다. 물체별 파지 범주의 "병 파지" 스킬은 와인병처럼 길쭉한 원통형 물체가 그리퍼를 임의의 각도로 닫으면 옆면을 비스듬히 스치며 굴러 나가 실패한다는 시그니처와 함께, 물체의 방향 경계 상자(Oriented Bounding Box, OBB)의 장축에 그리퍼 방향을 맞춰 지름을 가로질러 닫되 절반까지 살짝 닫아 자리를 잡고 70\% 로 고정한 뒤 천천히 들어 올리라는 수정 전략을 제시합니다. 모션 원시 동작 범주의 "밀기(push)" 스킬은 높이 2 센티미터 미만의 얇고 평평한 물체는 집기가 반복 실패하므로, 잡는 대신 바닥면을 따라 미는 2차원 이동으로 문제를 단순화하라고 안내합니다. 앞서 본 다중 각도 접근 스킬 역시 직진과 좌우 45 도, 좌우 90 도의 다섯 접근 각도를 차례로 시도해 가구 사이의 빈틈을 찾으라는 절차를 코드 스케치와 함께 담고 있습니다.

액터는 실패 양상, 검증된 수정, 그리고 전이 가능성이 있는 수정 패턴을 요약한 구조화된 보고를 제출합니다. 코디네이터는 이 보고를 감사(audit)하고, 허용된 API 정책을 준수하는지 확인한 뒤, 디버그 검증을 통과한 재사용 가능한 수정만 공유 라이브러리로 승격시킵니다. 이렇게 정제된 스킬 표현 덕분에 이후의 액터들은 매번 테스트 시점 추론으로 같은 수정을 재발견할 필요 없이 검증된 수정을 그대로 재사용할 수 있고, 이는 더 어려운 시뮬레이션 과제로 제로샷 전이하고 실제 로봇으로 교차 형태(cross-embodiment) 전이하도록 만드는 핵심 메커니즘이 됩니다.

진화적 탐색: 국소 수정 루프를 넘어서

흔적 기반 디버깅만으로는 종종 국소 수정 루프(local repair loop) 에 빠집니다. 에이전트가 근본적으로 다른 해법을 탐색하는 대신, 이미 실패한 전략을 조금씩만 고치는 일을 반복하는 상황입니다. ASPIRE는 진화적 탐색으로 실행 가능한 로봇 프로그램의 탐색 공간을 넓혀, 다양한 수정 가설과 과제 전략을 유도합니다.

각 라운드에서 코딩 에이전트는 스킬 라이브러리를 참고해, 이전에 가장 좋은 성능을 낸 프로그램들과 그 실패 흔적을 조건으로 삼아 K 개의 후보 프로그램 집합을 제안합니다. 각 후보는 로봇 실행 엔진에서 실행되어 과제 결과와 새로운 진단 흔적을 만들어 냅니다. 다음 라운드는 다시 가장 성능이 좋은 프로그램들과 그들에게 남은 실패 양상을 조건으로 삼습니다. 같은 해법을 반복해서 다듬는 대신, 서로 구별되는 전략들을 탐색하도록 유도하는 것입니다.

탐색의 대상은 로봇 프로그램 그 자체입니다. 후보들은 닫힌 루프 실행을 통해 선택되고, 검증된 수정은 탐색이 끝난 뒤 환경 변형과 과제 전반에 걸쳐 일반화된다는 조건 아래 스킬 라이브러리에 등록됩니다. 탐색은 어떤 후보가 디버깅 구성을 해결하거나 탐색 예산이 소진되면 종료됩니다. 이 전체 절차는 논문의 Algorithm 1에 정리되어 있으며, 상위 3개 프로그램(Top3)과 실패 이력을 조건으로 다음 세대를 제안하는 진화 전략을 따릅니다.

진화적 탐색을 국소 수정 루프와 갈라 놓는 핵심 장치는 라운드를 가로질러 유지되는 과제 분석 문서(task_analysis.md) 입니다. 이 문서에는 초기 스냅샷에서 한 번 파악한 장면 정보(물체 형태, 목표 기하, 장애물, 막힌 접근 방향)와 함께, 현재 검증 중인 가설들, 그리고 테스트를 통해 이미 제거된 방향과 작업 공간 제약 때문에 막혔지만 아직 시도하지 못한 방향을 구분한 원장(ledger)이 기록됩니다. 매 라운드가 이 문서를 새 흔적과 키프레임으로 다시 씁니다. 덕분에 이후 라운드는 틀렸다고 판명된 가지를 다시 시도하지 않으면서도, 손목 회전 같은 새로운 기법이 확보되면 이전에 막혔던 가지를 다시 열어 볼 수 있습니다. 또한 한 라운드 안의 후보들은 서로 다른 단계에서 서로 다른 이유로 실패하도록 설계되어, 같은 실패를 중복 탐색하는 낭비를 막습니다.

실험 및 성능 분석

실험 설정과 벤치마크

모든 시뮬레이션 실험에서 코딩 에이전트로는 Claude Opus 4.61M 토큰 컨텍스트 창을 갖춘 Claude Code 를 사용합니다. 에이전트는 CaP-X 라는 오픈소스 코드-정책 프레임워크(MuJoCo Playground 기반) 위에서 인식, 기하, 모션 계획 API를 이용해 실행 가능한 파이썬 로봇 프로그램을 작성합니다. 에이전트, 환경, API 집합은 모든 실험에서 고정됩니다.

평가에는 세 가지 벤치마크 계열을 사용합니다. LIBERO-Pro는 물체, 목표, 공간 교란 아래에서 단기 조작이 얼마나 견고한지를, Robosuite는 접촉이 많은(contact-rich) 단팔 및 양팔 조작을, BEHAVIOR-1K는 절차적으로 생성된 배치에서 이뤄지는 장기 가정 내 이동 조작을 다룹니다. 주요 코딩 에이전트 베이스라인은 시각 차분(visual differencing), 사전 정의된 스킬 라이브러리, 에피소드별 테스트 시점 재시도를 사용하는 CaP-Agent0 이며, 종단간 VLA로는 OpenVLA, \pi_0 , \pi_{0.5} 를 비교합니다.

이 실험에서 놓치지 말아야 할 규칙 하나는 에이전트가 시뮬레이터의 내부 상태에 접근하는 것을 엄격히 금지한다는 점입니다. 물체의 실제 좌표나 물리 엔진의 내부 상태, 숨겨진 성공 판정 술어, 장면 에셋 파일(.bddl, .xml, .urdf)에서 기하 정보를 읽어 내는 API는 모두 차단됩니다. 판단 기준은 명료합니다. 카메라 달린 실제 로봇이 할 수 있는 일이면 허용하고, 물리 엔진의 내부 상태를 읽어야 하는 일이면 금지한다는 것입니다. 에이전트는 오직 관측(RGB, 깊이 영상)과 실행 흔적만으로 실패를 진단해야 합니다. 이 제약은 벤치마크 결과가 시뮬레이터에서만 통하는 편법으로 부풀려지는 것을 막고, 여기서 발견된 스킬이 실제 로봇으로 전이될 수 있는 근거가 됩니다.

평가 방식에서 ASPIRE와 베이스라인의 조건 차이에도 주목할 필요가 있습니다. 모든 벤치마크에서 환경 시드(seed)가 물체 자세, 방해물, 초기 상태를 고정하는데, ASPIRE는 작은 디버그 시드 집합에서만 학습한 뒤 과제당 단 하나의 생성 프로그램을 훨씬 큰 홀드아웃(held-out) 평가 시드에 적용합니다. 이때 평가 시드는 디버깅 중에는 완전히 잠겨 있어, 최종 프로그램이 확정된 뒤 단 한 번만 실행됩니다(2단계 검증). 반면 CaP-Agent0은 시드마다 테스트 시점 추론과 재시도를 동원해 별도의 프로그램을 새로 생성합니다. ASPIRE가 더 불리한 조건에서 평가받는 셈입니다.

주요 평가 결과

위 그래프는 LIBERO-Pro에서의 결과입니다. ASPIRE는 물체(Object), 목표(Goal), 공간(Spatial) 세 가지 교란 유형 모두에서 모든 베이스라인을 앞섭니다. 위치와 과제 교란 축을 평균했을 때, 각 유형에서 가장 강한 베이스라인 대비 물체에서 77\% , 목표에서 41.5\% , 공간에서 42.5\% 의 성능 향상을 얻었습니다. \pi_{0.5} 는 일부 위치 교란에서 OpenVLA나 \pi_0 보다 나았지만 ASPIRE에는 크게 못 미쳤고, 과제 지시문을 바꿔 표현하는 교란(Task)에서는 대부분 0\% 에 가깝게 무너졌습니다. 반면 ASPIRE는 물체 교란의 과제 축에서도 95\% 를 유지하며 견고함을 보였습니다.

접촉이 많은 Robosuite에서는 7개 과제의 평균 성공률을 CaP-Agent0의 68\% 에서 81\% 로 끌어올렸습니다. 특히 양팔 핸드오버 과제에서 20\% 에서 92\% 로 도약한 것이 두드러지고, 쌓기(stack)와 재쌓기(restack)처럼 이미 잘 풀리던 과제의 거의 포화된 성능은 그대로 유지했습니다. 다만 모든 과제가 개선된 것은 아닙니다. 양팔 들어올리기 과제는 74\% 에서 71\% 로 소폭 낮아졌고, 정밀 삽입이 필요한 너트 조립 과제는 0\% 에서 9\% 로 오르긴 했으나 사람 전문가의 80\% 에 크게 못 미치는 난제로 남았습니다. 장기 과제 BEHAVIOR-1K에서는 내비게이션과 과제 성공 모두에서 사람 전문가와 CaP-Agent0을 앞섰는데, "이동해서 라디오 집기" 과제의 과제 단위 성공률을 56\% 에서 88\% 로 높인 것이 가장 큰 향상이었습니다. 여러 과제에서 사람 전문가가 작성한 프로그램의 성능을 넘어섰다는 점이 인상적입니다.

처음 보는 과제로의 제로샷 전이

ASPIRE의 진짜 강점은 축적한 스킬이 처음 보는 과제로 전이될 때 드러납니다. 연구팀은 LIBERO-90에서 쌓은 수정 스킬이 홀드아웃된 LIBERO-Pro Long 장기 과제로 제로샷 전이되는지 평가했습니다. 라이브러리 크기를 N \in \{0, 25, 50, 90\} 으로 바꿔 스냅샷을 만들고(N=0 은 빈 라이브러리), 각 홀드아웃 과제에 대해 추가 디버깅이나 재시도, 과제별 라이브러리 갱신 없이 프로그램 하나를 생성해 여러 시드에서 평가했습니다.

N=90 의 전체 라이브러리를 썼을 때, ASPIRE는 위치 교란 축에서 23\% , 과제 교란 축에서 38\% 의 성공률을 기록하며 두 축 모두에서 CaP-Agent0과 \pi_{0.5} 를 앞섰습니다. 대표적인 미학습 장기 과제에서 ASPIRE가 달성한 31\% 성공률은, 테스트 시점 추론과 재시도에 크게 의존하고도 4\% 에 머문 기존 방법을 크게 웃도는 수치입니다. 게다가 라이브러리 크기가 커질수록 성공률이 꾸준히 올라갔습니다. 이는 단기 과제에서 검증된 수정들이 더 긴 과제 조합에도 재사용 가능한 로봇 지식으로 작동한다는 것을 보여줍니다.

실제 로봇으로의 교차 형태 스킬 전이

시뮬레이션에서 배운 스킬이 형태가 다른 실제 로봇의 디버깅 부담까지 줄여 줄 수 있을까요? 연구팀은 양팔 YAM 조작 스테이션에서 이를 검증했습니다. 이 실험에서는 실제 로봇용 코딩 에이전트로 reasoning-xhigh 모드의 OpenAI Codex GPT-5.5 를 사용했고, Franka 기반 시뮬레이션에서 ASPIRE가 정리한 세 가지 스킬(음료수 캔 집기, 접시 위에 그릇 놓기, 서랍 밀고 당기기)을 인컨텍스트 가이드로 제공했습니다. 실제 로봇은 시뮬레이션과 다른 형태와 API를 쓰므로, 스킬을 그대로 정책으로 배포하는 것이 아니라 실제 실행 피드백을 통해 프로그램을 다시 적응시켜야 합니다.

과제 총 토큰(M) 스킬 없음 → 있음 성공률 스킬 없음 → 있음
접시 위에 그릇 놓기 8.65 \to 5.11 20/20 \to 20/20
음료수 캔 집기 61.94 \to 6.58 13/20 \to 19/20
서랍 열기/밀기 334.9 \to 81.67 0/20 \to 11/20

결과는 전이된 스킬이 디버깅 비용을 일관되게 줄인다는 것을 보여줍니다. 그릇 놓기는 두 조건 모두 성공하지만 스킬을 쓸 때 토큰을 덜 소모했고, 캔 집기는 성공률이 13/20 에서 19/20 으로 오르는 동시에 총 토큰을 거의 한 자릿수(약 10\times ) 규모로 줄였습니다. 서랍 조작은 스킬 없이는 큰 토큰 예산을 다 쓰고도 성공하는 평가 프로그램을 만들지 못한 반면, 스킬 가이드가 있으면 11/20 성공에 도달했습니다. 이는 실패에서 유도된 스킬이 단지 시뮬레이터 전용 코드를 외운 것이 아니라, 형태와 API 변화를 가로질러 실제 로봇 프로그램 합성을 안내할 수 있음을 시사합니다.

구성요소 분해(Ablation) 분석

그렇다면 성능 향상의 결정적 요인은 무엇일까요? 연구팀은 LIBERO-Pro에서 두 핵심 구성요소를 분해해 살펴봤습니다. 두 구성요소가 모두 없는 기본 시스템의 매크로 평균 성공률은 14\% 에 불과했습니다. 여기에 세밀한 실행 흔적을 노출하고 과제 단위 수정을 검증하는 로봇 실행 엔진을 더하자 성공률이 62\% 로 뛰었습니다. 가장 큰 폭의 향상이 실행 엔진에서 나온 것입니다. 여기에 진화적 탐색까지 더하면 남은 어려운 과제들이 추가로 해결되어 72\% 에 도달했습니다.

진화적 탐색의 반복 횟수에 따른 변화를 보면, 성공률이 처음 몇 라운드에서 빠르게 개선됩니다. 여러 수정 가설을 표본으로 뽑는 것만으로도 단일 반복 디버깅이 놓친 대안을 빠르게 회복한다는 뜻입니다. 이후로도 곡선은 완만하게 계속 오르지만, 잔여 난제에 대한 개선은 수확 체감(diminishing returns)을 보입니다.

한계점 및 향후 전망

ASPIRE는 인상적인 결과를 보였지만, 연구팀은 몇 가지 중요한 한계를 솔직하게 짚습니다.

첫째, ASPIRE는 아직 완전히 자율적인 실세계 평생 학습자가 아닙니다. 시뮬레이션에서는 성공 판정과 장면 초기화가 값싸고 프로그래밍 가능하지만, 실세계 배포에는 여전히 견고한 성공 탐지, 안전한 리셋, 안전 모니터링, 캘리브레이션 유지가 필요합니다. 이 평가와 리셋 루프를 닫는 것이 실제 환경으로 스킬 전이를 확장하는 열쇠입니다.

둘째, ASPIRE는 다중모달 흔적을 해석하고 수정을 작성하며 탐색 후보를 제안하는 데 동결된 프런티어 LLM(Claude Opus 4.6) 에 의존합니다. 더 작거나 약한 LLM이 같은 디버깅 루프를 지탱할 수 있는지는 검증되지 않았습니다.

셋째, 에이전트는 미리 정의된 인식, 계획, 제어 원시 동작 API 위에서 프로그램을 작성합니다. 이 고정된 API는 디버깅을 다루기 쉽고 안전하게 만들지만, 동시에 에이전트가 표현할 수 있는 행동의 범위를 제한합니다. 노출된 원시 동작 밖의 능력이 필요한 과제라면 에이전트는 비효율적으로 근사하거나 사람이 API를 확장해 주기를 기다려야 합니다. 에이전트가 새로운 로봇 원시 동작을 안전하게 제안하고 검증하고 편입하는 방법은 향후 연구의 몫입니다.

넷째, 스킬 라이브러리는 현재 검증된 재사용 수정을 우선하지만 장기 기억 관리 문제를 완전히 풀지는 못합니다. 라이브러리가 커지면 일부 항목이 낡거나, 지나치게 특수하거나, 중복되거나, 새 과제에 오히려 오해를 부를 수 있습니다. 제로샷 전이에서 관찰된 비단조적(non-monotonic) 경향도 이로 설명됩니다. 라이브러리를 대규모에서도 유용하게 유지하려면 더 견고한 검색, 가지치기, 랭킹, 재검증 기제가 필요합니다. 마지막으로, 디버그와 진화적 탐색 루프는 과제당 수많은 LLM 호출과 롤아웃을 소모하는 계산 집약적 과정이라, 매우 큰 과제 묶음으로 확장하려면 더 저렴한 추론이나 더 표본 효율적인 탐색이 요구됩니다.

이러한 한계에도 불구하고, ASPIRE는 로봇 학습의 무게 중심이 "고정된 정책을 한 번 학습해 배포하는" 방식에서 "실행 흔적을 스스로 진단하고, 코드를 고치고, 그 경험을 스킬로 축적하며 계속 성장하는" 방식으로 이동할 수 있음을 보여주는 이정표입니다. 소프트웨어 엔지니어링 에이전트가 코드베이스를 디버깅하며 발전해 온 흐름을, 물리적 접촉과 다중모달 인식이 얽힌 로봇의 세계로 옮겨 온 시도라고 볼 수 있습니다. 스킬 라이브러리가 커질수록 더 똑똑해지는 로봇, 그리고 시뮬레이션의 경험이 실제 로봇으로 흘러 들어가는 미래가 조금 더 가까워졌습니다.

:scroll: ASPIRE: Agentic Skills Discovery for Robotics 논문

:house: ASPIRE 프로젝트 홈페이지

:scroll: CaP-X: A framework for benchmarking and improving coding agents for robot manipulation 논문




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: