챗GPT를 100% 활용하는 방법: 프롬프트 엔지니어링 완벽 가이드

챗GPT, 얼마나 활용하고 계신가요?

챗GPT는 정말 똑똑한 도구입니다. 하지만 단순히 "똑똑하다"는 사실만으로는 충분하지 않아요. 얼마나 잘 쓰냐에 따라 답변의 질이 완전히 달라질 수 있기 때문이죠. 오늘은 챗GPT의 답변 퀄리티를 극대화할 수 있는 핵심 기술, 바로 프롬프트 엔지니어링에 대해 알아보겠습니다.

프롬프트 엔지니어링은 간단히 말하면 챗GPT를 가장 잘 활용하는 질문법을 말합니다. "좋은 질문이 좋은 답변을 만든다"는 말이 딱 맞아떨어지는 원리죠. 챗GPT와 같은 언어 모델은 사람이 입력한 텍스트를 바탕으로 학습했기 때문에, 우리가 어떤 방식으로 질문을 던지느냐에 따라 답변의 정확성과 깊이가 결정됩니다.


프롬프트 엔지니어링이란 무엇인가?

프롬프트는 챗GPT와 같은 언어 모델에게 던지는 질문입니다. 그런데 이 질문을 조금 더 효과적으로, 의도적으로 구성하면 더 정확하고 유용한 답변을 얻을 수 있습니다. 

예를 들어, 단순히 "유럽"이라고 질문하면 막연한 답변이 돌아오지만, "프랑스에서 출발해 이탈리아와 스페인을 거치는 여행 일정을 세워줘"라고 질문하면 훨씬 구체적인 답변을 받을 수 있죠.


한 마디로 프롬프트 엔지니어링은 이렇게 질문을 더 똑똑하게 설계하는 기술입니다. 챗GPT는 똑똑한 친구이지만 아주 답답한 친구이기도 합니다. 그러므로 본인이 이용하는 것에 따라 각자의 모델 성능 차이는 극대화 될 수밖에 없는 구조입니다.


Comparison between Zero-shot and Few-shot in AI prompt engineering. Zero-shot illustrates asking a question without context, while Few-shot demonstrates providing examples to guide AI for more specific and relevant answers.


프롬프트 엔지니어링 기술 5가지

1. 제로샷 (Zero-shot)

챗GPT에게 아무 배경 정보 없이 질문을 던지는 방식입니다. 예를 들어, "유럽"이라고 질문하면 챗GPT는 이를 하나의 키워드로 인식해 대답합니다. 간단하고 빠른 방식이지만, 구체성이 떨어질 수 있죠.


그리고 한 가지 엄청난 발견이 있었는데, 바로 "let`s think step by step"이라는 말을 질문의 마지막에 붙여주기만 하면 되는 것입니다. 그럴 경우 제로샷을 이어서 3번째에 나오는 추론 방식을 집어 넣는 결과를 얻을 수 있게 됩니다.


2. 퓨샷 (Few-shot)

제로샷의 한계를 극복하기 위해 예시를 제공합니다. 예를 들어, "다음과 같이 답변해줘: 프랑스에서 파리, 이탈리아에서 로마, 스페인에서 바르셀로나를 방문하는 여행 일정을 짜줘."라는 식으로 힌트를 주는 겁니다. 이런 방식은 챗GPT가 질문의 맥락을 이해하고 비슷한 답변을 제시하도록 도와줍니다.


이 방식은 본인이 다른 예시를 들어 질문과 답변을 던져주고, 답변을 기대하는 방식입니다. 그래서 few(몇몇) 방식입니다. 

Q. A?

A. A는 ~~~ B는 ~~~ 그래서 ~~~~다. 

Q. B?


위 경우에는 A라는 하나의 답변에 대한 정보를 주고 바로 질문 했으므로 원샷으로 분류됩니다. 이 질문과 답변 예시가 2개면 투 샷, 5개면 파이브 샷이 되는 원리입니다.

3. 생각의 순서 (Chain of Thoughts)

챗GPT가 스스로 생각의 과정을 말하며 답변을 작성하도록 유도하는 방식입니다. 예를 들어, "이 질문에 답하기 전에 단계별로 생각해봐. 유럽 여행의 핵심은 도시, 이동 수단, 숙소, 관광 명소 순으로 계획을 세우는 거야."라고 덧붙여 명확한 논리적 답변을 얻습니다.


아직 인공지능의 경우 '추론'이라는 기능이 존재하지 않습니다. 그러므로 강제로 생각을 하는 사고방식을 교육 시키는 과정입니다. 방식은 퓨샷과 동일한데, Answer에다가 답만 딱 적는 것이 아니라 어떤 이유로 그러한 답변을 기록한 것인지 정말 구체적으로 적어주는 방식입니다.


4. 롤플레잉 (Role-playing)

챗GPT에게 역할을 부여하는 방법입니다. 예를 들어, "너는 전문 투어 가이드야. 대학생이 유럽 여행 일정을 계획하려고 하니, 적절한 코스를 추천해줘."라는 식으로 역할을 명확히 하면 전문적인 답변을 얻을 수 있습니다.

페르소나를 부여하는 방법입니다. 인공지능 혹은 본인에게 역할을 부여해서 진행하는 방법입니다. 


5. 사람처럼 대하기 (Humanize)

  • 이름 불러주기
  • 반복적으로 말해서 "강조"하기
  • 반드시 "가장 좋은 답"을 내주라고 꼭 적어주기
  • 중요한 필수 정보 알려주기.
  • 칭찬 해주기

챗GPT를 사람처럼 대하며 친절하게 지시합니다. 이름을 부여하거나 칭찬을 더하면 답변 퀄리티가 향상됩니다. 예를 들어, "알렉스, 너는 최고의 여행 전문가야. 멋진 유럽 여행 일정을 추천해줘."라고 하면 답변이 더 정교해질 가능성이 높습니다.

신기하긴 하지만 챗GPT의 경우에도 칭찬 해주고 반복해주고, 이름을 붙여주는 등을 통한다면 답변율이 높아진다는 놀라운 결과가 있었습니다.


프롬프트 엔지니어링의 실제 활용 예시

질문 1: 단순한 질문

"유럽 여행 추천 좀 해줘."

답변: 몇 가지 유명 도시를 나열하며 간단한 일정을 추천.


질문 2: 롤플레잉 적용

"너는 전문 여행 플래너야. 대학생인 내가 유럽에서 낭만적이면서도 예산 친화적인 여행을 할 수 있도록 도와줘."

답변: 여행 목적, 예산, 주요 도시를 고려한 상세한 일정 제시.


질문 3: 생각의 순서(Chain of Thought) 적용

"유럽 여행을 계획할 때, 도시를 선택하고 이동 수단과 숙소까지 고려해서 생각의 과정을 단계별로 설명하며 추천해줘."

답변: 파리에서 시작해 열차로 이동하며 숙소와 관광 명소까지 상세히 언급.


이러한 답변의 이유

우선 챗GPT가 만들어진 것은 지금까지 발행된 블로그, 웹사이트, 카페의 전세계 모든 게시물을 기반으로 학습했습니다. 그리고 그 데이터들은 "사람"이 만든 자료였습니다. 그러므로 GPT는 한 명의 사람으로써 자료들을 공부해 온 것입니다.

그래서 아무나처럼 그 어떤 말이라도 나올 수가 있게 되며 사람을 대하듯이 했을 때 결과가 더욱 좋게 나올 수밖에 없는 구조입니다. 그러므로 현재도 프롬프트 엔지니어링의 연구는 진행 중입니다.