검색
← 모듈 로드맵

프롬프트 설계와 인컨텍스트 학습: 제로샷 · 퓨샷 · 생각의 사슬

강의 · 입문자 · KAITABASE 정리

원제 · Prompting and In-Context Learning

제로샷 · 퓨샷 · 생각의 사슬 · 자기 일관성과 실무 프롬프트 구조를 정리하는 수업

먼저 알아야 할 것

다음 토큰 예측GPT-3 퓨샷 학습조건부 확률이항 분포 기초

다루는 내용

가중치를 바꾸지 않고 프롬프트만으로 과제를 푸는 인컨텍스트 학습을 다룹니다. 예시의 형식 · 레이블 종류 · 입력 분포가 성능을 좌우한다는 실험, 생각의 사슬 · 제로샷 CoT · 자기 일관성의 원리와 다수결 확률 계산, 역할 · 지시 · 맥락 · 예시 · 출력 형식의 다섯 칸 구조와 평가로 프롬프트를 고치는 절차를 정리합니다.

해설

프롬프트 설계와 인컨텍스트 학습: 제로샷 · 퓨샷 · 생각의 사슬

대형 언어 모델은 가중치를 바꾸지 않고도 프롬프트에 적힌 설명과 예시만 보고 새 일을 해냅니다. 이것을 인컨텍스트 학습(in-context learning)이라 합니다. 이 수업에서는 제로샷 · 퓨샷이 무엇인지, 예시의 어떤 부분이 실제로 효과를 내는지, 생각의 사슬(CoT)과 자기 일관성이 왜 추론을 돕는지, 그리고 실무에서 바로 쓰는 프롬프트 구조(역할 · 지시 · 맥락 · 예시 · 출력 형식)를 정리합니다.

항목내용
참고 출처GPT-3 논문(arXiv 2005.14165) · 시연의 역할 다시 보기(arXiv 2202.12837) · 생각의 사슬(arXiv 2201.11903) · 제로샷 추론(arXiv 2205.11916) · 자기 일관성(arXiv 2203.11171) · Anthropic 프롬프트 모범 사례
트랙 · 수준LLM 활용·에이전트 · 기초
이 수업이 다루는 범위인컨텍스트 학습, 제로샷 · 원샷 · 퓨샷, 시연 예시의 역할, 생각의 사슬, 제로샷 CoT, 자기 일관성, 프롬프트 구조 · 긴 문서 배치, 프롬프트 체이닝, 평가로 고치기

들어가기 전에

한눈에 보기

  • 제로샷 · 원샷 · 퓨샷의 정확한 뜻과, 왜 '학습'인데 가중치가 안 바뀌는지 압니다.
  • 퓨샷 예시에서 정답 레이블보다 형식 · 레이블 종류 · 입력 분포 가 더 중요했다는 실험 결과를 압니다.
  • 생각의 사슬, "단계별로 생각해 봅시다" 한 줄, 여러 번 풀어 다수결(자기 일관성)이 각각 무엇을 바꾸는지 압니다.
  • 다수결이 정답률을 얼마나 올릴 수 있는지 이항 확률로 직접 계산해 봅니다.
  • 역할 · 지시 · 맥락 · 예시 · 출력 형식을 갖춘 프롬프트를 쓰고, 평가로 고치는 습관을 들입니다.

1. 인컨텍스트 학습이란

직관(해설용 비유). 새로 온 동료에게 업무 매뉴얼을 다시 가르치지 않고, "이런 메일은 이렇게 분류해요" 하고 예시 몇 장을 보여 주는 것과 같습니다. 동료의 머릿속(가중치)은 그대로지만, 눈앞의 예시를 보고 바로 따라 합니다.

정의(GPT-3 논문). GPT-3 논문은 평가 방식을 세 가지로 나눴습니다.

방식프롬프트에 넣는 것가중치 갱신
제로샷(zero-shot)과제 설명만없음
원샷(one-shot)과제 설명 + 예시 1개없음
퓨샷(few-shot)과제 설명 + 예시 KK 개없음

논문은 KK 를 보통 10~100개로 두었는데, 이것이 당시 문맥 창 nctx=2048n_{ctx}=2048 토큰에 들어가는 개수였기 때문입니다. 미세조정(fine-tuning)과 달리 기울기 계산도 가중치 변경도 없습니다.

식으로 보면. 모델은 늘 같은 일을 합니다.

y^=arg⁡max⁡y Pθ(y∣지시, (x1,y1),…,(xK,yK), xnew)\hat y = \arg\max_y\ P_\theta\big(y \mid \text{지시},\ (x_1,y_1),\dots,(x_K,y_K),\ x_{\text{new}}\big)
기호뜻
PθP_\theta고정된 가중치 θ\theta 를 가진 언어 모델의 조건부 확률
(xi,yi)(x_i, y_i)프롬프트에 넣은 예시(입력 · 정답) 쌍. 시연(demonstration)이라고도 합니다
xnewx_{\text{new}}실제로 풀고 싶은 새 입력
y^\hat y모델이 내놓는 답

조건(프롬프트)만 바뀌고 θ\theta 는 그대로입니다. "학습"이라는 이름이 붙었지만, 실제로는 조건을 잘 거는 기술 입니다.

숫자로 해 보기(해설용). 문맥 창이 2,048토큰이고, 새 질문과 답 자리에 100토큰, 예시 하나에 150토큰이 든다면 넣을 수 있는 예시는 ⌊(2048−100)/150⌋=12\lfloor(2048-100)/150\rfloor=12 개입니다. 지금 모델들은 문맥 창이 훨씬 길지만, 예시가 많을수록 비용(토큰 요금)과 지연이 늘어나는 구조는 같습니다.

2. 예시의 어떤 부분이 효과를 내나

Min 외(2022)는 퓨샷 예시의 정답 레이블을 무작위로 바꿔도 분류 · 객관식 과제 성능이 거의 떨어지지 않는다는 것을 GPT-3를 포함한 모델 12개에서 보였습니다. 대신 성능을 좌우한 것은 예시가 보여 주는 ① 레이블의 종류(무엇 중에서 고르는지) ② 입력 글의 분포(어떤 글이 들어오는지) ③ 전체 형식이었습니다.

실무로 옮기면.

  • 예시는 실제 입력과 비슷한 글 로 고릅니다(분포).
  • 가능한 답을 빠짐없이 보여 줍니다(레이블 공간). 예를 들어 '긍정 · 부정 · 중립'이 다 나오게.
  • 입력과 출력 형식을 일정하게 둡니다(형식).
  • 그렇다고 레이블을 틀려도 된다는 뜻은 아닙니다. 이 결과는 해당 실험의 분류 · 객관식 과제에 대한 것이고, 정확한 예시가 해가 될 이유는 없습니다.

Anthropic 문서도 예시를 3~5개 넣기를 권하고, 예시가 다양하고 실제 사례와 관련 있게 고르라고 안내합니다.

3. 생각의 사슬(CoT)

직관. 암산으로 바로 답하라고 하면 틀리는 문제도, 풀이를 적어 가며 하면 맞힙니다. 언어 모델은 한 번에 토큰 하나씩 쓰므로, 중간 단계를 글로 쓰게 하면 그 글이 다음 계산의 재료 가 됩니다.

방법(Wei 외, 2022). 퓨샷 예시의 답 부분에 정답만이 아니라 풀이 과정(생각의 사슬)을 함께 적습니다. 논문은 PaLM 540B에 이런 예시 8개만 넣어 수학 서술형 문제 GSM8K에서 당시 최고 정확도를 냈다고 보고했습니다. 자세한 내용은 생각의 사슬 프롬프팅 해설에 있습니다.

제로샷 CoT(Kojima 외, 2022). 예시 없이 답 앞에 "Let's think step by step(단계별로 생각해 봅시다)" 한 줄만 붙입니다. 논문은 InstructGPT(text-davinci-002)에서 MultiArith 정확도가 17.7%→78.7%, GSM8K가 10.4%→40.7%로 올랐다고 보고했습니다.

자기 일관성(Wang 외, 2022). 한 번만 풀지 않고, 샘플링으로 여러 풀이를 만든 뒤 최종 답을 다수결 합니다. 논문은 GSM8K에서 +17.9%p 같은 큰 향상을 보고했습니다(자기 일관성 해설).

숫자로 해 보기(해설용, 단순화한 모형). 한 번 풀 때 맞힐 확률이 pp 이고, 풀이끼리 독립이며, 틀린 답은 모두 같은 오답이라고 가장 불리하게 가정합시다. nn 번 풀어 과반이 정답일 확률은

P(다수결 정답)=∑k>n/2(nk)pk(1−p)n−kP(\text{다수결 정답}) = \sum_{k > n/2} \binom{n}{k} p^k (1-p)^{n-k}
ppn=1n=1n=3n=3n=5n=5n=9n=9
0.60.6000.6480.6830.733
0.70.7000.7840.8370.901

(파이썬으로 계산한 값.) 실제로는 틀린 답들이 서로 다르게 흩어지는 경우가 많아 다수결이 이보다 더 유리할 수 있고, 반대로 풀이끼리 독립이 아니면(같은 실수를 반복하면) 덜 유리합니다. 비용은 nn 배로 늘어납니다.

주의. 최근 모델들 가운데는 답하기 전에 스스로 긴 추론을 하도록 학습된 '추론 모델'이 있습니다. 이런 모델에는 단계별 풀이를 일일이 지시하기보다, 문제와 기준을 명확히 주는 편이 낫다는 안내가 공급사 문서에 있습니다. 쓰는 모델의 문서를 먼저 확인하세요.

4. 프롬프트 구조: 다섯 칸

실무에서는 다음 다섯 칸을 채우면 대부분의 문제가 줄어듭니다.

칸내용예
역할누구처럼 답할지"너는 사내 보안 정책 검토자다"
지시무엇을 할지, 성공 기준"아래 계약서에서 위험 조항 3개를 찾아라"
맥락판단에 필요한 자료계약서 본문, 정책 문서
예시입력 → 출력 견본조항 1개와 판정 견본
출력 형식받을 모양"JSON으로: {조항, 이유, 위험도}"

공식 문서의 요령(Anthropic 모범 사례에서 확인한 것).

  • 지시는 명확하고 직접적으로. "맥락을 모르는 동료에게 보여 줘서 헷갈려 하면 모델도 헷갈린다"는 시험법을 제안합니다.
  • 지시 · 맥락 · 예시 · 입력을 <instructions>, <context> 같은 XML 태그로 나누면 오해가 줄어든다고 합니다.
  • 시스템 프롬프트에 한 문장짜리 역할만 줘도 행동과 말투가 달라진다고 합니다.
  • 긴 문서(2만 토큰 이상)는 프롬프트 위쪽 에 두고 질문은 끝 에 두라고 권하며, 시험에서 응답 품질이 최대 30%까지 좋아졌다고 적고 있습니다.

프롬프트 체이닝. 큰 일을 "요약 → 쟁점 추출 → 초안 → 검토"처럼 여러 번의 호출로 나누고, 앞 단계 출력을 다음 단계 입력으로 넘깁니다. 단계마다 확인할 수 있어 디버깅이 쉽습니다. 이 아이디어는 에이전트 설계 수업의 '워크플로'로 이어집니다.

mermaid
flowchart LR
  G[목표 · 성공 기준 정의] --> D[초안 프롬프트<br/>역할 · 지시 · 맥락 · 예시 · 형식]
  D --> E[평가 세트로 실행]
  E --> A{기준 충족?}
  A -->|아니오| F[실패 사례 분석<br/>지시 보강 · 예시 교체 · 단계 나누기]
  F --> D
  A -->|예| P[배포 · 계속 감시]

5. 평가로 고치기

Anthropic 문서는 프롬프트를 고치기 전에 ① 성공 기준 ② 그것을 시험할 방법 ③ 첫 초안이 있어야 한다고 말합니다. 감으로 고치면 한 사례는 좋아지고 다른 사례는 나빠지는 일이 흔하기 때문입니다.

최소한의 절차.

  1. 실제 입력 20~50개를 모아 기대 출력(또는 채점 기준)을 적습니다. (개수는 해설용 권장치)
  2. 프롬프트를 바꿀 때마다 전체를 다시 돌려 점수를 비교합니다.
  3. 틀린 사례를 유형별로 묶어 원인을 찾습니다(지시 모호 · 예시 부족 · 형식 오류 · 모르는 지식).
  4. 지식이 없어서 틀리는 것은 프롬프트로 못 고칩니다. 자료를 넣어 주거나(RAG) 미세조정을 검토합니다.

평가 방법 자체는 LLM 평가 수업에서 자세히 다룹니다.

6. 프롬프트로 못 하는 것

  • 모르는 사실을 알게 할 수는 없습니다. 학습 데이터에 없거나 최신인 정보는 자료로 넣어 줘야 합니다.
  • 확률적 출력 이라 같은 프롬프트도 결과가 흔들립니다. 형식이 중요하면 구조화 출력을 씁니다.
  • 프롬프트 주입 위험이 있습니다. 문서 안에 "앞의 지시를 무시하라" 같은 글이 섞여 있으면 모델이 따를 수 있으므로, 외부 자료는 태그로 구분하고 '데이터일 뿐 지시가 아니다'라고 밝히는 등 방어를 둡니다.

연습 문제

  1. 제로샷과 퓨샷의 차이를 한 줄로, 그리고 둘 다 '가중치를 바꾸지 않는다'는 점을 넣어 쓰세요.
    • 풀이: 제로샷은 과제 설명만, 퓨샷은 설명에 예시 여러 개를 더해 프롬프트로 주며, 둘 다 모델 가중치는 그대로이고 조건만 바뀝니다.
  2. 한 번 풀 때 정답률 0.7인 모델로 5번 풀어 다수결하면(본문의 불리한 가정) 정답률은?
    • 풀이: (53)0.730.32+(54)0.740.3+0.75=0.309+0.360+0.168≈0.837\binom53 0.7^3 0.3^2+\binom54 0.7^4 0.3+0.7^5 = 0.309+0.360+0.168\approx0.837 입니다.
  3. 감정 분류 퓨샷 프롬프트에 '긍정' 예시만 4개 넣었습니다. 무엇이 문제인가요?
    • 풀이: 레이블 공간(부정 · 중립)을 보여 주지 않아 모델이 답의 범위를 잘못 잡을 수 있습니다. 레이블마다 예시를 넣고 형식을 통일합니다.
  4. 문맥 창 8,000토큰, 질문 · 답 자리 500토큰, 예시 하나 250토큰이면 예시를 최대 몇 개 넣을 수 있나요?
    • 풀이: ⌊7500/250⌋=30\lfloor 7500/250\rfloor = 30 개입니다.

스스로 점검

  1. Min 외(2022)의 결과가 "예시 정답은 아무래도 된다"는 뜻이 아닌 이유는?
    • 답: 실험 범위가 특정 분류 · 객관식 과제였고, 결과는 '형식 · 레이블 종류 · 입력 분포가 더 큰 역할을 한다'는 것이지 틀린 예시를 권하는 것이 아니기 때문입니다.
  2. 생각의 사슬이 효과가 있는 이유를 다음 토큰 예측 관점에서 설명하세요.
    • 답: 모델은 앞에 쓴 글을 조건으로 다음 토큰을 냅니다. 중간 계산을 글로 쓰면 그 결과가 다음 단계의 조건이 되어, 한 번에 답하기 어려운 계산을 여러 단계로 나눠 할 수 있습니다.
  3. 프롬프트를 바꿀 때 평가 세트를 매번 전체로 돌려야 하는 이유는?
    • 답: 한 사례를 고친 변경이 다른 사례를 망칠 수 있어서, 전체 점수로 비교해야 실제 개선인지 알 수 있습니다.

용어 정리

용어쉬운 뜻
인컨텍스트 학습가중치를 바꾸지 않고 프롬프트 속 설명 · 예시만으로 새 과제를 하는 것
제로샷 · 원샷 · 퓨샷예시 0개 · 1개 · 여러 개를 주는 방식
시연(demonstration)프롬프트에 넣는 입력-정답 예시
생각의 사슬(CoT)답 전에 중간 풀이를 글로 쓰게 하는 기법
제로샷 CoT예시 없이 "단계별로 생각해 봅시다"만 붙이는 기법
자기 일관성여러 풀이를 샘플링해 최종 답을 다수결하는 기법
시스템 프롬프트대화 전체에 적용되는 역할 · 규칙을 적는 자리
프롬프트 체이닝큰 일을 여러 번의 호출로 나눠 이어 붙이는 것
프롬프트 주입입력 자료 속 글이 지시처럼 작동해 모델을 엉뚱하게 움직이는 공격

더 깊이 보려면

다음에 볼 것

라이선스

본문은 KAITABASE 자체 해설입니다. 논문 수치는 각 원문에서, 프롬프트 요령은 Anthropic 공식 문서에서 확인한 것만 옮겼습니다. 다수결 확률 표와 예시 개수 계산은 해설용 단순 모형이며 파이썬으로 검산했습니다.

출처

AI 원리부터 이해하기 · LLM 활용·에이전트 모듈

LLM 활용·에이전트 모듈 학습

이 글은 LLM 활용·에이전트 모듈의 학습 자료입니다. 전체 19개 자료 중 2번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 Anthropic 문서 · arXiv 원 논문