프롬프트 엔지니어링으로 ChatGPT 능력 200% 끌어내기

프롬프트 엔지니어링으로 ChatGPT 능력 200% 끌어내기

글쓰기에 대한 고민이 있으신가요? 창작의 고통으로 인해 어려움을 겪고 계시진 않나요? 독후감, 리포트, 보고서, 기획안, 이메일, 메시지, 편지 쓰기… 우리는 살면서 글을 써야 하는 수많은 상황에 놓이게 됩니다. 그럴 때마다 대부분의 사람들은 고뇌의 순간을 경험하곤 하죠.

그런데, ChatGPT를 통해 글쓰기 고민을 해소할 수 있다는 사실, 알고 계시나요? TEXTNET이 자체 연구를 통해 터득한 ChatGPT 활용법을 이 글을 통해 알려드리려고 합니다. ‘지피지기면 백전백승’이라는 말이 있죠. ‘상대를 알고, 나를 알면 백 번 싸워도 백 번 이긴다’는 뜻입니다. ChatGPT를 알고, 나를 알면 ChatGPT의 능력을 200%까지 끌어낼 수 있답니다.

TEXTNET에서는 수많은 연구와 프로젝트 경험을 통해, ChatGPT 활용에 대한 깊이 있는 노하우를 보유하고 있습니다.

  • 2022년 11월 말: ChatGPT 초기 베타 버전 출시 이후 전사 차원의 관련 이슈, 트렌드 Follow up
  • 2023년 3월~5월: 영문 기반 ‘프롬프트 엔지니어링’ 연구 및 테스트
  • 2023년 6월~9월: 한국어 기반 ‘프롬프트 엔지니어링’ 프로젝트 완수
  • 2023년 11월: ‘프롬프트 엔지니어링’ 스킬 내재화를 위한 전사 노하우 공유

먼저, ChatGPT의 대표적인 강점과 약점을 3가지씩 소개해 드리겠습니다.

ChatGPT의 강점

1) 자연어 생성(NLG, Natural Language Generation)

ChatGPT는 주어진 텍스트 데이터를 기반으로 새로운 텍스트를 생성해 내는 능력이 탁월합니다. 예를 들어, 글의 소재를 제공하고 기사나 시나리오를 작성해 달라고 요청하면, GPT는 조건에 맞는 스토리를 생성해 냅니다.

2) 텍스트 요약(Text Summarization)

ChatGPT는 긴 텍스트를 간결하고 핵심적인 내용으로 요약해 줍니다. 요약은 크게 ‘추출적 요약’과 ‘추상적 요약’ 두 가지 방법으로 나눌 수 있는데요. 전자는 원문에서 중요한 핵심 문장 또는 단어구를 몇 개 뽑아서 이들로 구성된 요약문을 만드는 방법이고, 후자는 원문에 없는 문장이라도 핵심 문맥을 반영한 새로운 문장을 생성하여 요약하는 방법입니다. 최근에는 후자인 ‘추상적 요약’을 통해, 문장의 구조와 문맥을 고려하여 보다 더 수준 높은 요약도 해낼 수 있게 되었습니다.

3) 질의응답(Question-Answering)

ChatGPT는 사용자의 질문에 대한 답변을 생성해 냅니다. 자연어 이해(NLU) 기술을 활용하여 사용자의 질문 의도와 맥락을 파악하고, 관련된 정보를 토대로 답변을 생성할 수 있습니다.

ChatGPT의 약점

1) 한국어 데이터 학습 부족

ChatGPT, Bard와 같은 글로벌 빅테크 기업의 LLM 서비스는 학습 데이터가 대부분 영어라는 단점이 있습니다. 따라서 한국어 쿼리보다 영어 쿼리의 결과물이 훨씬 더 우수합니다. 이로 인해 한국어 텍스트에 대한 이해력과 답변 생성이 제한적일 수 밖에 없기 때문에, 한국어의 언어적 특성이나 한국 문화를 반영하는 글쓰기에는 한계가 있습니다.

2) 최신 정보 부족

ChatGPT는 2022년 1월까지의 데이터를 학습하여 정보를 제공(GPT-3.5 기준)합니다. 그렇기 때문에 최신 트렌드나 이슈가 필요한 경우, 원하는 답을 얻기 힘들 수 있습니다.

최신 정보가 부족한 ChatGPT(GPT-3.5 기준)
최신 정보가 부족한 ChatGPT(GPT-3.5 기준)

3) 유머와 재치에 대한 이해 부족

위 ‘한국어 데이터 학습 부족’과 ‘최신 정보 부족’의 영향으로 ChatGPT는 유머와 재치에 대한 이해가 다소 부족한 면이 있습니다. 예를 들어, 온라인상으로 빠르게 전해지는 ‘밈’이나 ‘MZ세대 용어’, 한국인 정서를 공략할 만한 ‘유머 코드’에는 약점을 가지고 있습니다.

목적을 명료화하기

‘상대’인 ChatGPT에 대해 알아보았으니, 이젠 ‘나’를 알아야겠죠. 글쓰기를 시작하기 전에 가장 먼저 해야 할 것은 ‘내가 진짜 원하는 게 뭘까?’에 대해 명료화하는 것입니다. 프롬프트 엔지니어링을 하는 목적을 명확하게 하는 것이죠.

1) 요청 사항(What)

먼저, ChatGPT에게 요청하고자 하는 내용이 무엇인지 생각해보고, 그 생각을 구체적인 문장으로 표현합니다. 예를 들어, “책 ‘어린 왕자’에 대한 독후감을 작성해 주세요.” 또는 “부모님께 감사하는 마음을 담아 편지를 써 주세요.”와 같은 형태로 요청 사항을 정리해 볼 수 있습니다.

2) 목적(Why)

ChatGPT에게 무언가를 요청할 때, 그 목적을 구체적으로 함께 제시하면 훨씬 더 효과적으로 반영해 줍니다. ChatGPT는 맥락을 이해하는 능력이 뛰어나기 때문에, 사용자의 의도를 파악하고 더욱 질 높은 결과물을 제공해주기 때문입니다.

예를 들어, 요청 사항이 “책 ‘어린 왕자’에 대한 독후감을 작성해 주세요.”일 경우, 다음과 같은 목적을 함께 덧붙일 수 있습니다.

“독후감 공모전에 참가하려고 합니다. 공모전 수상을 목표로 심사위원을 감동시킬 수 있는 독후감을 작성하고 싶어요.”

위와 같이, 사용자의 니즈를 충분히 어필할 때 더욱 만족스러운 답변을 얻을 수 있습니다.

3) 출력 형태(Output)

프롬프트 엔지니어링의 ‘목적’을 담은 ‘요청 사항’을 입력하면서, 대략적으로 내가 희망하는 ‘출력 형태’를 함께 제시해 보세요.

예를 들어 ‘독후감’의 경우, “책을 읽게 된 이유, 책의 줄거리, 책을 읽은 후의 느낀 점에 대해 3가지 구조로 나누어 출력해 주세요. 글자 수는 1,200자 정도로 작성해 주세요.”와 같이 출력 형태를 제시할 수 있습니다. 이렇게 하면 단순히 ‘요청 사항’만 제시했을 때보다, 답변의 내용이 더욱 풍성해진 것을 체험해 볼 수 있습니다.

ChatGPT 능력 200% 끌어내기

ChatGPT의 강점과 약점을 파악하고 나의 니즈, 프롬프트 엔지니어링의 목적을 명료화했다면 이제 구체적인 노하우를 적용해 보는 시간입니다.

여기서 먼저 알아야 할 점은 ‘ChatGPT에게 요청을 어떤 식으로 하느냐’에 따라 답변의 품질이 크게 달라진다는 것입니다. 이렇게 ChatGPT와 같은 생성형 AI에게 제시하는 ‘입력값’을 프롬프트(Prompt)라고 표현합니다. 다시 말해 ChatGPT에게 프롬프트를 어떻게 주느냐에 따라 응답의 품질은 매우 달라집니다.

최근 온라인상에 다양한 ‘프롬프트 엔지니어링 Tip’, ‘프롬프트 엔지니어링 방법’들이 소개되고 있는데요. 사실 어려운 용어가 대부분이라 직접 적용하기에 난해하게 느껴지는 경우가 많으셨을 겁니다. 이 글에서는 좀 더 알기 쉬운 표현으로, 중요한 노하우만 쏙쏙 뽑아 안내해 드리도록 하겠습니다.

1) 역할 지시

ChatGPT에게 구체적인 역할을 지시해 주세요. 이와 같이 하면 마치 ChatGPT가 해당 역할에 ‘빙의’가 된 듯 더욱 효과적인 답을 제시해 줍니다.

예를 들어, “당신은 스토리텔러입니다.”, “당신은 요리사입니다.”, “당신은 라이프 코치입니다.”와 같은 문장을 통해, 원하는 요청 사항에 맞는 역할을 설정해 주면 됩니다.

2) 퓨샷 프롬프팅(Few-Shot Prompting)

‘ChatGPT 활용법’, ‘프롬프트 엔지니어링’을 검색했을 때 한 번쯤은 접해보셨을 만한 기본 용어입니다. 해당 용어의 이해를 돕기 위해, 제로샷 프롬프팅(Zero-Shot Prompting)과 비교하며 설명해 드리도록 하겠습니다.

‘제로샷(Zero-Shot)’이란, ChatGPT에게 ‘아무런 예시 없이 질문만 던지는 방식’을 말합니다. 예를 들어, “책 ‘어린 왕자’에 대한 독후감을 작성해 주세요.”라는 문구만 단순히 제시한다면 이것은 제로샷에 해당됩니다.

반면 ‘퓨샷(Few-Shot)’이란, ChatGPT에게 질문을 던지기 전에 몇 가지 예시를 먼저 제시하는 방식을 말합니다. 예를 들어, ‘2~3가지 도서의 잘 쓰인 독후감 예시’를 먼저 제공한 후에 “예시를 참고하여 책 ‘어린 왕자’에 대한 독후감을 작성해 주세요.”라고 요청한다면, 원하는 결과물을 얻을 확률이 훨씬 더 높아지겠지요?

3) 순차적으로 설명하기

이 부분은 TEXTNET이 ChatGPT 프롬프트에 대한 연구 및 프로젝트를 진행하면서 가장 주의를 기울였던 부분입니다. 바로, ChatGPT가 사람처럼 논리적으로 사고할 수 있도록 ‘순차적으로 설명’하는 기법인데요. ChatGPT를 어린아이라 생각하고 교육자 마인드로 접근하여 요청 사항을 단계적으로 서술해 나가는 방식을 적용하였습니다.

4) 다시 읽기(Re-reading)

이 방법은 최근 논문에 새롭게 소개된 기법입니다. 논문에는 ‘ChatGPT에게 내용을 다시 한 번 읽어보라고 지시하는 것 만으로 최대 11%까지 성능을 향상시킬 수 있었다’고 쓰여 있습니다. 사람도 내용을 다시 한 번 읽어보는 것 만으로 이해력이 향상되는 것과 같이 비슷한 원리로 생각하면 되겠지요!

그럼 이해를 돕기 위해, 현재까지 소개해 드린 노하우를 모두 적용하여 프롬프트를 구현해 보도록 하겠습니다.

당신은 작가입니다. → 역할 지시
저는 독후감 공모전에 참가하려고 합니다. 
공모전 수상을 목표로 심사위원을 감동시킬 수 있는 독후감을 작성하고 싶어요. → 목적
제가 먼저 몇 가지 도서의 독후감 예시를 제공할 테니, 당신은 다음의 예시를 참고한 후
책 ‘어린 왕자’에 대한 독후감을 작성해 주세요. → 요청 사항
이해되었나요? → 순차적으로 설명하기

예시 1: 오만과 편견 독후감 → 퓨샷 프롬프팅
(내용 생략)                

예시 2: 걸리버 여행기 독후감
(내용 생략)                                                                          

이해되었나요? 

그럼 당신이 이해한 내용을 바탕으로                                                  
책을 읽게 된 이유, 책의 줄거리, 책을 읽은 후의 느낀 점에 대해 
3가지 구조로 나누어 내용을 구상해 주세요. 
글자 수는 1,200자 정도로 작성해야 합니다. → 출력 형태

그럼 제가 위에 제시한 모든 내용을 다시 한 번 읽어보세요. → 다시 읽기(Re-reading)
그리고 나서 조건에 맞게 내용을 출력해 주세요.

5) 영어 혼합

마지막으로 TEXTNET의 다양한 프롬프트 엔지니어링 노하우 중 하나를 소개해 드리고자 합니다. 앞서 ChatGPT의 약점으로 한국어 데이터 학습이 부족하기 때문에 영어 쿼리의 결과물이 훨씬 더 우수하다고 언급한 바 있는데요. ChatGPT를 한국어로 쉽게 활용하면서도, 실용성 있는 결과물을 얻을 수 있다면 참 좋겠죠?

위와 같은 부분을 보완하기 위해 적용한 TEXTNET의 노하우는 바로 “한국어 기반 프롬프트에 영어 표현을 적절히 혼합하기”입니다.

한국어 기반의 프롬프트를 작성할 때, 반드시 유의해야 할 점은 ChatGPT의 이해를 돕기 위해 쉽고, 명료한 단어를 사용해야 한다는 것인데요. 여기서 더 나아가 사용자가 더욱 강조하고 싶은 부분에 대해 영어 표현을 덧붙여 주면 ChatGPT의 이해력이 더욱 향상됩니다.

그러면 앞서 구현해 본 프롬프트 예시에 영어 혼합 기법을 적용해 보도록 하겠습니다.

당신은 작가입니다. (Act as a author.)
저는 독후감 공모전(contest)에 참가하려고 합니다. 
공모전 수상을 목표로 심사위원을 감동시킬 수 있는(impactive) 독후감을 작성하고 싶어요. 
제가 먼저 몇 가지 도서의 독후감 예시를 제공할 테니, 당신은 다음의 예시를 참고한 후
책 ‘어린 왕자’(The little Prince)에 대한 독후감을 작성해 주세요.
이해되었나요?

예시 1: 오만과 편견(Pride and Prejudice) 독후감                                                         
(내용 생략)              

예시 2: 걸리버 여행기(Gulliver's Travels) 독후감
(내용 생략)                                                                          

이해되었나요?

그럼 당신이 이해한 내용을 바탕으로
책을 읽게 된 이유, 책의 줄거리, 책을 읽은 후의 느낀 점에 대해 
3가지 구조(3 Structures)로 나누어 내용을 구상해 주세요. 
글자 수는 1,200자 정도로 작성해야 합니다.

그럼 제가 위에 제시한 모든 내용을 다시 한 번 읽어보세요.(Read the full request again.)
그리고 나서 조건에 맞게 내용을 출력해 주세요. 

자, 그럼 2가지 프롬프트 예시에 대한 ChatGPT의 답변을 비교해 보도록 하겠습니다.

예시) 책 ‘어린 왕자’에 대한 독후감 작성하기

A. 단순히 요청 사항만 입력한 경우

ChatGPT 프롬프트로 단순히 요청사항만 입력한 경우

B. TEXTNET의 노하우를 적용한 경우

ChatGPT 프롬프트에 TEXTNET의 노하우를 적용한 경우

A는 ‘어린 왕자’에 대한 일반적인 정보 만을 제시해 주는 느낌이 강합니다. 그렇기 때문에 만일 A를 독후감 공모전에 제출한다고 가정했을 때, 읽는 대상이 진정성이나 감동을 느끼지 못할 확률이 매우 높겠지요.

반면, B는 사용자의 니즈에 맞게 ‘개인의 경험과 느낀 점’이 더욱 잘 반영되었고, 글의 구조 또한 훨씬 짜임새 있게 서술된 것을 확인할 수 있습니다.

ChatGPT 활용의 완성은 충분한 수정과 보완

ChatGPT는 많이 활용하면 할수록 노하우가 점점 더 풍성해집니다. 이 글에서 안내한 방법부터 적용하며 실험해보세요. 단, ChatGPT를 활용할 때 반드시 주의해야 할 사항이 있습니다. 바로 ChatGPT는 100% 완성된 결과물을 제공해 주진 못한다는 점입니다. 그러니 ChatGPT로부터 최대한의 도움을 얻은 후 반드시 본인의 개성과 매력을 한 스푼 더하여 ‘수정 및 보완의 단계’를 거치는 것을 권장합니다.

TEXTNET은 지금 이 순간도 ChatGPT에 대한 끊임없는 연구를 진행하고 있습니다. 이 글에서 소개해 드린 노하우 외에도 프롬프트 엔지니어링으로 ‘ChatGPT와 원하는 문체로 대화하기’, ‘MBTI를 활용한 재미있는 콘텐츠 만들기’, ‘이야기 속의 주인공 되어보기’ 등과 같은 콘텐츠를 제작한 사례도 있습니다. 더 많은 정보가 궁금하시다면 TEXTNET의 문을 두드려 주세요!

✏️
Editor │ 데이터사업팀 김다혜 PM
다양한 사람들과의 만남을 데이터에 담아내는 프로젝트 매니저 김다혜입니다.

TEXTNET 소개

지금의 딥러닝을 있게 한 AI Guru 제프리 힌튼의 데이터셋 'ImageNet'에 어원을 둔 TEXTNET은 (주)스피링크가 운영하는 AI/챗봇을 위한 텍스트 데이터 설계 및 구축 서비스입니다.

TEXTNET은 언어학, 심리학, 전산언어학 석·박사를 포함한 전문 인력으로 구성된 언어전문가 그룹으로서, 고객사의 니즈에 부합하는 텍스트 데이터를 설계·가공·구축하고 내부 R&D를 통해 설계 방식을 지속적으로 개선하여 최적의 데이터 설계 방법을 제안합니다. 프로젝트 목적에 따라 적합한 숙련 작업자를 선별하여 투입하고, 체계적이고 효율적으로 고품질의 학습데이터를 생산합니다.

TEXTNET은 삼성, LG, KT, SK 등 유수 대기업의 데이터 구축 파트너로 함께하며 금융, 마케팅, 콘텐츠, 메타버스, 서비스 기획, CS 등 다양한 도메인을 다루고 있습니다.