본문 바로가기
ai/prompt

Prompt Engineering CoT(Chain-of-Thought)

by jangdu 2024. 4. 30.

GPT와 같은 생성형 AI는 간단한 질문으로도 꽤 만족스러운 결과를 얻을 수 있지만,
제공하는 질문의 퀄리티에 따라서 돌아오는 결과가 극명하게 다른 경우가 있는데,
이번 글에서는 그중에 CoT(Chain-of-Tought)라는 기법에 대해서 알아보겠습니다.

GPT는 어려워

가끔 GPT는 쉬운 요구사항도 풀지 못하는 상황이 발생하는데,
간단한 예시로 들어서 살펴보겠습니다.

  • 아래는 GPT와 같은 생성형 AI에게 보내는 프롬프트의 예시입니다.
나는 시장에 가서 초콜릿 10개를 샀어. 나는 초콜릿 2개를 아빠에게 주고, 2개를 엄마에게 주었어. 그리고 초콜릿 5 개를 더 사서 1개는 내가 먹었어. 초콜릿은 몇 개나 남았어?

위 예제는 남은 초콜릿의 갯수를 구하는 매우 간단한 문제인데, 해당 문제를 단계별로 자세히 살펴보면 다음과 같습니다.

  1. 첫 초콜릿의 갯수는 10개: + 10
  2. 엄마와 아빠에게 각자 두개씩을 주고: - 2, - 2
  3. 5개 추가 구매: + 5
  4. 1개를 먹는다: - 1

각 단계를 통해서 알아보지 않더라도 알 수 있는 정답은 10이라는 것을 알 수 있습니다.
하지만 우리의 GPT는 어렵게 느꼈는지,

5개라는 오답을 뱉습니다.

Chain-of-Thought Prompting

CoT(Chain-of-Tought) 는 복잡한 요구사항의 중간 추론 단계를 통해서 더 좋은 결과를 얻게 합니다.
즉, 프롬프트를 통해서 AI가 복잡한 요구사항을 단계적으로 추론하게 하는 기법입니다.

Cot example

다음 예제와 위의 예제의 다른점은 단계별로 초콜릿의 갯수를 확인하고 답변해줘 라는 짧은 문장의 유무입니다.

문장 하나로 생성형 AI는 추론을 통해서 결과를 다르게 출력합니다.

이런 문장 하나로 간단한 문제에 효과적으로 작용하며, 이러한 방법은 프롬프트에 사용할 예시가 적을 때 특히 유용합니다.