AI

[AI] 프롬프트 엔지니어링 - (3) 기본과 심화

hail2y 2025. 5. 25. 19:11

[기본1: 이전 내용 복습]

  • 간단한 지침으로 작성
  • 지침 > 컨텍스트 > 페르소나 > 예제 > 시작 단어
  • 지침과 컨텍스트는 필수 작성
  • 사용 용도에 따라 추가
    • NLP: 예제, 시작 단어
    • 컨텐츠: 페르소나, 시작 단어

 

[기본2: 부정 표현 최소화하기]

  • 부정적인 표현을 사용했을 때보다 명확한 명령문 형태로 프롬프트를 작성
  • 두 가지 가설
    • 문서의 문장 대부분이 부정어를 사용하지 않기 때문
    • 부정적인 표현이 주는 효과보다, 단어 자체가 갖는 영향이 더 크다 (ex. 코끼리를 생각하지 마)

부정 표현을 사용하지 말라고 했어도 잘 이행하지 않는 경우가 많다. 그렇기 때문에 부정 표현을 최소화하고 내가 원하는 바를 명료하게 명령문 형태로 전달하는 것이 중요하다. 

 

[기본3: 프롬프트의 길이 신경쓰기]

  • 길이가 어느 수준을 넘어가게 되면, 지침의 일부를 수행하지 않거나 결과물의 품질이 안 좋아지 현상 발생
  • 중복된 내용, 단어, 불필요한 문장, 예시 삭제

 

[기본3: 프롬프트 스타일]

    • 사람이 읽기 편하게 구조화 요소마다 섹션을 나눠주는 것이 좋다
    • 보통 영어로 프롬프트를 작성한다
    • 웹 문서에서 데이터가 많이 활용되다 보니 마크다운 형식을 사용하는 것이 좋다 (확률이 좋다)
      • html 태그
    • 우월하다고 알려진 스타일은 없다

패스트캠퍼스 강의 - ChatGPT API를 활용한 챗봇 서비스 구축 with LangChain & Semantic Kernel

예시1: 대분류로 섹션 분리, 예시2: 마크다운 + html 예시

 

심화 편은 주로 논문에 기반한 아이디어를 다룬다.

 

[심화1: 방향성 제시]

  • 원하는 결과물을 chatGPT가 생성하도록 유도하는 방법
  • 창의적인 답변보다는 기대하는 답변이 있을 때 사용
  • 포함시키려는 단어들을 제시하여 생성 과정에서 자연스럽게 해당 단어 사용
  • 콘텐츠 생성 측면에서 사용 가능
    • 자연어 처리(NLP)의 경우 잘 동작하지 않음
  • 단어들의 연관성을 고려하지 않으면 할루시네이션 현상 자주 등장
  • 지침과 컨텍스트의 구체성이 덜 할수록 잘 작동
  • Temperature도 높여주는 것이 좋다

패스트캠퍼스 강의 - ChatGPT API를 활용한 챗봇 서비스 구축 with LangChain & Semantic Kernel

[심화2: 흐름 제어]

  • 시작 단어 및 구문을 잘 응용하는 사례
  • 결과물의 흐름 또는 포맷을 제어
    • 결과물의 흐름 제어: 콘텐츠 생성 시
    • 포맷 제어: 백엔드에서 모델에 엔티티 추출 및 json 변환 요청 시 등

패스트캠퍼스 강의 - ChatGPT API를 활용한 챗봇 서비스 구축 with LangChain & Semantic Kernel

 

chatGPT라는 모델이 원래 뒷 내용을 자연스럽게 완성시켜주는 모델로 튜닝이 되었기 때문에 가장 마지막에 제시된 단어/문구를 눈여겨 보는 경향이 있다. 그렇기 때문에 끝에 있을수록 그 내용에 집중하게 하는 경향이 있다. 생성하는 결과물의 영향력에 있어서도 직접적이다.

 

활용 예시 1) 원하는 도메인 또는 분야를 나타내는 단어로 시작

  • 제시한 시작 단어/문구에 이어서 쓰게 하고 싶을 때는 단순히 '작성해줘'보다 '이어서 작성해줘'가 체감상 연관된 내용을 더 잘 반영한다.

활용 예시 2) 원하는 글의 흐름 알려주기

활용 예시 3) 방향성 자극과 함께 사용 

활용 예시 4) 결과물의 포맷 제어 (Table, Markdown, Json)

  • |이전 강의|주제|수강생 반응|평균평점|
  • ## 서론
  • json keys: 주제, 독자 반응, 링크
    ---
    json: [{
  • xml도 가능

 

[심화3: Chain of Thought]

  • 인공지능 개발자가 하던 NLP 처리를 쉽게 할 수 있음
  • 예시 제공 부분에서 중간 과정 보여주기를 통해 구현
    • 수학 문제 풀 듯이
  • 사람의 문제 풀이 방식과 유사
  • 프롬프트 체인 방식 or CoT

https://www.promptingguide.ai/techniques/cot

 

Chain-of-Thought Prompting – Nextra

A Comprehensive Overview of Prompt Engineering

www.promptingguide.ai

 

패스트캠퍼스 강의 - ChatGPT API를 활용한 챗봇 서비스 구축 with LangChain & Semantic Kernel

 

→ 지금까지 언급한 것들은 코드를 별로 수정하지 않고 프롬프트만 조작해서 가장 쉽고 실용적으로 결과를 얻어낼 수 있는 방법들이다. 

 

+ self-consistency: 한 프롬프트에 대해서 여러 결과물을 만든 다음 어떤 게 제일 나을지 검사하는 로직

ㄴ 결과물이 여러 개가 나오면 그에 따라 답변도 여러 형태가 나오는데, 그 형태 중에 공통점이 많은 것을 잘 생성된 것으로 판단

 

+ tree of thoughts: chain of thoughts + self-consistency,  여러 단계로 여러 개를 만들어 가장 좋은 것을 뽑아내자

 

 

cf. 프롬프트 엔지니어링 가이드

https://www.promptingguide.ai/kr/introduction/tips

 

프롬프트 설계에 관한 일반적인 팁 – Nextra

A Comprehensive Overview of Prompt Engineering

www.promptingguide.ai