728x90
Zero-Shot Prompting
- 예시(demonstration)를 주지 않고, 지시문만으로 작업을 수행
- 기존에 학습된 지식을 바탕으로 응답 생성
- Instruction Tuning + RLHF(인간 피드백 기반 강화학습)에 의해 효과적으로 작동
특징
- 입력: 단순한 자연어 지시문만 제공
- 출력: 모델이 스스로 작업을 유추해 수행
- 학습 데이터가 부족한 상황에서도 간단한 작업 처리에 유리
| 작업 | Prompt 예시 |
| 텍스트 분류 | "다음 문장에서 감정을 분류해줘: 나는 마라탕 맛이 그저 그랬어." |
| 번역 | "다음 한국어 단어를 영어로 번역해줘: 인공 눈물" |
| 폐쇄형 질문 | "대한민국의 수도는 서울이야?" |
연구 논문
1. Language Models are Few-Shot Learners (2020, OpenAI)
- GPT-3의 Zero-shot/One-shot/Few-shot 능력 최초 실험
- Zero-shot 도 꽤 잘 작동함을 보여줌
- 그러나 few-shot이 일반적으로 더 성능이 우수
2. Finetuned Language Models Are Zero-Shot Learners (2022)
- 연구 개요: 대형 언어 모델의 제로 샷 학습 능력을 개선법 연구 + 자연어 지시로 60개 이상의 NLP 데이터셋에 대해 파라미터 모델을 미세 조정
- FLAN 137B 모델: Instruction Tuning을 통해 Zero-shot 성능을 대폭 개선
- 다양한 태스크(추론, 독해, 번역, QA 등)에서 SOTA 성능 달성
Instruction Tuning
- 모델이 지시문을 잘 이해하도록 사전 학습 단계에서 미세 조정하는 기술
- 다양한 작업 지침(instruction)을 반영하여 모델의 범용성 향상
- 언어 모델의 제로 샷 능력을 향상하기 위한 기술
- 모델 크기가 충분할떄 효과적이며 대형 언어 모델이 다양한 작업을 수행할 수 있도록 함
- 다수의 작업 클러스터에서 instruction tuning 시 모델이 해보지 않은 작업에 대한 성능 향상
장점
- 다양한 작업을 단일 모델에서 수행 가능
- 지시문의 형식이 바뀌어도 적응 가능
- ChatGPT도 Instruction Tuning + RLHF 조합으로 학습됨
RLHF (Reinforcement Learning from Human Feedback)
- 사람의 피드백을 받아 모델의 응답 품질을 강화학습 방식으로 조정
- 보상 예측 모델(reward predictor)을 만들어 좋은 응답을 유도
- 모델의 유용성, 정중함, 안전성 향상
- Instruction Tuning과 함께 적용되면 효과 극대화
- ChatGPT의 응답 품질의 핵심 기술 중 하나
Few-Shot Prompting
- 지시문 + 예시(demonstrations)를 함께 제공하여 작업을 수행
- Zero-shot보다 복잡한 문제 해결에 유리(Zero-shot 은 복잡한 문제 수행에 한계가 있음)
- 예시) Translate English to French! peppermint => menthe, poivrée cheese => fromage, cheese =>?
Prompt:
“”” 오늘의 일기를 작성해줘.
아침, 점심, 저녁, 취침 전 시간에 해당하는 문장을 써줘.
아래 예시를 참고해서 네 줄 만 써줘”””
예시:
아침: "나는 오늘 날씨가 좋아서 산책을 했다. 그리고 친구를 만났다.”
점심:
저녁:
취침 전:
연구 논문
OpenAI (2020): Language Models are Few-Shot Learners (2020, OpenAI)
- 모델의 파라미터 수가 충분히 많을수록, Few-shot 성능이 좋아짐
- 175B 모델에서 극적인 개선 관찰
What Makes In-Context Learning Work? (2022)
- 예시를 주면 항상 성능이 향상됨
- 정답 레이블(Gold Label)이 있는 예시가 가장 좋지만, 랜덤 예시도 도움이 됨
- 프롬프트 포맷: 입력-레이블 포맷 유지가 매우 중요
| 유형 | 설명 |
| Format 없음 | 성능 급락 |
| Format 있음 | 일관된 입력-출력 구조 유지 시 성능 상승 |
| 랜덤 레이블 사용 | 성능은 떨어지지만 예시 없는 것보다는 나음 |
- Gold labels: 정답 라벨이 있는 예시를 사용한 경우 모델 성능이 가장 높음
- Prompt: 와 대박이다. → 긍정 아 진짜 별로. → 부정 그 영화 그냥 그랬어. → 긍정
아우 끔찍해? → Output: 부정 (랜덤 라벨 예시라도 모델이 분류 맥락을 이해함)
- Prompt: 와 대박이다. → 긍정 아 진짜 별로. → 부정 그 영화 그냥 그랬어. → 긍정
- Random labels: 랜덤 라벨이 있는 예시를 사용해도 예시가 없는 경우보다는 성능이 좋음
- Prompt: 부정 아 이거 대박이다!, 와 정말 별로네 긍정, 그 영화 진짜 대박이네긍정,
아우 끔찍해? → Output: 부정 (랜덤 라벨 예시라도 모델이 분류 맥락을 이해함)
- Prompt: 부정 아 이거 대박이다!, 와 정말 별로네 긍정, 그 영화 진짜 대박이네긍정,
- No input-label format: 입력-라벨 형식을 유지하지 않은 경우 성능이 크게 저하
- Prompt: 이 영화 어땠어? → Output: "부정"
※ 단순 질문만으로는 맥락이 부족해 잘못된 추론이 많음
- Prompt: 이 영화 어땠어? → Output: "부정"
한계
- 마찬가지로 복잡한 추론 문제를 잘 하지 못함
zero-shot prompting:
Q: 이 그룹의 홀수를 더하면 짝수가 된다.
15, 32, 5, 13, 82, 7, 1.
A: 네, 이 그룹의 홀수들을 더하면 107이 되는데, 이는 짝수입니다.
Few-shot prompting:
이 그룹의 홀수들을 더하면 짝수가 됩니다: 4, 8, 9, 15, 12, 2, 1.
답: 거짓입니다.
이 그룹의 홀수들을 더하면 짝수가 됩니다: 17, 10, 19, 4, 8, 12, 24.
답: 참입니다.
이 그룹의 홀수들을 더하면 짝수가 됩니다: 16, 11, 14, 4, 8, 13, 24.
답: 참입니다.
이 그룹의 홀수들을 더하면 짝수가 됩니다: 17, 9, 10, 12, 13, 4, 2.
답: 거짓입니다.
이 그룹의 홀수들을 더하면 짝수가 됩니다: 15, 32, 5, 13, 82, 7, 1.
답:
Chain-of-Thought Prompting (CoT)
- 모델이 복잡한 추론 과제를 수행할 수 있도록 단계별 사고 절차를 문장으로 유도하는 프롬프트
- 산술, 논리, 상식, 씸볼릭 추론 등의 과제에 유리
- 답이 나오는 과정에 대해 설명한 예시를 보여준다
- 예: "Let's think step by step"
Standard Prompting -> Q: 사과가 23개 있고, 점심에 20개를 썼다. 남은 사과는? A: 정답은 3개입니다.
Chain-of-Thought Prompting -> Q: 사과가 23개 있다. 점심에 20개를 사용했다. 남은 사과는 23 - 20 = 3 정답은 3개입니다.
Prompt:
이 그룹의 홀수의 합이 짝수가 된다: 4, 8, 9, 15, 12, 2, 1.
A: 모든 홀수(9, 15, 1)를 더하면 25입니다.
정답은 "거짓"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 17, 10, 19, 4, 8, 12, 24.
A: 모든 홀수(17, 19)를 더하면 36입니다.
정답은 "참"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 16, 11, 14, 4, 8, 13, 24.
A: 모든 홀수(11, 13)를 더하면 24입니다.
정답은 "참"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 17, 9, 10, 12, 13, 4, 2.
A: 모든 홀수(17, 9, 13)를 더하면 39입니다.
정답은 "거짓"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 15, 32, 5, 13, 82, 7, 1.
A:
Standard Prompting
모델 입력 (Model Input)
Q: Roger는 테니스공 5개를 가지고 있습니다. 그는 테니스공 3개가 들어있는 캔을 2개 더 삽니다. Roger는 이제 테니스공을 몇 개 가지고 있습니까?
A: 정답은 11입니다.
Q: 카페테리아에 사과가 23개 있었습니다. 그들은 20개를 점심을 만드는 데 사용했고 6개를 더 샀습니다. 이제 사과가 몇 개 있습니까?
A: 정답은 27입니다. ❌
Chain-of-thought prompting
Q: Roger는 테니스공 5개를 가지고 있습니다. 그는 테니스공 3개가 들어있는 캔을 2개 더 삽니다. Roger는 이제 테니스공을 몇 개 가지고 있습니까?
A: Roger는 5개의 공으로 시작했습니다. 테니스공 3개가 들어있는 캔 2개를 더 샀습니다. 5 + 6 = 11개. 정답은 11입니다.
Q: 카페테리아에 사과가 23개 있었습니다. 그들은 20개를 점심을 만드는 데 사용했고 6개를 더 샀습니다. 이제 사과가 몇 개 있습니까?
Model Output
A: 카페테리아에 원래 사과가 23개 있었습니다. 그들은 20개를 점심을 만드는 데 사용했습니다. 그래서 23 - 20 = 3개가 남았습니다. 그들은 6개를 더 샀기 때문에, 이제 3 + 6 = 9개가 있습니다. 정답은 9입니다.
연구결과 (Google, 2022)
- GPT-3, PaLM 540B 등 대형 모델에서 CoT 사용 시 성능 급상승
- PaLM 540B 기준:
- Standard prompting: 18%
- Chain-of-Thought: 57%
CoT의 한계
- 파라미터 수가 적은 모델에서는 효과 미미
- 사람처럼 사고 과정을 직접 프롬프트로 써줘야 하는 번거로움
- 프롬프트 완성도가 낮으면 오히려 성능 저하
Zero-Shot Chain-of-Thought (Zero-Shot-CoT)
- 예시 없이 단순히 “단계적으로 생각해 봐”라고 지시하여 추론을 유도 → Chain-of-Thought 스타일의 추론을 Zero-shot 방식으로 구현
- Q: A jogger has 10 golf balls. Half of the balls are golf balls. "Let's think step by step."... ...
연구 (2022, Kojima et al.)
- Zero-shot-CoT 프롬프트만으로도 몇몇 태스크에서 few-shot 수준에 가까운 성능 도달
- 주요 문장 템플릿 예시:
- "Let's think step by step."
- "First, "
- "Let’s break this down"
- 단순 지시문 하나로 모델의 추론 방식 전환 유도 가능

이 그룹의 홀수의 합이 짝수가 된다: 4, 8, 9, 15, 12, 2, 1.
A: 모든 홀수(9, 15, 1)를 더하면 25입니다.
정답은 "거짓"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 17, 10, 19, 4, 8, 12, 24.
A: 모든 홀수(17, 19)를 더하면 36입니다.
정답은 "참"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 16, 11, 14, 4, 8, 13, 24.
A: 모든 홀수(11, 13)를 더하면 24입니다.
정답은 "참"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 17, 9, 10, 12, 13, 4, 2.
A: 모든 홀수(17, 9, 13)를 더하면 39입니다.
정답은 "거짓"입니다.
이 그룹의 홀수의 합이 짝수가 된다: 15, 32, 5, 13, 82, 7, 1.
A:
-- Let's think step by step.
-- Answer in Korean.
Self-Consistency
- CoT 방식에서 모델이 다르게 추론한 결과들 중에서 가장 많이 등장한 결과를 정답으로 선택하는 방식
- 복잡한 산술 문제나 논리 문제에 효과적
적용 방식
- 동일 프롬프트를 여러 번 실행 (sampling)
- 추론 과정별로 다른 답 생성
- 가장 많이 등장한 결과를 최종 정답으로 선택
연구 결과 (Wang et al. 2022)
- 수학 문제와 같이 논리성이 중요한 과제에서 정답률 대폭 향상
- PaLM 540B 기준:
- Greedy decode: 55.6%
- Self-Consistency: 74.4% (majority voting 방식)
| 방식 |
설명 |
| Greedy decode | 한 번만 추론하여 즉시 결과 생성 |
| Self-Consistency | 여러 추론 결과 중 가장 일관된 것 선택 (투표) |
| Weighted sum | 확률 기반으로 답안 가중합 |
실제 적용할 때는?
- Chain-of-Thought 프롬프트로 문제를 제시한다
- 동일 프롬프트를 5~10번 정도 반복 실행하여 다양한 추론 수집
- 가장 자주 등장한 응답을 최종 정답으로 사용한
아래 이메일 내용을 읽고 비즈니스와 관련하여 중요한 내용과 중요하지 않은 내용을 "IMPORTANT" or "NOT IMPORTANT" 를 구분해줘. 그리고 아래처럼 대답해줘.
Response template:
{Important} : { }
{Not Important} : { }
Let's think step by step.
##이메일
안녕하세요, 귀사의 시스템에서 중요한 보안 취약점을 발견하게 되어 이와 관련된 사항을 공유하고자 합니다. 이 취약점은 악용이 쉽지 않지만, 이를 통해 모든 사용자 데이터에 접근할 수 있는 가능성이 있습니다. 이에 대한 증거로 개념 증명 파일을 첨부했으니 확인해 주시기 바랍니다. 이 문제는 매우 심각하며, 조속한 시일 내에 해결해 주실 것을 요청드립니다. 해당 취약점을 통해 발생할 수 있는 잠재적 위협을 방지하기 위해, 귀사의 보안 팀에서 신속하게 대응해 주시기를 바랍니다. 추가적인 정보가 필요하거나, 제가 더 도울 수 있는 부분이 있다면 언제든지 연락해 주시기 바랍니다. 빠른 시일 내에 문제 해결을 부탁드리며, 이러한 문제를 미리 발견하게 되어 다행이라고 생각합니다. 귀사의 보안 강화를 위해 함께 협력할 수 있기를 기대합니다. 감사합니다.
한계
- 복잡한 추론 작업을 해결 할 때 비용이 많이 듦(토큰 수가 많아짐)
- 복잡한 추론을 해결하려면, 상당한 양의 훈련 데이터 필요. 모델이 일관된 응답을 효과적으로 생성하기 위해 다양한 추론 패턴을 학습해야 하기 떄문이다.
- 프롬프트가 명확하지 않거나 간결하지 않을때, self-consistency의 기멉 성능이 저하된다
728x90
'인공지능' 카테고리의 다른 글
| 프롬프트 엔지니어링 실전 활용: 데이터 생성, 코드 생성, 함수 호출 (1) | 2025.06.06 |
|---|---|
| 프롬프트 엔지니어링(Advanced) (1) | 2025.06.05 |
| 프롬프트 기초 (2) | 2025.06.04 |
| Multimodal Image 생성기술 (2) | 2025.05.30 |
| Multimodal 모델 (3) | 2025.05.29 |