GPT에게 '팁'을 준다고 하면 성능이 향상된다고? 챗GPT 활용 노하우 4가지

이번 아티클에서는 챗GPT를 도입한 사례를 소개하고, 챗GPT에서 어떻게 프롬프트를 입력해야 하는지 다루는 ‘프롬프트 디자인 역기획’을 주제로 작성하고자 합니다.
Feb 21, 2024
GPT에게 '팁'을 준다고 하면 성능이 향상된다고? 챗GPT 활용 노하우 4가지

⏳7min

안녕하세요, 생성형 AI와 마케팅에 대해 기고하고 있는 그린입니다. 그동안 챗GPT와 프롬프트 엔지니어링, 인공지능을 활용한 마케팅 사례, 여러 도메인에서의 인공지능 도입 사례 등에 대해 다루었었는데요. 이번 아티클에서는 챗GPT를 도입한 사례를 소개하고, 챗GPT에서 어떻게 프롬프트를 입력해야 하는지 다루는 ‘프롬프트 디자인 역기획’을 주제로 작성하고자 합니다. 이때, 현재 학계 및 현업에서 이야기되는 최근 프롬프트 엔지니어링 기법들을 하나씩 소개하고, 역기획에서 적용해 보는 결과를 기술하는 흐름으로 구성해 보았습니다. 그럼 시작하겠습니다!

1. 챗GPT 빠르게 복습하기!

챗GPT활용

모두가 아실 생성형 AI의 대표주자인 ‘ChatGPT(챗GPT)’는 OpenAI가 공개한 인공지능 모델이죠. 챗GPT는 단기간 만에 월간 활성 사용자 수(MAU) 1억 명을 돌파하며 화제를 모았었는데요. 인공지능의 시대에서 챗GPT API 제공은 비즈니스에 새로운 가능성을 열어주었고, 다양한 산업군에서 여러 기업이 발 빠르게 챗GPT를 도입하고 있습니다. 주위 사람들과의 대화, 세상의 뉴스, 방대한 책등을 읽고 들은 것(input)을 바탕으로 말하고 글 쓰는(output) 인간처럼, 초거대 언어 모델(Large Language Model)인 챗GPT는 인터넷의 방대한 텍스트 데이터를 학습한 것을 바탕으로(input) 텍스트를 생성(output)하는 ‘생성형 모델’입니다.

챗GPT의 원리에 대해 간단히 설명드리면, 학습한 모델이 한 토큰을 생성할 때마다 다음에 올 확률이 높은 토큰을 생성하는 방식으로, 모델에게 생성 방향을 지시하는 가이드인 ‘입력 프롬프트(prompt)’를 잘 작성해 주는 것이 중요합니다. 프롬프트(prompt)란 원하는 결과물을 얻을 수 있도록 인공지능에 제시하는 텍스트입니다. 이를 바탕으로 학습한 모델 입장에서 가장 그럴듯하게 뒤 내용을 생성하는 것이기 때문이죠. 제가 이전에 작성한 글들에 조금 더 자세히 설명해 두었으니 필요하시다면 참고해 주세요.

🎁 함께 보면 좋은 콘텐츠

▶ 챗GPT 프롬프트 잘 쓰는 법 1

▶ 챗GPT 프롬프트 잘 쓰는 법 2

챗GPT 활용

프롬프트 엔지니어링은 다양한 응용 프로그램 및 연구 주제에 언어 모델(LM)을 효율적으로 사용하기 위해 프롬프트를 개발하고 최적화하는 비교적 새로운 분야입니다. 간단한 프롬프트만으로도 여러 태스크를 수행할 수 있지만, 결과의 품질은 프롬프트에 따라 크게 달라질 수도 있습니다. 따라서 프롬프트 엔지니어링 기법을 잘 알면 더 똑똑하게 언어모델을 사용할 수 있습니다. 마이크로소프트의 CEO인 Satya Nadella는 ‘AI는 결국 도구이다. 어떻게 활용하는지에 따라 획기적인 도움을 줄 것’이라고 말한 바 있습니다. 결국, 잘 활용할 줄만 안다면 챗GPT와 같은 생성형 모델의 가능성은 무궁무진합니다. 다른 기업들은 제공하는 서비스나 아이템에 챗GPT를 어떻게 도입했을까요? 

2. 챗지피티 사례 - 듀오링고 ‘Explain my answer'

챗GPT활용챗GPT 활용

듀오링고는 외국어를 공부하시는 분들은 한 번쯤 들어보셨을 만한 앱이죠. 전 세계에서 가장 많은 학습자가 이용하는 외국어 학습 플랫폼으로 매월 5천만 명 이상이 총 40개국의 외국어 학습을 위해 사용하고 있다고 합니다. 듀오링고는 이번에 GPT-4를 챗봇 형식으로 만들었는데요. 그중 Explain my Answer 기능은 맞춤형 피드백을 제공하는 기능으로, 표현에서 문법을 교정해 주고 더 나은 단어와 표현 추천해 주는 데에 챗GPT를 사용하였습니다. 실제 서비스에서는 더 정교하고 체계적인 플로우로 여러 기능을 결합해 서비스하겠지만, 본 아티클에서는 일부 기능만을 선택하여 예시로 활용하고자 합니다.

3. 프롬프트 디자인 “역기획” 해보기

그렇다면, 이 챗GPT 활용 기능이 어떤 프롬프트를 사용하면 유사한 결과물을 얻을 수 있을지 프롬프트 디자인을 역으로 해보는 ‘프롬프트 역기획’을 해보고자 합니다. 역기획이 무엇인지 모르시는 분들을 위해 간단히 설명드리면, 서비스 역기획이란 이미 기존에 만들어져 있는 서비스를 보면서 역으로 어떻게 기획되었는지 정리하는 방식을 말합니다. ‘프롬프트 역기획’이라는 개념은 처음 들어보셨을 것 같은데요. 프롬프트 역기획이란, 해당 개념에 ‘프롬프트’ 개념을 얹어서 원하는 것과 유사한 인공지능 결과물을 생성할 수 있도록 기존의 서비스를 역으로 생각해 보는 것으로 이번 아티클을 통해 제가 사용하고자 하는 용어입니다. (공식 용어는 아니에요! 구글에 “프롬프트 역기획” 검색 시 결과가 나오지 않습니다)

챗GPT 활용챗GPT 활용

저는 듀오링고의 위 기능을 예시로 하여, 이를 구현하기 위한 프롬프트 초안을 다음과 같이 작성해 보았습니다. Let’s pretend~ 로 시작하여 영어 선생님과 & 학생이 대화하는 듯한 롤플레잉 상황을 주었고, 위 듀오링고에서 소개한 대로, 번역이 옳은지 틀렸는지의 여부와 간단한 이유를 설명하고 예시 혹은 추가 설명을 해달라고 했습니다.

챗GPT 활용

이 프롬프트를 입력해 주었더니 챗GPT는 다음과 같이 생성해 주었습니다. 번역할 문장은 제가 최근에 TED Talks로 영어 공부를 하며 적어두었던 문장인 "Every time we intentionally choose generosity, the effects of that choice are more far-reaching than we might think."입니다. 제가 이 문장을 해석한 것이 옳은지, 혹은 더 나은 표현은 없을지 챗GPT가 교정해 주는 방식이므로 이에 대한 해석을 살짝 어색한 오역인 ‘우리는 매번 의도적으로 자상함을 선택할 때, 그 선택의 효과는 우리 생각보다 먼 곳까지 도착할 수 있다.라고 번역했다고 가정하겠습니다. Generosity라는 단어를 ‘자상함’이라는 다소 어색한 단어로 번역, far-reaching이라는 단어를 ‘먼 곳까지 도착한다’는 표현으로 오역해 보았습니다. 이렇게 작성해 본 기본 프롬프트에 대해 챗GPT는 어떻게 교정해 주는지 살펴보겠습니다.

챗GPT 활용

놀라운 결과입니다! 간단한 프롬프트 만으로도 정말 영어 선생님이 교정해 주는 것처럼 자연스럽게 생성했습니다. 특히 제가 번역한 문장을 더욱 자연스럽게 교정하고, 그 이유를 하나씩 설명해 주었네요. ‘우리가 의도적으로 관용을 선택할 때마다, 그 선택의 영향력은 우리가 생각하는 것보다 더 멀리 뻗어갈 수 있습니다.’라고 번역해 두었는데, ‘자상함’을 관용이라는 표현으로 고쳐주고, 유사하게 ‘관대함’이라는 단어를 사용할 수 있다는 예시를 주었어요. 또한 ‘효과’라는 단어를 문맥에 맞게 ‘영향력’이라고 해주었습니다. 마지막으로 far-reaching에 대한 오역을 바로 잡아 ‘보다 더 넓은 영향을 준다’ 혹은 ‘더 깊은 영향을 준다’라고 정정해 주었어요.

예시로 작성한 기본 프롬프트에서도 우수한 성능을 보이는데, 프롬프트 엔지니어링 기법들을 적용해서 수정해 보면 어떨까요? (참고로 ChatGPT 3.5 모델을 사용했습니다)

4. 프롬프트 엔지니어링 노하우 4가지

1.  Zero-shot-PS(Plan-and-Solve)

첫 번째 엔지니어링 기법은 ‘매직 프롬프트(Zero-shot-PS)’입니다. LLM(Large-Language Model) 프롬프트 중 간단하면서도 효과를 높일 수 있는 프롬프트로 Zero-shot CoT라는 기법을 이전 스토리에서 소개했었죠. 바로 ‘Let’s think step by step’, 즉 ‘ 단계별로 생각해 봐’라고 하는 프롬프트가 생각이 꼬리에 꼬리를 무는 것과 같은 중간 추론 단계를 프롬프트에 포함하여 복잡한 추론까지 가능하게 하는 방식으로 모델에게 사고의 방향을 가이드하는 Chain-of-Thought라는 프롬프트 기법을 단순화 한 방법입니다. 

이번에 소개할 Zero-shot-PS(Plan-and-Solve)는 Zero-shot-CoT를 조금 더 확장해 간단하게 성능을 높일 수 있는 방법이라고 합니다. 우선 프롬프트는 다음과 같습니다.

⌨️ Let’s first understand the problem and devise a plan to solve the problem. Then, let’s carry out the plan and solve the problem step by step.

(먼저 문제를 이해하고 문제를 해결하기 위한 계획을 세웁시다. 다음, 계획을 실행하고 문제를 단계별로 해결합시다.)

우수하다고 알려진 이 성능에 비해 프롬프트 자체는 아이에게 설명하는 것처럼 간단하죠? 바로 답을 생성하지 않고 우선 (1) 문제를 이해해 보고 (2) 문제를 해결할 계획을 세운 후(Plan) (3) 단계별로 풀이를 작성하도록 하는 것입니다(Solve). 추론을 위해 Chain-of-Thought 와 Plan-to-Solve 기법을 함께 사용하도록 하는 것이죠. 이 프롬프트를 저희의 ‘영어 학습을 위한 번역 교정’ 문제에 적용해 볼까요?  

챗GPT 활용챗GPT 활용

위 이미지에서 색칠한 부분과 같이 해당 문장을 프롬프트에 추가했습니다. 그 생성 결과는 다음과 같습니다. 처음 작성했던 프롬프트와 유사하게 답변을 생성했습니다. Main issue가 무엇인지, Additionally, For further examples 의 표현을 사용하여 어느 정도는 breakdown 하여 문제를 해결하는 모습을 보였는데요. 현재 태스크가 단순한 영어 번역 교정이다 보니 큰 차이는 없었던 것 같습니다. 다만, 이와 같은 태스크가 아니라 수학 문제처럼 문제를 이해하고 수식을 세워 해결해야 하는 영역이라면 더욱 효과적이었을 것 같네요!

2. Take a deep breath
and work on the problem step-by-step

다음으로 소개할 프롬프트는 Take a deep breath and work on the problem step-by-step입니다. 숨 한번 쉬고, 이 문제에 대해 차근차근 생각해보라고 하는 것인데요. step-by-step 생각해 보라고 하는 것은 Chain of Thoughts의 방식인 것 같은데 앞에 Take a deep breath는 정말 사람한테 하는 것과 같은 표현이죠? 구글 딥마인드에서 공개한 Large Language Models as Optimizers라는 논문에서 LLM이 직접 더 좋은 프롬프트를 찾아주는 시도를 선보였습니다. 잘 알려진 Let's think step by step 보다 LLM이 제안한 Take a deep breath and work on the problem step-by-step으로 문제를 풀었을 때 더 나은 결과를 보였다고 하네요. 그럼 이 프롬프트를 저희 태스크에 추가해 보겠습니다.

챗GPT 활용챗GPT 활용

마찬가지로 자연스럽게 교정해 주고, 문맥에 맞는 단어 교체에 대한 설명을 해주었네요.

3. 감정적인 요소 추가하기

세 번째로 소개할 팁은, 감정적인 요소를 추가하는 ‘Emotion Prompt’입니다. Large Language Models Understand and Can be Enhanced by Emotional Stimuli라는 논문에 의하면 LLM 프롬프트에 감정적인 요소(Ex. 이건 내 커리어에 중요한 일이야)를 추가하면 답변 품질이 좋아진다고 하는 연구 결과가 있었습니다.

챗GPT 활용

이는 대부분의 태스크에서 성능 향상이 있었고 심지어 Chain of Thoughts보다도 성능이 좋았다고 합니다. 사람도 감정에 호소해서 부탁하면 더 열심히 해결해 주려고 하는 것처럼, LLM도 감정적인 표현이 영향을 주는 것 같네요. 앞서 소개한 Take a deep breath 표현처럼, LLM이 정말 사람과 유사한 점이 많은 것 같습니다. 이를 저희 프롬프트에 적용해 보겠습니다.

챗GPT 활용챗GPT 활용

이 프롬프트도 꼼꼼하게 잘 교정해 주었습니다. 이해가 가기 쉽도록 예시를 추가해 주었네요. 역시 감정에 호소하니 더욱 열심히 해준 것일까요?😊 이번 태스크에 해당하는 내용은 아니지만 간단한 추가 팁도 소개하자면 소스코드를 생성할 때도 ‘내가 손가락 다쳐서 그러는데, 코드 네가 다 작성해’라고 하면 생략 없이 코드를 생성해 준다는 이야기도 있습니다.

4. 팁(💵)을 줄게 

챗GPT 활용

마지막으로 소개할 팁은 바로 ‘팁을 줄게’라고 포함하는 것입니다. 이는 공식적인 연구 결과는 아니고 트위터의 한 유저가 실험을 통해 밝힌 내용인데요. 챗GPT에게 팁을 준다고 했더니 평균적으로 더 긴 답변을 했다고 합니다! 더 나아가, 그 금액대가 적당히 크다면 효과가 더 좋았다고 하네요. 위 그림에서도 보시면 $20만 팁으로 준다고 하는 것보다 $200를 팁으로 준다고 했을 때 더 좋은 성능을 보였습니다. 이 또한 저희 태스크에 적용해 보겠습니다.

챗GPT 활용챗GPT 활용

이번에도 역시 꼼꼼하게 해석을 바로잡아 주었습니다. 그런데 저희 태스크의 기본 프롬프트에서는 선생님이라고 가정했었는데, 선생님에게 팁을 주는 경우는 잘 없으므로 딱 맞는 팁은 아니었을 수도 있을 것 같네요.

5. 정리하는 글

챗GPT 활용

이번 아티클에서는 챗GPT를 도입한 사례인 듀오링고의 외국어 번역 교정 기능인 ‘Explain my answer’를 소개하고, 챗GPT에서 어떻게 프롬프트를 입력해야 하는지 직접 시도해 본 ‘프롬프트 디자인 역기획’ 과정을 소개해 보았습니다. 계획하고 문제를 해결하도록 가이드하는 ‘Plan & Solve’ 방식과 LLM이 실험을 통해 찾아낸 효과적인 프롬프트인 ‘Take a deep breath and work on the problem step-by-step’이 있었고, 감정에 호소하는 방식, 팁을 주겠다고 하는 방식을 적용해 보았습니다. 과제가 단순하다 보니 기존에 작성했던 프롬프트 대비 크게 성능 차이가 느껴지진 않았는데요, 이 태스크 외에 더욱 복잡하고 어려운 문제에 대해서는 효과가 더욱 좋을 수도 있을 것 같습니다.

이처럼 오늘은 챗GPT와 같은 LLM을 서비스에 적용한 사례를 알아보고, 직접 프롬프트를 작성해 보며 대략 어떻게 챗GPT가 적용되었을지 알아볼 수 있었는데요. 생성형 AI로 비즈니스 서비스 기능을 비교적 손쉽게 개발할 수 있지만, 정확성과 윤리적 이슈 등을 고려해 전문가와 상의하여 개발이 필요합니다. 이번 스토리도 많은 분께 도움이 되었길 바라며, 다음에는 다양한 산업, 비즈니스에서 어떻게 인공지능이 도입될 수 있는지 알아보도록 하겠습니다. 읽어주셔서 감사합니다.

이 아티클은 AI 히어로즈 전문 필진
그린(data-driven Marketer)
님의 글입니다.

Share article

AI히어로즈 - 팀블로그