|

Self-Consistency는 왜 CoT를 더 강하게 만들까: 여러 번 생각해 더 맞히는 원리

Self-Consistency와 Chain-of-Thought의 관계를 설명하는 대표 이미지
여러 reasoning path를 샘플링해 더 일관된 답을 고르는 Self-Consistency 핵심 정리

Self-Consistency는 Chain-of-Thought를 더 길게 만드는 기법이 아닙니다. 핵심은 한 번의 추론을 더 믿는 대신, 여러 reasoning path를 샘플링한 뒤 가장 일관되게 반복되는 답을 고르는 것입니다. 이 글에서는 왜 이 방식이 정확도를 올릴 수 있는지, 어떤 비용을 추가하는지, 어디서 잘 맞고 어디서 낭비가 되는지, 그리고 CoT·ReAct와는 어떤 관계인지 구조적으로 정리하겠습니다.


한 줄 요약

CoT가 모델에게 생각할 자리를 열어줬다면, Self-Consistency는 그 생각을 한 경로에 올인하지 않게 만드는 방법입니다. 복잡한 문제는 중간 추론이 조금만 흔들려도 마지막 답이 틀어지는데, 여러 경로를 뽑아 보면 우연히 잘못 간 한 경로보다 여러 경로가 공통으로 가리키는 답이 더 믿을 만할 수 있습니다.


CoT의 빈틈

Chain-of-Thought는 intermediate reasoning steps를 드러내게 해서 산술, 상식, symbolic reasoning 같은 문제에서 큰 도움을 줬습니다. 하지만 기본 CoT는 보통 한 번 생성된 추론 경로에 크게 의존합니다. 질문이 조금 복잡하면 초반의 작은 판단 실수 하나가 뒤까지 이어지고, 그 경로가 그럴듯하게 읽히면 틀린 reasoning path도 끝까지 설득력 있어 보일 수 있습니다.

즉 CoT는 생각을 펼치게 해주지만, 그 생각이 우연히 잘못 펼쳐졌을 때의 복구 장치는 약한 편입니다. Self-Consistency는 바로 이 지점을 겨냥합니다.


Self-Consistency 핵심

Self-Consistency 논문은 greedy decoding으로 가장 그럴듯한 한 경로만 택하지 말고, 다양한 reasoning path를 여러 개 샘플링한 뒤 가장 일관된 답을 선택하자고 제안합니다.

  1. CoT 프롬프트로 reasoning path를 여러 개 만든다
  2. 각 경로가 내놓은 최종 답을 모은다
  3. 가장 자주, 혹은 가장 일관되게 나타나는 답을 고른다

중요한 점은 reasoning path 자체를 평균내는 것이 아니라, 여러 경로가 끝에서 어디로 수렴하는지 본다는 것입니다. 그래서 Self-Consistency는 단순한 다수결이라기보다, 복잡한 문제에는 여러 사고 경로가 있을 수 있지만 정답이라면 같은 결론으로 모일 가능성이 높다는 직관을 이용하는 decoding 전략에 가깝습니다.


왜 더 맞힐까

우연을 줄인다

greedy CoT는 첫 번째로 그럴듯해 보이는 경로 하나에 기대는 경향이 있습니다. 반면 Self-Consistency는 한 번의 우연한 실수에 덜 묶입니다. 어떤 경로는 초반 계산을 잘못할 수 있고, 어떤 경로는 문제를 잘못 해석할 수 있지만, 정답 쪽 경로가 반복적으로 나타난다면 그 자체가 더 강한 신호가 됩니다.

길은 여럿이다

수학 word problem이나 commonsense reasoning 문제를 풀 때 사람도 꼭 같은 문장 순서로 생각하지는 않습니다. 어떤 사람은 전체 식을 먼저 세우고, 어떤 사람은 부분값부터 구합니다. 경로는 달라도 정답이 같다면, 그 공통된 결론은 더 믿을 만합니다. Self-Consistency는 바로 이 성질을 활용합니다.

CoT를 보강한다

Self-Consistency는 CoT를 버리는 접근이 아닙니다. 오히려 CoT가 만들어낸 intermediate reasoning steps를 활용하되, 그중 하나만 채택하는 방식의 약점을 보완합니다. 그래서 CoT의 후속 보강책으로 이해하는 편이 자연스럽습니다.


짧은 비유

한 문제를 한 사람에게 한 번만 풀게 하면, 실수인지 실력인지 구분하기 어렵습니다. 같은 사람에게 풀이를 조금 다르게 여러 번 시켜 봤더니 세 번은 42가 나오고 한 번만 36이 나왔다면, 보통은 42 쪽을 더 신뢰하게 됩니다. Self-Consistency도 비슷합니다. 한 번의 chain-of-thought를 절대시하지 않고, 여러 번 생각시킨 뒤 어디에 수렴하는지를 보는 것입니다.


잘 맞는 문제

수학형 추론

산술 문제, 수학 word problem, 단계적 계산 문제는 Self-Consistency의 직관이 잘 맞습니다. 중간 계산 경로는 여러 개일 수 있지만 정답은 하나인 경우가 많기 때문입니다. 논문도 GSM8K, SVAMP, AQuA 같은 benchmark에서 큰 개선을 보고했습니다.

상식 추론

StrategyQA나 ARC-Challenge처럼 여러 단서를 엮어 결론을 내리는 문제도 도움을 받을 수 있습니다. 한 번의 reasoning path가 특정 단서에 과하게 끌려갈 수 있는데, 여러 경로를 보면 공통 결론이 더 잘 드러날 수 있습니다.

정답 수렴형

핵심은 여러 경로가 하나의 답으로 모일 가능성이 있는가입니다. 이 성질이 강할수록 Self-Consistency는 잘 작동할 가능성이 큽니다.


비용만 늘 때

쉬운 문제

간단한 사실 질문이나 짧은 분류 문제는 굳이 reasoning path를 여러 개 뽑을 이유가 약합니다. 한 번에 잘 맞히는 문제라면 Self-Consistency는 정확도 개선보다 비용 증가가 더 눈에 띌 수 있습니다.

검색이 필요한 문제

최신 정보, 문서 조회, 검색 기반 QA처럼 내부 추론보다 외부 근거 접근이 중요한 문제는 Self-Consistency만으로 해결되지 않습니다. 여러 번 생각해도 모르는 사실은 여전히 모릅니다. 이 경우는 CoT를 여러 번 돌리는 것보다 검색·도구 호출·검증이 더 중요합니다.

같이 틀릴 때

여러 path를 뽑아도 프롬프트나 문제 해석 자체가 잘못되면 같은 방향으로 틀릴 수 있습니다. Self-Consistency는 서로 완전히 독립적인 다수의 전문가를 묻는 방식이 아니라, 같은 모델에서 다양한 경로를 샘플링하는 방식이기 때문입니다.


가장 큰 tradeoff

가장 큰 tradeoff는 간단합니다. 정확도를 더 얻는 대신, 토큰과 시간과 비용을 더 쓴다는 것입니다. 여러 reasoning path를 샘플링하면 출력 토큰이 늘고, latency도 길어지고, API 비용도 커집니다.

  • 이 문제는 한 번 더 생각하게 할 가치가 있는가
  • 여러 path를 뽑아도 실제 정답률이 오르는가
  • 늘어난 latency를 사용자가 받아들일 수 있는가
  • 정답률 개선폭이 비용 증가를 상쇄하는가

즉 Self-Consistency는 성능 개선 아이디어이면서 동시에 budget allocation 문제이기도 합니다.


앙상블과 차이

겉모습만 보면 여러 출력을 만든 뒤 최종 답을 고른다는 점에서 앙상블처럼 보입니다. 하지만 여기서는 서로 다른 모델 여러 개를 합치는 것이 아니라, 같은 모델의 diverse reasoning paths를 이용합니다. 초점도 최종 확률 평균보다 reasoning 경로 다양성에 더 가깝습니다. 그래서 여러 모델 투표보다 한 모델에게 여러 풀이를 시켜 본다는 설명이 더 가깝습니다.


CoT와의 관계

Self-Consistency는 CoT의 대체재라기보다 후속 보강책입니다. CoT는 intermediate reasoning steps를 펼치게 하고, Self-Consistency는 펼쳐진 reasoning을 한 경로만 믿지 않게 만듭니다. CoT가 없으면 Self-Consistency가 볼 reasoning path 자체가 약해지고, CoT만 있으면 한 경로의 우연한 실패를 완화하기 어렵습니다. 그래서 둘은 경쟁 관계보다 연속된 두 단계에 가깝습니다.


ReAct와 차이

Self-Consistency와 ReAct는 둘 다 reasoning과 관련이 있지만, 다루는 문제가 다릅니다. Self-Consistency의 질문은 내부 추론 경로를 하나만 고르지 말고 여러 개 봤을 때 더 정확해질 수 있는가입니다. 중심은 decoding과 answer selection입니다.

반면 ReAct의 질문은 생각과 행동을 번갈아 하면서 외부 정보를 확인하고 다음 행동을 조정할 수 있는가에 더 가깝습니다. 중심은 thought-action-observation 루프입니다. 그래서 Self-Consistency는 CoT 내부를 더 튼튼하게 만드는 쪽이고, ReAct는 CoT 바깥으로 나가 도구 사용과 환경 상호작용까지 연결하는 쪽입니다.

예를 들어 최신 문서를 읽어야 하는 문제라면 Self-Consistency보다 ReAct 쪽 구조가 더 중요합니다. 반대로 계산형 reasoning 문제라면 ReAct보다 Self-Consistency가 더 직접적인 개선일 수 있습니다. 관련 글인 Chain-of-Thought 논문 쉽게 이해하기, ReAct 논문 쉽게 이해하기, Toolformer 논문 쉽게 이해하기를 같이 보면 흐름이 더 분명해집니다.


지금 읽을 포인트

요즘 reasoning 모델은 한 번 답하게 하기보다 여러 candidate를 만들고 더 나은 답을 고르거나 검증하는 흐름을 자주 씁니다. 이때 Self-Consistency는 아주 기본적인 직관을 제공합니다. 좋은 reasoning은 한 번의 번뜩임보다, 여러 경로 사이의 안정적 수렴에서 드러날 수 있다는 직관입니다.

물론 실전 시스템은 여기서 더 나아갑니다. search, tool use, verifier, critic, reranker, planner 같은 층이 붙습니다. 그래서 Self-Consistency 하나로 현대 agent 전체를 설명할 수는 없지만, 왜 여러 번 생각시키면 더 잘 맞을 수 있는가라는 질문에는 여전히 좋은 출발점입니다.


실무 기준

  1. 문제에 단계적 reasoning이 실제로 필요한가
  2. 서로 다른 풀이가 같은 정답으로 수렴할 가능성이 큰가
  3. latency와 비용을 늘릴 만큼 실패 비용이 큰가
  4. 외부 검색보다 내부 reasoning 품질이 더 병목인가

Self-Consistency를 실무 감각으로 보면 무조건 켜는 옵션이 아니라 어려운 문제에만 쓰는 강화 모드에 가깝습니다. 간단한 FAQ 챗봇에는 과할 수 있지만, 계산·논리·다단계 판단이 중요한 고난도 질의에는 충분히 의미가 있습니다.


논문이 보여준 점

Self-Consistency 논문은 arithmetic와 commonsense benchmark에서 CoT 대비 의미 있는 개선을 보고했습니다. 논문 초록 기준으로 GSM8K +17.9%, SVAMP +11.0%, AQuA +12.2%, StrategyQA +6.4%, ARC-challenge +3.9%였습니다. 여기서 중요한 것은 숫자 자체보다 메시지입니다. reasoning의 품질은 모델이 한 번에 낸 첫 답 하나만으로 결정되지 않을 수 있다는 점입니다.

즉 decoding 전략만 바꿔도 CoT의 잠재력을 더 끌어낼 수 있다는 뜻입니다.


정리

Self-Consistency를 한 문장으로 줄이면 이렇습니다. CoT가 만든 추론 경로를 하나만 믿지 말고, 여러 번 생각시킨 뒤 가장 일관된 답을 고르자. 이 방식이 강한 이유는 한 경로의 우연한 실수를 줄이고, 여러 reasoning path가 공통으로 가리키는 결론을 더 신뢰하게 만들기 때문입니다.

대신 비용과 시간이 늘어납니다. 그래서 모든 질문에 쓰는 만능 기법이라기보다, 어려운 reasoning 문제에서 정확도를 사기 위해 비용을 더 쓰는 전략으로 보는 편이 맞습니다.

원문은 Self-Consistency 논문, OpenReview 페이지, 그리고 배경이 되는 Chain-of-Thought 논문, ReAct 논문에서 확인할 수 있습니다.

함께보면 좋은 글