IT 트렌드 알아보기 - ChatGPT와 프롬프트 엔지니어링(Prompt Engineering)

안녕하세요. 이번 글에서는 ChatGPT를 활용함에 있어서 가장 중요하게 여겨지는 것 중 하나인 프롬프트 엔지니어링(Prompt Engineering)에 대해서 말씀드리려고 합니다.

ChatGPT와 프롬프트 엔지니어링을 설명하는 포스트의 섬네일, 사람과 로봇이 서로 의사소통 하는 모습을 형상화
ChatGPT와 프롬프트 엔지니어링, 프리픽 이미지 활용

최근에는 ChatGPT와 같은 생성형 AI(Generative Artificial Intelligence)들이 더 이상 낯선 기술이 아니라, 누구나 쉽게 활용하는 기술로 다가온 것 같습니다.

일반 개인들마저도 검색엔진에 탑재된 AI의 검색결과를 활용하고, AI로 이미지를 만들어내고 글을 작성하는 등 이미 일상생활에 밀접하게 연결되었다고 해도 과언이 아니라고 생각됩니다.

이렇게 생성형 AI 서비스가 일상생활에 미치는 영향이 증가하게 되면서, 어떻게 하면 생성형 AI와 잘 소통하고 원하는 결과를 이끌어내는지에 대한 관심이 증가했습니다. 이런 결과로 주목받는 기술 또는 역량이 프롬프트 엔지니어링입니다.


1. 프롬프트(Prompt)란?

프롬프트 엔지니어링을 설명하기 앞서서, 프롬프트가 무엇인지에 대해 간략히 말씀드리겠습니다.

사람 간에도 프롬프트를 다음과 같이 정의하고 있습니다.

지시 메시지. 입력 재촉. 컴퓨터 시스템이 사용자에 대하여 다음에 어떠한 조작을 행해야 하는지 지시하기 위한 지시 메시지. 또는 명령 대기 상태에서 시스템이 표시하고 있는 기호. 프롬프트는 사용자와의 대화를 재촉하기 위해서 사용된다. 대화(dialog) 형식이라고도 한다.

쉽게 이야기하자면 컴퓨터를 통해 원하는 결과물을 얻어내기 위해서 문자를 활용한 대화형식으로 컴퓨터와 소통하는 인터페이스라고도 할 수 있습니다. 즉, 컴퓨터가 사람의 언어를 그래도 이해할 수 없기 때문에, 사전에 명령어와 결과 값을 미리 약속하는 것이라고 할 수 있습니다.

한 번쯤 사용해 보셨을 수도 있지만, 실행창에서 CMD를 입력하면 생성되는 창이 바로 '명령 프롬프트'창이고 여기서 명령어를 입력해서 결과 값을 받는 것도 하나의 프롬프팅이라고 할 수 있습니다.

윈도우의 명령 프롬프트, 명령어를 입력하면 사전에 정의된 결과값이 나온다
윈도우의 명령 프롬프트, 명령어를 입력하면 사전에 정의된 결과값이 나온다

ChatGPT나, Bard 등과 같은 대화형식의 생성형 AI 서비스가 등장함에 따라서, 기존의 명령어가 아니라 인간의 언어(자연어)를 그대로 입력받아 이해할 수 있게 되었습니다. 그렇기 때문에 사용자 입장에서는 우리가 활용하던 언어를 그대로 사용하면서 훨씬 쉽고 자연스럽게 명령을 내리고 다양한 결과물을 얻어 낼 수 있게 된 것입니다.

2. 프롬프트 엔지니어링(Prompt Engineering) 

프롬프트 엔지니어링이란, 생성형 AI로부터 얻고자 하는 높은 수준의 출력물을 얻기 위해서 프롬프트를 정확히 구성하는 작업으로 볼 수 있습니다. 앞서 말한 것처럼 인간이 말하는 말(자연어)을 AI가 이해할 수 있기 때문에, 적절한 문장으로 질문을 던져서 AI의 역량을 최대치로 끌어내는 것을 목표로 하는 것이라고 이해할 수 있습니다.

ChatGPT와 같은 생성형 AI들은 너무나도 많은 데이터들을 학습하고, 질문의 의도를 파악하여 데이터들을 조합/구성하여 제공하기 때문에 질문을 잘하는 것이 가장 중요하다고 할 수 있습니다.

사람 간에도 서로의 말을 이해하지 못하고 오해가 생기기도 하고 후배에게 업무지시를 명확하게 하지 않으면 엉뚱한 결과물을 가지고 오게 되는데, AI는 더 그렇지 않을까요?

최근에 프롬프트 엔지니어링에 대한 관심도가 많아지면서 관련 글이나 뉴스, 서적, 영상 등이 많이 공유되고 있습니다. 하지만 본인의 노하우로 습득하기 위해서는 결국 Try & Error를 많이 겪으면서 자신만의 방법을 만드는 것도 중요한 것 같습니다.

3. 적절하게 질문하기

개인적인 관심으로 ChatGPT나 Bard와 같은 생성형 AI를 이것저것 만져보면서 어떻게 하면 내가 원하는 결과 값을 얻을까라고 실험해 본 결과를 바탕으로 적절하게 질문하는 방법과 예시를 말씀드리겠습니다.

1) 목적을 명확히 알려주어야 한다.

아래 예시처럼 초등학생에게 설명해야 한다는 목적을 알려주는 경우, 목적에 적합한 답변을 생성해주고 있습니다.

단순하게 개념을 설명해달라는 명령어를 요청했을 때의 결과값
단순하게 개념을 설명해달라는 명령어를 요청했을 때의 결과값
초등학생에게 설명한다는 목적을 추가해서 프롬프트를 입력한 경우, 더 적절한 대답을 생성해준다
초등학생에게 설명한다는 목적을 추가해서 프롬프트를 입력한 경우, 더 적절한 대답을 생성해준다

2) 결과물의 형태를 알려주어야 한다.

본인이 만들어내고 싶은 결과물의 양식이 정해져 있다면, 예시를 주거나 특정 형태를 지정하여 명령하는 것이 원하는 결과를 얻을 수 있는 확률이 높습니다.

가상의 인물 5명의 이름, 성별, 나이, 혈액형 정보를 만들어 보았더니, 각각의 인원에 대해서 종으로 길게 작성해주다 보니 가독성이 매우 떨어졌습니다.

출력물 형태를 지정하지 않은 상태에서의 결과물, 개인별 정보가 나누어서 보여진다.
출력물 형태를 지정하지 않은 상태에서의 결과물, 개인별 정보가 나누어서 보여진다.

가독성을 높이기 위해 표 형태로 작성해 달라고 프롬프트를 보완하게 되면, 아래 그림처럼 한눈에 보기 쉬운 표로 생성이 됩니다.

결과물을 표형태로 생성해달라고 했을때의 결과물, 가독성이 높아진다.
결과물을 표형태로 생성해달라고 했을때의 결과물, 가독성이 높아진다.

3) 구체적인 조건이 있다면 상세히 알려주어야 한다.

원하는 결과에 대해서는 최대한 구체적으로 조건을 주면서 알려주어야 그 의도에 맞는 결과물을 제공할 수 있습니다.

먼저 "10대를 대상으로 하는 자전거 광고문구 3개를 작성해 줘"라고 명령어를 전달했더니, 광고문구라고 하기에는 너무나도 길고 복잡한 문장형태의 결과물을 제공해 주었습니다.

구체적인 조건을 주지 않았을 때의 GPT의 결과값, 광고문구가 길게 생성된다.
구체적인 조건을 주지 않았을 때의 GPT의 결과값, 광고문구가 길게 생성된다.

하지만 결과물에 대해서 20글자 이내, 트렌디함을 강조해야 한다는 조건을 추가하게 되면, 다음과 같이 나름대로 광고문구와 같은 형태의 결과물을 얻을 수 있습니다.

구체적인 조건을 전달했을때 생성되는 광고문구
구체적인 조건을 전달했을때 생성되는 광고문구


반응형

프롬프트 엔지니어링과 관련해서는 새로운 직종으로 떠오르기도 하고, 프롬프트를 거래하는 거래소까지 운영되는 등 그 관심사가 매우 뜨겁다고 할 수 있습니다. 그에 따라, 관련된 책들이나 강의들도 많이 공개되고 있는 상황인데요. 여유가 되신다면 별도의 학습을 하시는 것도 좋겠지만 결국 많이 활용하시면서 노하우를 쌓으시면 좋겠습니다.

GPT가 저의 의도를 학습하면서 원하는 결과를 만들어내는 과정이 나름대로의 보람과 재미를 느끼게 해주는 좋은 취미 생활이 될 수 있을 것 같습니다.

반응형