프롬프트 엔지니어링: 단 한 문장으로 AI 성능 5배 높이는 법
거대 언어 모델(LLM)을 사용하다 보면 의아할 때가 있습니다. 그 어렵다는 시나리오 창작은 척척 해내면서, 정작 간단한 산수 문제나 초등 수준의 논리 퀴즈에서 엉뚱한 답을 내놓곤 하죠.
보통 이럴 때 우리는 “예시를 많이 줘야 해(Few-shot)” 혹은 “프롬프트를 더 구체적으로 써야 해”라고 생각합니다. 물론 틀린 말은 아닙니다. 하지만 매번 복잡한 예시 데이터를 준비하는 건 꽤 번거로운 일입니다.
만약, 예시 데이터 하나 없이 단 한 문장을 추가하는 것만으로 AI의 수학 문제 해결 능력을 17%에서 79%까지 끌어올릴 수 있다면 어떨까요?
오늘은 프롬프트 엔지니어링의 흐름을 바꾼 NeurIPS 2022의 중요 논문, “Large Language Models are Zero-Shot Reasoners”를 통해 그 원리와 실무 적용법을 명쾌하게 정리해 드립니다.
천재 AI가 ‘산수’를 못 하는 이유
먼저 대니얼 카너먼의 저서 <생각에 관한 생각>에 나오는 인간의 사고 체계를 빌려 설명해 보겠습니다.
- 시스템 1 (직관적 사고): 빠르고 자동적입니다. (예: “2+2=?”, “친구 얼굴 알아보기”)
- 시스템 2 (논리적 사고): 느리고 단계적입니다. (예: “17 x 24=?”, “복잡한 추리 소설 읽기”)
GPT-3와 같은 LLM은 기본적으로 ‘시스템 1’에 가깝습니다. 방대한 데이터를 학습했기에 ‘직관적인 패턴 매칭’은 기가 막히게 잘하지만, 단계적인 논리 연산이 필요한 영역(산술, 상식 추론)에서는 약점을 보입니다. 마치 수학 문제를 풀 때 풀이 과정 없이 답만 툭 찍어서 틀리는 것과 비슷합니다.
기존에는 이를 보완하기 위해 Few-shot CoT(Chain of Thought) 방식을 썼습니다. “문제는 이렇게 푸는 거야”라며 예시(풀이 과정)를 보여주는 것이죠. 효과는 좋지만, 사용자 입장에선 ‘가성비’가 떨어지는(귀찮은) 방식입니다.
Zero-shot CoT: “Let’s think step by step”의 마법
도쿄대와 구글 리서치 팀은 아주 단순한 가설을 세웁니다. “예시를 주는 대신, 그냥 단계적으로 생각하라고 지시하면 어떨까?”
연구진은 질문 끝에 딱 한 문장을 추가했습니다.
“Let’s think step by step” (단계별로 생각해보자)
이것이 바로 Zero-shot CoT(제로샷 생각의 사슬)입니다. 결과는 꽤 놀랍습니다. (GPT-3 text-davinci-002 기준)
| 테스트 영역 | 기존 방식(Standard) | Zero-shot CoT 적용 후 | 변화 |
|---|---|---|---|
| MultiArith (다단계 산술) | 17.7% | 78.7% | 약 4.4배 ▲ |
| GSM8K (초등 수학) | 10.4% | 40.7% | 약 4배 ▲ |
단지 “생각 좀 하고 말해”라고 했을 뿐인데, 성능이 비약적으로 상승했습니다.
직관을 멈추고 논리를 켜는 작동 원리
이 문장이 작동하는 원리는 다음과 같습니다.
- 일반 프롬프트: AI는 “정답”을 바로 찾으려 합니다. 중간 과정을 생략하고 가장 그럴싸한 숫자를 예측하다가 틀립니다.
- CoT 프롬프트: “단계별로 생각하자”는 지시를 받으면, AI는 답을 내기 전에 추론 과정(Reasoning Path)을 먼저 생성합니다. 복잡한 문제를 작은 단위로 쪼개고(Decompose), 앞의 논리를 바탕으로 뒤의 논리를 이어갑니다.
즉, 이 프롬프트는 AI의 모드를 ‘직관적인 시스템 1’에서 ‘논리적인 시스템 2’로 강제 전환시키는 스위치 역할을 하는 셈입니다.
성능을 결정하는 올바른 프롬프트 사례
재미있는 점은, 비슷한 뜻이라도 표현에 따라 성능 차이가 크다는 것입니다. 연구진이 실험한 16가지 문장 중 일부를 비교해 보겠습니다.
- ❌ 나쁜 사례: “Don’t think. Just feel.” (생각하지 말고 느껴라)
→ 성능: 18.8%. (영화 대사로는 멋지지만, AI에게 논리를 기대할 땐 최악입니다.) - ⚠️ 아쉬운 사례: “The answer is after the proof.” (증명 후에 답을 줘)
→ 성능: 45.7%. - ✅ 좋은 사례: “Let’s think step by step.” (단계별로 생각해보자)
→ 성능: 78.7% (Best)
심지어 “탐정처럼 생각해보자” 같은 창의적인 문구도 효과가 있었지만, 역시 가장 명확하고 직설적인 지시가 최고의 효율을 냈습니다.
실무 적용 가이드
이론이 아무리 좋아도 써먹지 못하면 의미가 없겠죠. 여러분이 사용하는 ChatGPT나 Claude에서 복잡한 논리나 계산이 필요할 때, 프롬프트 끝에 이 문장을 습관처럼 붙여보세요.
[영어 프롬프트]
“Let’s think step by step.”
[한글 프롬프트]
“단계별로 차근차근 생각해서 답변해줘.” 또는 “논리적인 풀이 과정을 먼저 설명해줘.”
이 작은 습관 하나가 AI의 잠재된 추론 능력을 깨워, 훨씬 더 신뢰할 수 있는 답변을 만들어줄 것입니다.
Insight
이 논문이 주는 가장 큰 시사점은 “AI 모델 안에 이미 충분한 능력이 잠재되어 있다”는 사실입니다. 모델을 새로 학습시키거나(Fine-tuning) 복잡한 데이터를 주입하지 않아도, 우리가 ‘어떻게 말을 거느냐(Prompting)’에 따라 그 능력의 발현 여부가 결정됩니다.
지금 바로 여러분의 프롬프트 창을 열고, AI에게 “차근차근 생각해보자”라고 말을 걸어보시길 권합니다.
