본문으로 건너뛰기
실습하기

한 말은 지킨다! 자기 일관성(Self Consistency) 프롬프팅

자기 일관성 프롬프팅은 여러 개의 사고 과정을 제시하거나 미리 생성하고, AI가 이를 참고하여 일관되게 사고하도록 유도하는 프롬프트 기법입니다.

대형 언어 모델(LLM)은 추론 문제에 직면했을 때 여러 가지 논리적 근거를 생성하고, 답변을 확률적으로 결정합니다.

자기 일관성 프롬프팅은 대형 언어 모델의 비결정론적(Non-deterministic, 동일한 입력에 대해 매번 동일한 출력을 보장하지 않음) 특성을 최소화하여, AI가 일관된 추론을 수행하도록 유도합니다.


자기 일관성 프롬프팅의 적용 예시

오류를 유발하는 프롬프트 예시
민수가 6살이었을 때 민수의 여동생은
민수 나이의 절반인 나이였습니다.

지금 민수가 70살이라면 여동생은 몇 살일까요?
프롬프트의 잘못된 답변
35살 입니다.

위 예시에서 민수의 여동생의 나이는 민수보다 3살이 더 어리기 때문에, 여동생의 나이는 67살이 되어야 합니다.

하지만 위 프롬프트는 이러한 논리적 사고를 하도록 유도하지 않고, 현재 나이의 절반이라는 단순한 계산만을 요구해 오답을 유발합니다.

자기 일관성 프롬프팅을 적용하면 아래와 같이 수학적 문제를 해결하는 여러 상황을 제시하고, AI가 이를 참고해 일관되게 사고하도록 유도할 수 있습니다.


프롬프트 예시
질문 1:
유나는 사과 2개를 갖고 있었습니다.
생이후 일 선물로 할머니에게 1개,
할아버지에게 1개를 더 받습니다.
유나는 지금 몇 개의 사과를 갖고 있나요?

답변 1:
유나는 원래 사과 2개를 갖고 있었습니다.
할머니와 할아버지에게 각각 1개씩 더 받았으니,
2 + 1 + 1 = 4개의 사과를 갖고 있습니다.
정답은 4개입니다.


질문 2:
진호는 새로운 스포츠 운동화를 사서
총 3켤레의 운동화를 가지게 되었습니다.
그런데 오래된 운동화 한 켤레를 기부했습니다.
진호는 이제 몇 켤레의 운동화를 가지고 있을까요?

답변 2:
진호는 새 운동화를 사서 운동화가 3켤레가 되었습니다.
한 켤레를 기부했으므로,
3 - 1 = 2켤레의 운동화가 남았습니다.
정답은 2켤레입니다.


### 질문:
민수가 6살이었을 때 민수의 여동생은 민수 나이의 절반인 나이였습니다.
지금 민수가 70살이라면 여동생은 몇 살일까요?

### 답변: [?]
AI 답변
답변:
민수가 6살일 때 민수의 여동생
6살의 절반인 3살이었습니다.

따라서 민수와 여동생의 나이 차이는
6 - 3 = 3살입니다.

민수가 70살이라면,
여동생은 70 - 3 = 67살입니다.

정답은 67살입니다.

생각의 사슬(CoT) 프롬프팅과의 연관성

위 프롬프트 예시를 보면, 생각의 사슬(CoT) 프롬프팅과 유사한 방식으로 사고 과정을 단계적으로 제시하고, AI가 이를 참고하여 일관된 추론을 수행하도록 유도합니다.

자기 일관성(Self-consistency) 프롬프팅은 CoT를 확장한 개념으로 여러 개의 단계적 사고 흐름을 생성하여 가장 많이 등장한 답변을 최종 답변으로 선택하거나, AI가 이전 답변을 참고해 일관된 사고 흐름을 유지하도록 유도합니다.


실습

프롬프트 예제를 보내고 AI의 답변을 비교해 보세요.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!