핵심 : LLM이 만든 결과물을 동일한 LLM이 평가하고 더 개선시키는 것(Self-Correction)에는 한계가 있다.
0. Abstract
비록 LLM의 성능이 좋아졌지만, 생성 결과에 대한 정확도가 다소 떨어지는 경우도 존재한다. 이걸 해결하기 위해서 현재는 self-correction을 사용하지만, LLM이 자체적으로 수정하는 intrinsic self-correction은 실제로 효과가 없거나 한계가 있다는 점을 비판적으로 접근한다. (심지어 성능이 더 떨어지는 경우도 존재한다)
1. Introduction
LLM이 처음 생성한 결과를 다시 수정했을 때 향상된다는 주장에서 근본적으로 나오는 질문은 “수정할 능력이 있으면 애초에 처음부터 잘하면 되지 않을까?”이다. 해당 논문에서는 모델의 내부 지식만을 사용했을 때, LLM이 self-correction을 어려워하거나 오히려 성능이 더 낮아진다. 특히 self-correction 과정에서 참고할 수 있는 라벨링이 없는 경우에는 성능 향상이 미미하다.
같은 API 호출 횟수에 대해서 그냥 여러번 생성하고 voting을 통해 정답을 고르는 것과 차이가 없다는 것과, 피드백할 때 주는 자세한 정보를 초기의 제공한다면 똑같이 성능이 향상된다는 점은 self-correction의 효과가 없다는 것을 증명한다.
2. Background and Related Work
먼저 self-correction이라는 용어를 사용할 때, intrinsic self-correction에 집중한다. 외부 tool이나 다른 모델, 인간이 제공하는 지식을 사용하지 않고, 오직 동일한 LLM으로 답변의 정확도를 알아낼 수 있는지를 보는 것이다. 이후 섹션들은 다음의 내용들을 다룬다:
- 기존의 방법들은 라벨링이 없다면 성능을 더 떨어트린다.
- 동일한 횟수로 모델의 응답을 받았을 때, self-correction을 하지 않는 경우에 성능이 더 높다.
- 첫 query에 충분히 많은 정보를 담으면 self-correction의 효과가 줄어든다.
3. LLMs Cannot Self-Correct Reasoning Intrinsically
GSM8K, CommonSenseQA, HotpotQA에 대해서 실험을 진행한다. 여러 모델을 사용해서 실험을 하는데, GPT-3.5-Turbo를 제외한 다른 모델들은 비용을 줄이기 위해 200개의 질문을 랜덤하게 추출해서 사용한다.
기존의 방식들은 Ground truth를 바탕으로 언제 self-correction을 종료할지 정한다. 하지만 더 fair하게 평가를 하기 위해서 LLM이 자체적으로 판단하게 했을 때, 성능이 더 떨어지는 것을 확인할 수 있다.
왜 성능이 오히려 떨어질까에 대한 답은 LLM이 본인의 추론에 대해서 정확하게 평가할 수 없기 때문이다. 따라서 틀린 답을 올바른 답으로 수정하는 경우보다, 올바르게 답한 것을 틀린 답으로 변경할 확률이 더 높다는 것이다 (feat. sycophancy). GPT-4와 GPT-4-Turbo가 Gpt-3.5와 Llama-2보다 첫 답안을 유지하는 경우가 많은데, 자신의 답에 confidence가 높거나 더 robust하기 때문인 것으로 추측한다.
4. Multi-Agent Debate Does Not Outperform Self-Consistency
여러 model끼리 서로 평가하고 토른을 하는 방식이나, 단순히 여러 개의 답변을 생성하는 방식이나 효과는 비슷하다. 오히려 동일한 수의 답변을 만든다고 하면, majority voting을 사용하는 self-consistency에 비해 multi-agent debate의 성능이 더 낮다. 결국 두가지 방식은 self-consistency를 모델로 판단하는지 단순히 개수를 세는지의 차이에 불구하고, multi-agent debate은 self-correction보다 self-consistency에 가깝다는 것을 알 수 있다.
5. Prompt Design Issues in Self-Correction Evaluation
Self-Correction이라고 주장하는 방식들 중에서 initial prompt가 불충분해서 성능이 더 좋아지는 경우도 존재한다. 예를 들어 20-30개의 컨셉을 모두 포함해서 문장들을 생성해야 될 때(Constrained Generation task), 피드백을 할 때 알려주는 것이 아닌 intial prompt에 “… include ALL of the above concepts…”와 같은 지시를 추가하면 성능이 향상되는 것을 확인할 수 있다. 프롬프팅이 잘 되어있으면 self-correction 프롬프트를 하게 되었을 때 오히려 성능이 떨어지게 되는 것도 확인할 수 있다.
6. Conclusion and Discussion
해당 연구에서는 LLM이 외부 피드백 없이 자신의 추론 과정을 self-correct하기 어려워 함을 보인다. LLM이 어떤 부분에서 한계를 가지고 있는지 파악함으로써 추후 연구에 도움이 되고자 한다. 다음 내용들은 self-correction에 대해 참고할 만한 아이디어들이다:
- 내부 피드백이 아닌 외부 피드백을 활용해서 correction 진행하기
- inference cost를 기준으로 baseline들과 비교하기 (동일한 호출횟수일 때의 self-consistency를 이길 수 있는지). alignment를 통해서 정답 분포들 중 가장 최적의, 높은 확률을 가지고 있는 답을 선택하는 방식으로 연구할 수 있다.
- 피드백 프롬프트보다, initial prompt에서 정밀한 설계를 통해 성능 향상하기
7. Limitations and Broader Impact
해당 연구에서는 LLM의 reasoning에서 self-correction이 효과가 없다는 것을 보였지만, 다른 도메인에서는 충분히 유의미할 수 있다고 밝힌다. 모델이 생성하는 답변의 스타일을 변경하거나 안전과 관련해서 필터링을 진행하는 것과 같은 경우에는, 답변이 적절하지 않은지 평가할 정도의 능력은 LLM이 가지고 있다.