728x90
프롬프트(Prompt)란?
- 정의: AI 모델에게 텍스트 응답을 생성하게 하는 입력 문장 또는 지시문
- 기능: 모델에게 어떤 출력을 원하는지 유도하는 질문, 명령, 텍스트
- 필요 역량: AI 모델의 입력 양식에 대한 기본 이해
프롬프트 엔지니어링(Prompt Engineering) 이란?
- 정의: 원하는 출력값을 얻기 위해 프롬프트를 정교하게 설계하고 개선하는 과정
- 목적:
- 모델의 응답 품질 최적화
- 출력 스타일, 톤, 콘텐츠를 미세 조정하여 정확하고 관련성 있는 결과 생성
- 필요 역량:
- AI 내부 작동 방식에 대한 이해
- 창의성 및 언어 감수성 (미묘한 단어 차이에 따른 반응 차이 이해)
프롬프트 vs 프롬프트 엔지니어링 비교 요약
| 항목 |
프롬프트 | 프롬프트 엔지니어링 |
| 정의 | AI에게 입력하는 텍스트 | 출력 품질을 높이기 위한 프롬프트 설계 과정 |
| 목적 | 응답 유도 | 응답 최적화 및 제어 |
| 예시 | “용에 대한 이야기 들려줘” | 문체, 캐릭터, 길이를 명시하여 상세하게 설계 |
| 필요사항 | 입력 형식 이해 | 모델 구조·언어 뉘앙스·실험적 감각 |
Prompt Engineering = 인문학 ✕ 기술의 융합
- ‘프롬프트’는 언어적 감수성이 필요한 인문학 영역
- ‘엔지니어링’은 기술적인 구조 설계
- 이 둘을 통합한 직무가 Prompt Engineer
- 창의성과 분석력이 동시에 요구되는 하이브리드 역할
LLM (Large Language Model)과의 관계
- LLM은 입력된 프롬프트를 바탕으로 다음 단어를 예측하는 방식으로 응답을 생성함
- 주요 모델:
- GPT-3, GPT-4, GPT-4o (OpenAI)
- Claude (Anthropic)
- Gemini (Google)
- Command (Cohere) 등
모델 튜닝의 새로운 방법
Prompt Engineering은 다음과 같이 모델을 제어하는 새로운 방법으로 주목받고 있음:
- Fine-Tuning: 모델 자체를 학습 데이터로 재훈련
- Prompt Engineering: 입력 설계를 통해 성능 조정
- Feature-Tuning: 특정 특성(feature)을 조정하여 반응 제어
프롬프트 엔지니어링의 중요성
| 항목 |
내용 |
| 모델 연구 | 언어 모델의 성능 극대화, 출력물 제어 |
| 서비스 측면 | AI 서비스의 시간/비용 절감, 사용자 경험 향상 |
| 중요 과제 | 상식 부족 보완, 헷갈리는 문맥 해결, 정확도 향상, 편향 제거 등 |
왜 중요한가?
- 출력 제어: 원하는 스타일, 톤, 결과를 유도
- 정확성: 문맥에 맞는 답 생성
- 편향 완화: 모델의 편견을 줄이고 오류 방지
- 적응성: 다양한 목적에 맞춰 활용 가능
- 경제성: 재학습 없이 성능 최적화
- 윤리성: 책임 있는 AI 활용을 위한 제어 수단
프롬프트의 기본 요소 (Prompt Anatomy)
| 구성 |
요소설명 |
| Instruction (지시) | 모델이 수행해야 할 작업에 대한 명령어 |
| Context (문맥) | 지시에 대한 배경 정보 또는 참고 지식 |
| Input Data (입력값) | 응답 생성에 참고할 입력 데이터 |
| Output Indicator (출력 지시문) | 출력 포맷이나 응답 방식 안내 |
프롬프트 유형(Type) 분류
| 유형 |
구성 | 특징 |
| Type A | 지시문 + 출력문 | 기본 형태. 단순 질문–응답 구조 |
| Type B | 지시문 + 맥락 + 출력문 | 배경 정보를 함께 주어 더 구체적인 답 유도 |
| Type C | 지시문 + 맥락 + 예시 + 출력문 | 구조화된 예시와 함께 응답을 유도 |
| Type D | 지시문 + 입력값 + 출력문 | 외부 데이터를 활용해 응답을 구성하는 형태 |
Type A
- Prompt: 오늘 날씨는 어때?
- Output: 오늘은 맑고 따뜻한 날씨입니다. 기온은 24도 내외로, 야외 활동에 적합합니다.
Type B
- Prompt: 맥락(제주도) + 지시(오늘 날씨를 알려줘)
- Output: 제주도는 오늘 흐린 가운데 오후부터 비가 내릴 것으로 예상됩니다. 최고 기온은 21도이며, 바람이 강하므로 외출 시 우산을 챙기시는 것이 좋습니다.
Type C
- Prompt: 맥락(서울) + 예시(: - 요약 날씨 - 최고/최저 기온 - 활동 추천) + 지시(위 형식을 참고해 오늘 서울의 날씨를 알려줘)
- Output:
-
- 오늘 서울은 맑고 일교차가 큰 날씨입니다. - 최고 25도 / 최저 14도 - 가벼운 외출이나 산책에 좋은 날씨입니다.
Type D
- Prompt: 지시(아래 입력값을 읽고 날씨 정보를 요약해줘. 한 문장으로 작성해) +
입력값(서울은 아침에 흐리다가 낮부터 맑아졌으며, 기온은 15도에서 23도 사이였고, 바람은 약간 있었으나 외출하기 좋은 날씨였다.) - Output: 서울은 오전 흐림 후 맑아지며 15~23도 사이의 외출하기 좋은 날씨였습니다.
프롬프트 제작 원칙 (Prompt Design Principles)
| 원칙 |
설명 |
| 범용성 | 다양한 상황에서 사용할 수 있도록 작성 |
| 일관성 | 모델이 여러 번 실행돼도 비슷한 품질 유지 |
| 목적 지향성 | 특정 기능이나 목표 달성에 초점 맞춤 |
| 경제성 | 비용 효율적으로 프롬프트 설계 (토큰 절약 등) |
설계 방법 및 팁
Tip 1: 최신 모델 사용
- 가능하면 최신 모델을 사용하되, 모델 성능 대비 비용도 고려
Tip 2: 명확한 지시 사용
- 애매한 요청은 피하고, 명확한 동사 사용(예: 작성해, 요약해, 분류해)
Tip 3: 프롬프트 구조화
- 마크다운, 코드블록, 리스트 등을 활용해 모델이 읽기 쉬운 형식으로 구성
- Prompt 요소 (Instruction, Context 등)를 명확히 구분해서 설계
Structured Prompting 방식
Markdown 기호 활용
| 구분 | 기능 | 예시 |
| #, ## | 제목/섹션 구분 | 다음 텍스트에서.. 추출해라.. #Format: ##텍스트 |
| -, 1. | 리스트 형태로 정보 정리 | |
| *텍스트*, **텍스트** | 강조 (이탤릭, 볼드) 표현 가능 |
구조화 방식: 코드/태그 사용
- 코드 사용 (Code Prompting)
- 자연어 대신 코드 형식 프롬프트 사용 시 모호성↓, 환각 현상↓, 정확성↑
- 특히 파이썬 등으로 행동 범위를 명시할 수 있음
def classify_emotion(text: str) -> str:
"""
텍스트가 표현하는 감정을 '긍정', '부정', '중립' 중 하나로 분류합니다.
"""
text = "오늘은 기분이 너무 좋아!"
# GPT 출력 예시:
# '긍정'
- XML 태그 사용 (<tag>) --> 프롬프트 템플릿화
- 문장 내 구간을 명확히 분리해 반복 수정 용이
- 해당 구역을 강조하는 효과
- 반복작업에서 프롬프트 수정과 편집/용이
- 언어 모델의 처리 속도 향상
- 예시) Human: <email>내일 6시에 미팅 잡을게요</email> 이 이메일을 더 공손하게 바꿔줘
- 예시) 여러 데이터의 종류를 구분하고 파싱한다
- input data: cow, dog, seal,
- prompt: please responed with the noise that animal makes. <animal>{{animal}}</animal>.

Tip 4: 단문 중심의 간결한 문장 사용
- 언어 모델에 작업을 요청할 떈 명확하고 구체적인 지시문을 작성하자
- 원하는 결과물의 톤앤 매너, 형식, 길이, 문단 등
- 나쁜예) 5월의 봄을 주제로 시를 써주되, 길지 않아야 하고, 한국어의 멋과 운율이 살아있고, 봄의 감성이 느껴지게 해줘.
- 좋은예) 너는 시인이야.
5월의 봄을 떠올려봐.
짧은 시를 써줘.
한국어의 운율을 살려줘.
봄의 감성이 느껴지게 해줘.
Tip 5: '하지 말 것'보다 ‘해야 할 것’을 지시하자
- 나쁜 예: "아이디 묻지 마세요"
- 좋은 예: "아이디 대신 고객센터 링크를 안내하세요"
→ 언어모델의 추측을 줄이고 명확하게 행동을 유도
but 프롬프트 설계에 100% 정답은 없다
- 상황과 목적에 따라 다름
- 때로는 부정 지시("절대 반복하지 마")도 효과적
- 시스템 프롬프트 작성 시도 포함
OpenAI Playground 구성요소
- Chat: GPT와 실시간 대화 가능 (지시문 + 응답 실험)
- Assistants: 툴, 파일, 코드를 포함한 지능형 'Agent' 구성 가능
- Completions: 가장 기본적인 텍스트 예측 API. 완성형 문장을 생성하는 데 사용됨
Assistants API의 구조
구성 요소:
- Assistants:
- 모델 (예: GPT-3.5, GPT-4)
- Instruction (지시문/프롬프트)
- Tools (코드 실행, 파일 검색 등)
- Files (업로드된 사용자 파일들)
- Assistant는 다양한 작업을 처리할 수 있는 지능형 봇 역할
- Threads:
- 대화 채널처럼 동작하며 메시지를 모아둠
- Runs:
- Assistant와 Thread의 실행 단위
- 사용자의 요청을 받아 툴을 쓰고 응답을 생성하는 실제 실행 단계
Completions 기능
- OpenAI가 처음 제공한 문장 완성 API
- GPT-3.5-turbo-instruct, davinci-002 등 사용 가능
- 프롬프트를 주면 문장 전체를 자동 완성함
- 대화형 구조보다는 정적 응답이 중심
Open AI Playground의 주요 설정값
| 파라미터 |
설명 |
| Temperature | 출력을 얼마나 무작위화할지 설정. 높을수록 창의적, 낮을수록 일관됨 |
| Top-p (nucleus sampling) | 누적 확률 기준으로 후보 단어를 제한함. 다양성과 통제를 동시에 조절 |
| Max Tokens | 최대 생성 토큰 수 (글자수 아님) |
| Frequency Penalty | 같은 단어 반복 억제 (중복 패턴 줄임) |
| Presence Penalty | 특정 단어나 패턴이 등장하는 것 자체를 억제 |
| Stop Sequence | 이 시퀀스가 등장하면 출력 중단 (예: "\n\nUser:") |
토큰(Token)의 개념
- 자연어처리에서 기본적으로 처리할 수 있는 언어의 조각이나 단위로서 프롬프트를 제작할떄는 토큰 수를 미리 예상 할 수 있어야 함
- LLM은 글자를 단위로 처리하지 않고 '토큰' 단위로 텍스트를 처리함
- 영어: 단어나 구두점 기준
- 한국어: 음절, 어미 등 다양한 단위로 분할됨
- 예시:
- Apple → 1 token
- Red Apple → 3 tokens (Red, space, Apple)
- 밥을 사줘 → 모델에 따라 3~6개로 분할
Tokenizer를 활용하면 텍스트가 몇 개의 토큰으로 변환되는지 미리 확인 가능
모델의 동작 원리 (Predict the next token)
Input text →Tokenize (숫자 시퀀스로 변환) → LLM이 다음 토큰의 확률 분포를 예측 → Sampling (가장 높은 확률 또는 랜덤 선택)
Temperature vs Top-P
| 항목 |
사용 | 팁 |
| Temperature | 확률 분포 자체의 날카로움 조절 | 값이 높을수록 창의적이나 무작위 |
| Top-P | 누적 확률 상위 단어들만 후보로 제한 | Temperature 값이 높을 때 안정화용으로 병행 사용 |
Penalty 옵션 비교
| 항목 |
역할 | 예시 |
| Frequency Penalty | 같은 단어의 반복 방지 | "사과 사과 사과" → "사과 배 바나나" |
| Presence Penalty | 특정 단어 등장 자체를 억제 | 이미 등장한 "사과"라는 단어의 재등장 자체를 막음 |
LLM 한계와 프롬프트 엔지니어링의 필요성
LLM의 주요 한계
| 항목 | 설명 |
| 할루시네이션 | LLM이 모르는 질문에 대해 사실처럼 보이는 허구 정보를 생성함 (예: "환각") |
| 편향성 | 모델이 학습 데이터에 내재된 사회적 편견, 고정관념을 그대로 드러낼 수 있음 |
| 자료 인용 부재 | 정보의 출처가 불명확하며, 때로는 출처를 조작하거나 허위로 제공하기도 함 |
| 수학 및 기초 상식 추론 능력 부족 | 간단한 연산도 틀릴 수 있으며, 논리적 추론이 필요한 문제에 약함 |
| 프롬프트 해킹 | 악의적인 사용자에 의해 모델이 의도하지 않은 콘텐츠를 생성하도록 조작될 수 있음 |
프롬프트 엔지니어링의 필요성
| 할루시네이션 해결 | 명확하고 구조화된 프롬프트로 환각 가능성 줄이기 |
| 편향 해결 | 중립적/균형 잡힌 질문 방식으로 모델의 편향 최소화 |
| 추론력 강화 | 체계적인 지시(prompt)로 수학/논리 문제 해결을 유도 |
| 프롬프트 해킹 완화 | 악의적 우회 시도에 대해 명확한 거부 조건 설정 필요 |
추가 설명: 왜 프롬프트 엔지니어링이 중요한가?
- GPT와 같은 LLM은 '지능'이라기보다 확률 기반의 텍스트 예측기이다.
- 따라서 어떻게 질문하느냐(prompt)에 따라 출력 결과가 극적으로 달라진다.
- "좋은 입력이 좋은 출력(GIGO, Garbage In Garbage Out)"을 좌우하기 때문에, 프롬프트 엔지니어링은 LLM 활용의 핵심이다.
728x90
'인공지능' 카테고리의 다른 글
| 프롬프트 엔지니어링(Advanced) (1) | 2025.06.05 |
|---|---|
| 프롬프트 엔지니어링(Basic) (2) | 2025.06.05 |
| Multimodal Image 생성기술 (2) | 2025.05.30 |
| Multimodal 모델 (3) | 2025.05.29 |
| Vision 생성모델 - Diffusion (1) | 2025.05.28 |