
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를 여러 개 샘플링한 뒤 가장 일관된 답을 선택하자고 제안합니다.
- CoT 프롬프트로 reasoning path를 여러 개 만든다
- 각 경로가 내놓은 최종 답을 모은다
- 가장 자주, 혹은 가장 일관되게 나타나는 답을 고른다
중요한 점은 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 전체를 설명할 수는 없지만, 왜 여러 번 생각시키면 더 잘 맞을 수 있는가라는 질문에는 여전히 좋은 출발점입니다.
실무 기준
- 문제에 단계적 reasoning이 실제로 필요한가
- 서로 다른 풀이가 같은 정답으로 수렴할 가능성이 큰가
- latency와 비용을 늘릴 만큼 실패 비용이 큰가
- 외부 검색보다 내부 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 논문에서 확인할 수 있습니다.