chatgpt 기본적인 프롬프트 팁 - 어떻게 하면 더 잘 사용할 수 있을까?
chatgpt를 활용하면서 배웠던 팁들을 소개합니다.
chatgpt를 사용하면서 알게 됐던 팁들을 소개합니다. 사실 챗gpt를 사용할 때 정답은 없습니다. 바로 여러분의 상황에 맞게 사용하면 되니깐요. 여러분의 상황이나 목표가 가장 중요한 프롬프트 요소입니다. 그럼에도 불구하고 어떻게 하면 더 잘 사용할 수 있을지 생각해 보고 있습니다.
일단 구조를 생각해 보겠습니다.
input
chatgpt 응답
output
제가 생각하기에 크게 이런 식의 구조로 이루어져 있습니다. 이 구조에서 어떻게 하면 더 사용하면 더 좋을지 생각해 보겠습니다.
맥락 (context) 더하기
input에 맥락을 더해서 추가적인 정보를 제공하면 좋습니다. chatgpt의 기본 원리는 이어 말하기이기 때문에 초반에 좋은 정보를 제공하면 좋습니다. 물론 처음부터 맥락을 더하려고 할 필요는 없습니다. 응답을 받은 후 원하는 방향의 정보를 얻기 위해서 context를 더하면 좋습니다. 좋은 프롬트트와 응답의 키는 바로 반복입니다. 결과를 얻고 개선하세요.
앞부분에 카페라떼 마일드에 대해서 맥락 정보를 더하고 질문이라고 따로 명시해서 프롬프트를 보냈습니다. 그랬더니 해당 정보를 반영해서 답변을 해줍니다. 이렇게 예시나 정보를 제공해 주는 것을 워드 임베딩 또는 퓨샷 러닝이라고 합니다.
다만 제약이 있는데 chatgpt는 질의와 응답을 합해서 기억할 수 있는 한계가 4096 토큰입니다. 그래서 오랜 시간 기억하지는 못한다는 것을 알아 주세요. 1토큰 = 영어 4글자, 2~3토큰 = 한글 1글자입니다. 한글로 하면 토큰 수를 많이 차지해서 손해를 보는데요. 이럴 경우 deepL이나 구글 번역기, 파파고 번역기 등으로 바꿔서 질문과 대답을 번역하면 됩니다. 이런 과정을 쉽게 하기 위해서 chatgpters 사용자 그룹에서 만든 프롬프트 지니 라는 자동 번역기 크롬앱도 추천합니다.
만약 context 제공만으로 충분하지 않고 제한을 넘어서 더 많은 추가적인 정보를 제공해서 대답하게 하려면 파인튜닝을 해야 합니다. gpt-3의 파인튜닝에 대해서는 나중에 자세히 한 번 다뤄 보겠습니다.
chatgpt에게 역할 부여하기 (act as)
chatgpt의 응답 부분에서 사용할 수 있는 것은 바로 역할을 부여하는 것입니다. 챗gpt에게 역할을 부여함으로써 굉장히 다른 대답들을 얻을 수 있습니다. act as 키워드를 통해 마케팅 전문가, 시니어 개발자, 성공한 CEO 등 다양한 역할을 부여할 수 있습니다. 자신이 정의하기에 따라 다양한 역할을 만들 수 있습니다.
이런 걸 한 개발자가 잘 정리해 놓은 사이트가 있습니다. - GitHub - f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better.
저는 여기서 미드저니에서 사용할 프롬프트를 만들어 주는 역할을 사용해 보엤습니다.
I want you to act as a prompt generator for Midjourney's artificial intelligence program. Your job is to provide detailed and creative descriptions that will inspire unique and interesting images from the AI. Keep in mind that the AI is capable of understanding a wide range of language and can interpret abstract concepts, so feel free to be as imaginative and descriptive as possible. For example, you could describe a scene from a futuristic city, or a surreal landscape filled with strange creatures. The more detailed and imaginative your description, the more interesting the resulting image will be. Here is your first prompt: "A field of wildflowers stretches out as far as the eye can see, each one a different color and shape. In the distance, a massive tree towers over the landscape, its branches reaching up to the sky like tentacles."
이렇게 한 후 제가 어떤 단어를 입력하면 미드저니나 스테이블 디퓨전에서 사용할 수 있는 프롬프트를 생성해 줍니다.
problem solving에 대한 프롬프트를 생성해달라고 이야기했습니다.
쪼개서 질문하기 (Chanined prompt)
chatgpt의 응답 부분에서 사용할 수 있는 것은 바로 나눠서 질문하기 입니다. 일을 여러개의 중간 단계로 나누고 추가 정보를 제공하거나 해서 더 좋은 결과를 얻을 수 있습니다. 예를 들어 프로덕트 A에 대한 전체적인 마케팅 개요를 짜달라고 한 후 각 부분에 대해서 추가적인 정보를 더하거나 상세 질문을 할 수 있습니다.
이런 식으로 전체 개요를 짠 후 대상 고객 파악하기에 대해 추가적인 질문을 하면 됩니다. 만약 chatgpt가 원하지 않는 대답을 한다면 Stop generating 버튼을 눌러 중지 시키고 질문을 바꿔서 다시 하면 됩니다.
파트 중 2번 대상 고객 파악하기에 대해서 추가 질문을 했습니다. 효과가 있을만한 고객군을 불렛 포인트로 리스트 형식으로 설명해달라고 했습니다.
결과의 형식 바꾸기
마지막으로 output의 형식을 바꿈으로써 더 적합한 대답을 얻을 수 있습니다. 예를 들어 결과를 트위터에 공유하기 쉽게 글자의 제약을 걸거나 블로그에 올릴 수 있게 긴 글 형식으로 만들 수 있습니다.
또 결과를 마크다운 문법이나 json 등 다양한 형태로 바꿔서 출력할 수 있습니다.
예를 들어서 제가 살을 빼는 방법을 정리한 노트를 질문과 대답의 쌍을 가진 형태의 아웃풋으로 출력한 내용입니다. 일반 노트를 입력하면 다음과 같이 질문과 대답의 형태로 바꿔줍니다.
다음 노트를 질문과 대답의 쌍의 json 표현해줘.
노트 : 일단 모든 것은 원리를 알면 간단하다. 당신은 살이 왜 찌는지 아는가? 바로 탄수화물 때문이다. 우리의 몸은 필요한 탄수화물의 양이 넘어가게 되면 이걸 지방으로 저장한다. 아마 대부분의 사람들이 이 사실을 모르는것 같다. 살이 찌는 이유는 바로 '탄수화물' 때문이다...
이런 모든 과정을 시행 착오를 거쳐 하나의 좋은 프롬프트를 만들어 낸다면 프롬프트 엔지니어링이 됩니다. 요즘은 프롬프트를 잘 하는 사람을 고용하거나 gpt와 같은 LLM(대형 언어 모델)을 만드는 회사와 전략적인 제휴를 맺는 회사도 많이 생겼네요. 프롬프트 엔지니어링은 산업에 영향을 끼칠 수 도 있습니다. 저도 프롬프트를 잘 사용하게 하는데 엄청 많은 가능성들이 있다는 것을 알게 됐습니다.
여러분이 프롬프트를 재미있게 잘 활용해 보기를 원하는 마음에 노트를 공유합니다. 그럼 행복하세요.
추가 팁
chatgpt는 질문을 할 때 요소 하나하나에 설명을 더해서 대답이 장황해지는데 이 때 '부가적인 설명은 제외해줘' 또는 '요점만 말해줘' 하는 키워드를 쓰면 요점만 간단하게 설명해 줍니다.