dd-techdb-04

# 콘텐츠 구성

💡생성형 AI와 ‘눈높이 대화’를 주고 받기 위한 ‘프롬프트 엔지니어링’의 대원칙을 쉽게 이해해보자!

챗GPT ‘찰떡대화법’

생성형 AI 서비스의 대명사 ‘챗GPT’. 말 한마디면 번거로운 작업도 턱턱 수행해 내는 능력자죠. 이전 세대 AI들과 달리 사용자가 두루뭉실 말해도 알아듣고 답변을 내놓는 모습은 신기하기도 합니다.

실제로 챗GPT 이전에 출시된 AI 서비스들은 사실상 ‘~라고 말하세요’ 같은 명령어가 정해진 느낌이었습니다. 그 형태를 조금만 바꿔도 엉뚱한 기능을 실행하거나 “잘 못알아 들었어요”를 입버릇처럼 내뱉는, 예컨대 AI 스피커들은 지금도 쉽게 볼 수 있는데요. 고성능 대규모언어모델(LLM)이 탑재된 요즘 생성형 AI 서비스들에선 볼 수 없는 광경이죠. 챗GPT 공개 직후 사람들이 ‘드디어 사람처럼 소통하는 AI가 나왔다’며 반겼던 이유입니다.

하지만 맹점도 있습니다. 개떡같이 말해도 찰떡처럼 알아듣는 줄 알았던 챗GPT가 사실 개떡엔 개떡을, 찰떡엔 찰떡을 내놓고 있었단 사실을요. 표현이 다소 과격했습니다만, 현시점 생성형 AI들은 여전히 ‘명령을 그럴싸하게 수행하는’ 소프트웨어에 불과합니다. 깊은 잠재력을 갖고 있지만 대충 물으면 대충 답하고, 잘 물으면 잘 답해주는 수동적인 성향을 갖고 있죠.

따라서 구체적인 사용설명서가 없는 챗GPT지만, 챗GPT의 잠재력을 극대화하는 대화법은 분명 존재합니다. 심지어 별로 어렵지 않죠. 챗GPT의 특성을 이해하고 눈높이를 맞추는 원칙 몇 가지만 숙지하면 되는데요. 그 방법을 지금부터 챗GPT에게 직접 듣고 설명해 드리겠습니다.

참고로 아래 대화는 보다 구체적인 답변을 얻기 위해 GPT-4 기술이 적용된 유료버전(챗GPT 플러스)을 이용했습니다. 챗GPT 유료버전은 무료버전(GPT 3.5) 대비 ▲더 상세한 답변 ▲이미지 생성 지원 ▲GPTs(확장 프로그램)을 지원하는 차이가 있는데요. 여기서 소개하는 대화법은 무료버전에서도 동일한 효과를 기대할 수 있습니다.


프롬프트 엔지니어링 기초

챗GPT-프롬프트-엔지니어링-중요성
챗GPT와 대화를 시작했습니다. (ⓒ 챗GPT)

알잘딱깔센 AI’는 없다

어떤 배움이든 기초가 탄탄해야죠. 챗GPT 활용을 위해 ‘가장 먼저 알아야 할 개념’을 물었더니 유료버전은 ‘프롬프트 엔지니어링‘이란 답을 내놨습니다. 무료버전은 ‘의도파악’이라고 답했는데요. 표현의 관점이 다를 뿐 동일한 이야기를 하고 있습니다. 하지만 프롬프트 엔지니어링이 더 구체적인 용어이므로 이 키워드를 중심으로 알아볼게요.

프롬프트 엔지니어링은 일종의 ‘대화 전략‘입니다. 챗GPT도 ‘AI에게 원하는 정보를 얻는 질문 구성법‘이란 늬앙스로 설명했죠. 이를 보니 한때 웹에서 유행했던 ‘알잘딱깔센’이란 은어가 떠오릅니다. ‘알아서 잘, 딱 깔끔하고 센스있게’의 줄임말이었죠. 회사에서 상사가 두루뭉실한 지시를 내리면서 기똥찬 결과물을 기대하는 아이러니를 풍자하는 표현으로도 널리 쓰였는데요.

실제 현실에서 ‘알잘딱깔센’이 가능한 사람은 드뭅니다. 사람이 타인의 머리 속을 들여다볼 수 없거니와, 융통성이나 경험, 직감 등이 고루 작용해야 될까말까한 일이니까요. 이 기능들이 사람보다 뒤떨어지는 AI에겐 당연히 더 어려운 문제입니다. 즉 “네가 뭘 원하는지 알아야 나도 최고의 답변을 줄 수 있어!”가 “프롬프트 엔지니어링이 중요해요”라며 말했던 챗GPT의 진짜 속마음이란 이야기입니다.

프롬프트-엔지니어링의-핵심-포인트
프롬프트 엔지니어링 대원칙 (ⓒ 챗GPT)

신입직원에게 일 시키듯

따라서 위 설명처럼 AI에겐 어린아이나 신입직원에게 설명하듯 ‘원하는 바를 명확히 정의하고, 필요한 요소와 불필요한 요소를 상세히 기술하는 것‘이 중요합니다. 프롬프트 엔지니어링의 대원칙이죠. 제가 챗GPT에 던진 질문도 이 원칙을 적용하면서 최대한 간결하게 구성한 프롬프트입니다.

프롬프트-엔지니어링-요소-적용
프롬프트 엔지니어링 대원칙을 적용했던 첫 번째 질문 (ⓒ 챗GPT)

명확성은 ‘주제’입니다. AI에게 여러 주문을 넣더라도 가장 중요한 명령은 앞에 한 문장으로 명시하는 게 좋습니다. 저는 ‘초보자용 챗GPT 매뉴얼’을 키워드로 주제 문장을 만들었습니다.

구체성은 ‘답변의 틀’입니다. 챗GPT는 정말 다양한 톤으로 답변할 수 있습니다. 보통은 존대말과 백과사전 같은 문장으로 답하지만, 구체적인 조건을 명시하면 그 틀을 쉽게 바꿀 수 있습니다. 저는 챗GPT 초보 독자들을 위한 글을 써야하므로 ‘전문용어는 쉽게 풀어쓰고 이해를 돕는 예시를 제시하라’고 구체적인 틀을 지시했습니다.

목적지향성은 ‘범위 설정’입니다. 두루뭉실한 답변을 막는 장치죠. 이 요소가 빠지면 챗GPT는 한정된 답변 분량 내에서 다양한 정보를 최대한 많이 담으려 합니다. 당연히 답변의 밀도와 깊이가 얉아지는데요. 따라서 저는 챗GPT에게 ‘기본 개념은 제외하고, 기능 제어에 영향을 미치는 요소를 알려달라’고 답변의 범위를 제한한 겁니다.

그 결과 만족스러운 답변을 얻었습니다. ▶챗GPT를 활용할 때 중요한 기능적 개념은 ‘프롬프트 엔지니어링’이며 ▶프롬프트 엔지니어링이 무엇인지(대화전략) ▶핵심 요소(명확성 등)는 무엇인지를 예시와 함께 받아볼 수 있었죠. 이 같은 방식으로 첫 질문을 잘 하면 챗GPT 사용 시간을 줄일 수 있고, 후술할 옵션들도 더욱 정교하게 작동합니다.

프롬프트 엔지니어링 확장

반복 질문? 괜찮고 괜찮다!

그러나 처음부터 완벽한 질문은 없습니다. 특히 익숙하지 않은 분야라면 질문에 무엇을 더하고 빼야 할지 모를 수 있죠. 이때는 조금 두루뭉술해도 질문을 반복하며 조금씩 바꾸는 것이 중요합니다. 회사에선 똑같은 질문을 반복할 때 상사가 화를 내겠지만, 저세상 인내심을 지닌 챗GPT님은 결코 분노하지 않습니다. 같은 답변도 조금씩 다르게 설명해줍니다. 이때 사용자는 답변 안에서 질문에선 놓쳤지만 중요해 보이는 요소를 새롭게 발견할 수도 있죠. 이렇게 스무고개하듯 내게 필요한 답을 찾아가는 방법도 간접적인 프롬프트 엔지니어링이라고 볼 수 있습니다.

프롬프트 엔지니어링-화내는GPT
아 물론, 어떻게 요청하는지에 따라 자애로운 챗GPT가 이렇게 화난 말투로 얘기하게 만들 수도 있습니다. 문장 속 쉼표 하나하나에 답답함이 뭍어나는 듯하네요. 장난스러운 시도였지만 이 또한 프롬프트 엔지니어링의 매력 중 하나랍니다. (ⓒ 챗GPT)

예시를 위해 “초보자용 챗GPT 사용 매뉴얼을 만들어줘”라는 딱딱한 질문을 반복해봤습니다. 이때 챗GPT가 제안한 다양한 내용 가운데 공통적으로 ‘구체적이고 상세한 정보를 제공하라’는 대목이 있었는데요. 여기서 ‘챗GPT는 구체적이고 상세한 내용을 중요시하는구나’라는 점을 유추할 수 있습니다. 하지만 그 방법을 모르겠다면? 이어서 ‘구체적이고 상세한 질문을 하는 방법이 궁금해’라고 질문을 이어갈 수 있습니다. 아래 이미지는 그에 대한 답변입니다.

프롬프트-엔지니어링-확장
챗GPT의 보따리식 답변에서도 때때로 좋은 인사이트를 얻을 수 있습니다 (ⓒ 챗GPT)

여기에는 ‘프롬프트 엔지니어링’이란 말이 없습니다. 하지만 1번부터 5번까지의 내용 대부분이 앞서 다룬 ‘명확성’, ‘구체성’, ‘목적지향성’과 비슷한 내용을 다루고 있음을 알 수 있습니다. 오히려 첫 답변에는 없었지만 프롬프트 엔지니어링 실전 기법에서 중요하게 다뤄지는 ‘배경정보 제공하기’ 같은 요소도 확인되네요.

이 과정을 ‘반복’하는 과정에 중요한 건 ‘조정’입니다. 일단 답변을 받았는데 내가 찾는 정보가 없거나 구체적이지 않다면 그 부분만 콕 찝어 “위 답변에서 ~에 대한 구체적인 설명과 사례를 추가해줘”라고 프롬프트 엔지니어링 원칙이 적용된 조정 질문을 던져볼 수 있습니다. 이 과정을 반복하다 보면 사용자는 간과했던 요소들을 새로 발견하거나, 그것을 기반으로 양질의 질문을 계속 만들어나갈 수 있게 되죠.

결국 프롬프트 엔지니어링 노하우를 강화해 나가기 위한 핵심은 질문을 두려워하지 않는 건데요. 챗GPT는 먼저 주지 않을 뿐, 달라고 하면 언제든 주는 ‘아낌없이 주는 나무’라고 생각하길 바랍니다. 내부 정책에 위배되는 정보나 결과물을 요구하지 않는 이상 챗GPT는 가급적 좋은 정보를 주려고 최선을 다할 겁니다. 여담이지만 ‘인간의 눈에 가장 그럴싸한 결과물을 만드는 것’이 모든 생성형 AI에 내재된 기술 DNA기도 하거든요.

프롬프트-엔지니어링-반복과-조정
질문을 두려워하지 마세요, NEVER! (ⓒ 챗GPT)

한 대화창에선 하나의 주제만

또한 질문의 반복과 조정을 거치되 한 대화창에서는 하나의 주제만 다루는 게 좋습니다. 이전 답변을 바탕으로 사용자의 다음 질문 의도를 분석하는 챗GPT의 특징과 기억력의 한계 때문이죠. 사람의 대화도 일관성 없는 말을 이어가다 보면 상대가 무슨 말을 하는지 의도를 알아채기 어렵습니다. 또한 대화가 길어질수록 앞서 했던 이야기의 기억은 점점 희미해지는 것과 같은 이치죠.

사실 대화 주제의 일관성 유지는 어렵지 않습니다. 문제는 챗GPT의 기억력이 어디까지 유지되느냐인데요. 이 질문에 챗GPT는 “기억 용량의 한계는 대략 4096개 토큰”이라며 “한국어처럼 복잡한 언어는 문자 수로 환산하기 어렵지만 대략 몇백 문장 정도“라고 답했습니다. 생각보다 적지 않은 양인 만큼 새 대화창을 너무 자주 만들 필욘 없어 보이네요.

더불어 이런 특징을 이해한다면 앞선 프롬프트 엔지니어링 대원칙을 적용해 가급적 양질의 질문과 답변을 주고받는 것이 좋습니다. 불필요한 질문과 정보를 반복해 출력하다 보면 챗GPT가 중요한 맥락을 놓치거나 기존 답변과 동떨어진 이야기를 하게 될테니까요. 또 대화가 길어질 땐 ‘~ 내용은 이후 대화에서도 중요한 키워드‘라고 미리 지정해두는 것도 좋은 방법입니다.

프롬프트-엔지니어링-일관성
ⓒ 챗GPT

이 외에도 프롬프트 엔지니어링에는 정말 다양한 세부기법이 존재합니다. 지금도 우수한 AI를 최대한 효율적으로 활용하기 위한 대화법 연구가 전세계에서 활발히 이뤄지고 있죠. 그 가운데 프롬프트 엔지니어링만 전문으로 다룬 책들도 속속 출간되고 있습니다. 조금 더 구체적인 기법들을 알고 싶다면 관련 서적들을 찾아보는 것도 좋겠네요. 참고로 제가 읽은 책 중에는 ‘프롬프트 엔지니어링 교과서(서승완 저, 애드앤미디어)’가 가장 쉽게 읽히고 팁이 잘 정리돼 있었기에 추천합니다.

아울러 시대 흐름에 발맞춘 ‘프롬프트 엔지니어’라는 새롭게 각광받고 있습니다. ‘뤼튼’과 같은 생성형 AI 플랫폼들은 ‘프롬프트 허브’처럼 사용자들이 직접 만든 프롬프트를 공유하는 장을 만들기도 하고요. 이런 흐름을 종합할 때, 결국 시간이 지날수록 ‘생성형 AI를 잘 쓰는 사람’은 곧 ‘프롬프트 엔지니어링을 잘하는 사람‘으로 귀결될 가능성이 높아 보입니다.

뤼튼 프롬프트 허브
프롬프트 허브 (ⓒ 뤼튼 홈페이지 갈무리)

챗GPT 알짜 활용팁 #1 – 프롬프트 엔지니어링 [테크DB]

연관 콘텐츠

# 콘텐츠 구성

Picture of EDITOR 이건한

EDITOR 이건한

IT 전문미디어 디지털데일리 기자 겸 테크콘텐츠랩 총괄 에디터. ⓔ sugyo@ddaily.co.kr