[paper-review] Code as Polices : Language Model Programs for Embodied Control

miws·2024년 7월 12일

LLM

목록 보기
4/11

졸업 작품에 적용해본 아이디어


1. 개요

  • 자연어 명령에 따라 로봇 행동에 맞는 코드를 생성

  • 주요 접근법은 계층적 코드 생성이다.
    (정의되지 않은 함수를 재귀적으로 정의)

  • "기존에는 어휘 분석으로 의미론적 표현을 추출하거나 end-to-end로 학습하려 했지만.. 현실적 한계"

    Code-Writing LLM을 활용하여 Policy code를 잘 생성해내자
    "학습 없이"
    논리 구조 활용해서 피드백 루프 지정하고 하위 수준 제어 요소는 매개변수화


2. 방법

A. LM 프롬프팅 프로그램

  • import 문 : LLM에 알리고 해당 API 사용 방법에 대한 예시를 입력
  • instruction을 솔루션 코드 블록 앞에 주석으로 작성

B. LM 프로그램 예시 (low-level)

  • low~high로 가는 예시들을 통해 잘 이해할 것이라는 생각
  • 예시, 지시문, 생성 흐름으로.

C. LM 프로그램 예시 (high-level)

  • 제어 흐름
    • while-loop 문으로 간단한 피드백 정책 형성
  • 중첩된 함수 호출
    • LLM 최대 토큰 내에서 더 많은 예시(few-shot)로 향상
  • 함수 생성
    • 정의되지 않은 함수 생성 등
    • 대략적 스케치로만 코드 생성 가능
    • return을 명시하지 않아도 함수 이름에서 유추하여 알아서 생성한다.

D. LM 프로그램 as Policies

  • 세가지 이점
    • 처음보는 명령에 대해 새로운 동작, 작업에 코드 생성 가능
    • 새로운 물체, 환경으로부터 일반화 가능
    • 추가 데이터 수집 및 학습이 필요 없다.

3. 실험

  • 목표 3가지
    • 계층적 코드 생성에 대한 영향을 평가
    • CaP vs 시뮬레이션된 Language-instructed manipulation task
    • 유연성, 편의성 검증을 위해 다양한 로봇 시스템에 적용

4. 평가

  • Code - generation Benchmark
    • RoboCodeGen
    • HumanEval

  • CaP : 경로 생성에 의한 도형 그리기
    • 언어 명령으로부터 공간 추론

  • CaP : 픽 앤 플레이스
    • detection은 API, LLM 추론

  • CaP : 로봇팔 시뮬레이션 평가
    • long-horizon task
    • 봤던 데이터 vs 처음 보는 데이터
      CLIPort vs NL Planner vs CaP

      CLIPort는 일반화 어려움, NL Planner는 정확한 기하학적 수치가 필요할 때 부적절


5. 결론 및 한계

  • API 능력 범위 안에서 성능이 제한된다.

  • long-horizon task, 추상적인 task에는 약하다.

  • 접근 방식이 주어진 지시문은 실행 가능하다고 생각하기 때문에 답변이 올바른지 판단하기 힘들다.

마찬가지로 환경에 관한 정보도 받지 않고 long task에 약하다.
하지만 인식 및 제어 기능을 갖춘 시스템에 적합하여 데이터 추가 수집 없이 일정 수준 이상의 일반화를 보인다.


(+)졸업 작품에는 지시문에 따른 로봇 구동 함수를 생성해내는 방식으로 적용했다.
해당 논문처럼 학습 없이 진행한 것은 아니지만 LLM으로 코드를 생성해내는 아이디어를 한번 적용해봤다..

0개의 댓글