Source-linked AI summary
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
TL;DR
LLMs는 목표가 복합적이거나 명확히 정의하기 어려운 과제에서 이해 가능한 출력을 생성하더라도 최적에는 미치지 못할 수 있다. Self-Refine은 동일한 모델이 feedback을 생성하고 출력을 반복적으로 refinement하여, 7개의 다양한 과제에서 direct generation을 능가한다.
문제
LLMs는 목표가 복합적이거나 명확히 정의하기 어려운 과제에서 성능이 부족할 수 있으며, 이는 domain-specific training data에 의존하지 않는 반복적 refinement의 필요성을 뒷받침한다.
방법
SELF-REFINE은 초기 출력을 생성하고, 동일한 LLM으로부터 feedback을 얻은 뒤, 지정된 조건이 충족될 때까지 출력을 반복적으로 refinement한다.
결과
강력한 LLMs를 사용해 7개의 다양한 과제에서 direct generation 대비 5-40% absolute improvement를 달성했으며, 모든 model sizes와 과제에서 성능이 향상되었다.
시사점 및 한계
SELF-REFINE은 강력한 LLMs가 additional training이나 reinforcement learning 없이 test time에 유용한 feedback을 제공하고 자신의 출력을 개선할 수 있음을 보여준다.
시사점 및 한계
SELF-REFINE은 context 내에서 feedback을 제공하고 출력을 refinement하려면 충분한 few-shot modeling 또는 instruction-following 능력을 갖춘 base models를 필요로 한다.
Abstract
from arXiv · showhide
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 출력물을 반복적으로 향상시키며, 복잡하거나 불충분하게 명세된 과제의 한계를 보완한다. 7개의 다양한 생성 과제에서 강력한 LLM의 직접 생성보다 우수한 성능을 보였고, 절대 기준 5–40% 향상과 code generation에서 최대 13% 향상을 달성했다.
- 동기: LLM은 일관성 있는 초기 출력물을 생성하는 경우가 많지만, 복잡한 요구사항, 다면적 목표, 명확히 정의하기 어려운 목표를 처리하는 데 어려움을 겪는다.이러한 설정에는 대화 응답 생성과 프로그램 가독성 개선이 포함되며, 후보 출력물을 개선된 출력물로 반복적으로 매핑하는 방식이 도움이 될 수 있다.
- 동기: 이 접근법은 인간의 반복적 자기 개선에서 착안했으며, 초기 초안을 스스로 제공한 피드백을 이용해 수정한다.예로는 무례한 이메일 요청을 수정하는 일과 처음에 빠르고 임시방편으로 구현한 프로그램을 리팩터링하는 일이 있다.
- 방법: SELF-REFINE은 FEEDBACK 단계와 REFINE 단계를 번갈아 수행하며, 동일한 모델을 사용해 초기 출력물을 비판하고 중지 조건이 충족될 때까지 수정한다.이 과정은 지정된 반복 횟수만큼 실행되거나, 모델이 더 이상의 개선이 필요하지 않다고 판단할 때까지 실행된다.
- 경험적 범위와 결과: SELF-REFINE은 7개의 다양한 생성 과제에서 GPT-3.5와 GPT-4의 직접 생성보다 절대 기준 5–40% 우수하며, code generation을 최대 13% 향상시킨다.평가는 자연어와 source-code 생성을 아우르며, Codex와 같은 code model도 혜택을 얻는다.
2 SELF-REFINE을 활용한 반복적 개선
SELF-REFINE은 출력을 반복적으로 생성하고, 동일한 language model에서 feedback을 얻은 뒤, task-specific stopping condition을 충족할 때까지 출력을 개선한다. 학습이 필요하지 않으며, few-shot examples에 포함된 supervision과 세 개의 prompt에 의존한다.
- FEEDBACK: Feedback은 실행 가능하고 구체적이도록 유도되며, 출력 개선에 도움이 될 가능성이 높은 구체적인 변경 사항을 식별한다.Feedback examples는 code efficiency, readability, overall quality 등 여러 차원을 다룰 수 있다.
- SELF-REFINE 반복 수행: SELF-REFINE은 고정된 timestep이나 feedback에서 도출된 stop score와 같은 task-specific stopping condition을 충족할 때까지 FEEDBACK 단계와 REFINE 단계를 번갈아 수행한다.최종적으로 개선된 출력을 반환하며, 반복적인 실수를 피하도록 이전 출력과 feedback을 이후 prompt에 추가한다.
- 2 SELF-REFINE을 활용한 반복적 개선: SELF-REFINE은 동일한 underlying language model을 사용해 반복적인 feedback–refinement cycle을 통해 출력을 생성하고, 비평하고, 개선한다.이 방법은 initial generation, feedback, refinement에 각각 별도의 prompt를 사용하며, 추가 학습은 필요하지 않다.
- 2 SELF-REFINE을 활용한 반복적 개선: 이 접근법은 학습이 필요하지 않으며, generation, feedback, refinement prompt에 대해 few-shot examples에 포함된 supervision에만 의존한다.Few-shot examples는 task-specific input-output pair, feedback triple, refined-output quadruple로 구성된다.
3 평가
7개의 다양한 과제에서 SELF-REFINE은 동일한 base LLM을 일관되게 개선하며, 이전 state-of-the-art 시스템을 능가한다. 선호도 기반 과제에서 향상이 특히 크지만, 수학 과제의 개선 폭은 미묘한 오류를 식별하는 feedback의 어려움으로 제한된다.
- 주요 결과: SELF-REFINE은 모든 모델 규모에서 base model을 일관되게 개선하며, 모든 과제에서 이전 state-of-the-art 결과를 능가한다.Table 1은 GPT-3.5, ChatGPT, GPT-4를 base LLM으로 사용한 결과를 요약한다.
- Code 기반 과제: 8.7% absolute: GPT-4+SELF-REFINE은 Code Optimization을 27.3%에서 36.0%로 높인다.CODEX에서도 code 기반 과제에서 유사한 경향이 나타난다.
- Constrained Generation: SELF-REFINE은 Constrained Generation에서 특히 큰 향상을 보이는데, 반복적 refinement를 통해 합리적인 출력이 많이 존재하는 상황에서 누락된 개념을 보완할 수 있기 때문이다.이 과제에서는 주어진 개념을 최대 30개 포함하는 문장을 생성해야 하므로, 첫 시도에서 개념이 누락될 가능성이 더 커진다.
- 선호도 기반 과제: 49.2%: GPT-4의 Dialogue Response Generation 선호도 점수는 SELF-REFINE을 적용하면 25.4%에서 74.6%로 상승한다.다른 선호도 기반 과제에서도 모든 모델에 걸쳐 괄목할 만한 개선이 나타난다.
4 분석
분석 결과, SELF-REFINE은 구체적인 피드백에 의존하고 반복 iteration의 이점을 얻지만, 더 약한 model은 refinement process를 따르는 데 어려움을 겪어 한계가 있다. 정성적 분석에서는 feedback accuracy가 성공의 주요 결정 요인으로 확인되었으며, website-generation 사례는 더 폭넓은 적용 가능성을 시사한다.
- feedback quality의 영향: 구체적이고 실행 가능한 feedback은 Code Optimization, Sentiment Transfer, Acronym Generation에서 일반적이거나 없는 feedback보다 우수한 성능을 보인다.Code Optimization 점수는 SELF-REFINE feedback을 사용했을 때 27.5에서 generic feedback 사용 시 26.0, feedback이 없을 때 24.8로 하락한다. Sentiment Transfer는 43.2에서 31.2로 하락하고 feedback이 없으면 실패하며, Acronym Generation은 실행 가능한 feedback이 없을 때 56.4에서 48.0으로 하락한다.
- FEEDBACK-REFINE의 multiple iteration은 얼마나 중요한가?: Iteration은 일반적으로 output quality를 향상시키며, Code Optimization은 처음 22.0에서 세 번의 iteration 후 28.8로, Sentiment Reversal은 33.9에서 36.8로 상승한다.대부분의 향상은 초기 iteration에서 발생하지만, 여러 aspect를 포함한 task에서는 변동이 나타날 수 있다. 수치 aspect 점수는 균형 잡힌 평가와 output selection을 뒷받침한다.
- SELF-REFINE은 더 약한 model에서도 작동하는가?: Vicuna-13B는 올바른 형식의 feedback을 생성하고 refinement prompt를 따르는 데 어려움을 겪었으며, Oracle 또는 hard-coded feedback을 사용해도 output을 반복하거나 conversation을 hallucinate하는 경우가 많았다.이는 SELF-REFINE의 refinement process가 더 약한 base model로 안정적으로 transfer되지 않을 수 있음을 보여준다.
- 정성적 분석: 실패한 refinement의 대부분은 feedback error에서 비롯되었다. 33%는 error를 잘못된 위치에 지정했고, 61%는 부적절한 수정을 했으며, 좋은 feedback을 잘못 구현한 경우는 6%에 불과했다.이 결과는 accurate feedback이 SELF-REFINE에서 failure에 가장 민감한 component임을 보여준다.
- 정성적 분석: 성공한 refinement 중 61%는 정확한 feedback을 사용해 정밀한 수정을 수행했으며, 33%는 부분적으로 부정확한 feedback에도 성공했다. 이는 sub-optimal feedback에 대한 resilience를 보여준다.feedback이 완전히 정확하지 않아도 refiner가 때때로 문제를 수정할 수 있었다.
- Benchmark 너머로: website-generation 사례에서는 usability와 aesthetics를 향상시키기 위해 HTML, CSS, JavaScript를 iterative하게 refinement함으로써 SELF-REFINE을 benchmark 너머로 확장했다.이 process는 rudimentary design에서 시작해 user-provided high-level goal에 따라 이를 발전시켰다.
5 관련 연구
기존 refinement 연구는 다양한 task를 아우르며 feedback source, representation, refiner type에 따라 달라진다. SELF-REFINE은 동일한 pretrained language model이 생성한 natural-language feedback을 사용해 supervised refiner training과 parameter update를 피한다.
- 관련 refinement 방법: 기존 방법은 summarization, script generation, program synthesis 및 기타 application을 포함한 여러 task에서 output을 refine한다.이러한 접근법은 human- 또는 machine-generated natural-language feedback을 활용한다 (Scheurer et al., 2022; Tandon et al., 2021; Le et al., 2022a; Yasunaga and Liang, 2020; Bai et al., 2022a; Schick et al., 2022b; Saunders et al., 2022a; Bai et al., 2022b; Welleck et al., 2022).
- Feedback source: Feedback source에는 human, scalar reward function, compiler, Wikipedia edit가 포함되며, 이는 서로 다른 cost와 supervision type을 반영한다.Human feedback은 효과적이지만 cost가 높아 surrogate scalar reward와 대안적인 machine-derived signal을 사용하게 된다 (Tandon et al., 2021; Elgohary et al., 2021; Tandon et al., 2022; Bai et al., 2022a; Liu et al., 2022; Lu et al., 2022; Le et al., 2022a; Welleck et al., 2022; Yasunaga and Liang, 2020; Schick et al., 2022b).
- Feedback representation: SELF-REFINE은 동일한 language model이 self-feedback을 제공할 수 있고 GPT-4와 같은 pretrained LLM을 활용할 수 있으므로 natural-language feedback을 사용한다.Feedback은 natural language 또는 non-natural-language signal로 표현될 수 있으며, example pair와 scalar reward가 이에 포함된다.
- Refiner 유형: 기존 refiner는 supervised 방식이거나 model generation으로부터 학습되거나 특정 domain에 맞게 설계될 수 있다. 반면 reinforcement-learning 대안은 intermediate-generation feedback 없이 scalar reward를 최적화하지만 parameter update가 필요하다.Model-generation-based refiner는 새로운 domain마다 학습되는 반면, SELF-REFINE은 model parameter를 update하지 않고 refinement를 수행한다 (Welleck et al., 2022; Peng et al., 2023; Yang et al., 2022; Lu et al., 2022; Le et al., 2022a).
6 한계와 논의
논의에서는 모델 역량, 접근성과 재현성, 언어 범위, 잠재적 오용과 관련된 한계를 짚고, 재현성을 지원하기 위해 코드와 출력을 공개했다는 점을 언급한다.
- Self-Refine은 supervised training data 없이도 맥락 내에서 피드백을 제공하고 출력을 개선할 수 있도록 충분한 few-shot modeling 또는 instruction-following 능력을 갖춘 base model을 필요로 한다.
- 실험에는 학습 세부 사항과 편향이 완전히 문서화되지 않은 폐쇄형 고비용 모델이 사용되지만, 저자들은 재현성을 위해 코드와 모델 출력을 공개한다.
- 실험이 영어 데이터셋만을 다루므로, 다른 언어에서는 모델이 동일한 이점을 제공하지 못할 수 있다.
- 이 접근법은 prompting 기법을 사용해 모델을 더 유해하거나 해로운 텍스트를 생성하도록 유도하는 악의적 행위자를 명시적으로 방어하지 않는다.
7 결론 · A 평가 과제 · B 더 폭넓은 관련 연구
SELF-REFINE은 추가 학습 데이터나 reinforcement learning 없이 단일 LLM이 피드백을 생성하고 출력을 반복적으로 개선하도록 하며, 다양한 과제에서 평가된다. 이 논문은 이러한 구조화된 세분화 피드백 기반 접근법을 Reflexion, Self-Correction 및 reinforcement-learning 대안과 구분하고, 코드·데이터·프롬프트를 공개한다.
- 7 결론: SELF-REFINE은 추가 학습 데이터나 reinforcement learning 없이 하나의 LLM을 사용해 자체 피드백을 제공하고 출력을 반복적으로 개선한다.저자들은 이를 매우 다양한 과제에 적용할 수 있는 단순한 접근법으로 제시한다.
- 7 결론: 저자들은 반복적 개선에 관한 후속 연구를 지원하기 위해 코드, 데이터, 프롬프트를 익명으로 공개한다.자료는 selfrefine.info에서 이용할 수 있다.
- A 평가 과제: 평가는 여러 과제와 데이터셋을 다루며, 입력 x와 이전 출력 y_t에서 피드백 fb_t와 개선된 출력 y_t+1로 이어지는 하나의 개선 반복을 보여준다.Table 4는 피드백과 개선에 사용된 관련 데이터셋, 규모, 과제 예시, few-shot 프롬프트를 제시한다.
- B 더 폭넓은 관련 연구: Reflexion 과 비교하면, SELF-REFINE은 ReAct 기반 계획에서 다음 해를 찾기보다 세분화되고 구조화된 다차원 피드백을 사용해 출력을 수정한다.Reflexion과 ReAct는 실행과 가능한 개선점에 대해 자유 형식의 성찰을 제공하는 반면, SELF-REFINE은 더 정확하고 실행 가능하다고 설명된다.
- B 더 폭넓은 관련 연구: Self-Correction (Welleck et al., 2022)과 비교하면, SELF-REFINE은 피드백을 명시적으로 생성하며, 논문은 이것이 훨씬 더 나은 개선 출력을 산출한다고 보고한다.또한 Self-Correction은 별도로 학습된 모델로 개선하는 반면, SELF-REFINE은 지시문과 few-shot prompting을 사용한다고 설명한다.
- B 더 폭넓은 관련 연구: SELF-REFINE은 지시문과 few-shot prompting을 사용함으로써 별도의 과제별 refiner를 학습시키는 과정을 피한다.이는 과제마다 별도의 refiner 또는 corrector를 두는 Self-Correction과 대조된다.
- B 더 폭넓은 관련 연구: Table 5는 관련 접근법을 reinforcement-learning methods, trained correctors, few-shot correctors로 분류한다.캡션은 각각을 보라색, 주황색, 초록색으로 표시하며, 여기서는 비교 셀 값을 보고하지 않는다.
C 인간 평가 … F Few-Shot Learning Models 및 Fine-Tuned Baselines의 최신 SELF-REFINE 비교
이 논문은 blind human A/B judgments, GPT-4 기반 structured assessment, 그리고 reasoning 및 programming tasks에서 few-shot 및 fine-tuned baselines와의 비교를 통해 SELF-REFINE을 평가한다. 이러한 평가는 preference alignment, model-assisted judging, 그리고 서로 다른 sample budgets와 model architectures에서의 성능을 검토한다.
- C 인간 평가: SELF-REFINE은 blind A/B judgments를 사용해 baseline과 비교 평가되며, annotator는 task instruction에 더 잘 부합하는 output을 선택한다.평가에서는 어떤 method가 생성했는지 밝히지 않은 채 input, instruction, 두 candidate outputs를 제시한다.
- C 인간 평가: Human-evaluation preference rate는 annotator가 baseline보다 SELF-REFINE을 선택하는 빈도를 측정하며, 각 dataset에서 150 examples per dataset을 대상으로 평가를 수행한다.Table 6은 baseline에 대한 SELF-REFINE의 selection 비율에 해당하는 normalized preferences를 보고한다.
- D GPT-4 평가: GPT-4는 숙고를 유도하고 최종 선택 전에 rationale을 요구하는 structured comparison prompts를 입력받아 evaluator로 사용된다.이 평가 방식은 sentiment reversal, acronym generation, dialogue response generation에 대해 시연된다.
- D GPT-4 평가: Acronym generation에서 GPT-4는 발음 용이성, 철자 작성 용이성, title과의 연관성, positive connotation을 기준으로 candidates를 비교한다.Prompt는 짧은 설명과 함께 어느 acronym이 더 나은지, equally good인지, 또는 어느 쪽도 좋지 않은지 categorical judgment를 요구한다.
- E 모델 키: 이 논문은 model key에서 OpenAI의 GPT-3.5 model terminology를 참조한다.Model-key section은 독자에게 GPT-3.5 terminology에 관한 OpenAI documentation을 안내한다.
- F Few-Shot Learning Models 및 Fine-Tuned Baselines의 최신 SELF-REFINE 비교: 비교 section에서는 GSM 및 PIE datasets를 포함해 mathematical reasoning 및 programming tasks 전반에서 SELF-REFINE을 few-shot and fine-tuned baselines와 비교 평가한다.Tables 7 and 8은 각각 math reasoning과 program optimization에 대한 model-performance comparisons를 제시한다.
- F Few-Shot Learning Models 및 Fine-Tuned Baselines의 최신 SELF-REFINE 비교: PIE dataset에서 SELF-REFINE은 at most 4 samples를 사용하면서 다른 models의 16 또는 32 samples보다 우수한 program-optimization performance를 달성한다.Table 8은 optimized programs의 percentage로 성능을 보고하며, human references, baseline models, fine-tuned PIE-2B 및 PIE-16B models, 그리고 서로 다른 LLMs를 사용하는 SELF-REFINE을 포함한다.
G Vicuna-13b 평가 · H 추가 분석
Vicuna-13b는 task initialization prompt를 일관되게 따르지만 feedback 및 refinement prompt에서는 어려움을 겪으며, 종종 assistant와 유사하거나 유용하지 않은 출력을 생성한다. Feedback과 refinement에 ChatGPT를 사용하면 Vicuna-13b의 initialization을 개선할 가능성이 있지만, 제시된 결과는 불완전하다.
- G Vicuna-13b 평가: Vicuna-13b는 task initialization prompt를 일관되게 따르지만 feedback 및 refinement prompt에서는 어려움을 겪으며, 종종 assistant와 유사한 응답을 생성한다.논문은 Appendix G에 대표적인 예시를 제시한다.
- G Vicuna-13b 평가: 다른 모델과 동일한 prompt를 사용한 결과 Vicuna-13b의 성능은 제한적이었으며, 더 광범위한 prompt engineering이 필요할 수 있음을 시사한다.
- G Vicuna-13b 평가: Mixed-refine은 initialization에 Vicuna-13b를, feedback과 refinement에 ChatGPT를 사용하며, Math Reasoning 결과는 이 조합이 성능을 향상할 수 있음을 시사한다.Vicuna-13b만 사용했을 때 부분적으로 제시된 Math Reasoning 결과에서 24.18%를 달성했다.
- G Vicuna-13b 평가: 또 다른 sentiment-transfer trajectory에서는 Vicuna-13b가 점점 더 부정적인 리뷰를 생성했지만, feedback은 그 sentiment를 일관되게 판단하지 못했고 때로는 긍정적인 표현을 잘못 인용했다.이 trajectory에는 해당 리뷰가 이미 매우 부정적이라는 feedback에 이어, 긍정적인 구절이 포함되어 있다는 모순된 주장이 등장한다.
- G Vicuna-13b 평가: Vicuna-13b의 sentiment-transfer 시도에서는 빈 feedback과 오류가 발생했고, 이어서 유용하지 않은 feedback을 생성한 뒤 prompt의 내용을 복사했다.이 예시는 이러한 출력들을 GPT-4의 출력과 대조한다.
- G Vicuna-13b 평가: Figure 6은 SELF-REFINE 출력, MULTI multiple-sample baseline, 그리고 무승부에 대한 선호를 비교한다.
H.1 Oracle Feedback 사용 … L.1 방법
확장과 분석 전반에서 SELF-REFINE은 외부 정답성 신호의 이점을 얻고, benchmark를 넘어 반복적 개선을 지원하며, 통계적으로 유의한 향상을 보이는 동시에 feedback과 refinement의 실패 양상을 드러낸다. 또한 새로운 task를 도입하고 recursive code-readability improvement에 이 방법을 적용한다.
- H.1 Oracle Feedback 사용: Oracle Feedback은 현재 답이 틀린 경우에만 refinement를 수행함으로써 GPT-3의 Math Reasoning 성능을 4.8%, GPT-4의 성능을 0.7% 향상한다.이 방법은 refinement를 진행할지 결정하기 위해 정답성 정보를 사용하며, 외부 신호가 특정 task에서 도움을 줄 수 있음을 보여준다.
- H.1 Oracle Feedback 사용: Dialogue Response Generation에서는 25%의 부정확한 feedback, 30%의 일반적인 feedback, 10%의 부정확한 scoring이 feedback 오류로 나타난다.이러한 오류는 user input을 해석하고 이해하는 데 존재하는 약점을 보여준다.
- H.1 Oracle Feedback 사용: Refinement 과정에서 10%의 사례는 robust하지 않았고, 25%는 feedback을 무시했으며, 20%는 새로운 문제를 도입한 반면, 60%는 부정확하거나 일반적인 feedback에도 robust했다.Acronym Generation은 한 품질 측면의 향상이 다른 측면의 손실과 맞바뀔 수 있기 때문에 iteration마다 변동할 수 있으며, 이는 명시적인 수치 feedback score의 필요성을 뒷받침한다.
- I Benchmark를 넘어: benchmark를 넘어 SELF-REFINE은 색상, font, content, layout을 다루는 실행 가능한 website-layout feedback을 생성한 뒤, 개선된 ice-cream page와 photosynthesis page를 생성한다.제시된 예시는 색상 변경, font 크기 확대, content 추가, divider 삽입과 같은 구체적인 수정을 보여준다.
- J 통계적 Confidence Interval: GPT-4의 향상은 거의 모두 통계적으로 유의하며, ChatGPT의 향상은 7개 dataset 중 4개에서, GPT-3.5의 향상은 7개 중 3개에서 유의하다.Table 13은 평가된 task 전반에서 SELF-REFINE의 Wilson confidence interval과 유의성 표지를 보고한다.
- K 새로운 Task: CommonGen-Hard는 3–5개가 아니라 20–30개의 concept를 포함하는 일관된 문장을 요구하도록 CommonGen을 확장하여, 고급 commonsense reasoning과 창의적 problem-solving을 목표로 한다.SELF-REFINE은 introspective feedback을 활용한 반복적 생성을 통해 이 constrained-generation 과제에 대응한다.
- L Code Readability: Code readability를 위해 SELF-REFINE은 자연어 critique를 사용해 수정을 유도하며, readability를 correctness와 구별되는 것으로 보고 usability, upgradability, maintenance에 중요한 요소로 다룬다.이 접근법은 LLM이 readability 향상을 자유롭게 선택하고 표현하여 code refinement를 위한 feedback으로 사용하게 한다.
- L.1 방법: Readability 방법은 INIT를 건너뛴 뒤 y_0에서 시작해 N iteration 동안 c_k+1 = critique(y_k)와 y_k+1 = editor(y_k, c_k+1)를 recursive하게 계산한다.FEEDBACK은 code를 critique하고, REFINE은 해당 critique를 적용해 편집된 code를 다음 iteration을 위해 반환한다.
L.2 실험 … M.1 모듈
이 논문은 반복적인 피드백과 refinement를 통해 code readability와 open-domain dialogue response를 개선하는 데 SELF-REFINE를 적용한다. Code readability에서 SELF-REFINE는 세 가지 automatic metric에서 human rewrite와 동등하거나 더 나은 성능을 보이며, dialogue generation에서는 modular initialization, multifaceted feedback, iterative refinement를 사용한다.
- L.2 실험: Code-readability 실험은 읽기 어려운 여러 줄 competitive-programming snippet을 포함하는 CodeNet의 무작위 300-example subset을 사용한다.Human performance를 평가하기 위해 별도의 60-example subset은 human annotator가 편집한다.
- L.2 실험: Critique model과 editor model 모두 InstructGPT를 사용하며, critique decoding은 T = 0.0 또는 T = 0.7, code editing은 greedy 방식, refinement iteration은 N = 5로 설정한다.Prompt는 Figures 22–23에 제시되어 있다.
- L.2 실험: 각 iteration에서 연구는 critique temperature T = 0.0 및 T = 0.7 조건의 300 CodeNet example에 대해 meaningful-variable ratio, comment ratio, function-unit count를 추적한다.Iteration 0은 원래 CodeNet code에서 측정하며, 변화 궤적은 Figure 11(a–c)에 도시한다.
- L.2 실험: T = 0.7에서 SELF-REFINE는 human annotator보다 meaningful variable, function unit, comment를 약간 더 많이 생성하는 반면, T = 0.0에서는 meaningful variable과 comment는 더 적고 function unit은 더 많이 생성한다.이 비교는 60-example subset의 final iteration에 대해 보고된다.
- M Dialogue Response Generation: Open-domain dialogue response generation은 다양한 주제에 걸쳐 일관되고 흥미로운 response를 요구하는 어려운 task로 정식화되며, 여기서는 automatically generated feedback과 iterative refinement를 통해 다룬다.이 논문은 one-step generation에만 의존하기보다 SELF-REFINE를 사용해 response quality를 개선한다.
- M.1 모듈: Dialogue pipeline은 conversation context에서 response를 초기화한 뒤, response quality의 ten qualitative aspect를 평가하는 feedback을 생성한다.Feedback은 six in-context example을 사용하며, 특정 aspect에서 response가 낮은 점수를 받는 이유를 설명하는 경우가 많다.
- M.1 모듈: Iterate module은 dialogue context, 이전 response, feedback을 사용해 output을 refinement하므로, revised response가 feedback에 better matches하도록 만든다.Module의 context-response-feedback-refinement example은 Figure 13에 제시되어 있다.
M.2 설정 및 실험 … P 감성 반전
대화, 코드 최적화, 수학 추론, 감성 반전에 걸쳐 SELF-REFINE은 few-shot prompting을 통해 반복적 피드백과 refinement를 적용하며, 실험에서는 그 성능 향상과 task-specific 구현을 평가한다. 보고된 대화 결과에서 SELF-REFINE은 자동 평가와 사람 평가 모두에서 direct generation을 앞서며, 다른 절에서는 최적화, 오류 수정, 감성 맞춤형 refinement 설정을 설명한다.
- M.2 설정 및 실험: 대화 설정에서는 INIT, FEEDBACK, ITERATE를 few-shot prompt로 구현하고, INIT in-context example 3개를 제공하며, 최대 k = 3회 반복을 수행한다.INIT는 self-improvement loop에서 feedback이 없는 baseline으로 기능한다.
- M.2 설정 및 실험: 대화 평가는 FED dataset의 18개 세부 품질을 사용하며, automated metric과 사람의 선호 판단을 모두 활용한다.사람 평가에서는 annotator가 10개 응답 품질 측면에 대해 무작위로 선택된 test instance 100개에서 SELF-REFINE과 INIT 응답을 비교하며, 어느 쪽도 선호되지 않을 때는 “both”를 선택할 수 있다.
- M.2 설정 및 실험: SELF-REFINE은 최신 GPT model version 3종에 걸친 자동 및 사람 대화 응답 평가 모두에서 INIT를 큰 차이로 앞선다.이 연구는 GPT-3.5를 강력한 direct-generation baseline으로 사용하며, SELF-REFINE이 수동 분석에서 더 매력적인 출력을 생성한다고 보고한다.
- N 코드 최적화: 코드 최적화에서 SELF-REFINE은 PIE의 최적화에 대한 자연어 feedback을 생성하고, 추가 개선을 위해 그 feedback을 REFINE에 입력한다.PIE는 runtime performance를 개선하도록 설계된 알고리즘 수정으로 기능적으로 올바른 program을 대상으로 한다.
- N 코드 최적화: 코드 최적화 비교에서는 SELF-REFINE이 direct method와 introspective feedback이 없는 단순화된 feedback approach를 모두 앞선다고 보고한다.첨부 표는 main-results 및 ablation analysis로 설명되며, 다면적 feedback의 가치를 강조한다.
- O 수학 추론: GSM-8k 수학 추론에서 SELF-REFINE은 해를 Python으로 표현하고, 생성된 code의 오류를 식별하고 수정하기 위해 feedback을 반복적으로 사용한다.generator가 initial solution을 생성하고, FEEDBACK이 오류를 검사하며, REFINE이 수정된 solution을 만든다. correct label이 loop의 진행 시점을 결정한다.
- O 수학 추론: 수학 추론 정확도는 GSM-8k benchmark에서 SELF-REFINE 반복 횟수의 함수로 평가된다.논문은 이 결과를 Figure 14에 제시하며, 반복 과정 내 transition을 결정하기 위해 label feedback을 사용한다.
- P 감성 반전: 감성 반전은 전체 review를 다시 작성해 positive와 negative 감성 사이를 전환하며, 최대 k = 4회 반복을 위해 few-shot INIT, FEEDBACK, ITERATE module을 사용한다.반복은 target sentiment에 도달할 때까지 계속되므로, 이 task는 문장 수준 transfer가 아니라 long-form style-transfer setting에 해당한다.
P.1 세부 사항 … S 프롬프트
이 논문은 sentiment reversal, 다면적 피드백을 사용하는 acronym-generation task, CommonGen-Hard constrained generation의 평가 절차를 상세히 설명하고 모든 실험 과제의 프롬프트를 기록한다. 이러한 자료는 iterative refinement, chain-of-thought-style feedback, 과제별 평가 기준을 강조한다.
- P.1 세부 사항: Sentiment reversal은 target-sentiment 준수와 generation dramaticness에 대한 자동 및 인간 preference rates를 통해 평가된다.자동 평가는 어떤 리뷰가 더 긍정적인지 또는 덜 지루한지를 few-shot GPT로 비교하며, target sentiment는 VADER classifier로도 판정한다.
- P.1 세부 사항: Pin-pointed chain-of-thought-style feedback은 수정할 단어와 구문을 식별하며, sentiment evaluation에서 “something is wrong” feedback ablation보다 우수한 성능을 보인다.Ablation은 구체적인 진단 지침을 제거하는 반면, 전체 feedback은 원하는 sentiment level에 도달하는 방법을 설명한다.
- Q Acronym Generation: Acronym Generation은 길이, 발음, 관련성 사이의 tradeoff를 고려해 간결하고 기억하기 쉬운 acronym을 생성하며, 수작업으로 정제한 250 examples dataset을 사용한다.이 과제의 feedback은 발음 용이성, 철자 용이성, 제목과의 관련성, 긍정적 함의, 친숙도를 평가하며, criterion scores를 산정하기 전에 reasoning을 생성하고 최종 품질은 사람이 평가한다.
- Q Acronym Generation: Acronym feedback framework는 각 candidate를 발음, 철자, 제목과의 관련성, 함의, 인지도 측면에서 평가한다.일부 기준은 정량화하기 어렵기 때문에 저자들은 점수를 부여하기 전에 few-shot demonstrations와 chain-of-thought-style reasoning을 사용한다.
- R Constrained Generation: CommonGen-Hard는 CommonGen의 개념 수를 3–5에서 20–30 concepts로 확장해 일관되고 문법적인 생성과 SELF-REFINE의 introspective iterative refinement를 평가한다.늘어난 개념 수는 commonsense reasoning에 부담을 주고 초기 model outputs의 결함을 드러내기 위한 것이다.
- S 프롬프트: 프롬프트 부록은 acronym generation, code tasks, constrained generation, dialogue, math reasoning, sentiment reversal을 위한 generation, feedback, and refinement prompts를 제공한다.Base LLM은 input-output examples를 사용하고, feedback은 input-output-feedback triples를 사용하며, refinement는 input-output-feedback-refined quadruples를 사용한다.
- S 프롬프트: 과제별 프롬프트는 rubrics와 examples를 통해 refinement를 구체화하며, 여기에는 원하는 dialogue-response traits ten 가지와 constrained generation을 위한 명시적 concept-coverage checks가 포함된다.기록된 프롬프트에는 acronym, math, sentiment-reversal tasks를 위한 worked examples도 포함된다.