AI 요약 · 영어에서 AI 번역

Self-Refine: Iterative Refinement with Self-Feedback

Aman Madaan, Niket Tandon, Prakhar Gupta, Skyler Hallinan, Luyu Gao, Sarah Wiegreffe, Uri Alon, Nouha Dziri, Shrimai Prabhumoye, Yiming Yang, Shashank Gupta, Bodhisattwa Prasad Majumder, Katherine Hermann, Sean Welleck, Amir Yazdanbakhsh, Peter Clark

arXiv:2303.17651v2cs.CLcs.AIcs.LG

TL;DR

LLM은 목표가 다면적이거나 명확히 정의하기 어려운 과제에서 복잡한 요구사항을 충족하는 데 어려움을 겪곤 한다. Self-Refine은 하나의 LLM으로 추가 학습 없이 출력을 생성하고 비평하며 반복적으로 개선한다. 7개 생성 과제에서 GPT-3.5와 GPT-4의 직접 생성보다 성능이 절대값 기준으로 5-40% 더 높다.

  • 문제

    LLM은 목표가 다면적이거나 명확히 정의하기 어려운 과제에서 복잡한 요구사항을 충족하는 데 어려움을 겪곤 한다.

    출처: §1 · p. 1
  • 방법

    Self-Refine은 하나의 LLM으로 추가 학습 없이 초기 출력을 생성하고 피드백을 제공하며 이를 반복적으로 개선한다.

    출처: §1 · p. 2, §2 · p. 2
  • 결과

    7개 생성 과제에서 Self-Refine은 GPT-3.5와 GPT-4의 직접 생성보다 성능이 절대값 기준으로 5-40% 더 높다.

    출처: §1 · p. 2
  • 시사점 및 한계

    한 번만 생성하는 방식은 GPT-4와 같은 강력한 LLM의 역량을 실제보다 낮게 보여줄 수 있다.

    출처: §3.3 · p. 6

    Self-Refine에는 주어진 맥락에서 피드백을 제공하고 출력을 개선할 수 있도록 충분한 few-shot 모델링 능력이나 지시 이행 능력을 갖춘 기반 모델이 필요하다.

    출처: §6 · p. 9

Abstract

from arXiv · show

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 and refinement. The main idea is to generate an initial output using an LLMs; then, the same LLMs provides feedback for its output and uses it to refine itself, iteratively. Self-Refine does not require any supervised training data, additional training, or reinforcement learning, and instead uses a single LLM as the generator, refiner, and feedback provider. We evaluate Self-Refine across 7 diverse tasks, ranging from dialog response generation to mathematical reasoning, using state-of-the-art (GPT-3.5, ChatGPT, and GPT-4) LLMs. Across all evaluated tasks, outputs generated with Self-Refine are preferred by humans and automatic metrics over those generated with the same LLM using conventional one-step generation, improving by ~20% absolute on average in task performance. Our work demonstrates that even state-of-the-art LLMs like GPT-4 can be further improved at test time using our simple, standalone approach.

1 서론

Self-Refine은 추가 학습 없이 하나의 모델이 스스로 생성한 피드백과 반복 수정을 통해 LLM 출력을 개선한다. 일곱 가지 생성 과제에서 GPT-3.5와 GPT-4의 직접 생성보다 우수한 성능을 보인다.

1 서론

  • 일관성 있는 초기 출력도 복잡한 요구사항을 놓칠 수 있으므로, 지도 정보에 크게 의존하지 않는 개선 접근법이 필요하다.여러 측면을 고려해야 하는 목적과 명확히 정의하기 어려운 목표가 난점이다. 기존 접근법은 도메인별 학습 데이터, 대규모 학습 데이터셋 또는 비용이 많이 드는 사람의 주석 작업을 요구할 수 있다.출처: §1 · p. 1
  • 사람은 초안을 작성하고 스스로 제공한 피드백을 바탕으로 이를 개선하며 자기 수정을 수행한다.논문은 무례한 이메일을 수정하고 초기 구현 코드를 리팩터링하는 예로 이 과정을 설명한다.출처: §1 · pp. 1–2
  • Self-Refine은 추가 학습이나 사람의 도움 없이 동일한 모델로 초기 초안을 생성하고, 피드백을 제공하고, 반복적으로 수정한다.Few-shot prompting (Brown et al., 2020)으로 피드백과 수정을 유도한다. 정해진 횟수에 도달하거나 모델이 더 이상의 개선이 불필요하다고 판단하면 반복을 종료한다.출처: §1 · p. 2, Figure 1 · p. 2
  • GPT-3.5와 GPT-4를 사용해 자연어와 소스 코드 생성에 걸친 일곱 가지 과제에서 직접 생성 대비 5-40%의 절대 성능 향상을 보고한다.코드 생성 과제에서는 Codex (code-davinci-002; Chen et al., 2021)를 사용한 초기 생성 대비 최대 13%의 절대 성능 향상을 보인다.출처: §1 · p. 2

2 SELF-REFINE을 통한 반복 개선

SELF-REFINE은 동일한 LLM으로 초기 출력을 생성하고 피드백을 제공하며 출력을 반복적으로 개선한다. 세 가지 프롬프트가 필요하지만 훈련은 필요하지 않다.

초기 생성

  • 초기 생성에서는 입력에 과제별 few-shot 프롬프트나 지시문을 결합한다. few-shot 프롬프트에는 입력-출력 쌍 예시가 포함된다.출처: §2 · pp. 2–3

피드백

  • 피드백 프롬프트는 구체적인 변경 사항을 짚는 실행 가능하고 구체적인 수정 의견을 예시한다. 이 의견은 출력 품질의 여러 측면을 다룰 수 있다.피드백 예시는 입력-출력-피드백의 세 요소로 구성된다. 코드에 대한 수정 의견은 효율성, 가독성, 전반적인 품질을 다룰 수 있다.출처: §2 · pp. 3–4

개선

  • 동일한 모델이 자신의 피드백과 피드백 기반 개선을 예시하는 개선 프롬프트를 사용해 가장 최근 출력을 수정한다.개선 예시는 입력, 원래 출력, 피드백, 개선된 출력을 결합한다.출처: §2 · p. 4

SELF-REFINE 반복

  • SELF-REFINE은 과제별 반복 횟수 한도나 피드백에서 도출한 종료 지표에 도달할 때까지 피드백과 개선을 번갈아 수행한 뒤 마지막 개선 결과를 반환한다.피드백 프롬프트는 모델에 스칼라 종료 점수와 같은 종료 지표를 생성하도록 요청할 수 있다.출처: §2 · pp. 2, 4
  • 이전 피드백과 출력을 프롬프트에 덧붙여 이후 반복에서 참고하게 하고 모델이 과거의 실수를 반복하지 않도록 돕는다.출처: §2 · p. 4

2 SELF-REFINE을 통한 반복 개선

  • SELF-REFINE은 하나의 LLM으로 생성, 피드백, 개선을 수행하며, 훈련 대신 세 가지 프롬프트와 few-shot 예시의 지도 신호를 활용한다.프롬프트는 초기 생성, 피드백, 개선을 안내한다.출처: §2 · pp. 2, 4

3 평가

SELF-REFINE은 평가한 모든 과제에서 기본 모델의 성능을 높이고 기존 최고 성능을 넘어섰으며, 특히 제약 조건부 생성과 선호도 기반 생성에서 큰 향상을 보였다. 수학 추론에서는 오류 탐지의 신뢰성이 낮아 성능 향상이 제한적이다.

3 평가

  • 7개 평가 과제는 대화 응답, 코드 최적화, 코드 가독성, 수학 추론, 감성 반전과 새로 도입한 두문자어 생성 및 제약 조건부 생성을 포괄한다.제약 조건부 생성은 키워드 제약 수를 Lin et al. (2020)의 3-5개에서 20-30개로 늘린다.출처: §3 · p. 4

3.1 SELF-REFINE 구현

  • SELF-REFINE을 개선 과정 없이 사용하는 동일한 GPT-3.5, ChatGPT, GPT-4 모델과 비교하며, 코드 과제에서는 CODEX도 추가로 평가한다.FEEDBACK과 REFINE은 모든 모델에서 few-shot 프롬프트를 사용한다. 반복은 원하는 품질이나 과제별 기준에 도달하면 종료하며, 최대 4회 수행한다.출처: §3.1 · p. 4

3.3 결과

  • SELF-REFINE은 모든 과제에서 기본 모델과 기존 최고 성능 대비 일관된 향상을 보이며, GPT-4의 코드 최적화에서는 절대 8.7% 향상(27.3%에서 36.0%)을 달성한다.GPT-4+SELF-REFINE은 GPT-4의 초기 결과가 더 낮았던 과제에서도 대체로 GPT-3.5+SELF-REFINE과 ChatGPT+SELF-REFINE보다 우수하다.출처: Table 1 · p. 5, §3.3 · pp. 5–6

3.2 평가 지표

  • 평가에는 과제별 자동 평가 지표, 모델 정보를 가린 사람의 A/B 선호도 평가, GPT-4 평가를 함께 사용하며, 코드 가독성 개선에서는 문맥에 맞는 변수명도 평가한다.자동 평가 지표는 수학 추론의 정답률(%), 코드 최적화의 최적화된 프로그램 비율(%), 제약 조건부 생성의 개념 포함률(%)이다. GPT-4 선호도와 사람의 선호도 간 상관은 감성 반전에서 82%, 두문자어 생성에서 68%, 대화 응답 생성에서 71%다.출처: §3.2 · p. 5

3.3 결과

  • 제약 조건부 생성은 성능 향상이 가장 큰 과제 중 하나이며, 저자들은 이를 누락된 개념의 보완과 다양한 유효 출력 탐색의 효과로 설명한다.이 과제는 주어진 개념을 최대 30개까지 포함하는 문장을 생성해야 한다.출처: §3.3 · p. 5
  • 대화 응답 생성의 GPT-4 선호도 점수가 49.2% 향상(25.4%에서 74.6%)된 결과는 선호도 기반 과제 전반에서 특히 큰 성능 향상을 보여 준다.감성 반전과 두문자어 생성에서도 여러 모델에 걸쳐 상당한 향상이 나타난다.출처: §3.3 · p. 5
  • 수학 추론에서 ChatGPT는 사례의 94%에 대해 문제가 없다는 피드백을 제공하며, SELF-REFINE의 성능 향상이 크지 않은 이유는 추론에 오류가 있는지 정확히 식별하기 어렵기 때문이다.외부에서 현재 수학 답의 오답 여부를 식별할 수 있으면 향상 폭이 훨씬 커진다(5%+). 오류는 단 한 줄이나 잘못된 연산 하나에만 국한될 수 있다.출처: §3.3 · pp. 5–6

4 분석

SELF-REFINE은 구체적이고 실행 가능한 피드백과 반복적인 개선으로 성능을 높이며, 인간 평가자는 여러 초기 ChatGPT 출력보다 SELF-REFINE 출력을 선호한다. 이 분석은 부정확한 피드백과 성능이 낮은 모델의 개선 실패를 한계로 지적하고, 벤치마크를 넘어 웹사이트 생성에도 적용 가능성을 탐색한다.

피드백 품질의 영향

  • 구체적인 피드백을 일반적인 피드백으로 바꾸면 감정 전이 성능이 43.2에서 31.2로 하락하며, 피드백이 없으면 과제 수행에 실패한다.코드 최적화 점수는 SELF-REFINE 피드백을 사용할 때 27.5, 일반적인 피드백을 사용할 때 26.0, 피드백이 없을 때 24.8이다. 두문자어 생성 성능은 반복적으로 개선하더라도 실행 가능한 피드백이 없으면 56.4에서 48.0으로 하락한다.출처: Table 2 · p. 6, §4 · p. 6

FEEDBACK-REFINE의 반복은 얼마나 중요한가?

  • 세 차례 반복 후 코드 최적화 점수가 22.0에서 28.8로 상승하며, 이후 FEEDBACK-REFINE을 더 반복할수록 대체로 추가 향상 폭이 줄어든다.세 차례 반복 후 감정 반전 점수는 33.9에서 36.8로, 제약 조건부 생성 점수는 29.0에서 49.7로 상승한다. 성능이 매번 향상되는 것은 아니다. 여러 측면을 고려하는 과제에서는 SELF-REFINE이 측면별 수치 점수를 생성해 균형 잡힌 평가와 출력 선택을 돕는다.출처: §4 · p. 6, Figure 4 · p. 7

개선하는 대신 출력을 여러 개 생성하면 안 되는가?

  • 1 vs. k 비교에서 인간 평가자는 초기 ChatGPT 출력 k = 4개 각각보다 SELF-REFINE 출력을 더 선호한다.이 비교는 피드백 기반 개선이 피드백이나 개선 없이 초기 후보를 더 많이 생성하는 것보다 출력 품질을 높이는지 검증한다.출처: §4 · p. 7

성능이 낮은 모델에서도 SELF-REFINE이 작동하는가?

  • Vicuna-13B는 오라클 피드백이나 하드코딩된 피드백을 제공해도 올바른 형식의 피드백을 생성하고 개선 지시를 따르는 데 어려움을 겪는다.출력을 개선하는 대신 기존 출력을 반복하거나 허구의 대화를 생성하는 경우가 많다. 저자들은 대화 기반 학습이 지시 기반 모델에 비해 추론 시점의 few-shot 과제로 일반화하는 능력을 제한한다고 추정한다.출처: §4 · p. 8

정성적 분석

  • 실패 사례의 33%는 피드백이 오류 위치를 잘못 짚은 경우, 61%는 부적절한 수정안을 제시한 경우이며, 올바른 피드백을 개선 모델이 잘못 반영한 경우는 6%에 불과하다.코드 최적화(Madaan et al., 2023)와 수학 추론(Cobbe et al., 2021)에서 성공 35개와 실패 35개로 구성된 표본 70개를 수작업으로 분석했다. 피드백은 대체로 실행 가능했으며, 보통 문제를 짚고 수정안을 제시했다.출처: §4 · p. 8
  • 성공 사례의 61%는 정확한 피드백으로 정밀하게 수정했으며, 33%는 일부 부정확한 피드백에도 불구하고 성공했다.한 코드 예시에서는 여섯 겹의 중첩 반복문을 문제로 진단하고 완전 탐색을 동적 계획법으로 대체해 Madaan et al. (2023)의 기준 코드를 개선하고 복잡도를 O(amount * coins)로 줄인다.출처: Figure 5 · p. 7, §4 · p. 8

벤치마크를 넘어

  • SELF-REFINE은 기초적인 설계에서 출발해 HTML, CSS, JS를 반복적으로 수정하며 사용성과 심미성을 높이는 웹사이트 생성을 탐색한다.이 탐색적 활용 사례는 사용자가 제시한 상위 수준의 목표에서 시작하며, 벤치마크 과제를 넘어선 적용 가능성을 보여준다.출처: §4 · p. 8

5 관련 연구

Self-Refine은 피드백의 출처와 표현 방식, 개선 모델의 선택에서 기존 개선 접근법과 다르다. 별도의 개선 모델을 학습하지 않고 자연어 자기 피드백과 동일한 모델을 사용해 여러 도메인에서 출력을 개선한다.

피드백의 출처

피드백의 표현 방식

  • 자연어 피드백을 통해 Self-Refine은 GPT-4와 같은 사전학습 모델을 활용하면서 출력 생성에 사용한 LLM을 자기 피드백에도 재사용할 수 있다.자연어가 아닌 대안으로는 사람이 제공한 예시 쌍 (Dasgupta et al., 2019)과 스칼라 보상 (Liu et al., 2022; Le et al., 2022b)이 있다.출처: §5 · pp. 8–9

개선 모델의 유형

개선 절차가 없는 강화학습(RL) 접근법

  • 비교 대상인 강화학습 접근법과 달리 Self-Refine은 파라미터 업데이트 없이 중간 출력에 대한 자연어 피드백을 사용한다.이들 접근법은 모델에 중간 생성 결과에 대한 피드백을 제공하는 대신 스칼라 보상을 최적화하며, 파라미터 업데이트가 필요하다 (Stiennon et al. (2020); Lu et al. (2022); Le et al. (2022a)).출처: §5 · p. 9

6 한계 및 논의

Self-Refine에는 충분한 역량을 갖춘 기반 모델이 필요하며, 평가 범위는 오픈 소스가 아닌 모델과 영어 데이터셋에 한정된다. 또한 모델이 유해한 출력을 생성하도록 유도하는 프롬프트에 대한 명시적 안전장치가 없다.

6 한계 및 논의

  • Self-Refine에서 기반 모델이 문맥 내에서 피드백을 제공하고 출력을 개선하려면 충분한 few-shot 모델링 능력이나 지시 이행 능력이 필요하다.이러한 능력 덕분에 지도학습이나 지도학습용 데이터 없이 피드백과 개선이 가능하다.출처: §6 · p. 9
  • 실험에는 오픈 소스가 아닌 유료 GPT-3.5, ChatGPT, GPT-4, CODEX 모델을 사용하며, 이들의 사전학습 말뭉치, 규모, 편향은 충분히 문서화되어 있지 않다 (Ouyang et al., 2022).연구에 사용하려면 자금이 필요하다. 저자들은 재현성을 지원하기 위해 코드와 모델 출력을 공개한다.출처: §6 · p. 9
  • 평가에는 영어 데이터셋만 사용하므로, 현재 모델이 다른 언어에서도 같은 이점을 제공하지는 못할 수 있다.출처: §6 · p. 9
  • Self-Refine은 모델이 더 유독하거나 유해한 텍스트를 생성하도록 유도하는 악의적 프롬프트를 명시적으로 방어하지 않는다.출처: §6 · p. 9

7 결론 · A 평가 과제 · B 더 폭넓은 관련 연구

SELF-REFINE은 추가 학습 데이터나 강화학습 없이 하나의 LLM으로 자체 피드백을 제공하고 출력을 반복적으로 개선한다. 동일한 GPT-3 기반 모델과 설정을 사용한 GSM8K 평가에서 Self-Correction (Welleck et al., 2022)보다 높은 성능을 보인다.

7 결론

  • SELF-REFINE은 하나의 LLM 내에서 자체 피드백과 개선을 반복하며, 추가 학습 데이터나 강화학습이 필요하지 않다.결론에서는 방법의 단순성과 다양한 과제에 대한 적용 가능성을 강조한다.출처: §7 · p. 9
  • 저자들은 반복적 개선에 관한 후속 연구를 지원하기 위해 코드, 데이터, 프롬프트를 공개한다.이 자료는 selfrefine.info에서 이용할 수 있다.출처: §7 · p. 10

A 평가 과제

  • Table 4는 평가 과제, 관련 데이터셋과 크기, 입력에서 출력, 피드백, 수정된 출력으로 이어지는 한 차례의 개선 과정을 보여주는 예시를 정리한다.FEEDBACK과 REFINE의 few-shot 프롬프트는 Appendix S에 제시한다.출처: Table 4 · p. 14, A Evaluation Tasks · p. 14

B 더 폭넓은 관련 연구

  • Reflexion 과 달리, SELF-REFINE은 ReAct 기반 계획을 위한 자유 형식의 성찰 대신 구조화된 다차원 피드백과 점수를 제공한다.저자들은 이러한 피드백이 구체적인 개선에 더 유용하며, 개방형 대화 생성처럼 단계별 계획이 필요 없는 과제도 지원한다고 주장한다.출처: B Broader Related Work · p. 15
  • GSM8K에서 SELF-REFINE은 정확도 55.7%로 Self-Correction (Welleck et al., 2022)의 45.9%보다 9.8퍼센트포인트 높다.이 비교에서는 동일한 GPT-3 기반 모델과 벤치마크 설정을 사용했다.출처: B Broader Related Work · p. 15
  • Self-Correction (Welleck et al., 2022)과 달리, SELF-REFINE은 명시적 피드백을 생성하고 과제별 개선 모델을 학습하는 대신 지시와 few-shot 프롬프팅을 사용한다.저자들은 명시적 피드백을 생성하면 개선된 출력의 품질이 유의하게 높아진다고 보고한다.출처: B Broader Related Work · p. 15
  • 스칼라 보상을 사용하는 강화학습과 달리, SELF-REFINE은 모델 매개변수를 갱신하지 않고 중간 생성 결과에 피드백을 제공한다.Table 5는 관련 접근법을 강화학습, 학습된 교정 모델, few-shot 교정 모델 방식으로 분류한다.출처: B Broader Related Work · p. 15, Table 5 · p. 15

C 사람 평가 … F 최신 few-shot 학습 모델 및 미세 조정 기준 모델과 SELF-REFINE의 비교

이 절들에서는 방법 정보를 가린 사람 평가, 판단 근거를 제시하는 GPT-4 평가, 모델 용어를 설명하고, GSM과 PIE에서 SELF-REFINE을 few-shot 및 미세 조정 기준 모델과 비교한다.

C 사람 평가

  • 논문 저자들이 데이터셋당 예제 150개를 대상으로 방법 정보를 가린 A/B 평가를 수행하고, 과제 지시에 더 잘 부합하는 출력을 선택한다.평가자에게는 입력, 지시문, 기준 모델과 SELF-REFINE의 출력이 방법명 없이 제공된다. 선호율은 SELF-REFINE이 선택된 비율이며, 상대적 개선은 선호율의 증가율이다.출처: Table 6 · p. 16, C Human Evaluation · p. 16

D GPT-4 평가

  • GPT-4는 판단 근거를 요구하는 구조화된 프롬프트를 통해 감성 반전, 두문자어 생성, 대화 응답을 평가한다.프롬프트는 평가 결정을 내리기 전에 숙고하도록 유도한다.출처: D GPT-4 Evaluation · p. 17
  • 두문자어 평가는 발음, 철자, 제목과의 관련성, 긍정적 함의를 고려하며, 두 후보 중 하나를 선택하거나 품질이 동등하다고 판단하거나 둘 다 부적합하다고 판단할 수 있다.요청하는 출력은 짧은 설명과 그 뒤에 오는 선택 결과로 구성된다.출처: D GPT-4 Evaluation · p. 17

E 모델 표기

  • 모델 용어는 OpenAI의 GPT-3.5 문서를 따르며, PIE 비교에는 서로 다른 LLM을 사용하는 SELF-REFINE이 포함된다.출처: E Model Key · p. 17, Table 8 · p. 19

F 최신 few-shot 학습 모델 및 미세 조정 기준 모델과 SELF-REFINE의 비교

  • GSM과 PIE 비교에는 few-shot 및 미세 조정 기준 모델이 포함되며, PIE에는 사람이 작성한 참조 결과와 Scalene 최적화 도구도 포함된다.PIE는 최적화된 프로그램의 비율(%OPT)을 측정하며, 미세 조정된 PIE-2B와 PIE-16B 모델을 포함한다.출처: F Comparison of SELF-REFINE with… · p. 18, Table 8 · p. 19
  • PIE 비교에서 SELF-REFINE은 최대 4개 샘플을 사용하는 반면, 다른 모델은 16개와 32개 샘플을 사용한다.제공된 캡션은 이 샘플 수 비교를 뒷받침하지만, 수치로 된 성능 점수는 제시하지 않는다.출처: F Comparison of SELF-REFINE with… · p. 18, Table 8 · p. 19

G Vicuna-13b 평가 · H 추가 분석

Vicuna-13b는 초기 생성 프롬프트는 따랐지만, 연구에서 공통으로 사용한 프롬프트로 피드백과 개선을 수행하는 데 어려움을 보였다. 피드백과 개선에 ChatGPT를 사용하자 수학 추론 성능이 24.18%에서 40.5%로 향상됐다.

G Vicuna-13b 평가

  • Vicuna-13b는 초기 생성 프롬프트는 일관되게 따랐지만 피드백과 개선 프롬프트에는 어려움을 보였으며, 종종 어시스턴트식 응답을 생성했다.출처: G Evaluation of Vicuna-13b · p. 20
  • Vicuna-13b 는 웹에서 수집한 대화로 LLaMA-13b (Touvron et al., 2023)를 미세 조정한 모델이다.출처: G Evaluation of Vicuna-13b · p. 20
  • Vicuna-13b에는 평가 대상인 다른 모델들과 동일한 프롬프트를 제공했다. 제한적인 성능은 더 폭넓은 프롬프트 엔지니어링이 필요할 수 있음을 시사한다.출처: G Evaluation of Vicuna-13b · p. 20
  • Vicuna-13b로 초기 응답을 생성하고 ChatGPT로 피드백과 개선을 수행했을 때 수학 추론에서 40.5%를 달성했으며, Vicuna-13b만 사용했을 때는 24.18%였다.이처럼 모델을 혼합해 개선하는 구성은 외부 모델의 도움을 사용하므로, 외부 도움 없이 모델을 개선하는 데 초점을 둔 SELF-REFINE과 다르다.출처: G Evaluation of Vicuna-13b · p. 20
  • 감성 전환에서 Vicuna-13b는 처음에는 글을 잘 고쳐 썼지만, 이후 빈 피드백을 생성해 오류가 발생했다.출처: G Evaluation of Vicuna-13b · p. 21
  • 이후 Vicuna-13b가 생성한 감성 전환 피드백은 도움이 되지 않았으며, 다시 쓴 리뷰는 프롬프트에서 복사한 내용이었다.나중에 생성한 응답은 원래 음식 리뷰를 부정적으로 바꾸는 대신 호텔을 긍정적으로 추천했다.출처: G Evaluation of Vicuna-13b · p. 21

H.1 오라클 피드백 활용 … L.1 방법

Self-Refine의 성능 향상은 통계적으로 유의한 경우가 많지만, 대화에서 발생하는 오류와 약어 품질의 변동은 반복적 피드백의 한계를 드러낸다. 정답 여부에 따른 개선, 웹사이트 레이아웃, 새로운 생성 과제, 비평을 통한 코드 가독성 개선으로 확장할 수 있다.

H.1 오라클 피드백 활용

  • Welleck et al. (2022)에 따라 오답만 수정하는 오라클 피드백을 사용하면 수학 추론 성능이 GPT-3에서 4.8%, GPT-4에서 0.7% 향상된다.정답 여부에 따라 현재 답변을 REFINE 단계로 넘길지 결정한다.출처: §H.1 · p. 22
  • 한 측면의 개선이 다른 측면을 해칠 수 있어 약어 품질은 변동할 수 있다. 측면별 수치 점수를 활용하면 반복 과정에서 최고 점수의 출력을 선택할 수 있다.반면 수학 추론과 감정 반전에서는 출력 품질이 단조 증가하지만, 동일한 출력 선택 전략을 적용할 수 있다.출처: §H.1 · p. 22, Table 10 · p. 22
  • 피드백 무시나 수정 단계에서 새로운 문제 도입 등 피드백과 수정 과정의 오류가 관찰되었지만, SELF-REFINE은 잘못되거나 구체성이 부족한 피드백에도 60%의 경우 안정적으로 작동한다.보고된 피드백 오류에는 잘못된 피드백(25%), 구체성이 부족한 피드백(30%), 잘못된 점수 부여(10%)가 있다. 수정 오류에는 잘못된 피드백에 대한 견고성 부족(10%), 피드백 무시(25%), 새로운 문제 도입(20%)이 있다.출처: §H.1 · p. 24

I 벤치마크를 넘어

  • Self-Refine은 웹사이트 레이아웃으로도 확장된다. ChatGPT가 초기 디자인을 비평하고 스타일, 콘텐츠, 레이아웃에 실행 가능한 변경 사항을 적용한다.제목을 키우고 콘텐츠를 추가한 아이스크림 페이지와 본문 글자 크기를 18px로 설정하고 머리글 구분선을 추가한 광합성 페이지가 예시로 제시된다.출처: I Beyond Benchmarks · p. 25, Figure 8 · p. 26, Figure 10 · p. 27

J 통계적 신뢰구간

  • ChatGPT 데이터셋 7개 중 4개와 GPT-3.5 데이터셋 7개 중 3개에서 통계적으로 유의한 성능 향상이 나타나며, GPT-4의 성능 향상은 거의 모두 유의하다.Table 13은 Wilson 신뢰구간을 보고하지만, 표 설명에는 신뢰수준이 95%로, 본문에는 99%로 명시되어 있다.출처: Table 13 · p. 28, J Statistical Confidence Intervals · p. 28

K 새로운 과제

  • CommonGen-Hard에서는 20–30개 개념을 일관된 문장에 포함해야 하는 반면, CommonGen (Lin et al., 2020)에서는 서로 관련된 3–5개 개념을 포함한다.약어 생성은 길이, 발음, 관련성 간의 상충관계를 평가한다. 데이터셋은 약어 250개를 바탕으로 구축했으며, 불쾌감을 주거나 정보성이 없는 항목을 수작업으로 제거했다.출처: K New Tasks · p. 29

L 코드 가독성

  • 코드 가독성은 사용성, 업그레이드 용이성, 유지보수에 영향을 미치므로 정확성과 별개로 개선하며, LLM이 자연어로 작성한 비평을 바탕으로 다른 LLM이 코드를 수정한다.가독성 개선은 실행 결과를 넘어선 코드 품질을 다룬다.출처: L Code Readability · p. 29

L.1 방법

  • 가독성 개선은 초기화를 생략한다. LLM이 기존 코드에 대한 자유 형식의 비평을 생성하고, 코드 생성 LLM이 이를 N회 반복 적용한다.FEEDBACK은 가독성 개선 사항을 자유롭게 선택한다. REFINE에는 현재 코드, 해당 코드에 대한 비평, 그 피드백을 활용해 코드를 수정하라는 명시적 지시가 입력된다.출처: §L.1 · p. 29

L.2 실험 … M.1 모듈

코드 가독성 측면에서 SELF-REFINE은 반복에 따라 세 가지 휴리스틱 지표를 개선하며, 비평을 샘플링했을 때 최종 출력은 세 지표 모두에서 사람이 재작성한 코드를 능가한다. 대화에서는 열 가지 정성적 측면에 대한 피드백으로 응답을 생성하고 반복적으로 개선한다.

L.2 실험

  • 무작위로 선정한 CodeNet 예제 300개로 SELF-REFINE을 평가하고, 비교를 위해 사람이 그중 60개를 재작성한다.비평 생성과 코드 수정 모두 InstructGPT (textdavinci-003)를 사용해 다섯 차례 개선을 반복한다. 비평 생성 시 디코딩에는 T = 0.0 또는 T = 0.7을 사용하고, 코드 수정에는 항상 T = 0.0을 사용한다.출처: §L.2 · p. 29
  • T = 0.7에서 SELF-REFINE의 최종 출력은 사람이 재작성한 코드보다 평균적으로 의미 있는 변수와 함수 단위가 더 많고, 주석도 조금 더 많다.T = 0.0에서 최종 출력은 사람이 재작성한 코드보다 의미 있는 변수와 줄당 주석이 적지만, 함수 단위는 오히려 더 많다.출처: Table 14 · p. 30, §L.2 · p. 30
  • 가독성 평가는 의미 있는 변수명의 비율, 코드 한 줄당 주석 수, 함수 단위 수를 측정한다.퓨샷 프롬프트를 사용한 언어 모델이 중복 없이 변수를 추출하고 그중 의미 있는 이름을 가진 변수를 식별한다. 함수 단위는 코드의 모듈화 정도를 반영한다.출처: §L.2 · p. 30
  • 세 가지 가독성 지표 모두 개선을 반복하면서 상승한다. 높은 온도에서 생성한 비평은 변수명과 주석 개선에, 탐욕적 디코딩으로 생성한 비평은 모듈화에 더 유리하다.반복 0에서는 원본 CodeNet 입력을 측정하고, 이후에는 각 지표를 테스트 예제 전체에 걸쳐 평균한다.출처: §L.2 · p. 30, Figure 11 · p. 30

예제

  • 코드 예제는 들여쓰기 수정에서 시작해, 여러 연산이 빽빽하게 결합된 코드를 여러 줄의 원자적 연산으로 재작성하는 과정으로 개선이 이어짐을 보여준다.Figure 12는 SELF-REFINE의 반복에 따른 이러한 변화를 보여준다.출처: Figure 12 · p. 31

M 대화 응답 생성

  • 개방형 도메인 대화에서 SELF-REFINE은 자동 생성된 피드백과 반복적 개선을 적용해, 다양한 주제에서 일관성과 흥미를 유지하기 어려운 상황에서도 응답을 개선한다.이 과제는 정해진 답이 없는 상황에서도 사람처럼 자연스러운 응답을 요구한다.출처: M Dialogue Response Generation · pp. 30–31

M.1 모듈

  • 대화의 초기 생성 모듈은 대화 맥락으로부터 응답을 생성하고, 반복 모듈은 맥락, 이전 응답, 피드백을 활용해 이를 개선한다.개선의 목표는 출력이 피드백을 더 잘 반영하도록 하는 것이다.출처: §M.1 · pp. 31–32
  • 대화 피드백은 문맥 내 예시 여섯 개를 활용해 열 가지 정성적 측면을 평가하며, 응답이 낮은 점수를 받은 이유도 설명하는 경우가 많다.평가 측면은 관련성, 정보성, 흥미도, 일관성, 유용성, 대화 참여 유도, 구체성, 안전성, 사용자 이해, 유창성이다. 더 자세한 검토를 위해 Mehri and Eskenazi (2020)를 참조한다.출처: §M.1 · p. 31

M.2 설정 및 실험 … P 감성 반전

SELF-REFINE은 자동 및 사람의 대화 평가에서 직접 생성보다 우수한 성능을 보인다. 또한 피드백 기반 반복을 통해 코드 최적화, Python 기반 수학 풀이, 리뷰 전체의 감성 반전 결과를 개선한다.

M.2 설정 및 실험

  • text-davinci-003과 few-shot INIT, FEEDBACK, ITERATE 프롬프트를 사용해 최대 3회 반복으로 대화 응답을 개선한다.각 모듈은 문맥 내 예시 세 개를 공유하며, 피드백 시연 예시는 점수와 설명을 제공한다. 초기 응답을 제외하고 반복 과정에서 FEEDBACK 모델의 총점이 가장 높은 응답을 최종 응답으로 선택한다.출처: §M.2 · p. 32
  • SELF-REFINE은 자동 및 사람의 대화 평가 모두에서 INIT를 큰 폭으로 앞선다.수동 분석 결과, SELF-REFINE의 응답은 INIT 응답보다 대화 참여를 더 잘 유도하고 흥미로우며 전반적으로 더 상세하다.출처: Table 15 · p. 33, §M.2 · p. 33
  • 자동 대화 평가에는 테스트 사례 342개를 사용하고, 사람 평가에서는 무작위로 선택한 사례 100개로 SELF-REFINE과 INIT를 비교하며 동률을 허용한다.평가에는 FED (Mehri and Eskenazi, 2020)를 사용하며, 열 가지 품질 항목에 걸쳐 응답을 비교한다. 자동 평가 승률은 zero-shot text-davinci-003의 판정을 사용한다. 저자들은 자동 지표가 생성 품질을 부정확하게 평가할 수 있어 사람 평가를 우선시한다.출처: §M.2 · p. 33

N 코드 최적화

  • SELF-REFINE은 개선 가능한 부분에 대한 자연어 피드백을 생성하고 이를 REFINE에 전달해 PIE가 생성한 코드 최적화 결과를 개선한다.PIE (Madaan et al., 2023)는 기능적으로 올바른 프로그램의 실행 시간을 줄이는 알고리즘 수정을 목표로 한다.출처: N Code Optimization · p. 33

O 수학적 추론

  • SELF-REFINE은 피드백으로 GSM-8k의 Python 풀이를 반복 수정하며, 정답 여부 레이블에 따라 반복 절차를 진행한다.평가에는 GSM-8k (Cobbe et al., 2021)를 사용하고, Python 풀이는 Gao et al. (2022)의 방식을 따른다. FEEDBACK이 풀이의 오류를 검사한 뒤 REFINE이 대체 풀이를 생성하며, 레이블에 따른 반복 절차는 Welleck et al. (2022)를 따른다.출처: O Math Reasoning · p. 34

P 감성 반전

  • 감성 반전은 리뷰 전체를 다시 써서 긍정 감성을 부정으로, 또는 부정 감성을 긍정으로 바꾸는 작업이다.few-shot INIT, FEEDBACK, ITERATE 프롬프트로 출력을 생성하고 피드백을 바탕으로 수정한다. 목표 감성에 도달할 때까지 최대 k = 4회 반복하며 개선한다.출처: P Sentiment Reversal · p. 35

P.1 세부 사항 … S 프롬프트

이 절들에서는 감성 평가와 피드백 절제 실험을 보고하고, 두문자어 생성과 CommonGen-Hard를 설명하며, 과제별 생성·피드백·개선 프롬프트를 제시한다.

P.1 세부 사항

  • 긍정 감성을 목표로 했을 때 GPT-3.5 (text-davinci-003)와 SELF-REFINE의 분류 정확도는 모두 100%였고, 부정 감성을 목표로 했을 때는 각각 92%와 93.6%였다.기성 Vader 분류기로 변환된 리뷰가 목표 감성과 일치하는지 판정했다.출처: §P.1 · p. 35
  • 구체적인 피드백을 제공했을 때 감성 변환과 극적 응답의 선호율은 각각 85%와 80.09%였으나, 피드백이 단순히 문제가 있다고만 지적하면 각각 73%와 58.92%로 떨어졌다.구체적인 피드백은 감성이 부적절하다고 지적하는 데 그치지 않고 수정할 단어와 구절을 짚어 준다. 자동 평가와 사람 평가로 목표 감성과의 일치도 및 표현의 극적 효과를 평가한다.출처: §P.1 · pp. 35–36

Q 두문자어 생성

  • 불쾌감을 줄 소지가 있거나 정보가 부족한 항목을 수작업으로 걸러낸 뒤 두문자어 250개가 남았으며, 이를 반복적 두문자어 개선의 시험 대상으로 사용했다.두문자어 생성에서는 길이, 발음, 원래 구절과의 관련성 사이의 절충이 필요하다.출처: Q Acronym Generation · p. 36
  • 두문자어 피드백은 발음, 철자, 제목과의 관련성, 긍정적 어감, 친숙도를 평가하며, 각 기준의 점수에 앞서 명시적인 추론을 제시한다.이처럼 부분적으로 주관적인 판단은 few-shot 예시로 유도하며, 최종 두문자어의 품질은 사람 평가로 측정한다.출처: Q Acronym Generation · p. 36

R 제약 생성

  • CommonGen-Hard에서는 20–30개 개념을 일관되고 문법적으로 올바른 문장에 포함해야 하며, 원래 CommonGen 과제에서는 서로 관련된 3–5개 개념을 사용한다.SELF-REFINE은 더 어려워진 이 제약 생성 과제에서 다차원 피드백과 반복 수정을 통해 출력의 품질, 일관성, 타당성을 개선한다.출처: R Constrained Generation · p. 37

S 프롬프트

  • 생성 프롬프트는 입력–출력 쌍을 사용하고, 피드백 프롬프트는 여기에 피드백을 추가하며, 개선 프롬프트는 개선된 출력까지 포함한다.Figures 16–35는 일곱 과제의 프롬프트를 제시하며, 저자가 작성한 예시는 감성 변환, 대화 평가 기준, 두문자어 점수, 개념 누락 또는 비일관성 오류를 다룬다. 코드 최적화에는 Madaan et al. (2023)의 설명을 사용하고, 수학에는 PaL (Gao et al., 2022) 프롬프트와 수작업으로 수정한 CODEX의 실패 사례를 사용한다.출처: S Prompts · pp. 37–38
Loading 2303.17651v2…