와미의 일상/AI 정복하기

노베이스 프롬프트 엔지니어링 독학(2) - 프롬프트 디자인

와미쀼 2023. 11. 23. 21:40

프롬프트 엔지니어링 두 번째 컨텐츠로, 프롬프트 디자인에 대해 알아보려고 합니다. 우리가 말을 할 때 육하원칙만 따라서 말하면 효율적인 의사전달이 되는 것처럼, 프롬프트는 어떤 사항들이 고려되어야 할지 보시죠!

 

 

프롬프트 엔지니어링 기초


 

노베이스 프롬프트 엔지니어링 독학(2) - 프롬프트 디자인

 

목차

 

1. 구체적이고 명확한 목표 설정

2. 효율적인 프롬프트 구조 및 예시

3. 프롬프트 디자인을 위한 고려사항

4. 피드백 적용하여 좋은 프롬프트 만들기

이전글

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

구체적이고 명확한 목표 설정

효과적인 프롬프트 디자인의 핵심은 목표를 명확하게 설정하는 것입니다.

 

예를 들어, "이메일을 요약하는 AI를 위한 프롬프트를 작성하세요."와 같은 프롬프트는 목표가 명확합니다.

 

반면에 "이메일을 만드는 프롬프트를 작성하세요."와 같이 목표가 모호한 프롬프트는 모델이 어떤 종류의 이메일을 생성해야 하는지 명확하지 않습니다.

 

 양자 컴퓨팅의 기본 개념을 초등학생이 이해하기 쉽도록 200글자 이내로 설명해줘

 

 

구체적인 프롬프트 예시

 

 

위의 프롬프트는 두 가지의 구체적인 목표를 설정하였어요. 출력되는 내용의 1) 길이와, 2) 그걸 읽는 사람의 나이죠.

 

그랬더니 정말 쉽고 설명적인 언어를 사용하여 간단하게 200자 이내로, 반말로(!) 대답해 줍니다.

 

반면에 그냥 '양자 컴퓨팅이 뭐야?'라고 묻는다면 다소 불친절하게, 장황한 내용의 출력값이 확인되네요.

 

이처럼 좋은 프롬프트의 경우, 명확한 정보를 포함하고 있어서 모델은 목표를 이해하고 원하는 결과물을 생성하지만, 나쁜 프롬프트는 정보가 부족하고 모호해서 모델이 원하는 답변을 생성하기 어려울 수 있습니다.

 

물론 양자 컴퓨팅에 대한 예시 프롬프트도 ai가 저의 독학 컨텐츠 안에서 생성해 준 내용이었답니다!

 

효율적인 프롬프트 구조 및 예시

 

프롬프트의 구조는 생성된 결과에 직접적인 영향을 미칩니다. 효과적인 프롬프트 구조를 위해서는 명확하고 구체적인 문장으로 구성되어야 합니다. 각 프롬프트는 명령 또는 질문으로 시작하여 모델에게 원하는 작업을 명확하게 전달해야 합니다.

 

아래는 효율적인 프롬프트를 작성하기 위한 몇 가지 가이드라인인데요.

1. 명확하고 간결한 언어 사용 "이메일을 보내고 싶어." 대신에 "이메일을 작성하여 John에게 보내기"
2. 세부사항 명시 "날짜, 시간, 장소를 포함하여 회의 일정을 만들어 주세요."
3. 반복과 강조 "카메라를 켜, 카메라를 사용해 사진을 찍어봐."
4. 문맥 고려 "앞서 말한 대로, 내일 아침 9시에 회의가 있는데 참석 가능한지 확인해 주세요."
5. 다양한 형식 시도 "날씨를 알려줘." 대신에 "오늘의 날씨는 어떻게 되나요?" 또는 "내일 비가 올까요?"
6. 예시 활용 "최근에 인기있는 영화 중 하나를 추천해 주세요. 예를 들어, '듄'이나 '어벤져스' 같은 영화가 있을까요?"

 

 

앞서 이야기한 명확한 목표와 함께 아래의 여섯 가지 가이드라인을 담아서, 프롬프트를 한번 작성해 보겠습니다.

 

 

나는 곧 태어날 아기를 위한 구연동화를 만들고 싶어. (목표)
엄마와 아빠가 각각 나누어 읽을 수 있는 역할을 담아서 만들어줘. (세부사항)
등장인물은 최대 4명으로 구성해 줘.
앞서 말한 대로, 갓 태어난 신생아에게 읽어줄 수 있는 내용으로 구성해 줘. (반복/문맥 고려)
'호랑이와 곶감'같은 전통적인 내용은 아니었으면 좋겠어. (예시 활용)
잘 이해했지? (이해도 확인)
그럼 먼저 3가지의 주제를 제안해 줘. (명확하고 간결한 언어)

 

 

이렇게, 챗GPT랑 이야기할 때도 간단한 질문들만 하는 것이 아니라, 착실히 구조를 맞춰 질문한다면 보다 효과적으로 사용이 가능한 것 같아요!

 

프롬프트 디자인을 위한 고려사항

 

프롬프트를 디자인할 때 고려해야 할 사항은 다양합니다. 입력의 길이, 목적, 사용되는 모델 등을 고려하여 최적의 프롬프트를 작성해야 합니다. 이에 대한 예시를 통해 학생들이 실제 프롬프트를 작성할 때 고려해야 할 사항에 대해 이해할 수 있도록 보여줄 것입니다.

 

  • 나쁜 프롬프트 설계 원리:
    • 모호한 지시
    • 너무 제한적인 지시
    • 모델과 작업 목적을 고려하지 않음
  • "자연어 처리 모델을 활용하여, 2018년부터 2021년까지의 한국의 GDP 성장률과 그 이유를 분석하여 결과를 시각화하여 보여주세요.이 기간 동안의 주요 산업별 GDP 변화와 정부 정책의 영향을 고려하여 데이터를 종합적으로 분석하고, 논문 수준의 품질을 갖춘 보고서 형태로 제시해 주세요."
  • 좋은 프롬프트 설계 원리:
    • 입력의 명확성과 목적
    • 모델의 기능과 제한 사항 고려
    • 출력의 원하는 형태와 내용
  • "2018-2021년 한국 GDP 성장율 및 주요 산업 변화를 분석하여 시각화된 결과물 제시"

 

결과 차이: 좋은 프롬프트 설계 원리를 따르는 프롬프트는 모델이 명확한 지시를 받아 원하는 결과를 더욱 쉽게 도출할 수 있습니다. 하지만 나쁜 설계 원리를 따르는 프롬프트는 모델의 이해를 방해하고, 원하는 결과를 얻기 어렵게 만들 수 있습니다.

 

피드백 적용하여 좋은 프롬프트 만들기 예시

 

사실 내가 작성한 프롬프트가 좋은 프롬프트인지 구분하기는 쉽지 않습니다. 객관적이지도 않고요. 그래서 이 역시 ai로부터 도움을 받을 수 있습니다.

 

이를 위한 프롬프트를 만들어볼까요? 

 

너는 입력된 프롬프트를 개선하도록 도움을 주는 어시스턴트야. (목적/역할부여)
지금부터 내가 입력하는 프롬프트에 대해 개선방향과 점수로 피드백해줘. (세부사항)

 

프롬프트 피드백
"한국과 일본의 관계에 대해 뉴스 기사 생성해줘." 모델이 관계에 대한 일반적인 내용 생성
"한국과 일본 간 정치적 긴장 상황에 대한 뉴스 기사 생성해줘." "더 구체적인 내용이 필요합니다."
"한국과 일본 간 분쟁 지역에서의 정치적 긴장 상황에 대한 뉴스 기사 생성해줘." "분쟁 지역에 대한 명확한 요구가 필요합니다."
"한국과 일본 간 독도 논쟁 지역에서의 정치적 긴장 상황에 대한 뉴스 기사 생성해주줘." "더 구체적인 내용이 필요하지만, 진전이 있었습니다."
"한국과 일본 간 독도 논쟁 지역에서의 해양 자원을 둘러싼 정치적 긴장 상황에 대한 뉴스 기사 생성해줘." "요구사항을 충족하며 원하는 내용을 생성하였습니다."

 

 

이런 식으로 자체적인 피드백과 반복 개선을 통해, 생성형 AI를 보다 효과적으로 사용해 보시죠!

 

오늘은 프롬프트 엔지니어링 중에서도 프롬프트 디자인에 대해 알아봤는데요. 목적이 분명하고, 간결한 프롬프트를 통해 효율적인 프롬프트를 만들어봅시다!

 

이전글

노베이스 문과아재의 프롬프트 엔지니어링 독학(1) - 기본 개념

 

노베이스 문과아재의 프롬프트 엔지니어링 독학(1) - 기본 개념

생성형 AI 들과 보다 원활하게 대화하기 위한 기술인 프롬프트 엔지니어링(prompt engineering)이라는 것이 있다고 알게 되었어요. 그래서 저는 그 당사자인 챗GPT로부터 도움을 받아, 오늘부터 프롬프

meant2b-wami.tistory.com

 

반응형