본문으로 건너뛰기
Kreath Archive
TechProjectsBooksAbout
TechProjectsBooksAbout

내비게이션

  • Tech
  • Projects
  • Books
  • About
  • Tags

카테고리

  • AI / ML
  • 웹 개발
  • 프로그래밍
  • 개발 도구

연결

  • GitHub
  • Email
  • RSS
© 2026 Kreath Archive. All rights reserved.Built with Next.js + MDX
홈TechProjectsBooksAbout
//
  1. 홈
  2. 테크
  3. 2장: 제로샷과 퓨샷 프롬프팅
2026년 1월 14일·AI / ML·

2장: 제로샷과 퓨샷 프롬프팅

예시 없이 지시하는 제로샷부터 예시를 활용하는 퓨샷까지, 예시 기반 프롬프팅의 원리와 실전 활용 전략을 체계적으로 다룹니다.

21분159.56자9개 섹션
llmprompt-engineeringstructured-outputtraining
공유
prompt-engineering2 / 10
12345678910
이전1장: 프롬프트 엔지니어링의 기초와 핵심 원칙다음3장: Chain-of-Thought 추론 기법

인컨텍스트 학습이란

대규모 언어 모델의 가장 놀라운 능력 중 하나는 인컨텍스트 학습(In-Context Learning, ICL)입니다. 별도의 파인튜닝 없이 프롬프트에 포함된 예시만으로 새로운 작업을 수행할 수 있는 능력을 말합니다.

전통적인 머신러닝에서는 새로운 작업을 학습하려면 대량의 학습 데이터로 모델을 재학습시켜야 했습니다. 하지만 LLM은 프롬프트에 몇 개의 예시를 포함하는 것만으로 해당 패턴을 파악하고 적용할 수 있습니다. 예시의 수에 따라 제로샷, 원샷, 퓨샷으로 구분합니다.

제로샷 프롬프팅

제로샷 프롬프팅(Zero-shot Prompting)은 예시 없이 지시사항만으로 모델에게 작업을 수행하게 하는 방식입니다. 모델이 사전 학습 과정에서 습득한 지식에 의존합니다.

제로샷이 효과적인 경우

제로샷은 모델이 이미 잘 알고 있는 일반적인 작업에 적합합니다.

text
다음 문장의 감성을 긍정, 부정, 중립 중 하나로 분류하세요.
 
문장: "이 제품은 가격 대비 성능이 뛰어나고 디자인도 깔끔합니다."
 
감성:

번역, 요약, 감성 분류, 문법 교정 등 LLM이 학습 과정에서 충분히 접한 작업들은 제로샷만으로도 높은 정확도를 보여줍니다.

제로샷의 한계

그러나 다음과 같은 경우에는 제로샷이 불안정한 결과를 내놓을 수 있습니다.

  • 도메인 특화된 분류 체계를 사용해야 할 때
  • 출력 형식이 매우 구체적으로 정해져 있을 때
  • 모델이 학습 과정에서 접하지 않은 새로운 패턴일 때
text
# 제로샷으로는 불안정한 예시
다음 고객 문의를 우리 회사의 카테고리로 분류하세요:
배송문의, 교환/반품, 결제오류, 제품불량, 기타
 
문의: "어제 주문한 상품의 송장번호를 알고 싶습니다"

이 경우 모델은 "배송문의"와 "기타" 사이에서 일관되지 않은 선택을 할 수 있습니다. 각 카테고리의 경계가 모호하기 때문입니다.

퓨샷 프롬프팅

퓨샷 프롬프팅(Few-shot Prompting)은 프롬프트에 입력-출력 쌍의 예시를 포함하여 모델이 원하는 패턴을 학습하게 하는 방식입니다.

기본 구조

text
다음 고객 문의를 카테고리로 분류하세요.
카테고리: 배송문의, 교환/반품, 결제오류, 제품불량, 기타
 
문의: "결제했는데 금액이 두 번 빠져나갔어요"
카테고리: 결제오류
 
문의: "받은 상품에 스크래치가 있습니다"
카테고리: 제품불량
 
문의: "택배가 아직 출발도 안 했는데 언제 오나요"
카테고리: 배송문의
 
문의: "어제 주문한 상품의 송장번호를 알고 싶습니다"
카테고리:

예시를 통해 각 카테고리의 경계가 명확해지므로 모델의 분류 정확도가 크게 향상됩니다.

예시 수에 따른 성능 변화

일반적으로 예시의 수가 늘어날수록 성능이 향상되지만, 수확 체감(diminishing returns)이 발생합니다.

예시 수일반적인 효과권장 상황
0개 (제로샷)기본 능력에 의존일반적인 작업, 빠른 프로토타입
1-2개형식과 톤 학습출력 형식이 중요한 경우
3-5개패턴 정밀 학습분류, 추출 등 정확도가 중요한 작업
6개 이상미세한 개선복잡한 도메인, 엣지 케이스 처리
Tip

대부분의 작업에서 3-5개의 예시가 비용 대비 최적의 성능을 보여줍니다. 예시를 무한히 늘리는 것보다 예시의 품질과 다양성을 높이는 것이 더 효과적입니다.

좋은 예시를 설계하는 원칙

퓨샷의 성능은 예시의 품질에 크게 좌우됩니다. 다음 원칙을 따르면 더 효과적인 예시를 설계할 수 있습니다.

원칙 1: 다양성을 확보하라

예시가 한 쪽으로 편향되면 모델도 편향된 출력을 생성합니다. 가능한 모든 카테고리나 유형을 골고루 포함해야 합니다.

text
# 편향된 예시 (긍정만 3개)
리뷰: "훌륭합니다" -> 긍정
리뷰: "최고의 제품" -> 긍정
리뷰: "매우 만족" -> 긍정
 
# 균형 잡힌 예시
리뷰: "훌륭합니다" -> 긍정
리뷰: "그냥 평범합니다" -> 중립
리뷰: "절대 재구매 안 합니다" -> 부정

원칙 2: 경계 사례를 포함하라

명확한 예시만 제공하면 모호한 입력에 대한 판단 기준이 부족해집니다. 경계 사례(edge case)를 포함하면 모델의 판단이 더 정교해집니다.

text
# 경계 사례 포함
리뷰: "가격은 비싸지만 품질은 좋습니다" -> 긍정
리뷰: "디자인은 예쁜데 기능이 부족해요" -> 부정
리뷰: "보통입니다. 나쁘진 않은데 좋다고 하기도 어렵네요" -> 중립

원칙 3: 형식을 일관되게 유지하라

예시 간의 형식이 일관되어야 모델이 패턴을 정확하게 학습합니다.

text
# 비일관적 (형식이 제각각)
입력: "Hello" -> 출력: 인사말
"Good morning" - 이것은 인사말입니다
입력값 "Thank you" 의 분류: 감사 표현
 
# 일관적 (동일한 형식)
입력: "Hello" -> 분류: 인사말
입력: "Good morning" -> 분류: 인사말
입력: "Thank you" -> 분류: 감사 표현

원칙 4: 실제 데이터와 유사한 예시를 사용하라

인위적으로 만든 예시보다 실제 데이터에서 선별한 예시가 더 효과적입니다. 실제 데이터의 노이즈, 오타, 비정형 표현을 모델이 학습할 수 있기 때문입니다.

퓨샷의 고급 활용

동적 퓨샷 선택

모든 입력에 동일한 예시를 사용하는 대신, 입력과 가장 유사한 예시를 동적으로 선택하면 성능을 더 높일 수 있습니다.

python
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
 
def select_examples(query_embedding, example_embeddings, examples, k=3):
    """쿼리와 가장 유사한 k개의 예시를 선택합니다."""
    similarities = cosine_similarity(
        [query_embedding], example_embeddings
    )[0]
    top_indices = np.argsort(similarities)[-k:][::-1]
    return [examples[i] for i in top_indices]
 
def build_prompt(query, selected_examples):
    """선택된 예시로 퓨샷 프롬프트를 구성합니다."""
    prompt = "다음 고객 문의를 분류하세요.\n\n"
    for ex in selected_examples:
        prompt += "문의: " + ex["input"] + "\n"
        prompt += "카테고리: " + ex["category"] + "\n\n"
    prompt += "문의: " + query + "\n"
    prompt += "카테고리:"
    return prompt

네거티브 예시 활용

원하지 않는 출력의 예시를 함께 제공하면 모델이 더 정확한 경계를 학습합니다.

text
다음 텍스트에서 사람 이름만 추출하세요.
 
[올바른 예시]
텍스트: "김철수 부장이 삼성전자 회의에 참석했습니다."
이름: 김철수
 
[잘못된 예시 - 이렇게 하지 마세요]
텍스트: "김철수 부장이 삼성전자 회의에 참석했습니다."
이름: 김철수, 삼성전자
(설명: 삼성전자는 기업 이름이므로 사람 이름이 아닙니다)
 
텍스트: "이영희 과장과 박지민 사원이 서울역에서 만났습니다."
이름:

프롬프트 캐싱을 고려한 구조

프로덕션 환경에서 퓨샷을 사용할 때는 API 비용을 고려해야 합니다. 정적인 예시를 프롬프트 앞부분에 배치하면 프롬프트 캐싱의 이점을 받을 수 있습니다.

text
[캐싱 가능한 영역 - 정적 콘텐츠]
시스템 지시사항
퓨샷 예시들
도구 정의
 
[캐싱 불가능한 영역 - 동적 콘텐츠]
사용자의 실제 입력
Info

Anthropic의 프롬프트 캐싱은 정적 콘텐츠를 앞에 배치할 경우 비용을 최대 90%, 지연 시간을 최대 85% 줄일 수 있습니다. 퓨샷 예시는 변경 빈도가 낮으므로 캐싱의 좋은 후보입니다.

실전 사례: 데이터 추출

퓨샷 프롬프팅이 특히 효과적인 실전 사례를 살펴보겠습니다.

비정형 텍스트에서 구조화된 데이터 추출

text
다음 이력서 텍스트에서 정보를 추출하여 지정된 형식으로 반환하세요.
 
[예시 1]
텍스트: "홍길동, 서울대학교 컴퓨터공학과 졸업(2018), 현재 네이버에서
시니어 백엔드 개발자로 근무 중. Python, Java, Go 사용. 경력 6년."
결과:
- 이름: 홍길동
- 학력: 서울대학교 컴퓨터공학과 (2018 졸업)
- 현직: 네이버, 시니어 백엔드 개발자
- 기술: Python, Java, Go
- 경력: 6년
 
[예시 2]
텍스트: "박소연 / KAIST 전산학부 석사(2020) / 前 카카오 ML 엔지니어,
현 토스 데이터팀 리드 / TensorFlow, PyTorch, Spark / 8년차"
결과:
- 이름: 박소연
- 학력: KAIST 전산학부 석사 (2020 졸업)
- 현직: 토스, 데이터팀 리드
- 기술: TensorFlow, PyTorch, Spark
- 경력: 8년
 
텍스트: "이준혁. 고려대 산업공학 학사, 연세대 데이터사이언스 석사(2021).
쿠팡 추천 시스템 개발 3년 후 현재 당근마켓 ML 파트장.
주력 스택은 Python과 SQL이며 AWS 인프라 경험 보유. 총 경력 5년."
결과:

예시가 두 가지 다른 형식의 입력(자연문, 슬래시 구분)을 보여주므로, 세 번째 입력이 또 다른 형식이더라도 모델이 올바르게 추출할 수 있습니다.

제로샷 vs 퓨샷: 선택 기준

어떤 방식을 사용할지 결정하는 실용적인 기준을 정리합니다.

기준제로샷 선택퓨샷 선택
작업 유형일반적 (번역, 요약)도메인 특화 (커스텀 분류)
출력 형식자유 형식엄격한 형식
비용 민감도토큰 절약 필요정확도가 우선
반복 빈도일회성 작업대량 반복 처리
프로토타입 단계초기 탐색프로덕션 배포

흔한 실수와 해결 방법

실수 1: 예시가 너무 쉬움

모든 예시가 명확한 경우만 다루면 모호한 입력에서 성능이 떨어집니다.

해결: 쉬운 예시와 어려운 예시를 혼합하여 모델이 경계를 학습하게 합니다.

실수 2: 예시의 답이 잘못됨

퓨샷에서 잘못된 레이블이 포함된 예시는 모델의 성능을 저하시킵니다. 모델은 예시의 패턴을 충실하게 따르므로, 잘못된 패턴도 그대로 학습합니다.

해결: 예시의 정확성을 반드시 검증하고, 가능하면 도메인 전문가의 리뷰를 거칩니다.

실수 3: 예시 순서의 영향을 무시

연구에 따르면 예시의 순서가 모델 성능에 영향을 미칠 수 있습니다. 마지막 예시가 모델의 출력에 가장 큰 영향을 주는 경향이 있습니다.

해결: 가장 대표적인 예시를 마지막에 배치하거나, 순서를 무작위로 섞어 편향을 줄입니다.

정리

이 장에서는 제로샷과 퓨샷 프롬프팅의 원리와 실전 활용법을 다루었습니다.

  • 제로샷은 예시 없이 모델의 사전 지식에 의존하며, 일반적인 작업에 적합합니다.
  • 퓨샷은 입력-출력 쌍의 예시를 제공하여 모델이 패턴을 학습하게 합니다.
  • 좋은 예시의 조건은 다양성, 경계 사례 포함, 형식 일관성, 실제 데이터 유사성입니다.
  • 동적 예시 선택, 네거티브 예시 등 고급 기법으로 성능을 더 높일 수 있습니다.

다음 장에서는 Chain-of-Thought(CoT) 추론 기법을 다루겠습니다. 복잡한 추론이 필요한 작업에서 모델에게 단계적 사고를 유도하는 방법과, 최신 추론 모델에서의 CoT 활용 전략을 살펴보겠습니다.

이 글이 도움이 되셨나요?

관련 주제 더 보기

#llm#prompt-engineering#structured-output#training

관련 글

AI / ML

3장: Chain-of-Thought 추론 기법

LLM에게 단계적 사고를 유도하는 Chain-of-Thought 프롬프팅의 원리, 변형 기법, 그리고 최신 추론 모델에서의 활용 전략을 다룹니다.

2026년 1월 16일·18분
AI / ML

1장: 프롬프트 엔지니어링의 기초와 핵심 원칙

프롬프트 엔지니어링이 무엇이고 왜 중요한지, LLM과의 효과적인 소통을 위한 핵심 원칙과 기초 개념을 체계적으로 살펴봅니다.

2026년 1월 12일·20분
AI / ML

4장: 역할 지정과 페르소나 설계

LLM에게 전문가 역할을 부여하여 도메인 특화 응답을 이끌어내는 페르소나 설계의 원리와 실전 패턴을 체계적으로 다룹니다.

2026년 1월 18일·19분
이전 글1장: 프롬프트 엔지니어링의 기초와 핵심 원칙
다음 글3장: Chain-of-Thought 추론 기법

댓글

목차

약 21분 남음
  • 인컨텍스트 학습이란
  • 제로샷 프롬프팅
    • 제로샷이 효과적인 경우
    • 제로샷의 한계
  • 퓨샷 프롬프팅
    • 기본 구조
    • 예시 수에 따른 성능 변화
  • 좋은 예시를 설계하는 원칙
    • 원칙 1: 다양성을 확보하라
    • 원칙 2: 경계 사례를 포함하라
    • 원칙 3: 형식을 일관되게 유지하라
    • 원칙 4: 실제 데이터와 유사한 예시를 사용하라
  • 퓨샷의 고급 활용
    • 동적 퓨샷 선택
    • 네거티브 예시 활용
    • 프롬프트 캐싱을 고려한 구조
  • 실전 사례: 데이터 추출
    • 비정형 텍스트에서 구조화된 데이터 추출
  • 제로샷 vs 퓨샷: 선택 기준
  • 흔한 실수와 해결 방법
    • 실수 1: 예시가 너무 쉬움
    • 실수 2: 예시의 답이 잘못됨
    • 실수 3: 예시 순서의 영향을 무시
  • 정리