Self-Consistency란? LLM ‘외길 사고’를 ‘다중 검산’으로
LLM의 ‘외길 사고’를 ‘다중 검산’으로 바꾸는 법: Self-Consistency
LLM(대규모 언어 모델)과 씨름하는 개발자나 연구원이라면 ‘Chain-of-Thought’ (CoT, 연쇄적 사고) 프롬프트에 익숙하실 겁니다. CoT는 AI에게 복잡한 문제를 단계별로 생각하도록 유도해 놀라운 성능 향상을 가져왔습니다.
하지만 완벽한 CoT 프롬프트를 작성했음에도, 모델이 중간 계산을 틀리거나 엉뚱한 결론으로 빠지는 경우를 종종 목격하셨을 겁니다. 왜 그럴까요?
문제는 AI의 ‘생각의 방식’이 하나뿐이라는 데 있습니다. 기존 CoT는 대부분 ‘Greedy Decoding(탐욕적 디코딩)’ 방식을 사용합니다. 이는 매 단계에서 가장 확률이 높은 토큰(단어) 하나만을 선택해 ‘외길’로만 나아가는 방식입니다. 심지어 그 길이 잘못된 길이라도 말이죠.
만약 AI가 하나의 정답을 찾기 위해, 마치 사람처럼 여러 가지 다른 방식으로 생각하고(검산하고) 그중 가장 일관된 답을 선택할 수 있다면 어떨까요?
이 아이디어에서 출발한 것이 바로 구글 리서치가 발표한 ‘Self-Consistency(자가 일관성)’ (다음 출처 참조) 기법입니다. 그리고 그 결과는 실로 놀랍습니다. Self-Consistency는 기존 CoT 방식 대비, 저명한 산수 추론 벤치마크인 GSM8K에서 +17.9%, SVAMP에서 +11.0%라는 경이로운 성능 향상을 보여주었습니다.
오늘은 이 강력한 Self-Consistency 기법이 무엇인지, 어떻게 작동하는지, 그리고 왜 여러분의 LLM 프로젝트에 적용을 고려해야 하는지 깊이 있게 파헤쳐 보겠습니다.
1. 문제는 ‘외길 사고’다: Greedy Decoding의 한계
복잡한 추론 문제는 본질적으로 하나의 정답에 도달하는 여러 가지 경로가 존재합니다.
예를 들어 “자넷은 달걀 16개를 가졌습니다. 아침으로 3개, 머핀 굽는 데 4개를 씁니다. 남은 달걀을 개당 2달러에 팔면 하루에 얼마를 버나요?”라는 문제가 있다고 가정해 봅시다.
(방법 A) 16 – 3 – 4 = 9개. 9 x 2 = 18 달러.
(방법 B) 3 + 4 = 7개 사용. 16 – 7 = 9개. 9 x 2 = 18달러.
두 가지 다른 생각의 경로가 모두 ’18달러’라는 동일한 정답에 도달합니다.
하지만 Greedy Decoding은 다릅니다. 이 방식은 오직 하나의 경로만 탐색합니다. 만약 모델이 처음에 (방법 B)를 선택하고 실수로 ‘사용한 달걀’ 3 + 4 = 7개를 계산한 뒤, 7 x 2 = 14달러라고 결론 내린다면, 그 답은 그냥 틀린 답이 됩니다. 되돌릴 기회가 없죠.
이것이 Greedy Decoding의 본질적인 한계입니다. 각 단계(국소적)에서는 최적일지 몰라도, 전체적으로는 최적이 아닐 수 있습니다.
2. ‘다양한 생각’에서 ‘하나의 정답’을: Self-Consistency의 3단계 작동법
Self-Consistency는 이 ‘외길 사고’의 문제를 정면으로 돌파합니다. 핵심은 간단합니다.
“하나의 완벽한 경로를 찾으려 하지 말고, 여러 개의 다양한 경로를 탐색한 뒤 가장 일관된 답을 채택하자”
이 ‘Sample-and-Marginalize(샘플링 및 주변화)’ 절차는 3단계로 이루어집니다.
1단계: Chain-of-Thought (CoT) 프롬프트 입력
기존과 동일하게, 모델이 단계별로 생각하도록 유도하는 CoT 프롬프트를 제공합니다. (예: “단계별로 생각해서 답을 도출해…”)
2단계: 다양한 추론 경로 샘플링 (Sampling Diverse Paths)
Greedy Decoding 대신, ‘Temperature Sampling’ 같은 기법을 사용해 다양한 추론 경로(reasoning paths)를 10~40개 정도 샘플링합니다.
Temperature 값을 조금 높이면(예: T = 0.5 또는 0.7) 모델은 가장 확률 높은 답만 고집하지 않고, 약간의 무작위성을 가지며 여러 가지 가능한 생각의 흐름을 생성해냅니다.
(샘플 1) “그녀는 16 – 3 – 4 = 9개가 남습니다. 9 x 2 = 18달러입니다.”
(샘플 2) “그녀는 3 + 4 = 7개를 씁니다. 16 x 2 = 32달러… (이후 계산 오류)… 26달러입니다.”
(샘플 3) “아침에 3개를 먹으니 16 – 3 = 13개가 남습니다. 머핀에 4개를 쓰니 13 – 4 = 9개가 남습니다. 9 x 2 = 18달러입니다.”
3단계: 다수결 투표로 가장 일관된 답 선택 (Marginalize & Aggregate)
이제 생성된 여러 개의 샘플에서 최종 답만 추출하여 ‘다수결 투표(majority vote)’를 진행합니다.
- 샘플 1의 답: $18
- 샘플 2의 답: $26
- 샘플 3의 답: $18
다수결 결과, “$18”이 가장 ‘일관된(consistent)’ 답으로 채택됩니다.
이 접근법은 인간이 어려운 문제를 풀 때, 여러 방식으로 검산해보고 동일한 답이 나오면 확신을 가지는 직관과 매우 유사합니다. 잘못된 추론 경로는 서로 다른 오답(예: 26, 14, 32 등)으로 흩어지는 경향이 있지만, 올바른 추론 경로는 다양한 방식(예: 샘플 1, 샘플 3)을 거치더라도 결국 동일한 정답으로 수렴하는 경향이 있다는 것입니다.
3. 왜 Self-Consistency가 강력한가?
첫째, 추가 학습이나 모델 수정이 전혀 필요 없습니다. Self-Consistency는 모델을 파인튜닝할 필요가 없는 ‘오프더셸프(off-the-shelf)’ 방식입니다. 이미 학습된 LLM의 디코딩 전략만 바꾸는 것이므로, API 기반의 모델(GPT-3, PaLM 등)에도 즉시 적용 가능합니다.
둘째, ‘Self-Ensemble’ 효과를 냅니다. 보통 앙상블은 여러 개의 다른 모델을 학습시켜 결과를 합치는 방식이지만, Self-Consistency는 단일 모델 내에서 여러 추론 경로를 생성해 앙상블하는 ‘자가 앙상블’ 효과를 냅니다. 이는 여러 모델을 앙상블하는 것보다 훨씬 효율적입니다.
셋째, CoT가 오히려 성능을 해치는 작업에서도 효과가 있습니다. 일부 자연어 추론(NLI) 작업에서는 CoT 프롬프트를 추가하는 것이 오히려 표준 프롬프트보다 성능을 떨어뜨리는 경우가 보고되었습니다. 하지만 Self-Consistency를 적용하면, CoT가 성능을 해쳤던 작업에서도 표준 프롬프트를 능가하는 강력한 성능을 보여주었습니다. 이는 Self-Consistency가 CoT의 불안정성을 보완해주는 강력한 안정제 역할을 함을 시사합니다.
넷째, 프롬프트가 완벽하지 않아도 잘 작동합니다. 연구진이 CoT 프롬프트 예시에 의도적으로 오류를 삽입하는 테스트를 진행했을 때, Greedy Decoding은 이 오류에 속아 성능이 하락했지만, Self-Consistency는 여러 경로를 탐색하며 오류를 스스로 바로잡고 견고한 성능을 유지했습니다.
4. 실제 적용 사례: Self-Consistency가 오류를 잡는 과정
논문에 실린 예시는 Self-Consistency가 어떻게 Greedy Decoding의 실수를 바로잡는지 명확하게 보여줍니다.
질문: “Henry는 60마일 자전거 여행 중 두 번 멈췄습니다. 첫 번째는 20마일 후에 멈췄습니다. 두 번째는 여행 종료 15마일 전에 멈췄습니다. 첫 번째와 두 번째 정류장 사이의 거리는 몇 마일입니까?”
Greedy Decode (오답):
“총 60마일을 여행했습니다. 20마일 후에 멈췄으니, 첫 번째와 두 번째 정류장 사이에는 60 – 20 = 40마일을 여행했습니다. 정답은 40입니다.”
(→ 명백한 논리 오류입니다.)
Self-Consistency (샘플 1 – 정답):
“총 60마일. 첫 정지는 20마일 지점. 두 번째 정지는 종료 15마일 전. 즉, 60 – 15 = 45마일 지점. 두 정류장 사이의 거리는 45 – 20 = 25마일입니다. 정답은 25입니다.”
Self-Consistency (샘플 2 – 정답):
“첫 정지는 20마일. 두 번째 정지는 45마일 지점(60 – 15). 순서대로 멈췄으므로, 두 번째 정지는 첫 번째 정지보다 45 – 20 = 25마일 뒤입니다. 정답은 25입니다.”
Self-Consistency (샘플 3 – 오답):
“…(다른 계산 오류)… 정답은 40입니다.”
최종 결정 (다수결): “25” (2표) vs “40” (1표) → 최종 정답: 25
Greedy Decoding이 빠졌던 함정(40)을 완벽하게 걸러내고 올바른 답(25)을 찾아냈습니다.
5. 한계점과 실용적인 조언
물론 Self-Consistency에도 비용은 듭니다. 바로 컴퓨팅 비용입니다. 40개의 경로를 샘플링하는 것은 1개의 경로만 생성하는 것보다 당연히 40배의 연산이 필요합니다.
하지만 연구진은 단 5~10개의 경로만 샘플링해도 이미 성능 향상의 대부분을 누릴 수 있다고 조언합니다. 모든 요청에 40개를 샘플링할 필요는 없습니다. 비용과 성능 사이의 트레이드오프를 고려하여, 5개 또는 10개의 경로로 시작해보는 것이 현실적인 접근 방식입니다.
결론: AI의 ‘생각의 폭’을 넓혀라
Self-Consistency는 LLM의 추론 방식을 ‘외길’에서 ‘광장’으로 확장하는 단순하면서도 강력한 패러다임의 전환입니다. 이는 모델 자체를 수정하는 대신, 모델이 가진 잠재력을 최대한 끌어내는 ‘디코딩 전략’의 승리입니다.
만약 여러분의 LLM이 복잡한 추론 문제에서 자꾸만 실수를 저지른다면, 프롬프트 엔지니어링에만 매달리기보다 디코딩 전략을 ‘Greedy’에서 ‘Self-Consistency’로 전환해 보시길 강력히 권장합니다.
추가적인 학습 데이터나 복잡한 모델 아키텍처 변경 없이, 단지 ‘다양하게 생각하고, 가장 일관된 답을 찾도록’ 유도하는 것만으로도 AI의 추론 능력이 한 차원 도약하는 것을 경험하게 될 것입니다.
AI 혁신 기술의 최신 트렌드를 놓치지 마세요
LLM 기반 자동화, 프롬프트 엔지니어링, AI 에이전트의 미래까지. ProB AI 연구소에서 최신 AI 연구를 심층 분석해 드립니다.
더 알아보기