2025년 7월 29일 작성
기본적인 Prompt Engineering 기법들
prompt engineering의 기본적인 기법은 예시 제공 방식과 추론 과정 명시 정도에 따라 Zero-shot, Few-shot, Chain of Thought로 분류되며, 작업 특성에 따라 선택적으로 활용하거나 비교 적용할 수 있습니다.
1. Zero-shot Prompting : 직접적인 지시
- Zero-shot Prompting은 별도의 예시나 훈련 data 없이 직접적인 지시만으로 작업을 수행하도록 하는 기법입니다.
- 가장 기본적이고 직관적인 방식으로, prompt 작성이 간단하고 빠르게 적용할 수 있는 장점이 있습니다.
- model이 사전 학습된 지식만을 바탕으로 답변을 생성하기 때문에, 명확한 지시가 중요합니다.
적용 예시 | Prompt 예시 |
---|---|
기본 질의 응답 | “Python에서 list와 tuple의 차이점을 설명해줘” |
Contents 생성 | “온라인 쇼핑몰 고객 서비스 안내 문구를 작성해줘” |
Data 변환 | “다음 문장을 영어로 번역해줘: 안녕하세요” |
특징 및 장점
- 간단한 구조 : 복잡한 설정 없이 바로 원하는 작업을 요청할 수 있습니다.
- 빠른 적용 : 별도의 예시 준비 과정이 필요하지 않아 즉시 사용 가능합니다.
- 광범위한 활용 : 대부분의 일반적인 작업에 효과적으로 적용할 수 있습니다.
효과적인 활용 방법
- 명확한 지시 : 원하는 결과와 작업 내용을 구체적으로 명시합니다.
- “글을 써줘”보다는 “marketing email을 300자 이내로 작성해줘”가 더 효과적입니다.
- 제약 조건 명시 : 출력 형식, 길이, style 등의 요구 사항을 포함합니다.
- 역할 부여 : 필요한 경우 전문가나 특정 역할의 관점에서 답변하도록 요청합니다.
한계점
- 복잡한 추론 : 다단계 사고가 필요한 복잡한 문제에서는 정확도가 떨어질 수 있습니다.
- 일관성 부족 : 동일한 prompt에 대해 매번 다른 결과가 나올 가능성이 있습니다.
- 맥락 이해 : 암묵적인 요구 사항이나 미묘한 뉘앙스를 놓칠 수 있습니다.
2. Few-shot Prompting : 예시 기반 학습
- Few-shot Prompting은 몇 가지 예시를 제공하여 model이 pattern을 학습하도록 유도하는 기법입니다.
- 예시를 통해 원하는 출력 형태와 작업 방식을 명확히 전달할 수 있어 Zero-shot보다 일관성 있는 결과를 얻을 수 있습니다.
- 일반적으로 2-5개의 예시를 제공하며, 더 많은 예시가 항상 더 나은 결과를 보장하지는 않습니다.
특징 및 장점
- Pattern 학습 : 제공된 예시를 통해 원하는 작업 방식을 이해합니다.
- 일관성 향상 : 동일한 형식과 스타일로 결과를 생성합니다.
- 정확도 개선 : Zero-shot 대비 더 정확하고 예측 가능한 결과를 얻을 수 있습니다.
효과적인 예시 구성 방법
- 다양성 확보 : 서로 다른 유형의 입력에 대한 예시를 포함합니다.
- 품질 중시 : 완벽하고 이상적인 출력을 예시로 제공합니다.
- 형식 통일 : 모든 예시가 동일한 구조와 형식을 따르도록 합니다.
- 적절한 개수 : 너무 많은 예시는 오히려 혼란을 줄 수 있으므로 2-5개 정도가 적절합니다.
실제 적용 예시
- Few-shot Prompting에서는 항상 예시를 포함합니다.
감정 분석 작업
다음 문장들의 감정을 분석해주세요:
예시 1:
입력: "오늘 정말 기분이 좋아요!"
출력: 긍정적
예시 2:
입력: "이 영화는 정말 지루했어요."
출력: 부정적
예시 3:
입력: "날씨가 흐리네요."
출력: 중립적
이제 다음 문장을 분석해주세요:
입력: "새로운 프로젝트가 시작되어 설렙니다."
Data 변환 작업
고객 정보를 JSON 형식으로 변환해주세요:
예시 1:
입력: 이름: 김철수, 나이: 30, 직업: 개발자
출력: {"name": "김철수", "age": 30, "job": "개발자"}
예시 2:
입력: 이름: 박영희, 나이: 25, 직업: 디자이너
출력: {"name": "박영희", "age": 25, "job": "디자이너"}
이제 다음을 변환해주세요:
입력: 이름: 이민수, 나이: 28, 직업: 마케터
주의 사항
- 편향 방지 : 예시 선택 시 특정 방향으로 치우치지 않도록 주의합니다.
- 예시 품질 : 잘못된 예시는 전체 결과의 품질을 떨어뜨릴 수 있습니다.
- 과도한 의존 : 예시에만 의존하지 말고 명확한 지시도 함께 제공합니다.
3. Chain of Thought Prompting : 단계적 사고
- Chain of Thought(CoT) Prompting은 단계별 사고 과정을 명시하여 복잡한 추론을 돕는 기법입니다.
- Model이 중간 추론 단계를 거쳐 최종 답에 도달하도록 유도하여, 복잡한 문제에 대한 정확도를 크게 향상시킵니다.
- CoT Prompting은 분석적이고 체계적인 사고 과정을 통해 model이 문제를 해결하도록 유도합니다.
- 사고 과정 분해 : 복잡한 문제를 여러 단계로 나누어 접근합니다.
- 중간 단계 명시 : 각 추론 단계를 명확히 표현하도록 유도합니다.
- 논리적 연결 : 각 단계 간의 논리적 관계를 명확히 합니다.
- 수학 문제, 논리적 추론, 다단계 분석 같은 복잡한 문제 해결에 효과적입니다.
- 복잡한 연산이나 다단계 계산 문제, 확률/통계 문제 해결, 논리 퍼즐이나 수학적 추론 등의 수학적 계산에서 유용합니다.
- 원인과 결과 분석, 다양한 관점에서의 문제 접근, 비교 분석 및 평가 등의 분석적 사고가 필요한 작업에 적합합니다.
- 장단점 분석, 위험 요소 평가, 단계별 실행 계획 수립 등의 의사 결정 지원에도 효과적입니다.
CoT 적용해보기
- 기본적인 CoT 구조는 문제와 함께 단계별로 생각해보는 형식이며, 필요에 따라 예시를 포함시킬 수도 있습니다.
기본적인 CoT 구조
문제: [복잡한 문제 제시]
단계별로 생각해보겠습니다:
1. [첫 번째 분석 단계]
2. [두 번째 분석 단계]
3. [세 번째 분석 단계]
...
따라서 답은 [최종 결과]입니다.
예시를 포함한 CoT
문제: 한 상점에서 사과 3개와 바나나 2개를 샀는데, 사과는 개당 800원, 바나나는 개당 500원입니다. 총 얼마를 지불해야 할까요?
생각해보겠습니다:
1. 사과 비용 계산: 3개 × 800원 = 2,400원
2. 바나나 비용 계산: 2개 × 500원 = 1,000원
3. 총 비용 계산: 2,400원 + 1,000원 = 3,400원
따라서 총 3,400원을 지불해야 합니다.
이제 다음 문제를 같은 방식으로 해결해주세요:
문제: 한 회사에서 직원 15명에게 각각 월급 300만원을 지급합니다. 1년 동안의 총 인건비는 얼마일까요?
CoT 활용 고급 기법
- CoT를 더욱 발전시킨 다양한 기법들이 존재합니다.
Self-Consistency CoT
- 동일한 문제에 대해 여러 번의 CoT 추론을 수행합니다.
- 가장 일관성 있는 답을 최종 결과로 선택합니다.
문제: 5명의 학생이 시험을 봤습니다. 각 학생의 점수는 85, 90, 78, 92, 88입니다. 평균 점수를 구해주세요.
Zero-shot CoT
- 예시 없이 “단계별로 생각해보겠습니다”와 같은 trigger phrase를 사용합니다.
- Few-shot 예시 없이도 CoT 방식을 유도할 수 있습니다.
주의 사항 및 한계
- 추론 과정의 정확성 : 중간 단계에서 오류가 발생하면 최종 결과도 틀릴 수 있습니다.
- 길이 증가 : 응답이 길어져 처리 시간과 비용이 증가할 수 있습니다.
- 과도한 복잡화 : 단순한 문제에 적용하면 오히려 비효율적일 수 있습니다.
적절한 방법 선택하기
- 작업의 특성과 요구되는 정확도에 따라 적절한 기법을 선택하는 것이 중요합니다.
- 각 기법의 장단점을 이해하고 상황에 맞는 최적의 접근 방법을 결정해야 합니다.
상황별 권장 기법
상황 | 권장 기법 | 이유 |
---|---|---|
간단한 질의 응답 | Zero-shot | 빠르고 효율적 |
형식이 중요한 작업 | Few-shot | 일관성 있는 출력 |
복잡한 계산 문제 | Chain of Thought | 정확한 추론 과정 |
창작 활동 | Zero-shot 또는 Few-shot | 창의성과 다양성 |
분석 작업 | Chain of Thought | 체계적 접근 |
기법 조합 활용
- 순차적 적용 : Zero-shot으로 시작하여 결과가 부족할 경우 Few-shot이나 CoT로 발전시킵니다.
- Hybrid 접근 : Few-shot과 CoT를 결합하여 예시와 함께 추론 과정을 제시합니다.
- 반복적 개선 : 초기 결과를 바탕으로 prompt를 수정하며 점진적으로 개선합니다.
성능 평가 기준
- 정확성 : 원하는 결과와의 일치도.
- 일관성 : 동일한 입력에 대한 결과의 안정성.
- 효율성 : 시간과 resource 사용량.
- 확장성 : 다양한 상황에 적용 가능한 정도.