1-3.Prompt Engineering

프롬프트(Prompt)란?

AI에게 작업을 요청하는 명령어, 질문, 입력 텍스트
“고양이에 대해 이야기해줘.”
"광고 트렌드 분석 보고서 작성해줘"
예시

프롬프트 엔지니어링 이란?

프롬프트 엔지니어링은 "Prompt(프롬프트, AI에 입력하는 질문이나 지시문)"와 "Engineering(최적화)"의 조합.
생성형 AI 모델이 원하는 결과를 생성하도록 입력 데이터를 설계하고 최적화하는 과정.
AI에게 특정 작업을 수행하도록 지시하는 기술
AI에게 효과적인 질문이나 명령을 제시하는 방법
AI와 대화를 통해 일관성 있는 좋은 결과를 이끌어 내는 기술입니다.
단순한 문장 입력 → 예상치 못한 결과
명확한 목표와 지시사항 추가 → 원하는 결과 도출 가능
프롬프트 엔지니어링: 효과적인 프롬프트 설계 및 최적화 과정
예시:
- 단순 프롬프트:
“초콜릿 광고 카피 작성.”
- 프롬프트 엔지니어링 적용:
-
"밸런타인데이를 맞아 20대 커플이 공감할 수 있는 달콤하고 감성적인 초콜릿 광고 카피 작성. 문장은 15자 이내로 짧고 인상적으로."

프롬프트 엔지니어링 중요한 이유?

생성형 AI 모델은 주어진 프롬프트(입력)에 따라 텍스트, 이미지, 코드 등 다양한 출력을 생성
따라서 프롬프트의 품질은 결과물의 품질에 직접적인 영향

사용자의 의도를 정확하게 파악

프롬프트 엔지니어링은 GPT'가 사용자의 의도와 필요를 정확하게 파악하도록 합니다.
이 과정에서 프롬프트의 구성, 질문 방식, 사용하는 언어 등은 중요한 요소입니다.

GPT가 정확하고 일관되게 응답

잘 설계된 프롬프트는 GPT가 보다 구체적이고 목적에 맞는 정보를 제공하도록 돕습니다.
예를 들어, 사용자가 특정 주제에 대한 설명을 요청할 때 프롬프트 엔지니어링을 통해 더욱 상세하고 명확한 정보를 제공할 수 있습니다.

사용자 경험 개선

프롬프트 엔지니어링은 사용자와 GPT 간의 상호 작용을 자연스럽게 만듭니다.
사용자가 원하는 답변을 빠르고 정확하게 얻을 수 있도록 하여, 사용자는 GPT를 더욱 신뢰하게 되어 활용도가 높아집니다.

창의적인 콘텐츠 생성

프롬프트 엔지니어링은 AI가 창의적인 콘텐츠를 생성하는 데 중요한 역할을 합니다.
스토리텔링, 아이디어 발상, 예술 작품 생성 등에서 AI의 창의성을 극대화하기 위한 프롬프트 설계는 단순 정보 제공을 넘어 사용자에게 새로운 경험을 제공합니다.

특정 분야에 특화된 GPT 생성

의료, 법률, 교육 등 특정 분야의 전문 지식과 정보를 제공하는 데 최적화된 프롬프트를 작성하면, 특정 분야에 특화된 GPT'를 만들어 전문 AI 비서로 활용할 수 있습니다.
프롬프트 엔지니어링은 GPT'를 만들고 개선하는 과정에서 기본적이면서도 필수적인 요소로, 사용자와 GPT가 효과적인 대화를 할 수 있도록 다리 역할을 합니다.
챗GPT의 등장 이후, 많은 AI 서비스들이 ”대화형 인공지능” 으로 출시되기 시작
덕분에 이제 우리는 사람과 소통하듯 AI와 쉽게 대화
단, 쉽게 대화할 수 있다는 것이 곧 잘 대화할 수 있다는 의미는 X!!
ChatGPT는 방대한 데이터를 바탕으로 학습해 매우 많은 정보 보유 > 매우 똑똑
챗GPT가 똑똑하다면, 왜 프롬프트 엔지니어링이 중요할까?
요청이나 질문이 명확하지 않다면 엉뚱한 답변 = Hollucination(환각) 발생 가능
효과적으로 AI와 대화하기 위해서는 AI와 소통하는 방법, 즉 프롬프트 엔지니어링을 이해할 필요
AI를 잘 쓰려면, AI에게 잘 물어보는 법 - 즉, 프롬프트 엔지니어링을 아는 게 중요하다는 거!
“말 한마디로 천냥 빚을 갚는다”
"개떡같이 물으면 개떡같이 답한다!"
“만랩 능력치의 새로운 외부 컨설턴트에게 업무 지시하기" 떠올리기
[!NOTE] AI는 첫 출근한 외부 컨설턴트???
프롬프트 엔지니어링은 마치 회사에 외부로부터 첫 파견나온 막강 능력의 컨설턴트에게 '프로젝트 좀 해주세요'가 아니라, 명확한 목표와 배경, 필요한 자료, 단계별 지시를 통해 원하는 결과를 내도록 돕는 것과 동일한 셈

프롬프트 엔지니어링의 원칙

명확한 목표 설정: AI에게 수행할 작업을 명확하고 구체적으로 전달
나쁜 예: "광고 카피 하나 만들어줘."
좋은 예: "20대 대학생을 타겟으로 한 SNS 광고 카피 작성. 10자 이내, 재미있고 공감 가게."
간결함 유지: 불필요한 내용은 줄이고 핵심만 포함해 명확성 확보.
나쁜 예: "이 화장품의 모든 특징, 사용법, 성분, 장단점을 다 설명해줘."
좋은 예: "신제품 화장품의 장점을 3가지로 간결하게 설명."
관련 데이터 제공: AI가 작업을 수행하는 데 필요한 자료 제공 (예: 에러 메시지, 소스코드, 용어 설명 등)
나쁜 예: "아무 브랜드나 광고 슬로건 만들어줘."
좋은 예: "OO브랜드의 기존 광고 슬로건: 'OO하세요'. 이를 참고해 새로운 슬로건 작성."
단계적 지시: 복잡한 작업을 여러 단계로 나누어 지시
나쁜 예: "*** 브랜드 광고 전략 만들어줘."
좋은 예:
1단계: 브랜드의 주요 목표 설정
2단계: 타겟층 설정
3단계: 최종 광고 전략 작성."
이유와 설명 요구: AI가 답을 제시할 때 그 이유나 과정까지 설명하도록 요청
나쁜 예: "이 PR 캠페인이 왜 좋은지 알려줘."
좋은 예: "이 PR 캠페인에 많은 사람들이 참여하고 소문이 나는 이유를 알려줘."
상황과 배경 정보 포함: 작업과 관련된 맥락, 배경 정보를 제공해 정확성과 일관성 향상
나쁜 예: "SNS 이벤트 제안해줘."
좋은 예: "MZ세대가 즐겨 찾는 브랜드를 배경으로 한 SNS 이벤트 아이디어 제안."
피드백과 반복 개선: AI의 응답을 평가하고 프롬프트를 반복적으로 수정해 개선.
나쁜 예: "이 카피 별론데, 다시 만들어줘."
좋은 예:
1차: 광고 카피가 너무 길다
2차: 카피에 브랜드 핵심 메시지 추가
3차: MZ세대가 공감할 키워드 추가
4차: 밝고 경쾌한 톤으로 수정

**프롬프트 엔지니어링 - 6 Steps

•[TASK] - 명확한 목표 정의
•[CONTEXT] - 맥락/상황 전달
•[EXAMPLES] - 글의 스타일, 구조, 어조 등의 예시 보여주기
•[PERSONA] - 상황극, 역할극 시연
•[FORMAT] - 결과물 형식. 글머리 기호, 마크다운, 표 등
•[TONE] - Tone & Manner
[기타]
•꼬리에 꼬리를 물기 : Chain of Thought Prompting(CoT)
•역지사지: '너라면 멀 물어볼래?'
•새 음식은 새 그릇에 담기

Task

"만들어줘", "요약해줘", "분류해줘" 등과 같은 명확한 행동을 요구하는 동사 사용
- "3개월 다이어트 프로그램을 생성해줘"
복잡한 요청을 할 때는 여러 단계로 나누어 작성
- "뉴스레터에서 수집한 사용자 피드백을 분석하고, 개선점을 중심으로 상위 3가지를 요약한 후, 나머지는 중요도에 따라 분류해줘"
복잡한 질문의 넘버링, 줄바꾸기 등도 효과적

Context

프롬프트(명령)의 맥락(Context)을 설정
사용자의 배경
사용자의 목표
사용자의 상황
AI가 우리의 요구사항을 보다 깊이 이해하고 최적의 결과를 도출할 수 있게 해주는 것이 필요

Examples

AI가 직관적으로 이해할 수 있도록 예시(example)를 전달
"아래와 같은 형식으로 작성해줘"
"아래 예제를 참고해서 작성해줘"
"아래 분류 항목을 참고해줘"
AI는 예시를 분석하여 유사한 문체, 논리 구조, 분량, 키워드 등을 학습
주어진 상황에 맞고, 더욱 품질이 향상된 결과물 생성

Persona / Role

AI에게 특정 전문성을 가진 페르소나 (Persona)를 설정
"넌 IT업계 경력 20년 차의 PR전문가야"
"넌 포춘 500개 기업의 채용 담당자야"
"넌 뛰어난 물리치료사야. 세계적으로 유명한 운동선수들도 너에게 치료받고 있어"
의사, 변호사, 과학자, 예술가 등과 같은 다양한 전문가들의 관점과 사고방식을 빌려 상황과 맥락을 이해하고, 결과물을 생성

Format

: 요청한 결과물의 레이아웃과 구조
표 형식 : 데이터를 행과 열로 정리하는 것으로, 비교나 분류에 용이
글머리 기호 : 주제를 간결하게 요약하고 서로 구분할 때 사용
이메일 형식 : 인사말, 본문, 맺음말 등 이메일 구성 요소를 갖추어 작성
코드 블록 : 프로그래밍 코드를 예쁘게 포매팅하는 데 사용
문단 : 내용을 단락 단위로 구분하여 작성
마크다운 : 제목, 볼드체, 이탤릭체 등을 활용해 가독성 확보

Tone

: 결과물의 어조와 스타일
"캐주얼한 어조를 사용해줘": 격식 없고 편안한 말투를 원할 때
"격식 있는 어조를 사용해줘": 정중하고 격식을 갖춘 표현이 필요할 때
"재치 있는 결과물을 원해": 유머러스하고 엉뚱한 내용을 얻고 싶을 때
"열정적인 모습을 보여줘": 특정 주제에 대한 관심과 열정이 느껴지길 바랄 때
"냉소적인 어조로 들려줘": 비꼬는 듯한 어조로 현실을 비판적으로 바라보고 싶을 때

**프롬프트 엔지니어링 기법

(ref. promptingguide.ai, GPTers Prompt Cheat Sheet)

Role Prompting

Role Prompting은 언어 모델에게 _특정한 역할_을 부여하며 질의하는 방식
예를 들면, 사용자가 모델에게 "당신은 셰익스피어의 고문학자다. 그의 작품에 대해 설명해주세요."라고 요청하면, 언어 모델은 셰익스피어의 작품에 대해 전문가처럼 상세하게 설명하려고 노력합니다.

Zero-shot prompting:

예시 없이 직접 명령을 내려 모델이 작업 수행하도록 요청
모델이 사전 학습한 지식을 바탕으로 추론하여 답변 생성
Zero-shot이 잘 작동하지 않을 경우, Few-shot Prompting 활용 권장
Few-shot Prompting: 예제(샘플) 제공을 통해 모델이 더 정확한 응답을 하도록 유도
예: “이 문장의 감정을 분석해줘” → 모델이 자동으로 긍정/부정/중립으로 분류

Few-shot prompting:

몇 가지 예시를 제공하여 모델의 이해도를 높임
모델이 주어진 예시를 기반으로 맥락 내 학습(in-context learning) 가능
단순한 프롬프트보다 더 정확한 결과 도출 가능
처음 접하는 태스크나 어려운 태스크(요약, 추론, 코드 생성 등)에 효과적
다음 뉴스 기사를 적절한 카테고리(정치, 경제, 스포츠, 기술)로 분류하세요.
예제:
기사: "정부는 내년도 예산안을 발표했습니다." 카테고리: 정치
기사: "애플이 새로운 아이폰을 공개했습니다." 카테고리: 기술
기사: "오늘 축구 경기에서 한국이 승리했습니다." 카테고리: 스포츠
기사: "주식 시장이 급등하며 코스피 지수가 상승했습니다." 카테고리: 경제

Few-shot Prompting의 한계

복잡한 추론(Reasoning) 작업에서는 한계 존재
더 많은 예시를 제공해도 해결되지 않는 문제 발생 가능
추론 단계가 필요한 작업에서는 별도의 기법이 필요

Few-shot Prompting의 보완 방법

단계를 나눠 문제를 해결하도록 유도 (예: 논리적 사고 필요 시 문제를 단계별로 제시)
Chain-of-Thought (CoT) Prompting을 활용하여 복잡한 문제 해결 가능

Chain of Thought Prompting(CoT)

_연속적인 사고의 연쇄_를 통해 언어 모델의 복잡한 추론 능력을 향상시키려는 접근법
즉, 복잡한 추론 능력 향상을 위해 중간 추론 단계를 포함하는 기법
모델이 단계별 논리를 따르도록 유도하여 정답률 향상
특히 큰 모델에서 더욱 두드러지는 성능 향상을 보이며, 복잡한 추론 작업, 예를 들면 수학 문제나 상식 기반의 작업에서 더욱 효과적입니다.
i.e. "Let's think step by step"

Zero-shot CoT Prompting

"Let's think step by step" 문구 추가만으로도 성능 향상
예제 없이도 모델이 논리적으로 문제를 해결할 가능성 증가
복잡한 문제에서도 높은 효과를 발휘
예제 없이 논리적 사고를 유도하는 방법으로 활용 가능
문제: 철수가 사과를 3개 가지고 있습니다. 그는 친구에게 2개를 주고, 이후에 4개를 더 받았습니다. 철수가 현재 가지고 있는 사과의 개수는 몇 개인가요?
답을 단계별로 생각해보세요.
1.
철수는 처음에 사과 3개를 가지고 있음.
2.
친구에게 2개를 줌 → 남은 사과: 3 - 2 = 1
3.
이후에 4개를 더 받음 → 최종 사과 개수: 1 + 4 = 5
4.
따라서 정답은 5개.

Meta Prompting

특정 내용보다 **문제 해결 방식(구조와 패턴)**을 강조하는 프롬프팅 기법
예제 대신 문제 해결의 형식과 흐름을 제시하여 답을 유도
규칙과 패턴을 배우는 것과 비슷, 문제 자체를 분석하는 능력을 키움
예시:
일반 프롬프팅: "이 문장을 요약해줘."
Meta Prompting: "문장의 핵심 내용을 뽑아, 10자 이내로 요약하는 형식을 따르시오."

Self-Consistency Prompting

여러 개의 답변을 생성한 후, 가장 많이 나온 답을 정답으로 선택하는 방법
기존 Chain-of-Thought (CoT) 방식보다 더 정확한 답을 도출할 수 있음
특히 수학 문제, 논리 문제 해결에 효과적
예시:
1.
같은 문제를 여러 번 풀어봄
2.
각각 다른 답이 나올 수 있음
3.
가장 많이 나온 답을 최종 정답으로 선택

**프롬프트 설계 시 유용한 기법 정리

(Source : 박성혁)
기법
설명
예제
Zero-shot Prompting
사전 예시 없이 질문
"기후 변화란 무엇인가?"
Few-shot Prompting
몇 가지 예제를 포함하여<br><br> 학습 유도
"1+1=2, 2+2=4. <br><br>그렇다면 3+3은?"
Role Prompting
AI에게 특정 역할을 부여
"너는 변호사야. <br><br>계약서 작성 방법을 설명해줘."
Chain-of-Thought (CoT)
단계별 논리 전개 유도
"347 × 29를 푸는 과정을 설명해줘."
Output Formatting
원하는 출력 형식 지정
"JSON 형식으로 답변해줘."
Context Setting
문맥 제공하여 <br><br>정밀한 답변 유도
"이전 대화 내용을 기반으로 <br><br>계속 진행해줘."
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Contact : azureguy@empal.com / azureguy@cau.ac.kr