Chat GPT가 자꾸 엉뚱한 답을? ‘대조 프롬프팅’으로 해결하세요
|

Chat GPT가 자꾸 엉뚱한 답을? ‘대조 프롬프팅’으로 해결하세요

Chat GPT가 자꾸 엉뚱한 답을? ‘대조 프롬프팅’으로 해결하세요

LLM(대규모 언어 모델)을 사용하다 보면 똑똑한 것 같으면서도 결정적인 순간에 엉뚱한 답을 내놓아 속 터지는 경험, 다들 한 번쯤 있으실 겁니다. 특히 복잡한 계산이나 여러 단계의 추론이 필요할 때 이런 허점은 더 자주 드러나죠.

기존에 널리 쓰이던 “단계별로 생각해(Think step by step)” 같은 프롬프트도 물론 훌륭하지만, 여전히 잘못된 논리의 함정에 빠지곤 합니다.

그런데 만약 LLM이 스스로 정답과 오답을 비교하며 최적의 경로를 찾아가게 만들 수 있다면 어떨까요?

최근 한 논문에서 바로 이 아이디어를 현실로 만든 ‘대조 프롬프팅(Contrastive Prompting, CP)’ 기법을 공개했습니다. 방법은 놀랍도록 간단합니다. 우리가 쓰던 프롬프트에 딱 한 문장만 더하면 됩니다.

이 글에서는 대조 프롬프팅의 원리부터 실제 사용법까지, 누구나 이해하고 바로 써먹을 수 있도록 쉽고 명쾌하게 설명해 드리겠습니다.

대조 프롬프팅(CP), 원리가 뭔가요?

핵심은 ‘오답노트’에 있습니다.

우리는 정답만 보고 배우지 않습니다. 오히려 틀린 문제를 복기하며 ‘왜 틀렸는지’를 분석하고, 같은 실수를 반복하지 않는 방법을 터득할 때 더 깊이 배우죠. 대조 프롬프팅은 LLM에게 바로 이 ‘오답노트 작성’ 과정을 시키는 것과 같습니다.

“Let’s give a correct and a wrong answer.”
(정답과 오답을 함께 제시해 보자.)

질문 앞에 이 문장을 붙여주면, LLM은 정답으로 가는 길을 찾는 동시에, 그럴듯해 보이지만 결정적 오류가 숨어있는 ‘오답 시나리오’까지 함께 생성합니다.

이 과정에서 모델은 두 가지 추론 경로를 명확히 비교하고 대조하며, 어떤 논리가 오류로 이어지는지를 스스로 인지하게 됩니다. 결국 자신이 만든 오답이라는 함정을 피해 가며 정답에 대한 확신을 높이는 것이죠.

어떻게 작동하나요? ‘2단계 프롬프트’ 프로세스

대조 프롬프팅은 내부적으로 두 단계를 거쳐 최종 답변을 내놓습니다.

1단계: 정답과 오답, 두 가지 길 탐색하기 (추론 추출)

먼저 사용자의 질문에 위에서 소개한 ‘마법의 문장’을 더해 LLM에 입력합니다. 그러면 LLM은 정답 경로와 오답 경로에 대한 상세한 추론 과정을 모두 보여줍니다.

[질문] 팀은 5그루의 나무를 키웁니다. 매년 각 나무에서 레몬 6개를 수확한다면, 10년(a decade) 동안 총 몇 개의 레몬을 얻을 수 있나요?

[LLM의 추론 과정]

정답 경로: 팀은 5그루의 나무에서 각각 레몬 6개를 수확하므로 1년에 5 X 6 =30개의 레몬을 얻습니다. 10년은 10 years이므로, 10년 동안 총 30X10=300개의 레몬을 얻게 됩니다.

오답 경로: 팀은 1년에 30개의 레몬을 얻습니다. 하지만 10년(a decade)을 20 years로 잘못 계산하여, 총 30X20=600개의 레몬을 얻는다고 결론 내립니다. (※ 오류: a decade는 10년입니다.)

2단계: 가장 확실한 길 선택하기 (답변 추출)

1단계에서 생성된 추론 결과(오답노트)를 바탕으로, LLM에게 최종 정답만 깔끔하게 요약해달라고 요청합니다. “따라서 정답은?” 같은 간단한 문장을 덧붙이면 됩니다. LLM은 이미 스스로 검증을 마친 정답 경로를 바탕으로 최종 값 300을 정확하게 추출해 줍니다.

그래서, 효과는 어느 정도일까요?

논문에 공개된 성능 향상 결과는 놀라운 수준입니다.

특히 초등 수학 문제 데이터셋(GSM8K)에서 GPT-4 모델을 테스트했을 때, 기존 프롬프트의 정확도는 35.9%에 불과했습니다. 하지만 대조 프롬프팅을 적용하자 정확도는 88.8%까지 수직으로 상승했습니다.

단순히 정답률이 2.5배 뛴 것을 넘어, 복잡한 문제 해결 능력 자체가 질적으로 달라졌음을 의미합니다.

심지어 대부분의 산술 및 상식 추론 과제에서, 사람이 직접 만든 예시를 몇 개 보여주는 방식(Few-shot-CoT)보다 더 뛰어난 성능을 보였습니다. 이는 잘 만든 몇 개의 예시를 보여주는 것보다, LLM이 스스로 ‘실수할 수 있는 지점’을 탐색하게 만드는 것이 더 효과적일 수 있다는 점을 시사합니다.

실전 가이드: 지금 바로 이렇게 사용해 보세요

대조 프롬프팅의 가장 큰 장점은 기존의 어떤 프롬프트 기법과도 쉽게 결합할 수 있다는 것입니다.

1. 기본 대조 프롬프팅 (Zero-shot-CP)

가장 간단한 방법입니다. 질문 앞에 바로 붙여 사용하세요.

Q: [당신의 질문]
A: Let's give a correct and a wrong answer.

2. ‘단계별 사고’와 결합하기 (Zero-shot-CoT-CP)

기존의 “단계별로 생각하기”와 결합하면 성능을 더욱 끌어올릴 수 있습니다. 논문에 따르면 이 방식이 가장 좋은 성능을 보이는 경우가 많았습니다.

Q: [당신의 질문]
A: Let's think step by step and give both a correct answer and a wrong answer.

결론: 오답을 아는 AI가 더 똑똑합니다

대조 프롬프팅은 LLM의 작동 방식을 한 단계 발전시킵니다. 단순히 명령을 따르는 수동적인 도구를 넘어, 스스로 정답과 오답의 경로를 탐색하고 비교하며 오류 가능성을 원천적으로 줄이는 ‘비판적 사고’ 능력을 부여하는 셈입니다.

복잡한 리서치, 데이터 분석, 코드 디버깅 등 LLM의 높은 정확도가 꼭 필요한 작업을 하고 계신가요? 오늘부터 프롬프트에 “정답과 오답을 함께 제시해 봐.” 라는 문장을 추가해 보세요. 이전과는 차원이 다른 안정적이고 신뢰도 높은 결과물을 얻게 될 것입니다.

Similar Posts