연구 노트에 뇌 구조를 중심으로 오답 경로(빨간색 X)와 정답 경로(초록색 체크)가 나뉘는 다이어그램을 그리고 있는 손. 프롬프트 엔지니어링의 Contrastive CoT(대조적 생각의 사슬) 원리와 AI 오답 노트 학습법을 시각화한 일러스트
|

프롬프트 엔지니어링 심화: AI에게 ‘오답 노트’를 가르쳐야 하는 이유 (Contrastive CoT)

프롬프트 엔지니어링 심화: AI에게 ‘오답 노트’를 가르쳐야 하는 이유 (Contrastive CoT)

지난 글에서 우리는 “Let’s think step by step(단계별로 생각해보자)”라는 마법의 문장 하나로 AI의 논리 회로를 깨우는 방법(Zero-shot CoT)을 알아봤습니다. 직관적인 ‘시스템 1’ 모드에 머물러 있는 AI를 논리적인 ‘시스템 2’로 강제 전환시키는 강력한 스위치였죠.

지난 글: ‘Let’s think step by step’의 마법 (1편 보러가기)

그런데, 이 주문을 외워도 여전히 AI가 엉뚱한 답을 자신 있게 내놓는 경험, 해보셨나요?

“단계별로 생각하라”고 했더니, 단계별로 ‘아주 논리적인 헛소리’를 하는 경우 말입니다.

오늘은 바로 그 지점에서 출발합니다. 단순히 “생각해”라고 지시하는 것을 넘어, AI가 범하기 쉬운 실수를 원천 차단하고 추론 성능을 한 번 더 퀀텀 점프시키는 ‘Contrastive CoT(대조적 생각의 사슬)’ 전략을 소개합니다.


스탠다드 CoT의 함정

우리가 AI에게 예시를 보여주는(Few-shot) 일반적인 방식은 이렇습니다.

“문제는 A야. 풀이 과정은 B고, 정답은 C야. (올바른 예시)”

우리는 AI가 이 ‘정답 경로’를 보고 논리를 학습할 거라 기대합니다. 하지만 최신 연구(Contrastive Chain-of-Thought Prompting, 2023)에 따르면, AI는 “무엇이 정답인지”는 배웠지만, “무엇이 틀린 것인지”는 배우지 못한 상태입니다.

마치 수학 공식을 달달 외운 학생이, 정작 문제 풀이에서는 사소한 계산 실수를 반복하는 것과 같습니다. AI에게 필요한 건 단순한 정답지가 아니라, ‘무엇을 하지 말아야 하는지’를 알려주는 가이드라인입니다.


Contrastive CoT란?

사람은 언제 가장 많이 배울까요? 문제를 맞혔을 때보다, 틀렸을 때(오답 노트) 더 깊게 배웁니다.

이 논문에서 제안하는 Contrastive CoT는 바로 이 ‘오답 노트’의 원리를 프롬프트에 적용한 것입니다.

정답과 오답을 함께 보여주는 쌍(Pair) 전략

  • 기존 방식: [질문] → [올바른 풀이] → [정답]
  • Contrastive 방식: [질문] → [올바른 풀이] → [잘못된 풀이] → [정답]

이렇게 ‘올바른 길(Valid)’‘가면 안 되는 길(Invalid)’을 쌍(Contrastive)으로 보여주는 것입니다. 이렇게 하면 AI는 정답으로 가는 논리뿐만 아니라, 피해야 할 논리적 함정까지 동시에 학습하게 됩니다.

결과는 어땠을까요? 널리 쓰이는 GPT-3.5 모델 기준으로 수학 추론(GSM8K) 성능이 기존 방식 대비 9.8%, 팩트 체크(Bamboogle) 성능은 무려 16%나 향상되었습니다. 모델을 바꾸지 않고 프롬프트 디자인만으로 얻어낸 놀라운 성과입니다.


실무 꿀팁

“그럼 매번 내가 틀린 예시까지 만들어야 해? 너무 번거로운데?”

이런 생각이 드셨다면 안심하세요. 연구진은 아주 기발한 자동화 꿀팁을 찾아냈습니다. 바로 ‘변수 섞기(Incoherent Objects)’ 전략입니다.

사람이 머리를 쥐어짜며 정교한 오답을 만들 필요가 없습니다. 그냥 올바른 풀이 과정에서 숫자나 명사(Entity)의 위치만 무작위로 섞어버린 문장을 ‘나쁜 예시’로 던져줘도, AI는 찰떡같이 알아듣습니다.

[올바른 예시] 철수는 사과 2개를 샀고, 영희는 3개를 샀으니 합은 5개야.

[자동 생성된 나쁜 예시] 철수는 5개를 샀고, 영희는 사과 2개를 샀으니 합은 3개야.

이렇게 엉망이 된 문장을 보여주면, AI는 역설적으로 “아, 이 문제에서는 숫자와 대상을 정확하게 매핑하는 게 핵심이구나!”라고 눈치채게 됩니다.


바로 쓰는 프롬프트 가이드

지난 글의 “Let’s think step by step”이 초급자용 무기였다면, 이번엔 중급자용 무기입니다. AI가 자꾸 계산을 틀리거나 환각(Hallucination) 증세를 보일 때, 아래 템플릿을 시스템 프롬프트에 추가해 보세요.

Contrastive CoT 프롬프트 예시

Q: 제임스는 30개의 치아 중 4개를 치료했어. 치료한 것보다 7개 더 많은 치아에 씌우기를 했지. 손본 치아는 전체의 몇 %야?

[올바른 생각의 흐름]
1. 치료한 치아: 4개
2. 씌우기 한 치아: 4 + 7 = 11개
3. 총 손본 치아: 4 + 11 = 15개
4. 비율: (15 / 30) * 100 = 50%
정답: 50%

[잘못된 생각의 흐름 (주의할 점)]
1. 치료한 치아: 4개
2. 씌우기 한 치아: 11개
3. 총 손본 치아: 4 + 7 = 11개 (여기서 더하기 오류 발생!)
4. 비율: (11 / 30) * 100 = 36.6%
정답: 36.6%

Q: [이제 진짜 질문을 입력하세요]

Insight

1탄에서 우리는 “AI에게도 생각할 시간을 줘야 한다”는 것을 배웠습니다. 이번 2탄의 핵심은 “AI에게 실패를 가르쳐야 성공한다”는 것입니다.

우리는 AI에게 항상 정답만 주입하려고 합니다. 하지만 진정한 지능은 정답을 암기하는 것이 아니라, 오답을 식별하고 피해 가는 능력에서 나옵니다. 지금 여러분의 프롬프트에 작은 ‘오답 노트’를 하나 추가해 보세요. 그 작은 차이가 여러분의 AI를 ‘그저 그런 계산기’에서 ‘똑똑한 추론가’로 바꿔줄 것입니다.

Similar Posts