본문 바로가기

Paper Review/NLP

[Paper Review] SELF-REFINE: Iterative Refinement with Self-Feedback

Goal

  • 대형 언어 모델(Large Language Models, LLMs)이 첫 번째 시도에서 완벽한 출력을 만들지 못하는 경우가 많으므로, 모델이 자기 자신의 출력을 피드백하고 개선하는 self refinement 방법을 도입하여 출력 품질을 높임

Contribution

  • 새로운 SELF-REFINE 알고리즘을 제안: 동일한 언어 모델을 사용하여 생성, 피드백, 정제를 반복하는 구조.
  • 감독 학습이나 보상 모델 없이 작동하며, 단일 LLM만 필요함.
  • GPT-3.5, GPT-4 등의 SOTA 모델을 사용하여 7가지 다양한 생성 작업에 적용.
  • 평균적으로 약 20%의 성능 향상

self-refine 전체 구조

 

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