이는 앞서 말했던, 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 개수가 많을수록 정확도가 상승하다가 수렴한다.
'끄적' 카테고리의 다른 글
| JARVIS (0) | 2025.01.07 |
|---|---|
| LLM 응용 : LLM Agent, Visual ChatGPT (1) | 2025.01.07 |
| CoT와 Zero-Shot CoT (0) | 2025.01.06 |
| 모델 평가 (0) | 2024.12.18 |
| Github Action (1) | 2024.12.17 |