1. 논문, 참고자료
프롬프트 엔지니어링의 중요성 강조
=> 결국 세세한 부분은 사람이 해줘야한다!
2. 용어 정리
| 용어 | 설명 |
|---|
| Prompt | 모델에 입력하는 지시문. 질문이나 명령 형태로 주어짐. |
| Prefix Prompt | 입력 앞부분에 특정 문구를 붙여 맥락이나 목적을 유도함. |
| Cloze Prompt | 빈칸을 채우는 형태의 프롬프트 (ex. "The capital of France is ____"). |
| Hard Prompt | 사람이 직접 설계한 명확한 텍스트 프롬프트. |
| Soft Prompt | 학습 가능한 벡터로 된 프롬프트. 보통 fine-tuning 필요. |
| Agents? | Tool이 무엇이고 언제 어떻게 사용하는지 명시하는 것도 프롬프트의 중요 요소*Tool: 웹검색, 문서검색, 코드인터프리터, 이미지생성 |
| Prompts and Prompt Templates | 프롬프트의 틀(template)을 만들어 반복적으로 활용 |
| Prompting vs Prompt Engineering | Prompting은 단순 질문, Prompt Engineering은 전략적 설계 기법 |
3. Prompt Basic Framework
다양한 Prompt Framework 비교표
| 프레임워크 | 구성 요소 | 설명 |
|---|
| RIE(대표적) | Role, Input, Expected Output | 역할을 정하고, 입력과 기대 출력을 명시함 |
| RODES | Role, Objective, Details, Examples, Style | 구체적인 역할, 목표, 세부사항, 예시, 스타일을 설정 |
| RISEN | Role, Input, Steps, Expected Output, Notes | 입력과 함께 수행 단계, 주의사항 등을 포함 |
| RTF | Role, Task, Format | 간단한 역할, 과업, 출력 형식 중심 설계 |
| IRBA | Instruction, Role, Behavior, Answer | 지시 → 역할 → 행동유도 → 출력 순으로 구성 |
프롬프트 보강 방안
- 주의사항, 강조사항, 추가 맥락 제공, 추가 가이드 등
Custom Output
- 분량, 글자수, 문장 길이, 문단 수 등 출력 제어
Style Instructions
- 어투, 화법, 톤, 분위기 등 스타일 관련 지시
4. Prompting → Learn Task & Skill
In-Context Learning & Task Types
1️⃣ In-Context Learning 개념
- 학습 없이 ➝ 구체적 과업 지시만으로 작업 수행
- 사전 지식(finetuning) 없이 지시문(instruction)과 예시(example)만으로 문제 해결
- LLM은 맥락(context)을 보고 임시로 학습한 것처럼 행동
- 대표 프롬프트 구조:
Q: 2+2= A: 4 Q: 3+5= A:
2️⃣ Task에는 어떤 것들이 있는가? (실세계 문제 중심)
주요 Task 유형:
- Classification (분류)
- Extraction (추출)
- Generation (생성)
- Summarization (요약)
- Translation (번역)
-> 특히, 텍스트 분류/요약/생성은 LLM의 핵심 Task 영역
3️⃣ Task에는 어떤 것들이 있는가? (계속)
Task 예시 (복잡한 사고 포함):
- 감정 분석, 뉴스 요약, 광고 문구 생성, 문제 해결형 추론 등
- Closed-Book QA / Code Generation / Core Reasoning 포함
사고 기반 문제 해결 Task는 단순 문장 출력을 넘는 고차원 reasoning 필요
4️⃣ Symbolic Reasoning Tasks
- 논리적 문제 해결 (수학, 추론, 계획 세우기 등)
- 지식 기반 추론이 필요하며, 규칙 기반 사고를 요구함
- LLM이 처리 가능한 범위는 제한적이지만 성능 향상 가능
5️⃣ Symbolic Reasoning에서 LLM의 강점
- 패턴 기반 사고: 과거 패턴에 기반해 문제에 빠르게 적응 가능
- 연쇄적 추론 능력: 단계별 reasoning 가능
- 유연한 문제 해결: 다양한 프롬프트 패턴 학습으로 새로운 문제에도 대응 가능
- 효율적 도입: 복잡한 시스템 없이 프롬프트만으로 reasoning 구조를 유도
- 문제 정의 유도 가능: 문제 유형을 명확히 설명하면 추론의 방향도 제어 가능
6️⃣ Symbolic Reasoning에서 LLM의 한계
- 정확한 정답 부족: 숫자 기반 문제 등에서 틀릴 가능성 있음
- 불완전한 절차 추론: 모든 논리 단계를 완벽하게 수행하지 못함
- 결과 일관성 문제: 동일 문제에도 답변이 바뀌거나, 비논리적 추론 경로 발생
5. Few-Shot Prompting
개념 요약
- Few-Shot Prompting이란?
→ 모델에게 모범 사례(exemplar)를 몇 개 제공하여,
→ 노하우 / 스킬 학습을 유도하는 프롬프트 기법
Some Design Decisions (설계 시 고려 사항)
1. Exemplar Quantity
- 예시(exemplar) 수가 많을수록 정확도가 향상될 수 있음
- 하지만 모델의 context window 한계 내에서만 추가 가능
- 예시 추가가 항상 도움이 되는 것은 아니며 task나 모델에 따라 다름
예시:
Trees are beautiful! → Label: Happy
I like this dress. → Label: Happy
This is so exciting! → Label: Happy
2. Exemplar Ordering
예시의 순서도 성능에 영향을 줄 수 있음
어떤 과제는 순서에 따라 정확도가 90% → 50%까지도 차이 발생
따라서 예시 정렬 방식도 신중히 고려 필요
순서 A:
I am not tired. → Angry
I am so excited! → Happy
This is ridiculous. → Angry
순서 B:
You are so sweet! → Happy
That was so mean. → Angry
I am no weakling! → Angry
3. Exemplar Label Distribution
다양한 라벨을 균형 있게 포함시키는 것이 중요함
특정 라벨만 편향적으로 존재하면 모델도 편향될 수 있음
4. Exemplar Similarity
현재 입력과 유사한 예시를 고르면 성능이 높아질 수 있음
예를 들어, 영화 리뷰 입력이면 영화 리뷰 예시를 주는 방식
Q: 영화 후기가 “너무 감동적이었다!”일 때
A: 영화 리뷰 중 감정 분류 예시를 주는 것이 효과적
6. Zero-Shot Prompting
개념 요약
- Zero-Shot Prompting이란?
- 모범 사례(exemplar) 없이
- 오직 지시문(prompt) 하나만으로 문제를 해결하도록 하는 방식
- LLM의 사전 학습 지식과 일반화 능력에 기반함
Zero-Shot Prompting 유형
1. Role Prompting
- 역할을 직접 지정하여 모델의 행동을 유도
- 예시:
- "You are a professional sentiment classifier. Classify the following sentence."
- "You are a helpful assistant. Translate the sentence into Korean."
2. Emotion Prompting
- 문장의 감정을 분류하게 하는 지시문
- 예시:
- "Classify the sentiment of the following sentence."
- "How does the speaker feel about this statement?"
3. 답변이 더 나아질 수 있는 Prompt 예시들
- 간단한 문장 추가만으로도 성능이 향상될 수 있음
예시 문장 모음:
- "Rephrase and expand the question, and respond."
- "Read the question again."
- "First, ask follow-up questions for a deeper prompt."
정리
| 항목 | 내용 |
|---|
| 예시 제공 | ❌ 없음 (Zero-shot) |
| 핵심 방식 | 오직 지시문만으로 수행 |
| 장점 | 빠르고 간단, 사전 예시 없이 사용 가능 |
| 단점 | 정밀 제어 어려움, 과제에 따라 성능 편차 큼 |
=> 대부분 제로샷을 쓰는 경우가 많다. 퓨샷보다
7. Chain-of-Thought
개념 요약
Few-Shot CoT Prompting
| 항목 | 설명 |
|---|
| 방식 | 몇 개의 예시와 함께 사고 과정을 보여주는 방식 |
| 구성 | 질문 (Question) → 추론 경로 (Reasoning Path) → 정답 (Answer) |
| 적용 | 수학 문제, 논리 추론 문제 등 멀티스텝 문제 해결에 효과적 |
예시:
Q: If there are 3 cars and each car has 4 wheels, how many wheels are there? A: Each car has 4 wheels. So, 3 × 4 = 12. The answer is 12.
CoT가 유용한 Task 예시
- Mathematics & Arithmetic: 다단계 계산이 필요한 문제
- Commonsense & Symbolic Reasoning: 일반 상식 기반 추론
- Comparative Decision: 판단 근거를 따져야 하는 문제
Zero-Shot CoT Prompting
- 예시 없이도 다음과 같은 문장으로 사고를 유도함:
자주 사용하는 프롬프트 문장:
- "Let’s think step by step."
- "Let’s think about this logically."
- "Let’s work through this carefully to be sure we have the right answer."
주의: Zero-Shot CoT는 reasoning을 잘 유도할 수 있는 명시적 지시 문장이 꼭 필요
(예: "Let's think step by step"을 GPT에게 명확히 제시해야 동작함)
전체 CoT 흐름 요약 (Kojima et al.)
- Question 제시
- 사고 유도 문장 삽입
- 모델이 reasoning을 출력
- 최종 정답 도출
개념 요약
- Meta Reasoning이란?
- 모델이 문제를 푸는 과정에서 스스로 더 나은 판단을 내리도록 유도하는 고차원 사고 전략
- 단순히 답을 구하는 것을 넘어, “어떻게 푸는 것이 가장 좋은가?”를 고민하게 만듦
Zero-shot Decomposition Prompts
"break a given problem into sub-problems without solving them"
- 문제를 바로 푸는 것이 아니라, 하위 문제(sub-problems)로 먼저 분해
- 복잡한 문제를 나누어 처리하거나 계획을 먼저 세운 후 해결
예시 문장:
- "Let's first understand the problem and devise a plan to solve it. Then, let's carry out the plan and solve the problem step by step."
Self-Consistency
- 동일한 질문에 대해 여러 번 답변 생성 → 다수결 투표로 최종 정답 결정
- 모델이 생성하는 사고 경로(CoT)가 불안정할 때 유용함
✔️ 요점
- Chain-of-Thought(사고 흐름)를 다양하게 생성하고
- 가장 많이 등장한 정답 또는 논리적으로 설득력 있는 답을 채택
Tree-of-Thought (ToT)
1. Prompt Engineering 기반 ToT
- CoT를 트리 구조로 확장하여 여러 경로로 사고하게 유도
- 모델이 여러 가지 추론 경로를 탐색하고, 그 중 가장 최선의 결정을 선택
2. 예시: OX 게임
- 모델에게 다음 수를 고르게 할 때, 여러 가지 다음 수의 시뮬레이션을 실행해 보고,
최종적으로 승리에 가까운 경로를 선택하게 유도
요약 정리
| 전략 | 핵심 개념 | 특징 |
|---|
| Zero-shot Decomposition | 문제를 하위 문제로 분해 | 문제 접근 구조화 |
| Self-Consistency | 여러 응답 생성 → 투표 | CoT 보완, 안정성 ↑ |
| Tree-of-Thought | 사고 경로를 트리로 탐색 | 최선의 선택 도출 |