[논문 리뷰] Code as Policies: Language Model Programs for Embodied Control
이 논문은 코드-쓰기 LLM이 자연어 명령으로 로봇 정책 코드를 생성하여 지각-행동 루프를 제어하고, 추가 학습 없이 여러 로봇에 걸쳐 반응적 및 경유지 기반 정책을 가능하게 한다.
Large language models (LLMs) trained on code completion have been shown to be capable of synthesizing simple Python programs from docstrings [1]. We find that these code-writing LLMs can be re-purposed to write robot policy code, given natural language commands. Specifically, policy code can express functions or feedback loops that process perception outputs (e.g.,from object detectors [2], [3]) and parameterize control primitive APIs. When provided as input several example language commands (formatted as comments) followed by corresponding policy code (via few-shot prompting), LLMs can take in new commands and autonomously re-compose API calls to generate new policy code respectively. By chaining classic logic structures and referencing third-party libraries (e.g., NumPy, Shapely) to perform arithmetic, LLMs used in this way can write robot policies that (i) exhibit spatial-geometric reasoning, (ii) generalize to new instructions, and (iii) prescribe precise values (e.g., velocities) to ambiguous descriptions ("faster") depending on context (i.e., behavioral commonsense). This paper presents code as policies: a robot-centric formulation of language model generated programs (LMPs) that can represent reactive policies (e.g., impedance controllers), as well as waypoint-based policies (vision-based pick and place, trajectory-based control), demonstrated across multiple real robot platforms. Central to our approach is prompting hierarchical code-gen (recursively defining undefined functions), which can write more complex code and also improves state-of-the-art to solve 39.8% of problems on the HumanEval [1] benchmark. Code and videos are available at https://code-as-policies.github.io
연구 동기 및 목표
- 현실 세계의 지각-행동 루프에 근거를 두도록 동기를 부여하여 데이터 수집 및 학습 필요성을 줄인다.
- 자연어 지시로부터 실행 가능한 로봇 정책을 생성할 수 있는 코드 작성 LLM을 시연한다.
- 복잡한 정책을 구성하고 일반화 능력을 향상시키기 위해 계층적 코드 생성 제안.
- 여러 로봇과 작업에서 CaP를 보여주고 반응 제어 및 시각 기반 조작 포함.
- 로봇 공학 중심의 코드 생성 벤치마크를 소개하고 규모 효과를 분석한다.
제안 방법
- 자연어 명령을 주석으로 제공받아 Python-like 정책 코드를 생성하기 위해 OpenAI Codex를 사용한다.
- 예시(소수 샷)로 명령-코드 매핑을 제시하여 LLM을 프롬프트하고, 지각 출력 처리 및 액추에이터 제어 정책 코드를 생성한다.
- 정의되지 않은 함수를 재귀적으로 정의하여 더 크고 재사용 가능한 정책 모듈을 구축하는 계층적 코드 생성 사용.
- Python exec를 통해 안전하게 글로벌/로컬 범위를 제한하여 실제 로봇에서 생성된 LMP를 실행한다.
- 지각 및 제어 API에 LMP를 접지(예: 개방 어휘 탐지기, NumPy, Shapely, PD/임피던스와 유사 프리미티브 등).
- 로봇 공학 벤치마크(RoboCodeGen, HumanEval) 및 실제 하드웨어에서 탁상 및 이동식 조작 작업 전반에 걸쳐 평가한다.
실험 결과
연구 질문
- RQ1코딩-LMM이 자연어 명령을 실행 가능한 로봇 정책으로 번역하고 지각 및 제어 매개변수에 대해 추론할 수 있는가?
- RQ2계층적 코드 생성을 통해 로봇 정책의 품질과 일반화 및 표준 코드 생성 벤치마크가 개선되는가?
- RQ3CaP는 언어 기반 플래너 및 전통적인 모방 학습 벤치마크 대비 로봇 작업에서 어떻게 성능을 보이는가?
- RQ4지각 기반 개방 어휘 탐지기 및 제어 프리민티브가 LMP의 유연한 작업 접지를 가능하게 하는가?
- RQ5도메인 및 모델 크기에 따른 CaP의 한계와 확장성은 어느 정도인가?
주요 결과
- 계층적 코드 생성은 정책 품질과 코드 생성 벤치마크를 향상시키며, 더 큰 Codex 모델에서 HumanEval에서 39.8% P@1를 달성한다.
- CaP는 개방 어휘 지각 및 프로그래머블 제어 프리미티브를 사용하여 여러 로봇 플랫폼에서 반응적이고 경유지 기반 정책을 가능하게 한다.
- CaP는 보지 못한 명령 및 물체에 일반화할 수 있으며 추가 훈련 없이 새로운 작업에 정책 코드를 적응시킬 수 있다.
- 로봇 벤치마크에서 CaP는 보이거나 보이지 않는 속성 시나리오에서 일부 감독 학습 벤치마크보다 우수한 성능을 보이고, 미지의 속성 및 작업에 대한 강건한 일반화를 보여준다.
- 더 큰 모델과 계층적 프롬프트는 코드 생성 및 로봇 작업 전반에서 더 나은 성능과 상관관계가 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.