ChatGPT와 생성형 AI를 활용한 콘텐츠 제작 가이드 – Chain of Thought 프롬프팅

안녕하세요, 오늘은 ChatGPT와 같은 생성형 AI를 활용하여 더 정교하고 정확한 응답을 얻을 수 있는 방법 중 하나인 Chain of Thought 프롬프트(이하 CoT 프롬프트)에 대해 알아보겠습니다. CoT 프롬프트는 논리적 추론과 수학적 작업에서 특히 유용하며, 이를 통해 AI가 더 신뢰할 수 있는 답변을 제공하도록 도와줍니다. 지금부터 CoT 프롬프트의 기본 개념과 활용 방법을 차근차근 살펴보겠습니다.


CoT 프롬프트란 무엇인가?


Chain of Thought 프롬프트는 LLM이 복잡한 문제를 해결할 때 논리적 단계를 통해 작업을 보여주도록 유도하는 방법입니다. 이는 LLM이 복잡한 개념을 더 작은 조각으로 분해하고, 각 단계별로 작업을 수행하도록 하여 정확한 답변을 얻는 것을 목표로 합니다. CoT 프롬프트는 몇 번의 샷 프롬프트(Few Shot Prompt) 또는 제로 샷 프롬프트(Zero Shot Prompt)로 트리거될 수 있습니다.

CoT 프롬프트의 필요성

LLM에서 짧은 답변을 얻는 것은 신뢰성이 떨어집니다. 특히 수학적 문제나 논리적 추론 문제에서는 짧은 답변이 부정확할 가능성이 큽니다. 예를 들어, 다음과 같은 프롬프트를 생각해봅시다.

예시:
  • 프롬프트: “나는 시장에 가서 사과 열 개를 샀다. 나는 이웃에게 사과 두 개를, 수리공에게 사과 두 개를 주었다. 그런 다음 나는 가서 사과 5개와 1개를 더 샀습니다. 나는 얼마나 많은 사과를 가지고 있었습니까?”
  • 답변: “11개” (잘못된 답변)

이 예시에서 LLM은 10 – 2 – 2 + 5 – 1을 계산해야 하지만, 짧은 답변을 생성하려다 보니 부정확한 답을 내놓게 됩니다. 이러한 문제를 해결하기 위해 LLM이 작업을 보여주도록 하는 CoT 프롬프트가 필요합니다.

작업을 보여주는 방법


LLM이 작업을 보여주도록 함으로써 더 정확한 답변을 얻을 수 있습니다. 이를 위해 약간의 컨텍스트를 제공할 수 있습니다. 컨텍스트는 현재 프롬프트와 이전 응답의 조합으로, LLM이 새로운 응답을 생성할 때 참고할 수 있습니다.

예시:
  • 프롬프트: “Roger는 11개의 공을 가지고 있다. 그는 각각 3개의 테니스 공이 들어 있는 두 개의 테니스 공 캔을 더 구입합니다. Roger는 몇 개의 테니스 공을 가지고 있습니까?”
  • 답변: “17개의 공”

이 예시에서 LLM은 단순히 11 + 6 = 17이라는 계산을 통해 답을 도출합니다.

또 다른 예시:
  • 프롬프트: “구내식당은 23개의 접시를 가지고 있다. 점심에 20개를 사용하고 6개를 더 구입합니다. 그들은 몇 개의 접시를 가지고 있습니까?”
  • 답변: “9개의 접시” (정답)

이러한 프롬프트 시퀀스를 통해 LLM은 논리적 단계를 따라 답을 도출하게 됩니다.

예제를 제공하는 방법


응답 형식을 컨텍스트에서 변경하면 LLM의 응답 방식도 변경됩니다.

예시:
  • 프롬프트: “Roger는 11개의 공을 가지고 있다. 그는 각각 3개의 테니스 공이 들어 있는 두 개의 테니스 공 캔을 더 구입합니다. Roger는 몇 개의 테니스 공을 가지고 있습니까?”
  • 답변: “Roger는 11개의 공을 가지고 있고, 2개의 테니스 공 캔 각각에 3개의 공이 있으므로 6개의 공을 더하게 됩니다. 따라서 11 + 6 = 17개입니다.”

이와 같이 상세한 작업 단계를 제공하면 LLM은 복잡한 작업을 더 잘 처리할 수 있습니다.

Zero Shot 및 Few Shot CoT 프롬프트


CoT 프롬프트는 Few Shot 프롬프트와 Zero Shot 프롬프트로 트리거될 수 있습니다. 각각의 방법을 통해 LLM이 논리적 사고를 통해 보다 정확한 답변을 도출하도록 도와줄 수 있습니다.

Few Shot 프롬프트

Few Shot 프롬프트는 예제를 제공하여 LLM이 작업을 분해하고 논리적으로 추론하도록 유도합니다. 예제를 통해 LLM은 주어진 문제를 해결하는 방법을 학습하고, 이를 토대로 새로운 문제를 해결할 수 있게 됩니다.

예시:

  • 프롬프트: “Roger는 11개의 공을 가지고 있다. 그는 각각 3개의 테니스 공이 들어 있는 두 개의 테니스 공 캔을 더 구입합니다. Roger는 몇 개의 테니스 공을 가지고 있습니까?”
  • 답변: “Roger는 11개의 공을 가지고 있고, 2개의 테니스 공 캔 각각에 3개의 공이 있으므로 6개의 공을 더하게 됩니다. 따라서 11 + 6 = 17개입니다.”

이 예제는 LLM이 복잡한 문제를 논리적으로 분해하여 해결하는 방법을 보여줍니다.

Zero Shot 프롬프트

Zero Shot 프롬프트는 예제를 제공하지 않고도 LLM이 논리적 사고를 통해 문제를 해결하도록 유도합니다. 이를 위해 “Let’s think step by step”과 같은 프롬프트를 사용하여 LLM이 단계별로 사고하도록 안내합니다.

예시:

  • 프롬프트: “나는 시장에 가서 사과 열 개를 샀다. 나는 이웃에게 사과 두 개를, 수리공에게 사과 두 개를 주었다. 그런 다음 나는 가서 사과 5개와 1개를 더 샀습니다. 나는 얼마나 많은 사과를 가지고 있었습니까? 생각을 단계별로 해보세요.”
  • 답변: “생각을 단계별로 해봅시다. 먼저 사과 10개를 샀습니다. 이웃에게 2개, 수리공에게 2개를 주었으므로 6개가 남습니다. 그런 다음 사과 5개를 더 사서 11개가 되었습니다. 마지막으로 사과 1개를 먹었으므로 10개가 남습니다.”

Zero Shot 프롬프트는 LLM이 스스로 논리적 단계를 통해 문제를 해결하도록 도와주며, 이를 통해 더 정확한 답변을 얻을 수 있습니다.

Chain of Thought 프롬프트는 LLM이 복잡한 문제를 해결할 때 논리적 단계를 통해 작업을 보여주도록 유도하는 강력한 도구입니다. 이를 통해 수학적 문제나 논리적 추론 문제에서 더 정확한 답변을 얻을 수 있습니다. CoT 프롬프트를 사용하여 LLM의 성능을 극대화하고, 더 나은 응답을 얻을 수 있도록 프롬프트를 설계해 보세요.🚀

#ChatGPT #GenAI #생성형 AI #프롬프트 엔지니어링 #Chain of Thought

다른 강의 자료