Paper Reading ๐Ÿ“œ/Natural Language Processing

Self-Refine: Iterative Refinement with Self-Feedback ๋…ผ๋ฌธ ๋ฆฌ๋ทฐ

Cartinoe 2023. 6. 29. 22:04

The overview of this paper

 ์ด ๋…ผ๋ฌธ์—์„œ๋Š” Self-Refine์„ ์†Œ๊ฐœํ•˜์˜€๋‹ค. Self-Refine์€ ๋ฐ˜๋ณต์ ์ธ ํ”ผ๋“œ๋ฐฑ๊ณผ ๊ฐœ์„ ์„ ํ†ตํ•ด LLM์˜ ์ดˆ๊ธฐ output์„ ๊ฐœ์„ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. Self-Refine์˜ ์ฃผ๋œ ์•„์ด๋””์–ด๋Š” LLM์„ ์‚ฌ์šฉํ•ด ์ดˆ๊ธฐ output์„ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ๋‹ค์Œ์— ๋˜‘๊ฐ™์€ LLM์ด output์— ๋Œ€ํ•ด ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ณ  ์ด ํ”ผ๋“œ๋ฐฑ์„ ์‚ฌ์šฉํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž๊ธฐ ์ž์‹ ์„ ๊ฐœ์„ ํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. ํ•œ ๋งˆ๋””๋กœ Self-Refine์€ ํ•˜๋‚˜์˜ LLM์„ generator, refiner, feedback provider๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 Self-Refine์€ ๋ชจ๋“  ํ‰๊ฐ€๋œ task์—์„œ Self-Refine์œผ๋กœ ์ƒ์„ฑ๋œ output์€ ๊ธฐ์กด์˜ ๋˜‘๊ฐ™์€ LLM์œผ๋กœ ์ƒ์„ฑ๋œ output๋ณด๋‹ค human & automatic ํ‰๊ฐ€ metric์—์„œ ๋” ์„ ํ˜ธ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  GPT-4 ๊ฐ™์€ SoTA LLM๋„ test-time์— Self-Refine์€ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์„ค๋ช…ํ•˜์˜€๋‹ค.

 

 

Table of Contents

1. Introduction

2. Iterative Refinement with Self-Refine

3. Evaluation

4. Analysis

5. Limitation

 

 

1. Introduction

 ๋…ผ๋ฌธ์—์„œ๋Š” LLM์ด ์ถ”๊ฐ€์  ํ•™์Šต ์—†์ด ๋ฐ˜๋ณต์ ์ธ self-refinement๋ฅผ ์ œ๊ณตํ•ด์„œ ๋‹ค์–‘ํ•œ task์—์„œ high-quality output์„ ์ด๋Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ•˜์˜€๋‹ค.

 

 ๋…ผ๋ฌธ์—์„œ๋Š” ์ด๋ฅผ ํ† ๋Œ€๋กœ Self-Refine์„ ์†Œ๊ฐœํ•˜์˜€๋‹ค. Self-Refine์€ feedback๊ณผ refinement์˜ 2๊ฐœ์˜ ์ƒ์„ฑ ์Šคํ… ๊ฐ„์— ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์ผ์–ด๋‚˜๋Š” ๋ฐ˜๋ณต์  self-refinement ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋ชจ๋ธ $M$์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ดˆ๊ธฐ output์ด ์ฃผ์–ด์ง€๋ฉด, ์ด output์„ ๋‹ค์‹œ ๋˜‘๊ฐ™์€ ๋ชจ๋ธ $M$์—๊ฒŒ ์ค˜์„œ ํ”ผ๋“œ๋ฐฑ์„ ์–ป์—ˆ๋‹ค. ๊ทธ๋‹ค์Œ์— ํ”ผ๋“œ๋ฐฑ์€ ๋˜‘๊ฐ™์€ ๋ชจ๋ธ์— ๋“ค์–ด๊ฐ€์„œ ์ด์ „์— ์ƒ์„ฑ๋œ ์ดˆ์•ˆ์„ ๊ฐœ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ฆผ 1์€ '๋˜‘๊ฐ™์€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด์„œ ํ”ผ๋“œ๋ฐฑ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ชจ๋ธ์˜ output์„ ๊ฐœ์„ ์‹œํ‚จ๋‹ค' ๋ผ๋Š” Self-Refine์˜ high-level ์•„์ด๋””์–ด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. 

 

๊ทธ๋ฆผ 1. input์ด ์ฃผ์–ด์ง€๋ฉด(0), Self-Refine์€ output์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๊ฒƒ์„ ๋˜‘๊ฐ™์€ ๋ชจ๋ธ M์— ๋ณด๋‚ด์„œ ํ”ผ๋“œ๋ฐฑ์„ ์–ป์Œ(โ‘ ). ํ”ผ๋“œ๋ฐฑ์€ M์— ๋‹ค์‹œ ๋“ค์–ด๊ฐ€์„œ ์ด์ „์— ์ƒ์„ฑ๋œ output์„ ๊ฐœ์„ ์‹œํ‚ด(โ‘ก). ์Šคํ… 1๊ณผ 2๋Š” ์กฐ๊ฑด์„ ๋ถ€ํ•ฉํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋Œ.

 

 Self-Refine์€ ๊ฐ•๋ ฅํ•œ LLM์˜ direct generation์„ ๋Šฅ๊ฐ€ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋…ผ๋ฌธ์˜ ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” LLM์ด ์ฒซ ์‹œ๋„์— ์ตœ์ ์˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋”๋ผ๊ณ , LLM์€ ์ข…์ข… ์œ ์šฉํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ์— ๋”ฐ๋ผ output์„ ๊ฐœ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค. ๊ฒฐ๊ตญ, Self-Refine์€ ์–ด๋– ํ•œ ์ถ”๊ฐ€์  ํ•™์Šต ์—†์ด ๋ฐ˜๋ณต์  feedback & refinement๋ฅผ ํ†ตํ•ด single model๋กœ๋ถ€ํ„ฐ ๋” ๋‚˜์€ output์„ ์–ป๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ด ์ค€๋‹ค.

 

 

2. Iterative Refinement with Self-Refine

 input ์‹œํ€€์Šค๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, Self-Refine์€ ์ดˆ๊ธฐ output์„ ์ƒ์„ฑํ•˜๊ณ , output์— ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ด ์ฃผ๊ณ , ํ”ผ๋“œ๋ฐฑ์— ๋”ฐ๋ผ output์„ ๊ฐœ์„ ์‹œํ‚จ๋‹ค. Self-Refine์€ ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ feedback & refine์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Self-Refine์€ ์ ์ ˆํ•œ LM๊ณผ 3๊ฐœ์˜ prompt์— ์˜์กดํ•˜๊ณ , training์„ ๋”ฐ๋กœ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๊ทธ๋ฆผ 2. Self-Refine์˜ ์˜ˆ์‹œ

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. Self-Refine ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

Initial generation.  input $x$, prompt $p_{gen}$, ๋ชจ๋ธ $M$์ด ์ฃผ์–ด์ง€๋ฉด, Self-Refine์€ ์ดˆ๊ธฐ output $y_{0}$์„ ์ƒ์„ฑํ•œ๋‹ค:

 

 

 ์—ฌ๊ธฐ์„œ $p_{gen}$์€ ์ดˆ๊ธฐ ์ƒ์„ฑ์„ ์œ„ํ•œ task-specific few-shot prompt์ด๊ณ , ||๋Š” ์—ฐ๊ฒฐ์„ ์˜๋ฏธํ•œ๋‹ค. few-shot prompt $p_{fb}$๋Š” task์— ๋Œ€ํ•œ input-output ์Œ $\left< x^{(k)}, y^{(k)}\right>$์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

 

Feedback.  ๊ทธ๋‹ค์Œ์— ํ”ผ๋“œ๋ฐฑ ์ƒ์„ฑ์„ ์œ„ํ•ด task-specific prompt $p_{fb}$๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, Self-Refine์€ ๋˜‘๊ฐ™์€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด์„œ output์— ํ”ผ๋“œ๋ฐฑ $f_{bt}$๋ฅผ ์ œ๊ณตํ•ด ์ค€๋‹ค:

 

 

 ์ง๊ด€์ ์œผ๋กœ, ํ”ผ๋“œ๋ฐฑ์€ output์˜ ์—ฌ๋Ÿฌ ์ธก๋ฉด์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ prompt $p_{fb}$๋Š” input-output-feedback $\left< x^{(k)}, y^{(k)}, fb^{(k)}\right>$ํ˜•ํƒœ์—์„œ ํ”ผ๋“œ๋ฐฑ์˜ ์˜ˆ์‹œ๋ฅผ ์ œ๊ณตํ•ด ์ค€๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” ๋ชจ๋ธ์ด $fb^{(k)}$๋ฅผ ํ†ตํ•ด actionableํ•˜๊ณ  specificํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ƒ์„ฑํ•˜๋„๋ก ์ด‰์ง„ํ•˜์˜€๋‹ค. ์—ฌ๊ธฐ์„œ actionable & specific์˜ ์ •์˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  • actionable: ํ”ผ๋“œ๋ฐฑ์ด output์„ ๊ฐœ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€ ๊ตฌ์ฒด์ ์ธ action์„ ํฌํ•จํ•ด์•ผ ํ•จ
  • specific: ํ”ผ๋“œ๋ฐฑ์€ ๋ณ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด output์—์„œ ๊ตฌ์ฒด์ ์ธ ๊ตฌ๋ฌธ์„ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ

 

Refine.  Self-Refine์€ ํ”ผ๋“œ๋ฐฑ์ด ์ฃผ์–ด์ง€๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์˜ output์„ ๊ฐœ์„ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ $M$์„ ์‚ฌ์šฉํ•œ๋‹ค:

 

 

 ์—ฌ๊ธฐ์„œ prompt $p_{refine}$์€ ํ”ผ๋“œ๋ฐฑ์— ๊ธฐ๋ฐ˜ํ•œ output ๊ฐœ์„ ์˜ ์˜ˆ์‹œ๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค. ์ด prompt์˜ ํ˜•ํƒœ๋Š” input-output-feedback-refined $\left< x^{(k)}, y^{(k)}, fb_{t}^{(k)}, y_{t+1}^{(k)}\right>$์ด๋‹ค.

 

Iterating Self-Refine.  Self-Refine์€ Feedback & Refine ์Šคํ…์„ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์Šคํƒ‘ ์กฐ๊ฑด์€ ๋ช…์‹œ๋œ ์‹œ์ ์—์„œ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ๋ถ€ํ„ฐ ์Šคํƒ‘ ์ง€ํ‘œ๋ฅผ ์ถ”์ถœํ•  ๋•Œ ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค.

 

 ๋ชจ๋ธ์—๊ฒŒ ์ด์ „ ๋ฐ˜๋ณต์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์ด๋“ค์— prompt๋ฅผ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์ด์ „ ํ”ผ๋“œ๋ฐฑ๊ณผ output์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์€ ๋ชจ๋ธ์ด ๊ณผ๊ฑฐ์˜ ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๊ณ  ์ด ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ฒŒ ํ•ด ์ค€๋‹ค. ์ด๋ฅผ ์œ„์˜ Refine ์ˆ˜์‹์— ์ ์šฉํ•ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

 

 

 ์ตœ์ข…์ ์œผ๋กœ ์ตœ์ข… ๊ฐœ์„ ์•ˆ $y_{t}$๋ฅผ Self-Refine์˜ output์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1์€ Self-Refine์„ ์š”์•ฝํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๊ณ , ๊ทธ๋ฆผ 2๋Š” Dialogue Response Generation๊ณผ Code Optimization์—์„œ Self-Reinfe์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. Self-Refine์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” Self-Refine์€ generation, feedback, refine์„ ์œ„ํ•ด ๋ชจ๋‘ ๋˜‘๊ฐ™์€ LM์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

3. Evaluation

 ๋…ผ๋ฌธ์—์„œ๋Š” Self-Refine์„ 7๊ฐœ์˜ ๋‹ค์–‘ํ•œ task์—์„œ ํ‰๊ฐ€ํ•˜์˜€๋‹ค: Dialogue Response Generation, Code Optimization, Code Readability Improvement, Math Reasoning, Sentiment Reversal๊ณผ ์ƒˆ๋กœ์šด 2๊ฐœ์˜ task์ธ Acronym Generation, Constrained Generation.

 

3-1. Instantiating Self-Refine

 

 Feedback-Refine์˜ ๋ฐ˜๋ณต์€ ์›ํ•˜๋Š” output ํ€„๋ฆฌํ‹ฐ๋ฅผ ์–ป๊ฑฐ๋‚˜ task-specific ๊ธฐ์ค€์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์ตœ๋Œ€ 4๋ฒˆ์˜ ๋ฐ˜๋ณต์ด ๊ณ„์†๋œ๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” Feedback๊ณผ Refine์„ few-shot prompt๋กœ instruction์— ์ž˜ ๋Œ€๋‹ตํ•˜๋Š” ChatGPT์™€ GPT-4 ๊ฐ™์€ ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

Base LLMs.  ์ด ์‹คํ—˜์˜ ์ฃผ๋œ ๋ชฉํ‘œ๋Š” Self-Refine์„ ์‚ฌ์šฉํ•ด์„œ ์–ด๋–ค ๊ฐ•๋ ฅํ•œ base LLM์ด๋“  ๊ฐœ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ Self-Refine์„ ๋˜‘๊ฐ™์€ base LLM์ด์ง€๋งŒ, Feedback-Refine์ด ์—†๋Š” ๋ชจ๋ธ๊ณผ ๋น„๊ตํ•˜์˜€๋‹ค. ์ด๋ฅผ ์œ„ํ•ด GPT-3.5, ChatGPT, GPT-4 ์ด๋ ‡๊ฒŒ 3๊ฐœ์˜ base LLM์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

 

3-2. Metrics

 

 ๋…ผ๋ฌธ์—์„œ๋Š” 3๊ฐ€์ง€ ์œ ํ˜•์˜ metric์„ ๊ธฐ๋กํ•˜์˜€๋‹ค:

 

  • Task specific metric: ์ด์ „ ์—ฐ๊ตฌ๋“ค์˜ metric์„ ์‚ฌ์šฉํ•จ
  • Human-pref: ์ž๋™ํ™”๋œ metric์œผ๋กœ ํ‰๊ฐ€๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์˜์—ญ์€ human preference๋กœ ํ‰๊ฐ€ํ•จ
  • GPT-4 pref: GPT-4๋ฅผ human annotator์˜ ๋Œ€์ฒด์ž๋กœ ์‚ฌ์šฉํ•จ

 

3-3. Results

 

 ํ‘œ 1์˜ ์‹คํ—˜์˜ ๋ฉ”์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

 

Self-Refine์€ ์ผ๊ด€์ ์œผ๋กœ base model์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ์‹œ์ผœ ์คŒ.  ํ‘œ 1์˜ ๊ฒฐ๊ณผ๋ฅผ ์‚ดํŽด๋ณด๋ฉด Self-Refine์€ ๋ชจ๋“  ๋ชจ๋ธ ์‚ฌ์ด์ฆˆ์— ๊ฑธ์ณ์„œ ์ด์ „์˜ SoTA๋ฅผ ๋Šฅ๊ฐ€ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ๊ธฐ๋„ ํ•œ๋‹ค. ๋˜ํ•œ Dialogue Response Generation, Sentiment Reversal, Acronym Generation ๊ฐ™์€ ์„ ํ˜ธ๋„ ๊ธฐ๋ฐ˜ task์—๋„ Self-Refine์€ ์ƒ๋‹นํ•ญ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์ด๋Œ์—ˆ๋‹ค. 

 

 Math Reasoning์—์„œ๋Š” ์ˆ˜์ˆ˜ํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์คฌ๋Š”๋ฐ, ์ด๊ฒƒ์€ ์ •ํ™•ํžˆ ์–ด๋””์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•„๋‚ด๋Š” ๋Šฅ๋ ฅ์ด ๋ถ€์กฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ๋ณธ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆ˜ํ•™์—์„œ ์˜ค๋ฅ˜๋Š” ๋ฏธ๋ฌ˜ํ•˜๊ณ , ๊ฐ€๋”์€ ํ•˜๋‚˜์˜ ๋ผ์ธ ๋˜๋Š” ์•Œ๋งž์ง€ ์•Š์€ ์—ฐ์‚ฐ์— ์ œํ•œ๋  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

base LLM size์— ๊ฑธ์ณ์„œ ์„ฑ๋Šฅ ๊ฐœ์„ ์€ ์ผ๊ด€์ ์ด์—ˆ์Œ.  Self-Refine์€ ๊ฐ•๋ ฅํ•œ ๋ชจ๋ธ์ด ์ด๋“ค์˜ ์ž ์žฌ๋ ฅ์„ ํ•ด๊ธˆํ•˜์—ฌ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ด๋Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์คฌ๋‹ค.

 

ํ‘œ 1.&nbsp;GPT-3.5, ChatGPT, GPT-4๋ฅผ base LLM์œผ๋กœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋‹ค์–‘ํ•œ task์—์„œ Self-Refine์˜ ๊ฒฐ๊ณผ

 

4. Analysis

 Self-Refine์˜ 3๊ฐ€์ง€ ์ค‘์š”ํ•œ ์Šคํ…์€ Feedback, Refine, ์ด๋“ค์˜ ๋ฐ˜๋ณต์ด๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ์ถ”๊ฐ€์  ์‹คํ—˜์„ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ์Šคํ…์˜ ํšจ๊ณผ๋ฅผ ๋ถ„์„ํ•˜์˜€๋‹ค.

 

Feedback ํ€„๋ฆฌํ‹ฐ์˜ ์˜ํ–ฅ.  Self-Refine๊ณผ generic feedback, w/o feedback์„ ๋น„๊ตํ•˜์˜€๋‹ค. ์—ฌ๊ธฐ์„œ generic feddback์ด๋ž€ actionable & specific feedback ๋ณด๋‹ค ์ •ํ™•์„ฑ๊ณผ ๋ฐฉํ–ฅ์„ฑ์ด ๋ถ€์กฑํ•œ feedback์ด๋‹ค.

 

 ํ‘œ 2์˜ ๊ฒฐ๊ณผ๋ฅผ ์‚ดํŽด๋ณด๋ฉด generic feedback์ด ์–ด๋А ์ •๋„์˜ ์ง€๋„๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์ง€๋งŒ, specific & actionable feedback์€ ์šฐ์ˆ˜ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Š” Self-Refine์—์„œ specific & actionable ํ•œ ํ”ผ๋“œ๋ฐฑ์˜ ์ค‘์š”์„ฑ์„ ๊ฐ•์กฐํ•œ๋‹ค.

 

ํ‘œ 2.&nbsp;generic feedback์€ ๋‚ฎ์€ score๋ฅผ ๋‚ณ๊ฒŒ ๋˜๊ณ , ์ด๋Š” Self-Refine์˜ Feedback ์Šคํ…์˜ ์ค‘์š”์„ฑ์„ ๊ฐ€๋ฆฌํ‚ด

 

Feedback-Refine์˜ ์—ฌ๋Ÿฌ ๋ฐ˜๋ณต์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ• ๊นŒ?  ๊ทธ๋ฆผ 3์€ ๋ฐ˜๋ณต์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€๋จ์— ๋”ฐ๋ผ output์˜ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๊ฐœ์„ ๋˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค. ๋˜ํ•œ ๋ฐ˜๋ณต์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๊ฐœ์„ ์˜ ์ •๋„๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ๋„ ๋ณด์—ฌ์ค€๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ Feedback-Refine ๋ฐ˜๋ณต์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ output์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ์ƒ๋‹นํžˆ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ๋น„๋ก ๊ฐœ์„ ์˜ ์ •๋„๋Š” ๋ฐ˜๋ณต์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์ค„์–ด๋“ค์—ˆ์ง€๋งŒ ๋ง์ด๋‹ค.

 

 ๋˜ํ•œ ์„ฑ๋Šฅ์€ ๋ฐ˜๋ณต์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋‹จ์กฐ๋กญ๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€๋Š” ์•Š์•˜๋‹ค. output ํ€„๋ฆฌํ‹ฐ๋Š” ํ€„๋ฆฌํ‹ฐ ์ธก๋ฉด์— ๋”ฐ๋ผ ๊ฐœ์„ ๋˜๊ฑฐ๋‚˜ ๊ฐ์†Œํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋ฅผ ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด, Self-Refine์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ€„๋ฆฌํ‹ฐ ์ธก๋ฉด์— ์ˆซ์ž๋กœ ๋œ score๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐธ๋Ÿฐ์Šค ์žกํžŒ ํ‰๊ฐ€๋กœ ์ด๋Œ๊ณ  ์ ์ ˆํ•œ output ์„ ํƒ์„ ์ด๋Œ์—ˆ๋‹ค.

 

๊ทธ๋ฆผ 3 ์™ผ์ชฝ: iteration-wise score ๊ฐœ์„ . ์˜ค๋ฅธ์ชฝ: ๋ฐ˜๋ณต์— ๋”ฐ๋ฅธ Self-Refine ์„ฑ๋Šฅ ๊ฐœ์„ 

 

refining ๋Œ€์‹ ์— ๊ทธ์ € ์—ฌ๋Ÿฌ output์„ ์ƒ์„ฑํ•ด๋„ ๋ ๊นŒ?  ChatGPT์˜ $k$๊ฐœ์˜ ์ƒ˜ํ”Œ๊ณผ Self-Refine์˜ output์„ ๋น„๊ตํ•˜์˜€๋‹ค. ๊ทธ๋ž˜๋„ Self-Refine์˜ ์‘๋‹ต์ด ๋” ์„ ํ˜ธ๋˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์คฌ๋‹ค. ์ด๋Š” Feedback์— ๋”ฐ๋ฅธ Refine์˜ ์ค‘์š”์„ฑ์„ ๋ณด์—ฌ์ค€๋‹ค. 

 

Self-Refine์€ weaker model์—์„œ๋„ ์ž‘๋™ํ• ๊นŒ?  ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Vicuna-13B๋กœ Self-Refine์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ดˆ๊ธฐ์˜ output์€ ์ž˜ ์ƒ์„ฑํ•˜์˜€์œผ๋‚˜, refinement ํ”„๋กœ์„ธ์Šค์—์„œ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์คฌ๋‹ค. output์„ ๊ฐœ์„ ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋˜‘๊ฐ™์€ output์„ ๋ฐ˜๋ณตํ•ด์„œ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜, hallucination์„ ๋ณด์—ฌ์คฌ๋‹ค. ์ด๋Š” Vicuna-13B๊ฐ€ ๋Œ€ํ™” ๋ฐ์ดํ„ฐ์—์„œ ํ•™์Šต๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— instruction-based ๋ชจ๋ธ๋งŒํผ ์ž˜ ์ผ๋ฐ˜ํ™”ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ๋…ผ๋ฌธ์—์„œ๋Š” ์ฃผ์žฅํ•˜์˜€๋‹ค.

 

Qualitative Analysis.  ๋…ผ๋ฌธ์—์„œ๋Š” Self-Refine์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ”ผ๋“œ๋ฐฑ์˜ ํ€„๋ฆฌํ‹ฐ ๋ถ„์„๊ณผ ์ดํ›„์˜ ๊ฐœ์„ ์˜ ํ€„๋ฆฌํ‹ฐ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜์˜€๋‹ค. ๊ทธ ๊ฒฐ๊ณผ Math Reasoning & Code Optimization์—์„œ ํ”ผ๋“œ๋ฐฑ์ด actionable ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜์˜€๋‹ค.

 

 Self-Refine์ด ๊ธฐ์กด ์ƒ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š”๋ฐ ์‹คํŒจํ–ˆ์„ ๋•Œ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ๋Š” ์ž˜๋ชป๋œ ํ”ผ๋“œ๋ฐฑ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ์ด๋Š” Self-Refine์—์„œ ์ •ํ™•ํ•œ ํ”ผ๋“œ๋ฐฑ์˜ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๊ฐ•์กฐํ•œ๋‹ค. 

 

 ๊ทธ๋ฆฌ๊ณ  ํฅ๋ฏธ๋กญ๊ฒŒ๋„ refiner๋Š” ํ”ผ๋“œ๋ฐฑ์ด ๋ถ€๋ถ„์ ์œผ๋กœ ์•Œ๋งž์ง€ ์•Š์„ ๋•Œ์—๋„ ๋ฌธ์ œ์ ์„ ๋ฐ”๋กœ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

4. Limitations

 Self-Refine ๋ฐฉ์‹์˜ ์ฃผ๋œ ํ•œ๊ณ„์ ์€ base model์€ ์ถฉ๋ถ„ํ•œ few-shot ๋ชจ๋ธ๋ง ๋˜๋Š” instruction-following ๋Šฅ๋ ฅ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋…ผ๋ฌธ์—์„œ๋Š” Open-source model๋กœ ์—ฐ๊ตฌ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ์˜์–ด๋กœ๋งŒ ์‹คํ—˜์ด ์ง„ํ–‰๋ผ์„œ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋˜‘๊ฐ™์€ ์ด์ต์„ ์ œ๊ณตํ•ด ์ค„ ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋‹ค. 

 

 

 

 

 

์ถœ์ฒ˜

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