보상 엔지니어링 병목
강화학습에서 보상 함수는 정책이 무엇을 최적화해야 하는지를 정의합니다. "자연스럽게 앞으로 걸어라"라는 간단한 지시도 직관적으로는 명확하지만, 이를 학습 알고리즘이 따를 수 있는 수학적 목적 함수로 변환하는 것은 결코 간단하지 않습니다:
- 전진 속도에 보상을 주면? 정책이 보행 품질을 무시하고 속도만 극대화합니다.
- 불균일한 동작에 페널티를 주면? 정책이 아예 움직이지 않는 것이 가장 부드러운 해법이라고 판단합니다.
- 두 항목의 균형을 맞추면? 최적의 트레이드오프는 형태학(morphology)과 태스크마다 다르며, 잘 설계된 보상이라도 잘못된 하이퍼파라미터 아래에서는 실패할 수 있습니다.
이렇게 보상 함수를 작성하고, 학습하고, 관찰하고, 수정하는 반복 과정을 보상 엔지니어링이라 합니다. 실제로는 태스크당 수 주의 연구자 시간이 소요되고, 깊은 도메인 전문 지식이 필요하며, 강화학습을 새로운 태스크와 환경으로 확장하는 데 있어 가장 큰 병목으로 남아 있습니다.
수동 보상 엔지니어링
- 전문가가 보상 함수를 작성
- 수 시간 학습 후 영상 관찰
- 실패 모드를 수동으로 진단
- 계수를 조정하고 재학습
- 수일에서 수주간 반복
Prompt-to-Policy (자동화)
- LLM이 보상 함수를 작성
- PPO가 정책을 학습
- LLM과 VLM이 행동을 판정
- LLM이 진단 및 수정
- 성공할 때까지 자동 반복
우리의 접근 방식
Prompt-to-Policy (P2P)는 이 전체 사이클을 자동화합니다. 사용자는 원하는 행동을 자연어로 설명하기만 하면 됩니다. 이후 LLM 기반 에이전트가 자율적으로 반복합니다: 보상 함수를 작성하고, 강화학습으로 정책을 학습하고, 멀티모달 판정(코드 기반 trajectory 분석과 VLM 영상 평가를 결합)을 통해 결과를 판단합니다. 행동이 의도에 부합하지 않으면, 에이전트가 수정하고 재학습합니다. 입력은 프롬프트뿐이고, 출력은 학습된 정책입니다.
P2P의 위치
기존 보상 엔지니어링 시스템(Eureka, Text2Reward)은 LLM으로 보상 함수를 반복 개선하지만, 과제마다 사람이 정의한 적합도 지표가 필요하고, 직전 iteration의 보상만 수정합니다. 범용 연구 자동화 에이전트(AutoResearch, AI Scientist v2)는 더 넓은 자율성을 제공하지만, 구조화된 행동 평가, 실험 계보, 보상 특화 가드레일 같은 RL 전용 scaffolding 없이 동작합니다.
P2P는 반복적 보상 작성과 에이전트 유연성을 결합하면서, RL에 특화된 구조를 추가합니다: 의도로부터 평가 기준을 자동 생성하는 다중 모달 판정, 보상과 하이퍼파라미터의 동시 탐색 및 실험 계보 전체에 걸친 분기, 그리고 단계별 교훈, 코드 리뷰, 다중 판정 합성 등의 RL 전용 가드레일.
핵심 설계 결정
1. 이중 판정 및 교차 검증
물리 지표만으로는 정성적 측면을 놓치고("보행이 자연스러운가?"), VLM만으로는 환각 위험이 있습니다("부드럽게 달리고 있습니다"라고 하지만 실제로는 제자리 진동). P2P는 두 개의 독립적인 판정기를 병렬로 실행합니다: Code Judge(LLM이 작성한 평가 함수로 trajectory 데이터를 분석)와 VLM Judge(비전-언어 모델이 rollout 영상을 시청). LLM Synthesizer가 두 점수를 합산하며, 불일치 시 영상의 특정 순간을 재확인하거나 물리 데이터를 직접 검증합니다.
VLM Judge: 2턴 프로토콜
단순히 "에이전트가 성공했나요?"라고 묻는 방식은 VLM이 비판적 평가 없이 동의하는 경향이 있었습니다. 이를 완화하기 위해 P2P는 2턴 프로토콜(Andrade et al., 2025)을 사용합니다. 첫 번째 턴에서 VLM은 태스크 설명과 시작 자세의 정지 프레임만 받고(rollout 영상 없음), 성공을 판단할 3–5개의 구체적인 시각적 기준을 제시해야 합니다. 두 번째 턴에서 rollout 영상을 받고 각 기준을 개별적으로 평가한 다음, 종합적인 전체 점수를 부여합니다. 기준이 사전에 확정되므로, VLM은 일괄 승인 대신 각 기준을 영상과 대조하여 확인해야 합니다.
낮은 프레임 레이트(예: 5 fps)에서는 회전이나 속도 같은 움직임 연속성을 개별 프레임만으로 판단하기 어렵습니다. P2P는 이를 보완하기 위해 이전 서브프레임이 반투명 잔상으로 겹쳐지는 모션 트레일 영상을 표준 녹화본과 함께 선택적으로 제공합니다. VLM은 두 영상을 함께 활용하여 채점합니다.
Code Judge: LLM 기반 Trajectory 분석
Code Judge는 원시 물리 데이터(관절 위치, 속도, 접촉력, 신체 좌표)를 분석하여 행동을 평가합니다. 최근 여러 시스템도 LLM을 사용하여 평가 또는 성공 감지 코드를 생성하지만(LEARN-Opt, OMNI-EPIC, Agentic Skill Discovery), 대부분 단발성이거나 실행 수준의 오류 피드백만 제공합니다. P2P의 Code Judge는 기존 연구에 없는 두 가지 품질 게이트를 추가합니다: LLM이 하위 과제를 의존성 그래프로 구성하는 구조화된 계층적 분해(순차(1 → 2, 게이트), 독립((1, 2)), 중첩(1.1, 1.2))가 채점을 직접 지배하며, 별도의 LLM 검토 단계에서 생성된 분해 결과와 코드의 허점, 악용 가능한 엣지 케이스, 기타 문제를 탐색하는 전담 리뷰입니다.
에이전트 기반 통합
두 판정기가 일치하면, 통합기는 이를 직접 합산하여 최종 판정을 생성합니다. 불일치할 경우, 에이전트 도구 루프가 작동합니다: 통합기는 영상의 특정 시간 구간에 대해 VLM을 재질의하거나(예: "1~3초 사이에 정책이 이륙했나요?"), trajectory 검증(물리 데이터에 대한 Python 스니펫을 실행하여 특정 주장을 확인)을 수행할 수 있습니다. 이처럼 특정 구간에 대한 추가 질의로, 전체 판정을 재실행하지 않고도 불일치를 해소합니다.
2. 에이전트 기반 수정: 보상, Hyperparameter, 실험 계보
보상 설계와 하이퍼파라미터 튜닝은 깊이 결합되어 있습니다: 좋은 보상도 잘못된 learning rate에서는 실패하며, 그 반대도 마찬가지입니다. P2P의 수정 에이전트는 두 가지를 동시에 튜닝하며, 각 보상 수정본을 여러 HP 구성으로 병렬 학습하고, 모든 결과를 실험 계보로 추적합니다.
수정 에이전트는 고정된 최적화 루프가 아닙니다. 학습 진단 결과를 수신하고, 실험 계보를 조사(과거 보상 함수 읽기, 점수 비교, 반복되는 실패 패턴 확인)한 뒤 다음을 결정하는 도구 사용 LLM입니다:
- 어디에서 분기할 것인가. 에이전트는 현재 iteration에서 계속하거나, 더 높은 점수를 받은 이전 iteration으로 되돌아갈 수 있습니다. 위 다이어그램에서 v2가 v1에서 퇴행하자, 에이전트는 v1에서 분기하여 다른 보상 설계(v3)를 시도했습니다.
- 무엇을 변경할 것인가. 진단 결과와 자체 조사를 바탕으로, 에이전트는 보상과 하이퍼파라미터 변경을 동시에 제안합니다. 일반 모드에서는 1–2가지 변경만 제안해야 합니다. 구조적 재작성은 정체기(최고 점수 달성 후 3회 이상 iteration 경과)에서만 허용됩니다.
- 무엇을 피할 것인가. 에이전트는 실험 계보에서 축적된 교훈을 검색합니다. 교훈은 단계적 신뢰 등급을 가지며, 에이전트는 상위 등급 교훈을 존중해야 하지만, 근거가 있으면 강등하거나 폐기할 수 있습니다.
각 교훈은 STRONG 등급으로 지식 베이스에 등록되며, 에이전트가 시간에 따라 승격하거나 강등할 수 있습니다:
- HARD: 과거 치명적 실패에서 학습한 규칙으로, 절대 위반해서는 안 됩니다.
- STRONG: 검증된 원칙. 구체적 반증이 없는 한 따릅니다.
- SOFT: 상황에 따라 다릅니다. 합당한 이유가 있으면 자유롭게 도전할 수 있습니다.
- RETIRED: 더 이상 활성화되지 않으며, 같은 실수의 재발을 방지하기 위해 참고용으로 표시됩니다.
활성 교훈 수가 많아지면, LLM 통합 패스가 중복을 병합하고(상위 등급이 우선), 대체된 항목을 제거하며, 목록 크기를 제한합니다. RETIRED 교훈은 에이전트가 같은 실수를 재발견하지 않도록 계속 표시됩니다. 덕분에 수정 에이전트는 최신 결과만 보고 맹목적으로 수정하는 대신, 전체 실험 이력을 참고하여 근거 있는 수정을 제안할 수 있습니다.
상세 과정: 자연스러운 인간 보행
프롬프트: "Walk forward with a natural human-like gait, alternating left and right steps in a steady rhythm, while gently swinging the opposite arm forward with each step."
대시보드 튜토리얼
웹 대시보드를 통해 전체 루프를 실시간으로 관찰할 수 있습니다.
P2P는 완전한 오픈소스로 공개되어 있습니다. 학습 파이프라인, 웹 대시보드, 보상 함수 작성 에이전트, VLM 판정 모듈까지 모두 GitHub에 올라가 있습니다. 저장소를 클론해서 원하는 행동을 직접 학습시켜 보세요.
한계 및 향후 방향
현재 한계
- 일관성 없는 VLM 채점. VLM Judge는 방향성 있는 유용한 점수를 제공하지만, 완벽하게 보정되어 있지는 않습니다. 동일한 행동에 대해 실행마다 점수가 달라질 수 있으며, 모델이 신체 방향이나 회전 방향을 잘못 해석하는 경우가 있습니다.
- 주관적 과제는 코드로 판정하기 어렵습니다. Code Judge는 명확한 물리적 기준(예: "백플립 하기")에는 잘 작동하지만, "자연스럽게 걷기"와 같은 주관적 목표에서는 어려움을 겪습니다: 적절한 팔 스윙 진폭이 0.3 m인지 0.33 m인지 어떻게 판단할 수 있을까요?
- 거의 성공한 경우의 과보정. 수정 에이전트가 거의 성공한 보상 함수를 미세 조정하는 대신 전체를 재구성하는 경우가 있습니다. Iteration 1에서의 부분적 백플립이 iteration 2에서 완전히 다른 보상 설계로 대체되어 퇴보를 일으킬 수 있습니다.
- 초기 단계의 IsaacLab 지원. IsaacLab 통합은 초기 단계에 있습니다. ANYmal 보행에 대한 예비 결과는 유망하지만, 전체 환경 스위트에 걸친 체계적 평가가 진행 중입니다.
향후 방향
- Human-in-the-loop 조정. Iteration 사이에 사용자가 자연어 교정으로 개입할 수 있도록 합니다("점프는 좋지만 착지를 더 부드럽게", "반대 방향으로 회전"). 자율 반복과 대화형 궤도 수정을 결합합니다.
- 도메인 특화 VLM. 일관된 평가 기준으로 사람이 주석을 단 rollout 영상으로 VLM을 파인튜닝하여, 현재의 zero-shot 판정기를 시뮬레이션된 로봇 행동을 이해하는 보정된 모델로 대체합니다.
- 자동화된 harness 최적화. P2P 파이프라인 자체가 하나의 harness—자연어 의도를 강화학습을 통해 달성하도록 LLM을 조율하는, 사람이 직접 설계한 프로그램—입니다. 최근 연구 Meta-Harness는 이러한 harness를 coding agent가 자율적으로 탐색·발견할 수 있음을 보여주었으며, 이를 P2P에 적용하는 것은 흥미로운 향후 연구 방향입니다.
인용
Wooseong Chung, Taegwan Ha, Yunhyeok Kwak, Taehwan Kwon, Jeong-Gwan Lee, Kangwook Lee, Suyoung Lee
KRAFTON AI, Ludo Robotics
*동등 기여. 저자는 성(last name) 알파벳순으로 나열되어 있습니다.
BibTeX 인용
@misc{prompt2policy2026,
title = {Prompt-to-Policy: Agentic Engineering for Reinforcement Learning},
author = {Wooseong Chung and Taegwan Ha and Yunhyeok Kwak and Taehwan Kwon and Jeong-Gwan Lee and Kangwook Lee and Suyoung Lee},
year = {2026},
url = {https://github.com/krafton-ai/Prompt2Policy}
}