GPT-4 성능 20% 높이는 법: SELF-REFINE 프롬프트 가이드
혹시 ChatGPT가 뱉어낸 코드가 마음에 들지 않아 “더 효율적으로 짜줘”라고 다시 명령해 본 적 있으신가요? 놀랍게도, 모델은 스스로 자신의 답변을 평가하고 더 나은 결과를 만들어낼 수 있습니다.
오늘은 별도의 추가 학습(Fine-tuning)이나 강화 학습(RLHF) 없이, 오직 단일 LLM의 자가 피드백 루프만으로 성능을 평균 20% 이상 향상시키는 획기적인 연구, SELF-REFINE에 대해 깊이 파헤쳐 보겠습니다.
우리는 왜 ‘초안’을 수정할까요?
중요한 비즈니스 이메일을 보낸다고 가정해 봅시다.
초안: “자료 빨리 보내.” (“Send me the data ASAP”)
아마 이렇게 쓰고 나서 바로 전송 버튼을 누르는 분은 없을 겁니다. 스스로 읽어보고 “아, 너무 무례한가?”라고 피드백한 뒤, 이렇게 고치겠죠.
수정안: “안녕하세요, 편하실 때 자료를 공유해 주실 수 있을까요?” (“Hi Ashley, could you please send me the data at your earliest convenience?”)
이것이 바로 인간 문제 해결의 핵심인 ‘반복적 자가 정제(Iterative Self-Refine)’ 과정입니다. 카네기 멜론 대학(CMU)과 앨런 인공지능 연구소(AI2)의 연구진은 인간의 이러한 본능적인 ‘초안-수정’ 사고방식을 LLM에 그대로 이식했습니다.
SELF-REFINE: AI가 스스로를 가르치는 루프
이 방법론의 핵심은 놀라울 정도로 단순하면서도 강력합니다. 하나의 LLM이 생성자(Generator), 비평가(Feedback Provider), 수정자(Refiner)의 역할을 모두 수행하는 것입니다.
작동 원리 3단계
이 프로세스는 크게 세 단계의 반복 루프로 이루어집니다:
1단계: Initial Generation (초기 생성)
모델이 주어진 입력(x)에 대해 첫 번째 답안(y₀)을 내놓습니다.
2단계: Feedback (피드백)
동일한 모델이 자신의 답안(y₀)을 보고 스스로 평가(fbₜ)합니다. 이때 “이 코드는 시간 복잡도가 너무 높아”, “답변이 너무 공격적이야”와 같은 구체적인 피드백을 생성합니다.
3단계: Refine (정제)
피드백을 바탕으로 답안을 수정(yₜ₊₁)합니다.
이 과정을 원하는 품질에 도달하거나 특정 조건(Stop Condition)을 만족할 때까지 반복합니다.
왜 ‘구체적인 피드백’이 승부처인가?
“그냥 다시 해봐”라고 말하는 것과 “루프가 너무 많으니 공식을 써서 줄여봐”라고 말하는 것은 천지 차이입니다. 연구 결과, 피드백의 품질이 성능을 결정짓는 핵심 요소임이 밝혀졌습니다.
- 구체적이고 실행 가능한 피드백(Actionable Feedback): 모델에게 구체적인 개선점(예: “이중 루프 대신 공식을 사용해라”)을 지적하게 했을 때 성능이 극대화됩니다.
- 일반적 피드백(Generic Feedback): 반면, “효율성을 높여라” 같은 일반적 피드백은 구체적 피드백보다 성능이 떨어졌습니다.
- 피드백 없음(No Feedback): 피드백 없이 단순히 다시 생성하게 했을 때는 성능 향상이 가장 낮았습니다.
예를 들어, 감정 변환(Sentiment Reversal) 태스크에서는 구체적인 피드백이 없으면 성능 점수가 43.2점에서 31.2점으로 급락했습니다.
데이터로 증명된 놀라운 성능 향상
그렇다면 실제 효과는 어떨까요? 연구진은 GPT-3.5와 GPT-4를 대상으로 7가지 다양한 태스크에서 실험을 진행했습니다. 결과는 압도적이었습니다.
| 태스크 (Task) | GPT-4 기본 점수 | GPT-4 + SELF-REFINE | 향상 폭 |
|---|---|---|---|
| 대화 반응 생성 | 25.4% | 74.6% | +49.2%p |
| 코드 최적화 | 27.3% | 36.0% | +8.7%p |
| 제약 조건 생성 | 15.0% | 45.0% | +30.0%p |
| 감정 변환 | 3.8% | 36.2% | +32.4%p |
특히 주목할 점은 가장 똑똑한 모델인 GPT-4조차도 이 과정을 통해 더 발전했다는 것입니다. 이는 아무리 뛰어난 AI라도 한 번의 시도(One-shot)보다는 반복적인 숙고가 더 나은 결과를 만든다는 것을 시사합니다.
한계점과 극복 방안 (Expert Insight)
물론 SELF-REFINE이 만능은 아닙니다. 전문성을 갖춘 시각에서 보면 몇 가지 주의할 점이 있습니다.
수학적 추론의 어려움
수학 문제(Math Reasoning)의 경우, 모델이 스스로 자신의 계산 오류를 찾아내는 데 어려움을 겪기도 했습니다. “다 괜찮아 보이는데?”라고 착각할 수 있기 때문이죠.
해결책: 외부 검증기(Oracle)나 계산기 툴을 결합했을 때 성능이 다시 급격히 상승했습니다.
작은 모델의 한계
Vicuna-13B 같은 상대적으로 작은 모델은 피드백을 제대로 생성하지 못하거나 무시하는 경향이 있었습니다. 이 방법은 GPT-3.5 이상 급의 모델에서 가장 효과적입니다.
결론: AI의 미래는 ‘생성’이 아니라 ‘개선’에 있다
이 논문이 우리에게 주는 시사점은 명확합니다. 비싼 GPU를 사서 모델을 파인튜닝하기 전에, 워크플로우를 먼저 설계하세요.
실무 적용 액션 아이템
- 프롬프트 체이닝 적용: 한 번에 결과를 요구하지 말고, “초안 작성 → 비평 → 수정”의 3단계 프롬프트를 구성하세요.
- 비평 가이드라인 명시: 피드백 단계에서 모델이 ‘구체적(Specific)’이고 ‘실행 가능(Actionable)’한 조언을 하도록 지시하세요.
- 반복의 힘 활용: 복잡한 코딩이나 기획 업무의 경우, 2~3번의 자동 루프만 돌려도 퀄리티가 비약적으로 상승합니다.
지금 바로 여러분의 프롬프트에 “방금 쓴 글을 비판적으로 검토하고 더 낫게 고쳐줘”라는 한 마디를 추가해보세요. 그 작은 차이가 20%의 성능 차이를 만듭니다.
