지난 글에서 프롬프트의 기본 원칙을 정리했습니다. 기본 원칙만 지켜도 대부분의 일상 작업은 충분하지만, 복잡한 문제를 풀거나 결과 형식을 정확히 맞춰야 할 때는 조금 더 발전된 기법이 필요합니다.
이번 글에서는 연구와 실무에서 효과가 검증된 대표 기법 세 가지, 퓨샷(few-shot) 프롬프팅, 단계별 사고(Chain-of-Thought), 프롬프트 체이닝을 예시와 함께 정리해 보겠습니다.
1. 퓨샷 프롬프팅: 예시로 보여 주기
원하는 결과를 말로 설명하기 어려울 때는 예시를 몇 개 보여 주는 것이 가장 빠릅니다. 예시 없이 바로 요청하는 것을 제로샷(zero-shot), 예시를 하나 주면 원샷(one-shot), 여러 개 주면 퓨샷(few-shot)이라고 부릅니다. LLM이 예시만 보고도 새 작업을 해낼 수 있다는 점은 2020년 GPT-3 논문에서 크게 주목받았습니다.
고객 리뷰를 긍정/부정/중립으로 분류하고 이유를 한 줄로 적어 줘.
리뷰: 배송이 하루 만에 왔어요. 포장도 꼼꼼했습니다.
분류: 긍정 | 이유: 빠른 배송과 포장 만족
리뷰: 색상이 사진과 달라서 반품했어요.
분류: 부정 | 이유: 상품 색상 불일치
리뷰: 가격은 적당한데 아직 써 보진 않았어요.
분류: 중립 | 이유: 사용 전이라 평가 보류
리뷰: 사이즈는 딱 맞는데 원단이 생각보다 얇아요.
분류:
퓨샷을 쓸 때 주의할 점은 다음과 같습니다.
- 예시는 다양하게: 예시가 모두 비슷하면 모델이 우연한 특징(예: 문장 길이)까지 따라 할 수 있습니다. 서로 다른 경우를 골고루 넣으세요.
- 예시 형식은 일관되게: 구분 기호, 줄바꿈, 순서를 똑같이 맞추면 출력 형식도 그대로 따라옵니다.
- 3~5개면 충분한 경우가 많습니다: 예시가 너무 많으면 입력 토큰과 비용만 늘어납니다.
2. 단계별 사고: 생각할 시간 주기
계산, 논리 추론, 여러 조건을 따져야 하는 문제에서는 모델에게 바로 답하지 말고 풀이 과정을 먼저 쓰게 하면 정확도가 올라갑니다. 이 방법을 Chain-of-Thought(CoT, 사고의 사슬)라고 부르며, 2022년 구글 연구진의 논문에서 효과가 보고되었습니다.
LLM은 토큰을 하나씩 만들어 가며 답을 쓰기 때문에, 중간 과정을 글로 적는 것 자체가 '생각할 공간'을 주는 효과가 있습니다. 사람이 암산보다 종이에 풀 때 실수가 적은 것과 비슷합니다.
[기본]
우리 팀 5명이 점심을 먹었는데 총 87,500원이 나왔어.
나는 쿠폰으로 5,000원을 할인받았고, 할인은 나만 받는 거야.
나머지는 똑같이 나누면 각자 얼마씩 내야 해?
[단계별 사고 추가]
...위 문제를 풀기 전에, 먼저 조건을 정리하고 계산 과정을 단계별로 적은 다음
마지막 줄에 "정답:" 뒤에 결과만 적어 줘.
최근에는 모델 자체에 '생각하는 단계'가 내장된 추론(reasoning) 모델이나 확장 사고(extended thinking) 기능도 많이 나와 있습니다. 이런 모델은 별도로 요청하지 않아도 내부적으로 단계별 사고를 하므로, "단계별로 생각해"라는 지시보다 문제와 조건을 명확하게 주는 데 집중하는 편이 낫습니다.
3. 프롬프트 체이닝: 큰 작업을 나눠서 연결하기
"자료 조사부터 분석, 보고서 작성, 맞춤법 검토까지 한 번에 해 줘"처럼 여러 단계가 섞인 요청은 중간에 뭔가 빠지거나 품질이 떨어지기 쉽습니다. 이럴 때는 작업을 여러 개의 작은 프롬프트로 나누고, 앞 단계의 결과를 다음 단계의 입력으로 넘기는 방식이 효과적입니다. 이를 프롬프트 체이닝이라고 합니다.
| 단계 | 프롬프트 | 결과 |
|---|---|---|
| 1 | 고객 문의 100건에서 불만 유형을 뽑아 목록으로 정리해 줘 | 불만 유형 목록 |
| 2 | (1의 결과) 유형별 건수와 대표 사례를 표로 만들어 줘 | 요약 표 |
| 3 | (2의 결과) 이 표를 바탕으로 개선안 3가지를 제안해 줘 | 개선안 |
| 4 | (3의 결과) 임원 보고용 1페이지 문서로 다듬어 줘 | 최종 보고서 |
체이닝의 장점은 다음과 같습니다.
- 단계마다 모델이 한 가지 일에만 집중하므로 결과 품질이 좋아집니다.
- 중간 결과를 확인할 수 있어 어디서 문제가 생겼는지 찾기 쉽습니다.
- 문제가 있는 단계만 다시 실행하면 되므로 수정이 간편합니다.
체이닝의 응용으로 자기 검토(self-check)도 많이 씁니다. 답을 만든 뒤 "방금 쓴 답에서 사실과 다르거나 빠진 부분이 있는지 검토하고 고쳐 줘"라는 단계를 하나 더 붙이는 방식입니다.
정리
원하는 형식을 말로 설명하기 어려우면 퓨샷으로 예시를 보여 주고, 계산이나 추론 문제에는 단계별 사고로 생각할 공간을 주세요. 여러 단계가 섞인 큰 작업은 프롬프트 체이닝으로 나누면 품질과 관리가 모두 쉬워집니다. 다음 글에서는 대화 전체의 규칙을 정하는 시스템 프롬프트와, 프로그램에서 쓰기 좋은 JSON 같은 출력 형식을 지정하는 방법을 알아보겠습니다.
참고자료
- Brown et al., "Language Models are Few-Shot Learners" (2020): https://arxiv.org/abs/2005.14165
- Wei et al., "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" (2022): https://arxiv.org/abs/2201.11903
- Kojima et al., "Large Language Models are Zero-Shot Reasoners" (2022): https://arxiv.org/abs/2205.11916
- Anthropic, Chain complex prompts: https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/chain-prompts
'AI > LLM' 카테고리의 다른 글
| [LLM] LLM 공부 1편: 프롬프트 엔지니어링 기본 원칙 정리 (0) | 2026.10.23 |
|---|---|
| [LLM] LLM 환각을 줄이는 방법, RAG 쉽게 이해하기 (0) | 2026.10.19 |
| [LLM] 처음 배우는 LLM: 토큰, 트랜스포머, RLHF, RAG 쉽게 이해하기 (0) | 2026.10.19 |