Goal
- 대형 언어 모델(Large Language Models, LLMs)이 첫 번째 시도에서 완벽한 출력을 만들지 못하는 경우가 많으므로, 모델이 자기 자신의 출력을 피드백하고 개선하는 self refinement 방법을 도입하여 출력 품질을 높임
Contribution
- 새로운 SELF-REFINE 알고리즘을 제안: 동일한 언어 모델을 사용하여 생성, 피드백, 정제를 반복하는 구조.
- 감독 학습이나 보상 모델 없이 작동하며, 단일 LLM만 필요함.
- GPT-3.5, GPT-4 등의 SOTA 모델을 사용하여 7가지 다양한 생성 작업에 적용.
- 평균적으로 약 20%의 성능 향상
Methods
- 단계
- 초기 출력 생성: 모델 M이 입력 x에 대해 출력 y_0 생성
- 자기 피드백 제공: 동일한 모델 M이 자신의 출력에 대한 피드백 fb_t 생성
- 출력 정제: 모델이 피드백을 바탕으로 새로운 출력 y_t+1 생성
- 정해진 반복 횟수 혹은 stop condition이 만족될 때까지 반복
1. y0 ← 초기 생성
2. 반복:
a. fbt ← 자기 피드백
b. 멈춤 조건이 만족되면 중단
c. yt+1 ← 정제
3. 마지막 yt 반환
Experiments
- 총 7개 태스크에서 실험 수행:
- 대화 응답 생성 (dialogue generation)
- 코드 생성 및 최적화
- 수학적 추론
- 감정 전환(Sentiment Reversal)
- 약어 생성(Acronym Generation)
- 제약 기반 문장 생성 등
- 각 모델(GPT-3.5, ChatGPT, GPT-4)에서 SELF-REFINE 적용 시 평균적으로 모든 태스크에서 성능 향상.
- 예: GPT-4 기준으로 Dialog는 25.4% → 74.6%, Sentiment는 3.8% → 36.2%
Limitation
- 기본 모델의 성능이 일정 수준 이상이어야 작동 (예: Vicuna-13B는 정제 실패).
- 실험은 모두 영어 데이터셋 기반 → 다국어 일반화 미확인.
- 모델 오남용 가능성(유해 내용 정제 X).
- GPT, CODEX 등 비공개 모델 사용 → 비용 및 재현성 이슈 존재.
Personal review
- llm에만 적용가능하다고 되어있는데 실험해봤을 때 특정 일부 task에 대해 vicuna 7B에 대해서도 self refine이 작동하긴 한다 output에 추가적인 처리를 해줘야하긴하지만..
https://arxiv.org/abs/2303.17651
Self-Refine: Iterative Refinement with Self-Feedback
Like humans, large language models (LLMs) do not always generate the best output on their first try. Motivated by how humans refine their written text, we introduce Self-Refine, an approach for improving initial outputs from LLMs through iterative feedback
arxiv.org