본문 바로가기
Public Cloud/Azure

Prompt Engineering: 생성형 AI를 위한 좋은 질문하는 법

by SE_123 2024. 1. 28.

소개

인공지능의 최고 인기 분야인 생성형 AI(Generative AI)는 최근 몇 년간 급진적으로 발전하고 있습니다. 기계가 다양한 영역에서 인간과 유사한 콘텐츠를 생성하도록 합니다. 프롬프트 엔지니어링은 원하는 결과를 생성하도록  AI 모델을 안내하기 위해 정확한 지침이나 쿼리를 작성하게 합니다. 이렇듯 정확한 지침은, AI의 기능을 향상시키고 사용자가 특정 요구 사항에 맞게 커스텀하여 결과를 생성합니다.  AI 환경에서 생성 모델의 연구원, 개발자 및 실무자에게는 프롬프트 엔지니어링을 이해하고 숙달하는 것이 필요합니다.  생성형 AI 영역에서 프롬프트 엔지니어링의 방법을 알려드립니다. 

 

 

 

좋은 답변을 얻기위해서는 좋은 질문을 할 수 있어야합니다. (= prompt engineering)

01. Role prompting

명확하고 간결한 구체적인 지침을 system역할에 미리 정의해 둘 수있습니다. 특정 역할이나 관점을 가정는 등, 언어를 전략적으로 사용하는 데 중점을 둡니다.

  1. [expert persona]
    • 예를 들어, 특정 페르소나 , 역할 관점 등을 정의할 수 있습니다.  
    • ex) "너는 호기심이 많고 관찰력이 뛰어난 탐정이야. 미스터리를 풀듯이 접근해야해."
  2. [verb][format & length][objective]
    • 무엇을 해야하는지와 같은 목표를 설정해 주어야 합니다. 목표에는 출력의 형식과 길이등을 포함 할 수 있습니다. 
    • ex) "도시 프로젝트의 핵심 기능을 강조하는 300 단어의 기사를 작성해줘"
  3. [relevant] [data]
    • 신뢰할 수 있는 관련 데이터를 제공해주면 좋습니다. 하지만, 정확성이 핵심입니다. (= grounding llms)
    • ex) "1957년 스푸트니크 발사, 1969년 아폴로 11호 달 착륙, 이후 우주 탐험의 발전과 같은 주요 정보를 포함하여 미국과 소련 간의 우주 경쟁에 대해 요약해줘"
  4. [tone of voice][audience]
    • 글의 말투나 청자의 스타일을 정의할 수 있습니다. 
    • ex) "너는 젊고 열정적인 청중을 대상으로 하는 기술에 정통한 블로거야"

 

02. Chain of Thought(CoT)

Chain of Thought는 이전 프롬프트에서 제공된 컨텍스트와 정보를 기반으로 다음 글을 구축할 수 있다는 아이디어입니다. 단계별로 생각할 수 있도록 지시함으로서, 생성형 AI 응답의 일관성과 컨텍스트 연속성을 향상 시킬 수 있습니다. 

 

03. Few-shot

Few-shot은 LLM 모델이 지정된 예제로부터 학습하고 일반화할 수 있도록 하는 기계 학습 패러다임입니다. 데이터를 수집하는 데 리소스가 큰 학습에 유용합니다. 

 

ex) Few-shot 프롬프트: "기후 변화에 관한 기사에 나온 다음 세 가지 예시 문장을 바탕으로 간결한 요약을 작성해 보세요.

  • '지구 온도 상승은 생태계를 위협합니다.'
  • '탄소 배출 증가는 기후 변화에 기여합니다.'
  • '기후변화 완화 노력은 필수적이다.''

 

04. 구분자 기호

prompt engineering을 위해 구분자 기호를 사용할 수 도 있습니다. 구분자 기호는 프롬프트 내에서 서로 다른 섹션을 구분하거나 표시하는 데 사용되는 특수 문자와 같은 것입니다. 구분자 기호로 구조화된 형식은 모델의 이해도를 높이고 프롬프트의 전반적인 성능을 향상시킬 수 있습니다. 

 

ex) 구분자 기호를 사용한 프롬프트:

"다음 영어 문장을 프랑스어로 번역하세요: 

문장 1: [영어문장 1] 

문장 2: [영어문장 2] 번역 요약 제공:"

 

05. 다양한 시도

위 방법과 더불어, 다양하고 반복적으로 프롬프트를 시도하고 validation해보는 것이 좋습니다. 이 후, 유효성 검사로 사용 될 수 있습니다. 

 

 

반응형