본문 바로가기
AI/Paper Review

[논문 리뷰] GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning

by hyeok1235 2026. 4. 2.

핵심 : 실제 실행결과까지 포함된 reasoning trajectory 전체를 바탕으로 새로운 프롬프트 후보들을 만들고, Pareto 기반으로 선택한다.

0. Abstract

GRPO와 같은 RL 방식으로 LLM의 성능이 높게 향상되었다. 하지만 이런 방식은 수천 개의 rollout을 필요로 한다. 저자들은 자연어로 풀어져있는 정보들이 해석이 가능하고, sparse&scalar reward보다 더 좋은 학습 매개체가 될 수 있다고 한다. 따라서 자연어 정보를 바탕으로 프롬프트를 최적화하는 GEPA(Generic Pareto) 방법을 소개한다.

AI를 사용할 때 나오는 trajectory(reasoning, tool call, tool output)를 보고 reflect해서 문제를 파악하고, 프롬프트 업데이트를 제안하고 확인하며, 알아낸 사실들을 결합한다. 몇 개의 rollout만으로도 성능 향상이 있었는데, 다양한 task에 대해서 GRPO에 비교해서 평균 6% 좋아졌고 35배 적은 rollout을 사용하였다.

1. Introduction

LLM이 agent처럼 다양한 역할을 맡으면서, 여러 tool을 사용하기 위해 자연어로 된 명세들이 합쳐지게 되었다. 저자들은 기존 학습 방식이 이러한 downstream task에는 적합하지 않다고 이야기한다. GRPO같은 RLVR 방식은 수많은 rollout을 필요로 해서 bottleneck을 유발시킨다고 설명한다. tool calling이 비싸기도 하고, inference budget의 존재, 큰 LLM의 파인튜닝의 어려움 등이 그 이유다.

LLM의 rollout을 보면, 주어진 instruction, reasoning chain, tool call, reward function 작동 결과 등을 확인할 수 있다. 요즘 LLM들은 이러한 trajectory를 보고 이해할 수 있기 때문에, 저자들은 텍스트 정보로 프롬프트를 최적화하는 GEPA를 소개한다. 새로운 rollout에서 여러 개의 objective로 탐색하며 reflect한 결과를 바탕으로 프롬프트를 업데이트한다.

candidate prompt는 기존 프롬프트에서부터 출발하여 새롭게 알게된 지식을 축적시킨다. local minimum에 빠지는 것을 방지하기 위해, global best prompt만 업데이트하는 것이 아니라, stochastic하게 각 문제에서 제일 잘하는 프롬프트를 탐색한다. 한번만 reflective update를 해도 성능이 크게 향상되는 것을 확인하였다.

2. Problem Statement

저자들은 외부 tool, control flow orchestration 등을 사용하는 modular system을 compound AI system이라고 정의한 것에 따른다고 한다. language module에 update할 수 있는 프롬프트와 파라미터를 표기하기 위해, 시스템을 language module, control flow logic, input/output schema의 구성요소로 표기한다. 이 formulation 하에, GEPA와 GRPO의 비교도 이루어진다.

Sample-Efficient Optimization: 실제 세계에서는 가능한 rollout의 개수가 연산 자원/비용/시간 등의 이유로 제한이 있기 때문이, 이를 반영할 budget B도 수식에 활용한다. 따라서 challenge 상황을 복잡하고 modular한 AI 시스템을 위해, low-data/budget-constrained일 때 rollout마다 최대의 learning signal을 뽑아내는 것으로 정의한다.

3. GEPA: Reflective Prompt Evolution

GEPA의 핵심은 3가지로, ① 프롬프트 발전, ② 자연어 피드백을 사용한 reflection, ③ Pareto 기반의 후보 선택이다. GEPA는 최적화할 프롬프트, 학습 데이터셋, 평가 지표, 피드백 결과, rollout 예산을 모두 input으로 받는다.

Generic Optimization Loop: 프롬프트 후보군들은 reflective mutation을 진행한 결과로부터 유도된다. parent와 rollout에 존재하는 learning signal을 사용하여, budget을 모두 소모할 때까지 반복된다. 매 iteration에서는 유망한 후보를 선택하고, minibatch에서 평가한 다음에, 점수가 parent보다 낫다면 프롬프트 풀에 추가한다. 그리고 나서는 validation set에 평가된다.

Reflective Prompt Mutation: 자연어로 풀어져 있는 중간 과정의 inference/추론 단계들과 실제 outcome으로 pair를 만들어서 진단에 사용하는 값을 만든다. reflection을 통해 최종 결과의 credit을 관련된 모듈에 적절히 배분할 수 있다. feedback function은 numeric한 점수와 text 피드백을 return하는데, GEPA가 이를 호출해서 trace에 대해 평가를 진행한다.

Evaluation traces as diagnostic signals: scalar reward로 평가받기 위해서 생성되던 trace들(reward가 0이 되는 컴파일 에러 로그 같은 것들 포함)을 evaluation trace로 정의하고 diagnose에 사용한다. 사람이 AI 답변을 평가해서 만든 피드백도 해당 파이프라인에서 reflection에 사용할 수 있다. 즉, rollout에서 나온 자연어 피드백이 부족할 때는 이런 식으로 대체할 수 있다.

3.1 Pareto-Based Candidate Selection

GEPA는 modular algorithm이어서 candidate을 선택할 때 여러가지 전략을 사용할 수 있다. 가장 naive한 접근으로 가장 잘하는 candidate만 항상 선택한다면, local optimum에 갇히게 된다는 문제가 존재한다. 따라서 GEPA는 Pareto 바탕의 “illumination” 전략을 사용하는데, 최소 하나의 task에서라도 가장 잘했던 프롬프트를 선택하되 모든 task에서 dominate한 후보는 제외한다. 이 방법으로 local optima에 빠지지 않으면서도 search를 너무 과도하게 하지 않는 exploration-exploitation의 균형을 맞춘다.

4. Evaluation

모델은 Qwen3 8B, GPT-4.1 Mini를 사용했고, 데이터셋은 HotpotQA, IFBench, Hover 등등이 사용되었다. 아래는 결과를 바탕으로 한 observation이다.

  1. Reflective prompt evolution은 아주 sample-efficient하고, weigh-space 강화학습보다 성능이 더 좋다. 대부분의 budget은 validation에서 candidate selection에 사용되며, validation은 learning signal을 만드는데는 절대 사용되지 않고, 그 내용도 보지 않는다.
  2. Reflective prompt evolution은 joint instruction이나 few-shot optimization보다 더 instruction optimization을 잘한다. LLM의 self-reflective 능력이 향상되었는데, GEPA의 프레임워크가 이를 적극 leverage한다고 이야기한다. 추가적으로, 기존 시도는 프롬프트에 예시만 추가된 반면, GEPA는 지시사항이 자세하게 추가된다고 밝힌다.
  3. candidate을 선택할 때 Pareto-based 샘플링이 가장 성능이 좋았다. 가장 성능이 좋은 candidate만 고르는건 빠르게 성능 향상이 멈추고 rollout을 낭비한다. Beamsearch보다도 성능이 더 좋음을 보인다.
  4. few-shot보다 프롬프트 길이가 더 짧다는 것도 장점이라는 것을 이야기한다. 연산하기에도 더 저렴해지고, generalization도 더 좋고, latency도 줄여서 효율을 높인다고 한다.
  5. 두 개의 후보가 서로 다른 내용을 다룬다면, Merge함으로써 더 좋은 성능을 낼 수 있다. 하지만 아직까지는 Merge를 위한 최적의 budget allocation과, Merge를 하는 시점에 대한 추가적인 연구가 필요하다고 한다.
  6. Qwen에서 최적화된 GEPA의 프롬프트가 GPT-4.1-Mini에서도 잘 작동함을 확인한다.

5. Extended Applications of GEPA

5.1 GEPA for Inference-Time Search

GEPA가 가장 집중하는 것은 AI 시스템을 새로운 task에 대해서 sample-efficient하게 adapt하는 것이지만, inference-time에서도 탐색 전략으로 잘 활용된다고 한다. rollout을 진행하면서 task에 대해 overfit하는게 가능하기 때문이다. 실험을 진행했을 때, feedback function이 domain-specific한 지식들을 프롬프트에 주입하는 양상도 확인하였다.

5.2 GEPA for Adversarial Prompt Search

반대로, 성능을 낮추도록 reward signal을 뒤집었을 때, optimizer는 관계없는 정보들을 포함시키면서 성능을 낮췄다. 이때, task에 관한 기본적인 설명과 규칙은 계속 포함되어 있었다. formatting과 관련해서 문자 그대로 해석하고 엄격하게 강제시키면서 최종 점수가 떨어지는 현상도 성능을 떨어트리는 요인 중 하나라고 설명한다.

6. Related Work

Prompt optimization: 기존 방법들은 manual하게 하거나, 단순히 피드백 없이 LLM을 사용하였다.

Evolutionary algorithms: prompt 집합을 업데이트하거나, 다양한 adversarial prompt를 생성하는 시도들도 있었다. AlphaEvolve도 비슷한데, 다양한 도메인에서의 발전이 아닌, 하나의 아주 어려운 문제에 초점을 맞췄다는 것에서 차이가 있다.

Feedback-driven improvement: RL, majority voting은 sample-inefficient하고 reward를 받기까지 시간이 오래 걸릴 수 있다. language space에서 학습하는 방법은 메모리, 스킬, 예시 제공 등이 있지만, GEPA는 instruction을 추가한다는 것에 있어서 차이가 있다.

Optimize compound AI systems and agents: GEPA는 더 많은 도메인에서 프롬프트/코드/agent 설계를 더 다양하게 탐색할 수 있다는 장점이 있다.

7. Conclusion

LLM agent와 워크플로우에 대해 reflection과 Pareto 기반 선택으로 작동하는 prompt optimizer를 제안한다. 텍스트 기반 피드백과 Pareto 기반 후보들은 AI가 새로운 task에 대해서도 잘 adapt하게 만든다. 기존 방식들보다 성능도 좋고, sample efficient한 방식이라는 강점이 있다.

 

ICLR 2026 (Oral)
논문 링크:
https://arxiv.org/abs/2507.19457
728x90
반응형