추가 학습 없이 스스로 개선하는 LLM: Self-Refine의 반복적 자기 피드백 전략
2026. 9. 2.
연구 배경 및 핵심 문제 의식
대형 언어 모델(LLM)은 놀라운 언어 생성 능력을 갖추고 있지만, 단 한 번의 추론 패스(forward pass)만으로 최선의 답변을 내놓는다는 암묵적 가정 아래 운용되어 왔다. 그러나 실제 작업 환경에서는 코드 작성, 수학적 추론, 대화 응답 생성처럼 복잡한 태스크일수록 첫 번째 시도의 출력이 최적이 아닌 경우가 빈번하다. 인간 전문가가 초고를 작성한 뒤 반복적으로 퇴고하며 품질을 끌어올리듯, LLM도 동일한 자기 정제(self-refinement) 과정을 거칠 수 있다면 어떨까? 이 질문이 바로 Self-Refine 연구의 출발점이다.
Self-Refine은 추가적인 감독 학습 파인튜닝이나 강화학습 없이, 오직 테스트 타임(inference time)에서만 반복 정제를 수행하여 출력 품질을 개선하는 프레임워크다. 모델은 스스로 생성한 출력을 다시 입력으로 받아 구체적인 피드백을 생성하고, 그 피드백을 바탕으로 출력을 재작성하는 루프를 반복한다. 파라미터 업데이트가 전혀 없기 때문에 기존에 학습된 어떤 LLM에도 플러그인 방식으로 적용할 수 있다는 점이 핵심 가치 제안이다. 이는 모델 재학습이라는 고비용 병목을 우회하면서도 실질적인 성능 향상을 달성할 수 있는 경량화된 경로를 제시한다.
연구팀은 대화 응답 생성(dialogue response generation)부터 수학적 추론(math reasoning)까지 다양한 스펙트럼의 태스크를 실험 무대로 삼았다. 특히 GSM-8K 같은 수학 벤치마크에서도 일정 수준의 개선을 보인다는 점은, 단순한 텍스트 다듬기를 넘어 논리적 정합성까지 자기 수정이 가능함을 시사한다. 이처럼 Self-Refine은 LLM의 추론 과정을 단발성 이벤트가 아닌 반복적·대화적 프로세스로 재정의하며, 테스트 타임 연산을 성능 레버로 활용하는 새로운 패러다임을 열었다.
선행 연구와의 패러다임 비교
LLM 출력 품질을 개선하는 기존 접근법은 크게 세 갈래로 나뉜다. 첫째, 인간이 레이블링한 데이터로 모델 가중치를 직접 업데이트하는 감독 학습 기반 파인튜닝(SFT)이다. 둘째, 보상 모델과 PPO 같은 강화학습 알고리즘을 통해 인간 선호도 신호를 파라미터에 내재화하는 RLHF 계열 방법론이다. 셋째, 외부 실행기(executor)나 검색 엔진 같은 도구와 환경 피드백을 조합해 에이전트가 스스로 계획을 수정하는 ReAct, PAL, Reflexion 등의 접근이다. 이 세 범주 모두 외부 자원—레이블, 보상 함수, 환경 피드백—에 의존한다는 공통점을 갖는다.
Self-Refine은 이 세 범주 어디에도 속하지 않는다. 단 하나의 LLM이 출력 생성자(generator), 피드백 제공자(feedback provider), 정제자(refiner)의 세 역할을 동시에 수행하며, 파라미터 업데이트도 외부 실행기도 없이 순수하게 텍스트 레벨의 반복 루프만으로 품질을 높인다. Reflexion이 환경으로부터 얻은 실행 결과를 언어 메모리로 변환해 에이전트를 개선하는 방식과 달리, Self-Refine은 환경 신호 없이 모델 자체의 비판적 추론 능력에만 의존한다. PAL이 파이썬 인터프리터를 외부 검증기로 활용하는 것과도 대조적이다.
이 패러다임 차이는 실용적 함의로 직결된다. 외부 오라클이나 실행 환경을 구축하기 어려운 창의적 글쓰기, 코드 가독성 개선, 감성 변환 같은 태스크에서는 Self-Refine처럼 자기 참조적(self-referential) 루프가 유일하게 적용 가능한 선택지가 될 수 있다. 반면 엄밀한 정답이 존재하는 과제에서는 자기 피드백 루프의 신뢰도가 얼마나 보장되는지가 핵심 의문으로 남는다. 이 대비 구조를 이해하는 것이 Self-Refine의 적용 범위와 한계를 올바르게 파악하는 출발점이다.
핵심 아키텍처 및 구현 실증
Self-Refine의 작동 구조는 세 단계로 구성된다. 먼저 초기 생성(initial generation) 단계에서 LLM은 주어진 입력 프롬프트를 바탕으로 첫 번째 출력 draft를 생성한다. 이어서 피드백(feedback) 단계에서 동일한 모델이 해당 draft를 입력으로 받아 '무엇이 잘못됐는가', '어떻게 개선해야 하는가'를 구체적이고 실행 가능한 언어로 기술하는 비판적 피드백을 생성한다. 마지막으로 정제(refinement) 단계에서 모델은 원래 입력과 피드백을 컨텍스트로 결합해 개선된 출력을 재생성한다. 이 세 단계가 하나의 루프를 형성하며, 루프는 종료 조건(stopping condition)이 충족될 때까지 반복된다.
종료 조건 설계는 Self-Refine의 실용성을 결정하는 중요한 설계 선택이다. 논문에서는 모델이 피드백 생성 시 '출력이 충분히 좋다(output is good enough)'는 신호를 스스로 발행할 때 루프를 중단하는 방식을 채택했다. 이는 반복 횟수를 사전에 고정하는 것보다 유연하지만, 모델이 너무 이르게 또는 너무 늦게 종료 신호를 보내는 경우를 어떻게 통제할지는 여전히 열린 문제다. 실험 설정에서는 최대 반복 횟수를 제한하는 안전 장치도 병행하여 무한 루프를 방지했다.
연구팀은 Self-Refine의 일반화 능력을 검증하기 위해 성격이 뚜렷하게 다른 7개 태스크를 선정했다. 두문자어 생성(acronym generation), 감성 반전(sentiment reversal), 코드 가독성 향상(code readability improvement), 코드 최적화(code optimization), 수학적 추론(math reasoning), 대화 응답 생성(dialogue response generation), 그리고 CommonGen-Hard를 활용한 제약 텍스트 생성이 포함된다. 수학 벤치마크로는 GSM-8K, 코드 최적화에는 PIE 데이터셋, 대화 품질 평가에는 FED 지표, 자연어 생성 평가에는 CommonGen 계열 벤치마크가 각각 활용됐다. 이 다양성은 단일 도메인 과적합이 아닌 범용 정제 메커니즘임을 주장하는 근거가 된다.
벤치마크 실험 결과 및 모델 품질
실험 결과, Self-Refine은 GPT-3.5, ChatGPT, GPT-4를 포함한 최신 LLM 전반에서 단순 직접 생성(direct generation) 대비 평균 약 20%포인트(절대값 기준)의 성능 향상을 달성했다. 이 수치는 단일 태스크의 극단적인 성공 사례가 아니라, 앞서 언급한 7개 태스크 전반에 걸친 평균치라는 점에서 신뢰도가 높다. 특히 GPT-4를 기반 모델로 사용했을 때 개선 폭이 가장 두드러졌으며, 이는 모델의 기초 추론 능력이 높을수록 자기 피드백 루프의 활용도도 높아짐을 시사한다.
평가 지표 측면에서도 주목할 만한 다층 검증이 이루어졌다. 대화 응답 생성 태스크에서는 FED(Feedback-based Evaluation of Dialogue) 지표와 함께 실제 인간 평가자를 동원한 선호도 비교(human-pref)가 병행됐다. 코드 최적화에는 PIE 데이터셋의 실행 효율성 지표가, 감성 분석에는 Vader 감성 점수가 활용됐다. 자동 지표뿐 아니라 GPT-4를 평가자로 활용한 GPT-4-pref 비교까지 포함함으로써, LLM-as-judge 패러다임의 맹점을 보완하는 다각도 검증 체계를 갖췄다.
한편 연구팀은 실제 오라클 피드백(Oracle Feedback)을 제공했을 때의 성능 상한선도 함께 측정했다. Self-Refine의 자기 피드백 기반 성능이 Oracle Feedback 대비 어느 수준에 위치하는지를 분석함으로써, 자기 참조 루프가 달성 가능한 최대치와 현재 격차를 정량화했다. 이 비교는 Self-Refine의 성과를 과장 없이 평가하게 해주는 동시에, 더 정확한 피드백 메커니즘을 연구할 여지가 충분함을 보여준다. CommonGen-Hard나 CodeNet 같은 과제에서 Oracle 대비 격차가 좁혀지는 패턴은, 구조화된 제약이 명확할수록 자기 피드백의 정확도가 올라감을 암시한다.
실무적 한계 및 후속 연구 팩트체크
Self-Refine의 가장 직접적인 실무 비용은 반복 추론 호출에 따른 컴퓨팅 오버헤드다. 각 루프마다 피드백 생성과 출력 재생성을 위한 두 번의 추가 LLM 호출이 필요하므로, k회 반복 시 단순 계산으로도 최소 2k+1배의 토큰 비용이 발생한다. GPT-4처럼 호출당 비용이 높은 모델에서는 몇 번의 반복만으로도 경제적 부담이 빠르게 증가한다. 이 비용 구조는 프로덕션 환경에서의 채택을 고려할 때 반드시 사전에 평가해야 할 제약이다.
소형 모델에서의 성능 저하도 중요한 한계로 지적된다. LLaMA-13B와 Vicuna-13B를 대상으로 한 실험에서 Self-Refine은 직접 생성 대비 뚜렷한 개선을 보이지 못했다. 이는 자기 피드백 루프가 효과적으로 작동하려면 모델이 자신의 출력에서 결함을 인식하고 실행 가능한 비판을 구성할 수 있는 충분한 기초 추론 능력을 갖춰야 함을 의미한다. 다시 말해, Self-Refine의 성능 향상은 모델 역량의 함수이며, 능력이 낮은 모델일수록 '나쁜 출력을 나쁜 피드백으로 정제하는' 악순환에 빠질 위험이 있다.
수학적 추론처럼 엄밀한 정답이 존재하는 태스크에서 Self-Refine의 개선폭은 상대적으로 제한적이었다. GSM-8K에서의 성능 향상이 다른 태스크 대비 작았던 이유는, 논리적 오류를 자연어 피드백만으로 정확히 진단하고 수정하는 것이 LLM의 현재 역량에서는 신뢰하기 어렵기 때문이다. 이 지점에서 Reflexion과 같은 후속 연구가 보완 방향을 제시한다. Reflexion은 환경 실행 결과를 에피소드 메모리로 활용해 추론 오류를 보다 객관적으로 탐지하려 한다. 즉, 자기 피드백 루프의 신뢰성을 높이기 위해 외부 검증 신호를 다시 도입하는 방향으로 연구가 수렴하고 있는 셈이다.
종료 조건(stopping condition)의 불확실성 역시 미해결 과제다. 모델이 '충분히 좋다'고 판단하는 기준이 실제로 품질 포화(saturation) 지점과 일치한다는 보장이 없으며, 경우에 따라서는 반복이 오히려 초기 출력보다 품질을 저하시키는 역진화(regressive refinement) 현상이 관찰되기도 했다. 이는 자기 참조 루프의 근본적 신뢰성 문제, 즉 모델이 자신의 오류를 스스로 얼마나 정확히 인식할 수 있는가라는 메타인지 한계에서 비롯된다. Oracle Feedback과의 성능 격차가 이 신뢰성 문제를 정량적으로 드러내며, 이를 좁히는 것이 Self-Refine 계열 연구의 핵심 남은 과제다.