끄적

Self-Consistency

uvumbu 2025. 1. 6. 16:43

이는 앞서 말했던, Zero shot으로 여러 예시를 만들어서 Few shot을 주면 성능이 향상된다는 것과 유사하다.

 

CoT의 문제점은 사고의 흐름 도중, 근거 도출 과정에서 실수가 발생한다면, 그 결과가 완전히 틀리는 경우가 발생한다.

하지만 Greddy decoding을 통한 생성 과정에서 그 실수를 알아낼 수 없다.

 

그렇다면 어떻게 하면 이런 문제를 보완할 수 없을까를 고민할 것이다.

 

이에 대한 해결책이 Self-Consistency이다.

 

 

Self-Consistency

사고의 흐름이 하나가 틀릴 수 있다면, 사고 흐름을 여유롭게 뽑은 다음에 다수결 투표를 하면 안될까? 하는 아이디어다.

CoT의 경우, 사고 흐름을 한번만 생성하고, 

Self-Consistency는 사고의 흐름을 생성할 때 Temperature를 다양하게 준다. 그리고 샘플링 과정을 통해 다양한 Reasoning을 뽑아낸다.

 

어떤 Reasoning은 틀릴 수도 있고, 또 어떤 Reasoning은 맞을 수도 있다.

하지만, 일반적으로 모델이 잘 풀 수 있는 문제라면 정답의 비율이 높다.

따라서 답을 뽑아낸 다음에 최종 답을 위한 집계를 한다.

일종의 앙상블 방법이라고 보면 된다.

 

 

계산량이 많다는 단점이 있지만 대부분의 경우 Reasoning 과정에서의 실수를 보완할 수 있기 때문에 정확도가 오른다.

 

주목할 점

  • Beam Search를 통해 가장 좋은 Reasoning Path들로 추론하기 보다, Sampling을 통해 다양한 Reasoning Path를 추론할 때 더욱 높은 정확도를 보인다.
  • 낮은 Temperature >> 낮은 다양성 >> 낮은 정확도
  • 모델 크기가 클수록 Greedy decoding 과의 격차가 증가한다.
  • Sample 개수가 많을수록 정확도가 상승하다가 수렴한다.