Self-consistency CoT는 greedy하게 하나의 reasoning trace만을 생성하던 기존의 CoT 방식에서 벗어나, 다양한 reaosning trace를 샘플링하여 이들 중 가장 높은 빈도로 consistent하게 등장하는 답을 최종 답으로 채택하는 방법을 말한다. 인간은 어떤 문제에 대한 해답을 찾을 때 한 개의 방법만을 생각해보는 것이 아닌, 다양한 방향으로 문제를 푸는 방법을 생각해보고, 결론이 같다면 이를 최종 답으로 선택하고는 한다. 이번 글에서는 이러한 점에 착안한 self-consistency가 무엇인지에 대해 알아보겠다.
Overview
Self-consistency 방법은 아래 그림과 같이 정말 간단하다.

기존의 CoT prompting 방법 (그림에서 위)은 앞서 설명했듯 하나의 가장 가능성이 높은 reasoning path만을 greedy하게 생성하여 이를 따라 정답을 도출해내곤 했다. 하지만 이러한 방법은 딱 한 개의 reaosning path만을 생성하기 때문에 만약 이것이 가능성이 높음에도 불구하고 틀렸을 경우, 이를 보정할 방법이 전혀 존재하지 않는다.
하지만 self-consistency 방법은 (그림에서 아래) 다양한 reasoning path들을 생성한다. 그림에서는 총 3개의 reasoning path를 생성했다. 이 때, 초록색으로 표현된 두 개의 reasoning path는 18이라는 같은 답을, 빨간색으로 표현된 한 개의 reasoning path는 26이라는 답을 도출했다. 이에 대해 majority voting 방식을 통해 reasoning path들을 marginalize하여 가장 높은 빈도로 도출된 답인 18을 최종 답으로 제시하는 것이다. 이 때, 다양한 reasoning path를 샘플링하는 데에는 temperature sampling, top-k sampling, nucleus sampling 등 어떠한 샘플링 방법도 모두 활용될 수 있다.
Experiments
Self-consistency 방법은 그것의 간단함에 비해 성능의 향상에는 효과가 컸다. 예를 들어, 다음 표는 수학 reasoning의 정답 정확도를 나타내는데, 단순 CoT prompting보다 self-consistency 방법의 성능이 훨씬 높은 것을 알 수 있다.

그렇다면 self-consistency가 다양한 reasoning trace를 생성하는 것을 통해 성능을 향상시키는데, 얼마나 다양한 샘플들을 생성해야할까? 이에 대한 대답은 아래 차트에서 알 수 있다. 보통 10개 정도의 샘플로도 큰 향상을 얻었고, 20-30개 이상 정도에서는 수렴하는 것을 확인할 수 있다.

또한 모델의 사이즈가 변함에 따라 self-consistency의 효과가 적어질 수도 있지 않을까? 라는 의문이 들 수 있다. 모델의 사이즈가 커질수록 reasoning 능력이 뛰어날 것이고, 그렇다면 한 번의 greedy decoding으로 옳은 정답을 바로 도출할 수도 있을 것이기 때문이다. 하지만 아래 실험에서 이는 사실이 아니고, self-consistency 방식이 다양한 model scale에서 모두 성능 향상을 보였음을 확인할 수 있다.

이번 글에서 self-consistency가 무엇인지에 대해 알아보았다. 약간은 오래된 방법이기는 하지만, 최근에는 이를 활용한 fine-tuning 및 self-improving 등 다양한 후속 연구들이 나왔기 때문에 LLM decoding의 기초가 되는 논문으로 알아두는 것이 좋다.
References
Wang, et al. Self-consistency improves chain of thought reasoning in language models. ICML 2023.




최근댓글