코넬대가 증명한 ChatGPT 프롬프트 26가지
ChatGPT 프롬프트 엔지니어링은 대규모 언어 모델(LLM)에서 우리가 원하는 정보를 보다 효과적으로 얻어내기 위한 기술입니다. 이번 포스팅은 코넬대 연구진이 실험을 통해 정리해 준 LLM 프롬프트 26가지에 대한 내용입니다. 챗GPT, 라마, 제미나이 등 LLM을 이용해서 원하는 정보를 얻는데 활용해보시기 바랍니다.
글의 순서
ChatGPT 프롬프트 작성방법이 왜 중요한가?
코넬대 연구진이 증명한 ChatGPT 프롬프트 26가지
ChatGPT 프롬프트 작성방법이 왜 중요한가?
ChatGPT와 같은 LLM(대규모 언어모델, Large Language Model)은 시뮬레이션 능력이 있습니다. LLM에게 정확하게 지시할수록, 기대했던 답을 더 쉽게 얻을 수 있습니다. 지시한다는 것이 바로 프롬프트(prompt)를 작성하는 것입니다. LLM은 정보를 프롬프트에 맞게 조정할 수 있는 능력이 있기 때문에 프롬프트의 미세한 차이에 민감하게 반응합니다. 그래서 ChatGPT 프롬프트 작성방법은 우리가 원하는 정보를 얻는데 중요합니다.
코넬대 연구진이 증명한 ChatGPT 프롬프트 26가지
(1)
간결한 답변을 원한다면, ChatGPT 프롬프트로 “부탁합니다”, “상관없다면”, “감사합니다”, “저는 ~하고 싶습니다” 같은 말을 추가하지 않아도 됩니다. 바로 요점으로 들어가면 됩니다. 이 포스팅에서 정리한 26개의 프롬프트는 ChatGPT뿐만아니라 라마, 제미나이와 같은 LLM에도 적용할 수 있습니다.
(2)
‘중학교 3학년 학생에게 설명할 수 있게 해주세요’처럼 대상자를 알려줍니다.
(3)
큰 덩어리의 주제라면 작은 덩어리로 쪼개서 순서대로 정보를 요청합니다.
(4)
긍정적인 지시어를 사용합니다. 되도록 ‘하지 말고’ 등의 부정적인 지시어를 피합니다.
(5)
특정 주제나 정보에 대해 더 명확하게, 깊이 이해하고 싶을 때, 아래의 프롬프트를 추천합니다. 위의 (2)번이 여기에 포함된다고 보시면 되겠습니다.
▶[구체적인 주제]를 간단하게 설명해주세요.
▶마치 저가 11살인 것처럼 설명해주세요.
▶[분야]에 대해 초보자인 저에게 설명하듯이 말해주세요.
▶5살짜리 아이에게 무언가를 설명하듯이, 간단한 언어로 [에세이/문장/단락]을 작성해주세요.
(6)
더 나은 해결책을 위해 $100의 팁을 줄게요!”라고 추가하세요. 팁을 주는 것은 미국 스타일인데, 아무래도 현재 대부분의 LLM이 미국에서 나온 것이라 그런 것 같습니다.
(7)
원하는 정보와 관련된 간단한 예를 들어줍니다.
(8)
프롬프트를 작성할 때, ‘###지시사항(Instruction)###’으로 시작하세요. 혹시 그 다음에 추가 가능하다면 ‘###예제(Example)###’ 또는 ‘###질문(Question)###’을 추가합니다. 지시사항, 예제, 질문을 작성한 후에 내용을 제시하세요. 지침(Instruction), 예시, 질문, 맥락 및 입력 데이터를 구분하기 위해 Shift+Enter를 쳐서 줄 바꿈합니다.
(9)
다음 문구를 포함시킵니다. “당신의 임무는” 그리고 “당신은 반드시 해야 합니다”.
(10)
다음 문구를 포함시킵니다. “당신은 제재를 당할 것입니다. 또는 벌을 받을 것입니다.
(11)
프롬프트 작성할 때 “인간처럼 자연스럽게 또는 사람이 말해주듯 주어진 질문에 답하세요”라는 문구를 사용합니다.
(12)
“차근차근(step-by-step) 설명해 주세요 또는 단계별로 설명해주세요”.를 사용합니다.
(13)
“당신의 답변이 공정하며, 고정관념에 사로잡히지 않은 답변이라는 것을 확실해 해주세요“를 추가합니다.
(14)
LLM이 내가 필요로 하는 답변을 제공할 수 있을 만큼 충분한 정보를 얻을 때까지 내게 질문을 해서 정확한 세부 요구사항을 이끌어낼 수 있도록 허용해 줍니다. 예를 들어, “지금부터는 당신이 저에게 거꾸로 질문을 해서 …”
(15)
특정 주제에 대해 묻고 LLM이 대답한 것을 내가 잘 이해하고 있는지 테스트하고 싶을 때, 다음과 같은 문구를 사용합니다. : “저에게 [주제]에 대해 가르쳐 주시고 마지막에 내가 이해했는지 테스트해 주세요. 그러고는 저의 답이 맞는지 알려주세요, 제가 답한 후에 알려주세요.“
(16)
LLM에게 역할을 줍니다. “지금부터 당신을 저의 영어선생님으로 모십니다.”처럼 말입니다.
(17)
구분자를 사용합니다. 여기서 구분자는 쉼표(,), 세미콜론(;), 콜론(:), 파이프(|), 슬래시(/), 괄호() [], 따옴표(‘ “), 대시(-), 언더스코어(_)와 같은 것들을 의미합니다.
(18)
프롬프트를 작성할 때, 원하는 주제와 관련된 특정 단어나 문구를 여러 번 반복합니다.
(19)
“사고 연결 과정(Chain-of-thought, CoT)”과 “프롬프트 예제(few-Shot prompts)”를 결합합니다. 말이 참 어려운데요. 레고 블록으로 CoT와 few-shot prompt를 설명해보겠습니다.
먼저, “사고 연결 과정”은 큰 레고 성을 만들기 위해 각 블록을 하나씩 차례대로 어떻게 쌓아야 하는지 생각하는 과정입니다. 예를 들어, 성의 기초를 만들고, 벽을 쌓고, 마지막으로 탑을 만드는 것처럼 말입니다. 여기서 각 단계가 바로 문제를 해결하기 위한 작은 ‘생각의 단계’라고 할 수 있습니다. 프롬프트 예제는 선생님이 작은 레고 모델 몇 개를 보여주며, “이런 식으로 만들어 보세요”라고 말하는 것과 같습니다. 이렇게 몇 개의 예시를 보면서, 우리는 큰 레고 성을 만드는 방법을 더 잘 이해하고, 스스로도 비슷한 모델을 만들 수 있게 됩니다.
이 두 방법을 결합하면, 문제를 해결하는 방법을 단계별로 잘 배우면서, 실제 예시를 통해 그 방법을 실천해 볼 수 있게 됩니다. 마치 레고 블록을 조립하면서, 자신만의 멋진 작품을 만들어 가는 것처럼 말입니다. 다만, 프롬프트 작성에 이것을 적용해보려면, LLM과 여러차례 대화해서 어느정도 개념이 잡힌 상태이어야 합니다.
(20)
대화나 글에서 우리가 원하는 답변이나 내용을 쉽게 시작할 수 있도록 도와주는 첫 문장이나 질문 같은 ‘도입부(primer)’를 써줍니다.
도입부에 관해 예를 들어보면, 글쓰기 수업에서 이야기를 쓰기 시작할 때, 선생님이 “오늘은 우주 여행에 대한 이야기를 써보자. ‘한 소년이 우주선을 타고…’로 시작해볼까?” 라고 말씀하셨다면,
‘한 소년이 우주선을 타고…’라는 부분이 바로 도입부입니다. 이 도입부는 이야기를 어떻게 시작해야 할지에 대한 아이디어를 줍니다. 이렇게 시작 문구를 주면, 우리는 그 다음에 무슨 일이 일어날지 생각하면서 글을 써내려갈 수 있습니다.
(21)
세부적으로 설명이 필요한 에세이, 글, 단락, 기사 등을 작성하려면: “[주제]에 대해 필요한 모든 정보를 추가한 후 작성해달라고 요청합니다.
(22)
내가 쓴 글의 문체나 표현 방식을 그대로 유지하면서 문법과 어휘만 개선하고 싶을 때는 “문법과 어휘만 개선하고 자연스럽게 들리도록 해주되, 원래의 스타일을 유지해세요.”라고 요청합니다. 만약 공식적으로 유지하면서, 공식적인 단락이 여전히 공식적으로 남아 있도록 해야 합니다.
(23)
복잡한 코딩 문제를 해결해야 하고, 코드가 여러 파일에 분산되어 있을 때에는 아래와 같이 프롬프트를 작성합니다. 파이썬 코드를 작성해야 할 경우를 예로 들어보겠습니다.
“지금부터는 a.py라는 코드를 자동으로 생성하거나, 기존 b.py를 변경해서 [~을 할 수 있는 코드]를 작성해주세요”.
(24)
특정 단어, 문구 또는 문장을 사용하여 글을 쓰고 싶을 때, 다음과 같은 프롬프트를 작성합니다.
▶제가 글을 시작할 수 있는 기본 틀을 제공할 예정이니, 이 기본 틀을 이용하여 글을 써 주세요. 글의 흐름을 일관되게 유지해 주세요.
(25)
LLM이 콘텐츠를 생성하기 위해 따라야 할 요구사항을 키워드, 규칙, 힌트 또는 지시사항의 형태로 명확하게 제시합니다.
(26)
특정한 글과 유사한 에세이나 단락과 같은 어떤 글을 작성하려면 아래의 프롬프트를 이용합니다. 아래에서 ‘동일한 언어(same language)를 사용한다’는 것은, 주어진 예시와 같은 종류의 단어, 문장, 그리고 스타일을 사용하여 글을 써야 한다는 것을 의미합니다.
▶제가 제공하는 글[단락/제목/에세이/답변]을 기반으로 동일한 언어를 사용해 주세요.
마치며 …
이번 포스팅에서는 대규모 언어 모델(LLM)에서 우리가 원하는 정보를 보다 효과적으로 얻어내기 위한 기술인 프롬프트 엔지니어링에 대해 알아보았습니다. 대표적인 LLM인 ChatGPT를 사용한다면, 이 포스팅에서 정리해 본 26개를 ChatGPT 프롬프트 작성에 활용할 수 있습니다. 물론, 라마, 제미나이에서도 똑같은 방식으로 프롬프트를 작성하시면 됩니다.
입니다. 이번 포스팅은 코넬대 연구진이 실험으로 증명한 LLM의 대표주자인 ChatGPT 프롬프트 26가지에 대한 내용입니다. 챗GPT, 라마, 제미나이 등 LLM을 이용해서 원하는 정보를 얻는데 활용해보시기 바랍니다.
함께 참고하면 좋은 글
▶ ChatGPT 영어회화 프롬프트 세팅
▶ 대화의 주도권을 쥐는 ChatGPT 영어공부 프롬프트 세팅
▶ 애플지능(Apple Intelligence), WWDC 2024에서 공개된 애플스런 AI
▶ ChatGPT, 라마(LLaMA)가 여는 생성형 인공지능 시장
▶ 초 거대 인공지능 ChatGPT
▶ 자연어 처리 신경망 모델 ChatGPT를 만든 딥러닝 방법
▶ 챗GPT와 같은 자연어 처리 인공지능 한계
▶ ChatGPT 플러그인, 멀티 모달 인공지능
▶ 머신러닝, 인공지능. 커피 마시며 가볍게 읽는
▶ 구글 제미나이(GEMINI), 딥마인드가 만든 인공지능
참고자료
Sondos Mahmoud Bsharat, Aidar Myrzakhan, Zhiqiang Shen, Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4