대형언어모델 기반 해석 가능한 제어 정책 합성
초록
본 논문은 사전 학습된 대형 언어 모델(LLM)을 활용해 파이썬 코드 형태의 해석 가능한 제어 정책을 자동 생성하고, 시뮬레이션 기반 평가와 진화 알고리즘을 결합해 펜듈럼 스윙업 및 볼인컵 과제에 적용한다. 정책 설계 단계에만 LLM을 사용함으로써 실행 시에는 순수 파이썬 코드만 남아 투명성과 검증 가능성을 확보한다.
상세 분석
논문은 제어 정책을 파라미터 최적화가 아닌 프로그램 공간 탐색 문제로 재정의한다. 상태 xₜ와 제어 입력 uₜ 사이의 동역학 xₜ₊₁ = f(xₜ,uₜ)와 보상 rₜ = g(xₜ,uₜ)를 전제로, 누적 보상 R = ∑ₜ rₜ를 최대화하는 정책 uₜ = h(xₜ)를 찾는 것이 목표이다. 기존 방법은 선형 피드백, 신경망 등 고정된 함수 형태에 파라미터를 학습시키는 반면, 저자는 정책 h(·)를 파이썬 함수 policy(obs) 형태의 코드로 직접 표현한다. 이때 탐색 공간은 무한 차원의 프로그램 집합으로, 무작위 토큰 샘플링만으로는 구문 오류가 빈번히 발생한다. 이를 해결하기 위해 사전 학습된 코드 생성 LLM을 “토큰 공간”에서 후보 프로그램을 생성하는 엔진으로 사용한다. LLM은 입력 프롬프트에 현재까지 최고 성능을 보인 두 개의 프로그램과 “개선하라”는 지시문을 포함시켜, 교차와 변이를 수행하는 진화 연산자 역할을 한다. 토큰 샘플링은 온도 T = 1, top‑p = 0.95, repeat‑last‑n = 15와 같은 하이퍼파라미터로 제어되어, 다양성을 유지하면서도 반복을 억제한다.
생성된 프로그램은 사전 정의된 평가 함수 evaluate() 에 의해 시뮬레이션 환경에서 실행된다. 구문 오류가 있거나 시뮬레이션 중 예외가 발생하면 해당 프로그램은 즉시 폐기된다. 정상 실행된 프로그램은 누적 보상 점수를 부여받아 데이터베이스에 저장되고, 이후 프롬프트 구성 시 무작위로 두 개를 샘플링한다. 저자는 섬(island) 전략을 도입해 여러 독립적인 프로그램 집단을 병렬로 진화시킨다. 일정 주기마다 성능이 저조한 섬은 삭제되고, 다른 섬의 상위 프로그램으로 재초기화한다는 메커니즘으로 지역 최적에 빠지는 위험을 완화한다.
실험은 두 가지 대표적인 비선형 제어 과제에 적용된다. 첫 번째는 펜듈럼 스윙업으로, 목표는 초기 각도 ≈ π 에서 수직 위까지 빠르게 올리는 것이다. 두 번째는 볼인컵 과제로, 공을 컵 안으로 넣는 복합적인 궤적을 요구한다. 각각의 과제에 대해 초기 스타터 코드(무작위 액션)와 평가 함수가 제공되며, LLM‑기반 진화는 수십 번의 반복 후 90 % 이상의 성공률을 달성한다. 생성된 최종 정책은 수십 줄 이내의 파이썬 코드로, 변수명과 연산 흐름이 직관적이며, 인간 엔지니어가 손쉽게 이해·수정할 수 있다.
핵심 기여는 다음과 같다. (1) 제어 정책을 “코드”라는 인간 친화적 표현으로 직접 탐색함으로써 해석 가능성을 근본적으로 확보한다. (2) LLM을 진화 연산자와 평가 루프 사이에 끼워 넣어, 대규모 사전 학습 지식을 활용하면서도 도메인‑특화 시뮬레이션 피드백을 통해 실제 성능을 최적화한다. (3) 섬 기반 병렬 진화와 프롬프트 재활용 전략을 통해 탐색 효율성을 높이고, 로컬 최적에 빠지는 현상을 완화한다. (4) 코드 기반 정책은 기존의 블랙박스 신경망 대비 검증·인증 파이프라인에 쉽게 통합될 수 있어, 안전‑중요 시스템에 적용 가능성을 제시한다.
한계점으로는 LLM이 제공하는 코드 품질이 모델 크기와 사전 학습 데이터에 크게 의존한다는 점, 그리고 복잡한 고차원 시스템에서는 프로그램 길이가 급증해 탐색 비용이 상승할 수 있다는 점을 들 수 있다. 또한 현재는 시뮬레이션 기반 평가에만 의존하므로, 실제 물리 시스템에 적용할 때 발생할 수 있는 모델 불일치 문제를 해결하기 위한 도메인 적응 기법이 추가로 필요하다.
댓글 및 학술 토론
Loading comments...
의견 남기기